PG_ENUM
PG_ENUM系统表包含显示每个枚举类型值和标签的记录。给定枚举类型的内部表示实际上是PG_ENUM里面相关行的OID。
名字 |
类型 |
引用 |
描述 |
---|---|---|---|
oid |
oid |
- |
行标识符(隐藏属性,必须明确选择才会显示)。 |
enumtypid |
oid |
PG_TYPE.oid |
包含此枚举值的pg_type项的OID。 |
enumsortorder |
real |
- |
此枚举值在其枚举类型中的排序位置。 |
enumlabel |
name |
- |
此枚举值的文本标签。 |
PG_ENUM行的OID值遵循一种特殊规则:OID的数值被保证按照其枚举类型一样的排序顺序排序。即如果两个偶数OID属于同一枚举类型,那么较小的OID必然具有较小enumsortorder值。奇数OID不需要遵循排序顺序。这种规则使得枚举比较例程在很多常见情况下可以避免系统目录查找。创建和修改枚举类型的例程尝试尽可能地为枚举值分配偶数OID。
当一个枚举类型被创建后,其成员会被分配排序顺序位置1到n。但是后面增加的成员可能会分配负值或者分数值的enumsortorder。对于这些值的唯一要求是它们必须被正确的排序且在每个枚举类型中保持唯一。