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