pg_enum

PostgreSQL 9.1.1文書
前のページ | 巻戻し | 第 45章システムカタログ | 早送り | 次のページ

# 45.20. `pg_enum`

`pg_enum`カタログは、各列挙型についてその値とラベルを示す項目を含みます。 ある与えられた列挙値の内部表現は、実際には`pg_enum`内の関連付けられた行のOIDです。

表 45-20. `pg_enum`の列

名前 | 型 | 参照先 | 説明
--- | --- | --- | ---
`enumtypid` | `oid` | ``pg_type`.oid` | この列挙値を所有している`pg_type`項目のOID
`enumsortorder` | `float4` |  | 列挙型におけるこの列挙値のソート位置
`enumlabel` | `name` |  | この列挙値のテキストラベル

`pg_enum`行のOIDは次のような特別な規則に従います。 列挙型のソート順序と同じ順序で並んだ偶数のOIDが保証されています。 つまり、２つの偶数のOIDが同じ列挙型に属する場合、OIDの小さい方がより小さい`enumsortorder`値を持たなければなりません。 奇数のOID値はソート順序に関連を持ってはなりません。 この規則により列挙の比較処理は多くの一般的な場合でカタログの検索を防ぐことができます。 列挙型の作成および変更を行う処理は、可能であれば偶数のOIDを列挙値に割り当てようとします。

列挙型を作成する時、そのメンバには1..`n`のソート順位置が割り当てられます。 しかし後で追加されたメンバには負もしくは`enumsortorder`の小数値が与えられる可能性があります。 これらの値の要件は、各列挙型の中で正しく順序付けされ、かつ一意であることだけです。

前のページ | ホーム | 次のページ
`pg_description` | 上に戻る | `pg_extension`