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