53.6. pg_attrdef

В каталоге pg_attrdef хранятся значения столбцов по умолчанию. Основная информация о столбцах хранится в pg_attribute (см. ниже). Данный же каталог содержит записи только для тех столбцов, для которых явно задаётся значение по умолчанию (при создании таблицы или добавлении столбца).

Таблица 53.6. Столбцы pg_attrdef

ИмяТипСсылкиОписание
oidoid Идентификатор строки (скрытый атрибут; должен выбираться явно)
adrelidoidpg_class.oidТаблица, к которой принадлежит столбец
adnumint2pg_attribute.attnumНомер столбца
adbinpg_node_tree Внутреннее представление значения столбца по умолчанию
adsrctext Понятное человеку представление значения по умолчанию

Поле adsrc присутствует по исторически причинам, его не стоит использовать, так как в нём не отражаются внешние факторы, способные повлиять на представление значения по умолчанию. Для отображения значения по умолчанию лучше декомпилировать поле adbin (применив, например pg_get_expr ).

53.6. pg_attrdef

The catalog pg_attrdef stores column default values. The main information about columns is stored in pg_attribute (see below). Only columns that explicitly specify a default value (when the table is created or the column is added) will have an entry here.

Table 53.6. pg_attrdef Columns

NameTypeReferencesDescription
oidoid Row identifier (hidden attribute; must be explicitly selected)
adrelidoidpg_class.oidThe table this column belongs to
adnumint2pg_attribute.attnumThe number of the column
adbinpg_node_tree The internal representation of the column default value
adsrctext A human-readable representation of the default value

The adsrc field is historical, and is best not used, because it does not track outside changes that might affect the representation of the default value. Reverse-compiling the adbin field (with pg_get_expr for example) is a better way to display the default value.

FAQ