pg_amカタログにはインデックスアクセスメソッドの情報が格納されています。システムがサポートするそれぞれのインデックスアクセスメソッドに対し1つの行が存在します。 このカタログの中身は第50章で詳しく述べられています。
表 44-3. pg_amの列
| 名前 | 型 | 参照先 | 説明 |
|---|---|---|---|
| amname | name | アクセスメソッド名 | |
| amstrategies | int2 | このアクセスメソッド用の演算子戦略数。もしアクセスメソッドが演算子戦略の固定された組を保持していない場合はゼロ。 | |
| amsupport | int2 | このアクセスメソッド用のサポートルーチンの数 | |
| amcanorder | bool | アクセスメソッドは整列スキャンをサポートしているか? | |
| amcanbackward | bool | アクセスメソッドは後方スキャンをサポートしているか? | |
| amcanunique | bool | アクセスメソッドが一意インデックスをサポートするかどうか? | |
| amcanmulticol | bool | アクセスメソッドが複数列インデックスをサポートするかどうか? | |
| amoptionalkey | bool | アクセスメソッドが最初のインデックス列に対して制約無しのスキャンをサポートするかどうか? | |
| amindexnulls | bool | アクセスメソッドがインデックスエントリにNULLを許すかどうか? | |
| amsearchnulls | bool | アクセスメソッドはIS NULL検索をサポートしているか? | |
| amstorage | bool | インデックス格納データの型を列のデータ型から変更できるか? | |
| amclusterable | bool | この型のインデックスはクラスタ可能か? | |
| amkeytype | oid | pg_type.oid | インデックス内に保存されたデータ型、もしくは固定型ではない場合はゼロ |
| aminsert | regproc | pg_proc.oid | "このタプル挿入"関数 |
| ambeginscan | regproc | pg_proc.oid | "新規スキャン開始"関数 |
| amgettuple | regproc | pg_proc.oid | "次に有効なタプル"関数、もしくは存在しない場合はゼロです。 |
| amgetbitmap | regproc | pg_proc.oid | "複数タプルのフェッチ"関数、もしくは存在しない場合はゼロです。 |
| amrescan | regproc | pg_proc.oid | "このスキャン再開始"関数 |
| amendscan | regproc | pg_proc.oid | "このスキャン終了"関数 |
| ammarkpos | regproc | pg_proc.oid | "現在のスキャン位置記録"関数 |
| amrestrpos | regproc | pg_proc.oid | "記録したスキャン位置復元"関数 |
| ambuild | regproc | pg_proc.oid | "新規インデックスビルド"関数 |
| ambulkdelete | regproc | pg_proc.oid | バルク削除関数 |
| amvacuumcleanup | regproc | pg_proc.oid | VACUUM後クリーンアップ関数 |
| amcostestimate | regproc | pg_proc.oid | インデックススキャンのコスト推測関数 |
| amoptions | regproc | pg_proc.oid | インデックスのreloptionsを解析、検証するための関数 |