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. Единственное требование к этим значениям - они должны быть правильно упорядочены и уникальны в пределах каждого перечисляемого типа.