53.6. pg_attrdef
В каталоге pg_attrdef хранятся значения столбцов по умолчанию. Основная информация о столбцах хранится в pg_attribute (см. ниже). Данный же каталог содержит записи только для тех столбцов, для которых явно задаётся значение по умолчанию (при создании таблицы или добавлении столбца).
Таблица 53.6. Столбцы pg_attrdef
| Имя | Тип | Ссылки | Описание |
|---|---|---|---|
oid | oid | Идентификатор строки (скрытый атрибут; должен выбираться явно) | |
adrelid | oid | | Таблица, к которой принадлежит столбец |
adnum | int2 | | Номер столбца |
adbin | pg_node_tree | Внутреннее представление значения столбца по умолчанию | |
adsrc | text | Понятное человеку представление значения по умолчанию |
Поле 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
| Name | Type | References | Description |
|---|---|---|---|
oid | oid | Row identifier (hidden attribute; must be explicitly selected) | |
adrelid | oid | | The table this column belongs to |
adnum | int2 | | The number of the column |
adbin | pg_node_tree | The internal representation of the column default value | |
adsrc | text | 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.