pg_classカタログはテーブルと、その他に列を保有しているもの、あるいはテーブルに似た全てのものを目録にしています。その中にはインデックス(pg_indexも参照)、シーケンス、ビュー、複合型およびある種の特別なリレーションが含まれます。relkindを参照してください。これより以降、"リレーション" と記されている場合はこれら全てのオブジェクトを意味しています。全ての列が全てのリレーションの型に該当するとは限りません。
表 42-12. pg_class Columns
| 名前 | 型 | 参照先 | 説明 |
|---|---|---|---|
| relname | name | テーブル、インデックス、ビューなどの名前 | |
| relnamespace | oid | pg_namespace.oid | このリレーションを持っている名前空間のOID |
| reltype | oid | pg_type.oid | もし何らかの(pg_type項目のないゼロのインデックス)が存在した場合このテーブルの行の型に対応するデータ型のOID |
| relowner | oid | pg_authid.oid | リレーションの所有者 |
| relam | oid | pg_am.oid | これがインデックスの場合は、それに使われている(B-tree、ハッシュなどの)アクセスメソッド |
| relfilenode | oid | このリレーションのディスク上のファイル名前で、何もない場合は0。 | |
| reltablespace | oid | pg_tablespace.oid | このリレーションが保存されているテーブル空間。もしゼロであれば、このデータベースのデフォルトテーブル空間を指す (もしリレーションがディスク上のファイルになくても、問題はありません)。 |
| relpages | int4 | ページごとのこのテーブルのディスク上の演算式の(BLCKSZの)サイズ。プランナで使用される単なる推測値。VACUUM、ANALYZE、そしてCREATE INDEXコマンドで更新されます。 | |
| reltuples | float4 | テーブル内の行数。プランナで使用される単なる推測値。 VACUUM、ANALYZE、そして CREATE INDEXといったいくつかのDDLコマンドで更新されます。 | |
| reltoastrelid | oid | pg_class.oid | このテーブルに関連しているTOASTテーブルのOIDで、何もない場合は0。TOASTテーブルは"行に収まらない"大きい属性を副次テーブルに格納します。 |
| reltoastidxid | oid | pg_class.oid | TOASTテーブルに対するインデックスのOID。TOASTテーブルでない場合は0。 |
| relhasindex | bool | これがテーブルであって、インデックスを所有している(あるいはつい最近まで所有していた)時は真。これはCREATE INDEXで設定されますが、DROP INDEXコマンドですぐに削除されません。テーブルにインデックスがないとVACUUMコマンドが判定した時点でrelhasindexは削除されます。 | |
| relisshared | bool | クラスタ内の全てのデータベースにわたってこのテーブルが共有されている場合は真。(pg_databaseのような)ある特定のシステムカタログのみ共有されます。 | |
| relkind | char | r = 通常のテーブル、i = インデックス、S = シーケンス、v = ビュー、c = 複合型、s = 特別、t = TOASTテーブル | |
| relnatts | int2 | (システムの列を計算に入れない)リレーションにあるユーザ列数。pg_attributeにこれに対応する数多くのエントリの記載があるはずです。pg_attribute.attnumも参照してください。 | |
| relchecks | int2 | テーブル上の検査制約の数。pg_constraintカタログを参照してください。 | |
| reltriggers | int2 | テーブル上のトリガの数。pg_triggerカタログを参照してください。 | |
| relukeys | int2 | 未使用(テーブル上の一意キーの数ではありません)。 | |
| relfkeys | int2 | 未使用(テーブル上の外部キーの数ではありません)。 | |
| relrefs | int2 | 未使用。 | |
| relhasoids | bool | リレーションのそれぞれの行にOIDを生成した場合は真。 | |
| relhaspkey | bool | テーブルに主キーが含まれている(あるいは一度含まれたことがある)場合に真。 | |
| relhasrules | bool | もしテーブルにルールがある場合に真。 pg_rewriteカタログを参照してください。 | |
| relhassubclass | bool | もしテーブルが子テーブルに継承されている(または以前に継承されていた)場合は真。 | |
| relacl | aclitem[] | アクセス許可権限。詳細はGRANTとREVOKEの説明を参照してください。 |