Skip to content

53.20.pg_enum#

pg_enum目录包含显示每个枚举类型的各个值和标签的条目。给定枚举值的内部表示实际上是其在pg_enum中的关联行的 OID。

表 53.20.pg_enum

列类型

描述

oid oid

行标识符

enumtypid oid(引用 pg_type.oid

拥有此枚举值的 pg_type 条目的 OID

enumsortorder float4

此枚举值在其枚举类型中的排序位置

enumlabel 名称

此枚举值的文本标签

pg_enum行的 OID 遵循特殊规则:偶数 OID 保证按照其枚举类型的排序顺序排序。也就是说,如果两个偶数 OID 属于同一枚举类型,则较小的 OID 必须具有较小的enumsortorder值。奇数 OID 值与排序顺序无关。此规则允许枚举比较例程在许多常见情况下避免目录查找。创建和更改枚举类型的例程会尝试尽可能为枚举值分配偶数 OID。

创建枚举类型时,会为其成员分配排序顺序位置 1..n。但是稍后添加的成员可能会获得enumsortorder的负值或分数值。对这些值的唯一要求是它们在每个枚举类型中正确排序且唯一。