Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

51.20. pg_enum #

pg_enum 目录包含一些条目,用于显示每种枚举类型的名称和标签。给定枚举值的实际内部表示是其关联行的 OID,该行位于 pg_enum 中。

表 51.20. pg_enum

列类型

说明

oid oid

行标识符

enumtypid oid(引用 pg_type.oid

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

enumsortorder float4

枚举类型中该枚举值的排序位置

enumlabel name

该枚举值的文本标签


适用于 pg_enum 行的 OID 遵循一项特殊规则:偶数 OID 确保按其枚举类型的排序顺序排列。也就是说,如果两个偶数 OID 属于同一枚举类型,则较小的 OID 必须有较小的 enumsortorder 值。奇数 OID 值不需要与排序顺序有任何关系。此规则允许枚举比较例程在许多常见情况下避免目录查找。在可能的情况下,创建和修改枚举类型的例程会尝试将偶数 OID 分配给枚举值。

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