50.20. pg_enum#
50.20. pg_enum
#
Каталог pg_enum
содержит записи, показывающие значения и метки для каждого типа перечисления. Внутреннее представление заданного значения перечисления фактически является OID его связанной строки в pg_enum
.
Таблица 50.20. pg_enum
Колонки
Тип столбца Описание |
---|
Идентификатор строки |
OID |
Позиция сортировки этого значения перечисления внутри его типа перечисления. |
Текстовая метка для этого значения перечисления |
OID для строк pg_enum
следуют особому правилу: OID с четными номерами гарантированно упорядочены так же, как и порядок сортировки их перечислимого типа. То есть, если два четных OID принадлежат одному и тому же перечислимому типу, то меньший OID должен иметь меньшее значение enumsortorder
. Значения OID с нечетными номерами не имеют отношения к порядку сортировки. Это правило позволяет функциям сравнения перечислимых типов избегать обращений к каталогу во многих обычных случаях. Функции, создающие и изменяющие перечислимые типы, стараются назначать четные OID значениям перечислений, когда это возможно.
Когда создается перечисляемый тип, его элементам присваиваются позиции сортировки от 1 до n
. Однако, элементам, добавленным позже, могут быть присвоены отрицательные или дробные значения enumsortorder
. Единственное требование к этим значениям - они должны быть правильно упорядочены и уникальны в пределах каждого перечисляемого типа.