37.6. attributes
Представление attributes содержит информацию об атрибутах составных типов данных, определённых в базе. (Заметьте, что представление не даёт информацию о столбцах таблицы, которые иногда называются атрибутами в контекстах PostgreSQL.) В нём показываются только те атрибуты, к которым имеет доступ текущий пользователь (являясь владельцем или имея некоторое право для использования типа).
Таблица 37.4. Столбцы attributes
| Имя | Тип данных | Описание | 
|---|---|---|
| udt_catalog | sql_identifier | Имя базы данных, содержащей тип данных (всегда текущая база) | 
| udt_schema | sql_identifier | Имя схемы, содержащей тип данных | 
| udt_name | sql_identifier | Имя типа данных | 
| attribute_name | sql_identifier | Имя атрибута | 
| ordinal_position | cardinal_number | Порядковый номер атрибута внутри типа данных (нумерация начинается с 1) | 
| attribute_default | character_data | Выражение по умолчанию для атрибута | 
| is_nullable | yes_or_no | YES, если атрибут может содержать NULL, илиNO, если он не принимает NULL | 
| data_type | character_data | Тип данных атрибута, если это встроенный тип, либо ARRAY, если это массив (в этом случае обратитесь к представлениюelement_types), иначе —USER-DEFINED(в этом случае тип определяется вattribute_udt_nameи связанных столбцах). | 
| character_maximum_length | cardinal_number | Если в data_typeуказан тип текстовой или битовой строки, это поле задаёт её объявленную максимальную длину; NULL для всех других типов данных, либо если максимальная длина не объявлена. | 
| character_octet_length | cardinal_number | Если в data_typeуказан тип символьной строки, это поле задаёт её максимально возможный размер в октетах (байтах); NULL для всех других типов данных. Максимальный размер в октетах зависит от объявленной максимальной длины в символах (см. выше) и от кодировки сервера. | 
| character_set_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| character_set_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| character_set_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| collation_catalog | sql_identifier | Имя базы данных, содержащей правило сортировки атрибута (это всегда текущая база), либо NULL, если это правило по умолчанию или тип данных атрибута несортируемый | 
| collation_schema | sql_identifier | Имя схемы, содержащей правило сортировки атрибута, либо NULL, если это правило по умолчанию или тип данных атрибута несортируемый | 
| collation_name | sql_identifier | Имя правила сортировки атрибута, либо NULL, если это правило по умолчанию или атрибут несортируемый | 
| numeric_precision | cardinal_number | Если в data_typeуказан числовой тип, этот столбец содержит точность (объявленную или неявную) типа для этого атрибута. Точность определяет число значащих цифр. Она может выражаться в десятичных (по основанию 10) или двоичных (по основанию 2) цифрах, согласно столбцуnumeric_precision_radix. Для всех других типов данных этот столбец содержит NULL. | 
| numeric_precision_radix | cardinal_number | Если в data_typeуказан числовой тип, в этом столбце определяется, по какому основанию задаются значения в столбцахnumeric_precisionиnumeric_scale. Возможные варианты: 2 или 10. Для всех других типов данных этот столбец содержит NULL. | 
| numeric_scale | cardinal_number | Если в data_typeуказан точный числовой тип, этот столбец содержит масштаб (объявленный или неявный) типа для этого атрибута. Масштаб определяет число значащих цифр справа от десятичной точки. Он может выражаться в десятичных (по основанию 10) или двоичных (по основанию 2) цифрах, согласно столбцуnumeric_precision_radix. Для всех других типов данных этот столбец содержит NULL. | 
| datetime_precision | cardinal_number | Если в data_typeуказан тип даты, времени, отметки времени или интервала, этот столбец содержит точность (объявленную или неявную) в долях секунды типа этого атрибута, то есть число десятичных цифр, сохраняемых после десятичной точки в значении секунд. Для всех других типов данных этот столбец содержит NULL. | 
| interval_type | character_data | Если в data_typeуказан тип интервала, этот столбец определяет, какие поля принимает интервал в этом атрибуте, например:YEAR TO MONTH,DAY TO SECONDи т. д. Если ограничения для полей не заданы (то есть, интервал принимает все поля), и для любых других типов данных это поле содержит NULL. | 
| interval_precision | cardinal_number | Относится к функциональности, отсутствующей в PostgreSQL (см. поле datetime_precision, определяющее точность в долях секунды для типов интервалов) | 
| attribute_udt_catalog | sql_identifier | Имя базы данных, в которой определён тип данных атрибута (всегда текущая база) | 
| attribute_udt_schema | sql_identifier | Имя схемы, в которой определён тип данных атрибута | 
| attribute_udt_name | sql_identifier | Имя типа данных атрибута | 
| scope_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| scope_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| scope_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL | 
| maximum_cardinality | cardinal_number | Всегда NULL, так как массивы имеют неограниченную максимальную ёмкость в PostgreSQL | 
| dtd_identifier | sql_identifier | Идентификатор дескриптора типа данных столбца, уникальный среди всех дескрипторов типов, относящихся к таблице. Он в основном полезен для соединения с другими экземплярами таких идентификаторов. (Конкретный формат идентификатора не определён и не гарантируется, что он останется неизменным в будущих версиях.) | 
| is_derived_reference_attribute | yes_or_no | Относится к функциональности, отсутствующей в PostgreSQL | 
Обратитесь также к описанию Раздел 37.16, представлению с похожей структурой, за дополнительной информацией о некоторых столбцах.