pg_attribute#

В каталоге pg_attribute хранится информация о столбцах таблицы. Для каждого столбца в каждой таблице в базе данных будет ровно одна строка pg_attribute. (Также будут записи атрибутов для индексов и всех объектов с классом pg_class entries).

Термин атрибут эквивалентен столбцу и используется по историческим причинам.

Столбец

Тип данных

Описание

attrelid

oid (ссылается на pg_class.oid)

Таблица, к которой относится этот столбец

attname

name

имя столбца

atttypid

oid (ссылается на pg_type.oid)

Тип данных этого столбца (ноль для удаленного столбца)

attlen

int2

Копия pg_type.typlen типа этого столбца

attnum

int2

Номер столбца. Обычные столбцы нумеруются от 1 до. Системные столбцы, такие как ctid, имеют (произвольные) отрицательные числа

attcacheoff

int4

Всегда -1 в хранилище, но при загрузке в дескриптор строки в памяти это может быть обновлено, чтобы кэшировать смещение атрибута в строке

atttypmod

int4

atttypmod записывает типоспецифические данные, предоставляемые во время создания таблицы (например, максимальную длину столбца varchar). Он передается в типоспецифические функции ввода и функции принуждения к длине. Значение обычно равно -1 для типов, которым не нужен atttypmod

attndims

int2

Количество размеров, если столбец является типом массива; в противном случае 0. (В настоящее время количество размеров массива не применяется, поэтому любое ненулевое значение фактически означает «это массив»)

Attbyval

bool

Копия pg_type.typbyval типа этого столбца

atalign

char

Копия pg_type.typalign типа этого столбца

attstorage

char

Обычно это копия pg_type.typstorage типа этого столбца. Для типов данных, поддерживающих TOAST, это можно изменить после создания столбца для управления политикой хранения

attcompression

char

Текущий метод сжатия столбца. Обычно это „\0“, чтобы указать использование текущего настройки по умолчанию (см. default_toast_compression). В противном случае „p“ выбирает сжатие pglz, а „l“ выбирает сжатие LZ4. Однако это поле игнорируется, когда attstorage не позволяет сжатие

attnotnull

bool

Это представляет собой ограничение не-нуля

Atthasdef

bool

В этом столбце есть выражение по умолчанию или выражение генерации, в этом случае в каталоге pg_attrdef будет соответствующая запись, которая фактически определяет выражение. (Проверьте, является ли это выражением по умолчанию или генерацией expression.)

atthasmissing

bool

Этот столбец имеет значение, которое используется, когда столбец полностью отсутствует в строке, как это происходит, когда столбец добавляется с энергонезависимым значением DEFAULT после создания строки. Фактическое используемое значение сохраняется в столбце attmissingval

attidentity

char

если нулевой байт („“), то не столбец идентификации. В противном случае a = всегда генерируется, d = генерируется по умолчанию

attgenerated

char

если нулевой байт („“), то не сгенерированный столбец. В противном случае s = сохраняется. (Другие значения могут быть добавлены в future.)

attisdropped

bool

Этот столбец был удален и больше не действителен. Удаленный столбец все еще физически присутствует в таблице, но игнорируется анализатором и поэтому не может быть доступен через SQL

attislocal

bool

Этот столбец определяется локально в отношении. Обратите внимание, что столбец может быть определен локально и унаследован одновременно

attinhcount

int4

Количество прямых предков в этом столбце. Столбец с ненулевым числом предков не может быть удален или переименован

attstattarget

int4

attstattarget управляет уровнем детализации статистики, накапливаемой для этого столбца с помощью ANALYZE. Нулевое значение указывает на то, что статистика не должна собираться. Отрицательное значение говорит об использовании целевого показателя статистики по умолчанию в системе. Точное значение положительных значений зависит от типа данных. Для скалярных типов данных attstattarget является и целевым числом «наиболее распространенных значений», которые нужно собирать, и целевым числом гистограммных контейнеров, которые нужно создать

attcollation

oid (ссылается на pg_collation.oid)

Определенное сопоставление столбца или ноль, если столбец не является сопоставимым типом данных

atacl

aclitem[]

Права доступа на уровне столбцов, если таковые были предоставлены специально для этого столбца

атрибуты

text[]

Параметры на уровне атрибутов, такие как строки «ключевое слово=значение»

attfdwoptions

text[]

Параметры адаптера сторонних данных на уровне атрибутов, такие как строки «ключевое слово = значение»

attmissingval

anyarray

В этом столбце есть массив из одного элемента, содержащий значение, используемое, когда столбец полностью отсутствует в строке, как это происходит, когда столбец добавляется с энергонезависимым значением DEFAULT после создания строки. Значение используется только тогда, когда atthasmissing равен true. Если нет значения, столбец равен нулю

В записи атрибута pg_attribute удаленного столбца atttypid сбрасывается до нуля, но attlen и другие поля, скопированные из pg_type, все еще действительны. Такое расположение необходимо, чтобы справиться с ситуацией, когда тип данных удаленного столбца был позже удален, и поэтому строка pg_type больше не существует. attlen и другие поля могут использоваться для интерпретации содержимого строки таблицы.