34.6. attributes

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

Таблица 34-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

Обратитесь также к описанию Разд. 34.16, представлению с похожей структурой, за дополнительной информацией о некоторых столбцах.