37.6. attributes

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

Таблица 37.4. Столбцы attributes

ИмяТип данныхОписание
udt_catalogsql_identifierИмя базы данных, содержащей тип данных (всегда текущая база)
udt_schemasql_identifierИмя схемы, содержащей тип данных
udt_namesql_identifierИмя типа данных
attribute_namesql_identifierИмя атрибута
ordinal_positioncardinal_numberПорядковый номер атрибута внутри типа данных (нумерация начинается с 1)
attribute_defaultcharacter_dataВыражение по умолчанию для атрибута
is_nullableyes_or_noYES, если атрибут может содержать NULL, или NO, если он не принимает NULL
тип_данныхcharacter_dataТип данных атрибута, если это встроенный тип, либо ARRAY, если это массив (в этом случае обратитесь к представлению element_types), иначе — USER-DEFINED (в этом случае тип определяется в attribute_udt_name и связанных столбцах).
character_maximum_lengthcardinal_numberЕсли в data_type указан тип текстовой или битовой строки, это поле задаёт её объявленную максимальную длину; NULL для всех других типов данных, либо если максимальная длина не объявлена.
character_octet_lengthcardinal_numberЕсли в data_type указан тип символьной строки, это поле задаёт её максимально возможный размер в октетах (байтах); NULL для всех других типов данных. Максимальный размер в октетах зависит от объявленной максимальной длины в символах (см. выше) и от кодировки сервера.
character_set_catalogsql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
character_set_schemasql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
character_set_namesql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
collation_catalogsql_identifierИмя базы данных, содержащей правило сортировки атрибута (это всегда текущая база), либо NULL, если это правило по умолчанию или тип данных атрибута несортируемый
collation_schemasql_identifierИмя схемы, содержащей правило сортировки атрибута, либо NULL, если это правило по умолчанию или тип данных атрибута несортируемый
collation_namesql_identifierИмя правила сортировки атрибута, либо NULL, если это правило по умолчанию или атрибут несортируемый
numeric_precisioncardinal_numberЕсли в data_type указан числовой тип, этот столбец содержит точность (объявленную или неявную) типа для этого атрибута. Точность определяет число значащих цифр. Она может выражаться в десятичных (по основанию 10) или двоичных (по основанию 2) цифрах, согласно столбцу numeric_precision_radix. Для всех других типов данных этот столбец содержит NULL.
numeric_precision_radixcardinal_numberЕсли в data_type указан числовой тип, в этом столбце определяется, по какому основанию задаются значения в столбцах numeric_precision и numeric_scale. Возможные варианты: 2 или 10. Для всех других типов данных этот столбец содержит NULL.
numeric_scalecardinal_numberЕсли в data_type указан точный числовой тип, этот столбец содержит масштаб (объявленный или неявный) типа для этого атрибута. Масштаб определяет число значащих цифр справа от десятичной точки. Он может выражаться в десятичных (по основанию 10) или двоичных (по основанию 2) цифрах, согласно столбцу numeric_precision_radix. Для всех других типов данных этот столбец содержит NULL.
datetime_precisioncardinal_numberЕсли в data_type указан тип даты, времени, отметки времени или интервала, этот столбец содержит точность (объявленную или неявную) в долях секунды типа этого атрибута, то есть число десятичных цифр, сохраняемых после десятичной точки в значении секунд. Для всех других типов данных этот столбец содержит NULL.
interval_typecharacter_dataЕсли в data_type указан тип интервала, этот столбец определяет, какие поля принимает интервал в этом атрибуте, например: YEAR TO MONTH, DAY TO SECOND и т. д. Если ограничения для полей не заданы (то есть, интервал принимает все поля), и для любых других типов данных это поле содержит NULL.
interval_precisioncardinal_numberОтносится к функциональности, отсутствующей в Postgres Pro (см. поле datetime_precision, определяющее точность в долях секунды для типов интервалов)
attribute_udt_catalogsql_identifierИмя базы данных, в которой определён тип данных атрибута (всегда текущая база)
attribute_udt_schemasql_identifierИмя схемы, в которой определён тип данных атрибута
attribute_udt_namesql_identifierИмя типа данных атрибута
scope_catalogsql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
scope_schemasql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
scope_namesql_identifierОтносится к функциональности, отсутствующей в Postgres Pro
maximum_cardinalitycardinal_numberВсегда NULL, так как массивы имеют неограниченную максимальную ёмкость в Postgres Pro
dtd_identifiersql_identifierИдентификатор дескриптора типа данных атрибута, уникальный среди всех дескрипторов типа данных, относящихся к составному типу. Он в основном полезен для соединения с другими экземплярами таких идентификаторов. (Конкретный формат идентификатора не определён и не гарантируется, что он останется неизменным в будущих версиях.)
is_derived_reference_attributeyes_or_noОтносится к функциональности, отсутствующей в Postgres Pro

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