pg_enum
#pg_enum
目录包含一些条目,用于显示每种枚举类型的名称和标签。给定枚举值的实际内部表示是其关联行的 OID,该行位于 pg_enum
中。
表 51.20. pg_enum
列
适用于 pg_enum
行的 OID 遵循一项特殊规则:偶数 OID 确保按其枚举类型的排序顺序排列。也就是说,如果两个偶数 OID 属于同一枚举类型,则较小的 OID 必须有较小的 enumsortorder
值。奇数 OID 值不需要与排序顺序有任何关系。此规则允许枚举比较例程在许多常见情况下避免目录查找。在可能的情况下,创建和修改枚举类型的例程会尝试将偶数 OID 分配给枚举值。
创建枚举类型时,其成员被分配排序顺序位置 1..n
。但是,后面添加的成员可能会被分配负值或 enumsortorder
的小数值。对这些值的唯一要求是在每个枚举类型中正确排序且唯一。