pg_index

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

# 45.21. `pg_index`

`pg_index`カタログはインデックス情報の一部を保持します。 その他のほとんどの情報は`pg_class`にあります。

表 45-21. `pg_index`の列

名前 | 型 | 参照先 | 説明
--- | --- | --- | ---
`indexrelid` | `oid` | ``pg_class`.oid` | このインデックスに対する`pg_class`項目のOID
`indrelid` | `oid` | ``pg_class`.oid` | このインデックスが使われるテーブルに対する`pg_class`項目のOID
`indnatts` | `int2` |  | インデックス内の列数（`pg_class.relnatts`の複製）
`indisunique` | `bool` |  | 真の場合は一意性インデックス
`indisprimary` | `bool` |  | 真の場合このインデックスはテーブルのプライマリキーを表します （この値が真の時`indisunique`は常に真でなければなりません）。
`indimmediate` | `bool` |  | 真の場合、一意性検査が挿入時即座に強制されます (これが真の場合`indisunique`は常に真でなければなりません)。
`indisclustered` | `bool` |  | 真の場合、前回このインデックスを元にテーブルはクラスタ化されました。
`indisvalid` | `bool` |  | 真の場合、現在このインデックスは問い合わせに対して有効です。 偽は、インデックスが不完全かもしれないことを意味します。 `INSERT`/`UPDATE`操作による変更が行われているはずで、問い合わせに使用するには安全ではありません。 一意性インデックスであれば、一意性も確実ではありません。
`indcheckxmin` | `bool` |  | 真の場合、`pg_index`行の`xmin`が`TransactionXmin`イベント境界値を下回るまで、問い合わせはインデックスを使用してはいけません。 なぜなら、テーブルは互換性の無い行と共に破壊されたHOTチェインを含み、それらが可視であるかもしれないからです。
`indisready` | `bool` |  | 真の場合、インデックスは挿入に対する準備ができています。 偽の場合はインデックスは`INSERT`/`UPDATE`操作により無視されなければならないことを意味します。 operations
`indkey` | `int2vector` | ``pg_attribute`.attnum` | このインデックスがどのテーブル列をインデックスとしているかを示す`indnatts`配列の値です。 例えば、`1 3`は1番目と3番目のテーブル列がインデックスキーとなっていることを示します。 この配列でゼロとなっているのは対応するインデックスの属性が単純な列参照ではなくテーブル列に渡った演算式であることを示します。
`indclass` | `oidvector` | ``pg_opclass`.oid` | インデックスキー内のそれぞれの列に対して、使用する演算子クラスのOIDを保持します。 `pg_opclass`を参照してください。
`indoption` | `int2vector` |  | 列毎のフラグビットを格納する`indnatts`値の配列です。 ビットの意味はインデックスのアクセスメソッドによって定義されています。
`indexprs` | `text` |  | 単純な列参照でないインデックス属性の（`nodeToString()`表現による）演算式ツリー。 単純な参照の場合はインデックス属性はすべてNULL。
`indpred` | `text` |  | 部分インデックス属性の（`nodeToString()`表現による）演算式ツリー。 部分インデックスでなければNULL。

前のページ | ホーム | 次のページ
`pg_foreign_server` | 上に戻る | `pg_inherits`