pg_opclass カタログはインデックスアクセスメソッド演算子クラスを定義します。それぞれの演算子クラスは特定のデータ型のインデックス列のセマンティクスと特定のインデックスアクセスメソッドを定義します。複数の振る舞いをサポートするため、対象となるデータ型/アクセスメソッドの組み合わせについて複数の演算子クラスが存在する場合があることに注意してください。
演算子クラスについては 項33.13 に詳細に説明されています。
表 43-22. pg_opclass 列
名前 | 型 | 参照先 | 説明 |
---|---|---|---|
opcamid | oid | pg_am.oid | 演算子クラスで使用するインデックスアクセスメソッド |
opcname | name | この演算子クラスの名前 | |
opcnamespace | oid | pg_namespace.oid | この演算子クラスの名前空間 |
opcowner | int4 | pg_shadow.usesysid | 演算子クラスの所有者 |
opcintype | oid | pg_type.oid | 演算子クラスの入力データ型 |
opcdefault | bool | opclass が演算子クラスのデフォルトである場合は真 | |
opckeytype | oid | pg_type.oid | インデックスデータの型、もしくは opcintype と同じ場合はゼロ |
演算子クラスを定義する情報の多くは実際には pg_opclass 行には無く、関連する pg_amop および pg_amproc の行にあります。これらの行は演算子クラスの定義の一部と見なされます。つまりこの方法は、リレーションが単一の pg_class 行に加えて pg_attribute や他のテーブルの関連する行で定義されるのと変わりありません。