52.7. pg_attribute
В каталоге pg_attribute хранится информация о столбцах таблицы. Для каждого столбца каждой таблицы в pg_attribute существует ровно одна строка. (Также в этом каталоге будут записи для индексов и на самом деле для всех объектов, присутствующих в pg_class.)
Термин «атрибут» равнозначен «столбцу» и употребляется по историческим причинам.
Таблица 52.7. Столбцы pg_attribute
Тип столбца Описание  | 
|---|
 Таблица, к которой принадлежит столбец  | 
 Имя столбца  | 
 Тип данных этого столбца (ноль для удалённого столбца)  | 
 Столбец   | 
 Копия   | 
 Порядковый номер столбца. Обычные столбцы нумеруются по возрастанию, начиная с 1. Системные столбцы, такие как   | 
 Число размерностей, если столбец имеет тип массива; ноль в противном случае. (В настоящее время число размерностей массива не контролируется, поэтому любое ненулевое значение по сути означает «это массив».)  | 
 Всегда -1 в постоянном хранилище, но когда запись загружается в память, в этом поле может кешироваться смещение атрибута в строке  | 
 В поле   | 
 Копия   | 
 Копия   | 
 Обычно копия   | 
 Текущий метод сжатия столбца. Обычно задано значение   | 
 Представляет ограничение NOT NULL.  | 
 Столбец имеет значение по умолчанию или генерирующее выражение, в этом случае в каталоге   | 
 Столбец имеет значение, которое используется, когда он полностью отсутствует в строке. Это имеет место, когда столбец добавляется с неизменчивым значением   | 
 Пустой символ (  | 
 Если нулевой байт (  | 
 Столбец был удалён и теперь не является рабочим. Удалённый столбец может по-прежнему физически присутствовать в таблице, но анализатор запросов его игнорирует, так что обратиться к нему из SQL нельзя.  | 
 Столбец определён локально в данном отношении. Заметьте, что столбец может быть определён локально и при этом наследоваться.  | 
 Число прямых предков этого столбца. Столбец с ненулевым числом предков нельзя удалить или переименовать.  | 
 Заданное для столбца правило сортировки, либо ноль, если тип столбца не сортируемый.  | 
 Права доступа к столбцу, если они были заданы непосредственно для этого столбца  | 
 Параметры уровня атрибута, в виде строк «ключ=значение»  | 
 Параметры уровня атрибута для обёрток сторонних данных, в виде строк «ключ=значение»  | 
 В данном столбце размещается массив с одним элементом. Значение в этом элементе используется, когда столбец полностью отсутствует в строке, что имеет место, когда столбец добавляется с неизменчивым значением   | 
В записи удалённого столбца в pg_attribute поле atttypid сбрасывается в ноль, но attlen и другие поля, копируемые из pg_type, сохраняют актуальные значения. Это нужно, чтобы справиться с ситуацией, когда после удаления столбца удаляется и его тип данных, так что записи в pg_type больше не будет. В таких случаях для интерпретации содержимого строки таблицы могут использоваться attlen и другие поля.