Перейти к основному содержимому

pg_enum

Каталог pg_enum содержит записи, показывающие значения и метки для каждого типа перечисления. Внутреннее представление значения перечисления - это OID связанной с ним строки в pg_enum.

СтолбецТип данныхОписание
oidoidИдентификатор строки
enumtypidoid (ссылается на pg_type.oidOID записи pg_type, владеющей этим значением enum
enumsortorderfloat4Положение сортировки этого значения среды в ее типе среды
enumlabelnameТекстовая метка для этого значения метки ввода

Идентификаторы OID для строк pg_enum подчиняются специальному правилу: четные OID гарантированно упорядочиваются так же, как и сортировка их типа перечисления. То есть, если два четных OID принадлежат к одному и тому же типу перечисления, меньший OID должен иметь меньшее значение enumsortorder. Нечетные значения OID не должны иметь отношения к порядку сортировки. Это правило позволяет процедурам сравнения перечислений избежать поиска в каталоге во многих распространенных случаях. Подпрограммы, создающие и изменяющие типы перечислений, стараются по возможности присваивать значениям перечислений четные OID.

При создании типа перечисления его членам присваивается порядок сортировки 1...n. Но членам, добавляемым позже, могут быть присвоены отрицательные или дробные значения порядка перечисления. Единственное требование к этим значениям - они должны быть правильно упорядочены и уникальны в пределах каждого типа перечисления.