oid oid
Идентификатор строки |
typname name
Имя типа данных |
typnamespace oid (ссылается на pg_namespace .oid )
OID пространства имён, содержащего этот тип |
typowner oid (ссылается на pg_authid .oid )
Владелец типа |
typlen int2
Для типа фиксированного размера в typlen задаётся число байт во внутреннем представлении типа. Но для типов переменной длины, typlen будет отрицательным. Значение -1 обозначает тип «varlena» (он содержит машинное слово, определяющее длину), а -2 обозначает строку в стиле C, оканчивающуюся нулём. |
typbyval bool
Поле typbyval определяет, будут ли внутренние процедуры передавать переменные этого типа по значению или по ссылке. Полю typbyval лучше присвоить false, если длина typlen не равна 1, 2 или 4 (либо 8, на 64-битных машинах). Типы переменной длины всегда передаются по ссылке. Заметьте, что typbyval может быть false, даже если размер типа позволяет передачу по значению. |
typtype char
Поле typtype принимает значение b для базового типа (base), c для составного (composite), то есть типа строки таблицы, d для домена (domain), e для перечисления (enum), p для псевдотипа (pseudo-type), r для диапазона (range) или m для мультидиапазона (multirange). См. также typrelid и typbasetype . |
typcategory char
В поле typcategory задаётся произвольная классификация типов данных, на основе которой анализатор запросов может определить, какие неявные приведения будут «предпочитаемыми». См. Таблицу 53.67. |
typispreferred bool
True, если этот тип является предпочитаемым целевым типом в своей категории (typcategory ) |
typisdefined bool
True, если тип определён, и false, если это тип-заготовка для ещё не определённого типа. Когда значение typisdefined — false, можно полагаться только на заданное имя, пространство имён и OID типа. |
typdelim char
Символ, разделяющий два значения этого типа при разборе вводимого массива. Заметьте, что этот разделитель связывается с типом данных элемента массива, а не с типом самого массива. |
typrelid oid (ссылается на pg_class .oid )
Если это составной тип (см. typtype ), этот столбец указывает на запись pg_class , определяющую соответствующую таблицу. (Для независимого составного типа запись в pg_class на самом деле не представляет таблицу, но она всё равно нужна для связывания с записями pg_attribute этого типа.) Для не составных типов содержит ноль. |
typsubscript regproc (ссылается на pg_proc .oid )
OID функции обработки индексов элементов или ноль, если этот тип не поддерживает обращение к элементам по индексу. Для «настоящих» типов массивов typsubscript = array_subscript_handler , но другие типы могут реализовывать обращение к элементам по индексу особым образом. |
typelem oid (ссылается на pg_type .oid )
Если значение typelem ненулевое, оно указывает на другую строку в pg_type , определяя тип, возвращаемый при обращении по индексу. Если значение typsubscript нулевое, то и значение typelem должно быть нулевым. Однако в некоторых случаях оно может быть нулевым и когда значение typsubscript ненулевое, если обработчик не учитывает typelem при определении типа результата. Обратите внимание, что зависимость typelem подразумевает физическое включение типа элемента в целевой тип; поэтому возможности изменения DDL типа элемента могут быть ограничены существованием данного типа. |
typarray oid (ссылается на pg_type .oid )
Если значение typarray ненулевое, оно указывает на другую запись в pg_type , описывающую «настоящий» тип массива, в которой этот тип будет элементом |
typinput regproc (ссылается на pg_proc .oid )
Функция преобразования ввода (из текстового формата) |
typoutput regproc (ссылается на pg_proc .oid )
Функция преобразования вывода (в текстовый формат) |
typreceive regproc (ссылается на pg_proc .oid )
Функция преобразования ввода (из двоичного формата), либо ноль, если её нет |
typsend regproc (ссылается на pg_proc .oid )
Функция преобразования вывода (в двоичный формат), либо ноль, если её нет |
typmodin regproc (ссылается на pg_proc .oid )
Функция ввода модификатора типа, либо ноль, если тип не поддерживает модификаторы |
typmodout regproc (ссылается на pg_proc .oid )
Функция вывода модификатора типа, либо ноль для использования стандартного формата |
typanalyze regproc (ссылается на pg_proc .oid )
Нестандартная функция ANALYZE , либо ноль для использования стандартной функции |
typalign char
Переменная typalign определяет выравнивание, требуемое при хранении значения этого типа. Эта величина применяется при хранении на диске, а также для большинства представлений значений внутри Postgres Pro. Когда последовательно хранятся несколько значений, как например в представлении полной строки на диске, дополнительные байты добавляются перед значением этого типа, чтобы оно начиналось с указанной границы. Заданное выравнивание определяет смещение первого элемента последовательности. Возможные значения: c = выравнивание по символам (char ), то есть выравнивание не требуется.
s = выравнивание по коротким словам (short ), 2 байта для большинства машин.
i = выравнивание по целым (int ), 4 байта для большинства машин.
d = выравнивание по двойным словам (double ), 8 байт для большинства машин, но не для всех.
x = выравнивание по размеру xid (8 байт для всех машин).
|
typstorage char
Значение typstorage для типов varlena (типов с typlen = -1) говорит, готов ли тип для помещения в TOAST, и какова стратегия по умолчанию для хранения атрибутов этого типа. Возможные значения: p (plain, простое): Значение всегда должно храниться простым образом (этот вариант используется для всех типов постоянной длины).
e (external, внешнее): Значения могут храниться во вторичном отношении «TOAST» (если оно есть, см. pg_class.reltoastrelid ).
m (main, основное): Значения могут сжиматься и храниться внутри кортежа.
x (extended, расширенное): Значения могут сжиматься и/или перемещаться во вторичное хранилище.
Для типов, которые могут быть помещены в TOAST, обычно применяется стратегия x . Заметьте, что значения m тоже могут быть помещены во вторичное хранилище, но только в качестве последней меры (в первую очередь в него помещаются значения e и x ). |
typnotnull bool
Поле typnotnull представляет ограничение «не NULL» для типа. Применяется только для доменов. |
typbasetype oid (ссылается на pg_type .oid )
Если это домен (см. typtype ), то typbasetype указывает на тип, на котором он основан. Ноль, если это не домен. |
typtypmod int4
Домены используют typtypmod для записи модификатора (typmod ), применяемого к их базовому типу (-1, если базовый тип не использует typmod ). Если тип не является доменом, принимает значение -1. |
typndims int4
Значение typndims задаёт число размерностей массива для домена, определённого поверх массива (то есть когда typbasetype — тип массива). Для типов, отличных от доменов поверх типов массивов, принимает значение 0. |
typcollation oid (ссылается на pg_collation .oid )
Значение typcollation задаёт правило сортировки для типа. Если тип не является сортируемым, оно будет нулевым. У базового типа, поддерживающего правила сортировки, в этом поле будет ненулевое значение, обычно DEFAULT_COLLATION_OID . Домен на базе сортируемого типа может иметь другой OID правила сортировки, если оно было изменено для домена. |
typdefaultbin pg_node_tree
Если поле typdefaultbin не NULL, в нём содержится представление выражения по умолчанию для этого типа (совместимое с nodeToString() . Это поле используется только для доменов. |
typdefault text
Поле typdefault содержит NULL, если с типом не связано значение по умолчанию. Если typdefaultbin не NULL, typdefault должно содержать понятную человеку версию выражения значения по умолчанию, записанного в typdefaultbin . Если typdefaultbin содержит NULL, а typdefault нет, то в typdefault находится внешнее представление значения по умолчанию, которое можно передать функции преобразования ввода и получить константу. |
typacl aclitem[]
Права доступа; за подробностями обратитесь к Разделу 5.8. |