この章では、システムカタログの各属性について列挙し、それらの意味を定義します。
これらのカタログは拡張システムの核を構成します。
| 名前 | 共有/ローカル | 説明 |
|---|---|---|
| pg_aggregate | ローカル | 集約関数 |
| pg_am | ローカル | アクセス方法 |
| pg_amop | ローカル | 特定のアクセス方法において使用可能な演算子 |
| pg_amproc | ローカル | 特定のアクセス方法において使用可能なプロシージャ |
| pg_attribute | ローカル | クラスの属性 |
| pg_class | ローカル | クラス |
| pg_index | ローカル | 二次インデックス |
| pg_inherits | ローカル | クラスの継承階層 |
| pg_language | ローカル | プロシージャを実装する言語 |
| pg_opclass | ローカル | 演算子クラス |
| pg_operator | ローカル | 問い合わせ言語演算子 |
| pg_proc | ローカル | プロシージャ(関数) |
| pg_type | ローカル | データ型 |
これらのカタログは、サイトを通して既知であるエンティティーの識別について処理します。
| 名前 | 共有/ローカル | 説明 |
|---|---|---|
| pg_database | 共有 | 現在のデータベース |
| pg_group | 共有 | ユーザのグループ |
| pg_shadow | 共有 | 有効なユーザ |
| 名前 | 共有/ローカル | 説明 |
|---|---|---|
| pg_listener | ローカル | アラータを待っているプロセス |
| pg_prs2plans | ローカル | インスタンスシステムのプロシージャ |
| pg_prs2rule | ローカル | インスタンスシステムのルール |
| pg_prs2stub | ローカル | インスタンスシステムのスタブ |
| pg_rewrite | ローカル | システム情報の再書き込み |
これらのカタログは、一般的に倒置ファイルシステムとラージオブジェクト固有のものです。
| 名前 | 共有/ローカル | 説明 |
|---|---|---|
| pg_lobj | ローカル | ラージオブジェクトの説明 |
| pg_naming | ローカル | 倒置名前空間のマッピング |
| pg_platter | ローカル | ジュークボックスレコードの目録 |
| pg_plmap | ローカル | ジュークボックスレコードのエクステントマップ |
これらのカタログは内部クラスにあり、通常のヒープとしては格納されておらず、通常の方法ではアクセスできません(通常の方法アクセスしようとするとエラーになります)。
| 名前 | 共有/ローカル | 説明 |
|---|---|---|
| pg_log | 共有 | トランザクションのコミット/ロールバックのログ |
| pg_magic | 共有 | マジック定数 |
| pg_time | 共有 | コミット/ロールバックの時刻 |
| pg_variable | 共有 | 特別な変数の値 |
"pg_" という名前で定義されたその他のクラスがいくつか存在します。それらのうち "ind" (二次インデックス)で終わるものを除き、これらのすべてはもはや使われなくなったか、または別な方法で置き換えられました。
以下のカタログはクラス/型システムに関係します。
/*
* 集約関数
*
* 過渡的な関数については DEFINE AGGREGATE を参照のこと
*/
pg_aggregate
NameData aggname /* 集約関数名 (たとえば count) */
oid aggowner /* 作成者の usesysid */
regproc aggtransfn1 /* 最初の過渡期関数 */
regproc aggtransfn2 /* 2 番目の過渡期関数 */
regproc aggfinalfn /* 最後の関数 */
oid aggbasetype /* 集約関数が処理するデータ型 */
oid aggtranstype1 /* aggtransfn1 が返す型 */
oid aggtranstype2 /* aggtransfn2 が返す型 */
oid aggfinaltype /* aggfinalfn が返す型 */
text agginitval1 /* aggtransfn1 の初期(開始)値の
外部フォーマット */
text agginitval2 /* aggtransfn2 の初期(開始)値の
外部フォーマット */
pg_am
NameData amname /* アクセス方法の名前 */
oid amowner /* 作成者の usesysid */
char amkind /* - 削除されました */
/* 元々は: h=ハッシュ o=順番 s=特殊 */
int2 amstrategies/* この AM を通過/検索できる
ストラテジの総数 */
int2 amsupport /* この AM が使用するサポート関数の総数 */
regproc amgettuple /* 次の有効なタップル 関数 */
regproc aminsert /* このタップルを挿入する 関数 */
regproc amdelete /* このタップルを削除する 関数 */
regproc amgetattr /* - 削除されました */
regproc amsetlock /* - 削除されました */
regproc amsettid /* - 削除されました */
regproc amfreetuple /* - 削除されました */
regproc ambeginscan /* 新しいスキャンを開始する 関数 */
regproc amrescan /* このスキャンを再開始する 関数 */
regproc amendscan /* このスキャンを終了する 関数 */
regproc ammarkpos /* 現在のスキャン位置をマークする 関数 */
regproc amrestrpos /* マークしたスキャン位置をリストアする
関数 */
regproc amopen /* - 削除されました */
regproc amclose /* - 削除されました */
regproc ambuild /* 新しいインデックスをビルドする 関数 */
regproc amcreate /* - 削除されました */
regproc amdestroy /* - 削除されました */
pg_amop
oid amopid /* この演算子が使われるべきアクセス方法 */
oid amopclaid /* この演算子が使われるべき演算子クラス */
oid amopopr /* 演算子 */
int2 amopstrategy/* この演算子を適用する通過/検索
ストラテジ番号 */
regproc amopselect /* 演算子の淘汰を計算する関数 */
regproc amopnpages /* 評価されるべきページ数を計算する関数 */
pg_amproc
oid amid /* このプロシージャが関連するアクセス方法 */
oid amopclaid /* この演算子が使われる演算子クラス */
oid amproc /* プロシージャ */
int2 amprocnum /* この演算子を適用するサポート関数番号 */
pg_class
NameData relname /* クラス名 */
oid relowner /* 所有者の usesysid */
oid relam /* アクセス方法 */
int4 relpages /* 8 KB ページの数 */
int4 reltuples /* インスタンスの数 */
abstime relexpires /* インスタンスが非アーカイブの記憶装置
から削除されてからの経過時間 */
reltime relpreserved/* インスタンスが非アーカイブの記憶装置
から削除されてからの期間 */
bool relhasindex /* クラスが二次インデックスを持つか */
bool relisshared /* クラスは共有かローカルか */
char relkind /* リレーションのタイプ:
i=インデックス r=リレーション(ヒープ)
s=特殊 u=カタログ化されていない(一時的) */
char relarch /* アーカイブモード:
h=heavy l=light n=none */
int2 relnatts /* 現在の非システムの数 */
int2 relsmgr /* 記憶装置管理装置:
0=磁気ディスク 1=sony WORM jukebox 2=メインメモリ */
int28 relkey /* - 未使用 */
oid8 relkeyop /* - 未使用 */
aclitem relacl[1] /* アクセス制御リスト */
pg_attribute
oid attrelid /* この属性を含むクラス */
NameData attname /* 属性の名前 */
oid atttypid /* 属性の型 */
oid attdefrel /* - 削除されました */
int4 attnvals /* - 削除されました */
oid atttyparg /* - 削除されました */
int2 attlen /* 属性のバイト数 -1=可変 */
int2 attnum /* 属性番号 >0=ユーザ属性 <0=システム属性 */
int2 attbound /* - 削除されました */
bool attbyval /* 型が値で渡されたか */
bool attcanindex /* - 削除されました */
oid attproc /* - 削除されました */
int4 attnelems /* 配列の次元数 */
int4 attcacheoff /* タップルのキャッシュのオフセット */
bool attisset /* 属性に値がセットされているか */
pg_inherits
oid inhrel /* 子クラス */
oid inhparent /* 親クラス */
int4 inhseqno /* - 削除されました */
oid indexrelid /* 二次インデックスクラスの oid */
oid indrelid /* インデックスヒープクラスの oid */
oid indproc /* ヒープ内の属性からインデックスを計算する
関数 0=関数のインデックスではない */
int28 indkey /* キー属性の属性数 */
oid8 indclass /* 各キーの opclass */
bool indisclustered /* インデックスがクラスタ化
されているか - 未使用 */
bool indisarchived /* インデックスがカーカイブ化
されているか - 未使用 */
text indpred /* 部分的インデックスの問い合わせプラン */
pg_type
NameData typname /* 型名 */
oid typowner /* 所有者の usesysid */
int2 typlen /* 内部フォームの長さ -1=可変長 */
int2 typprtlen /* 外部フォームの長さ */
bool typbyval /* 型が値渡しされたか */
char typtype /* 型の種類:c=カタログ(合成) b=ベース */
bool typisdefined/* 定義された/まだシェル */
char typdelim /* 配列外部フォームのデリミタ */
oid typrelid /* (合成であれば)クラス */
oid typelem /* 各配列要素の型 */
regproc typinput /* 外部 - 内部変換関数 */
regproc typoutput /* 内部 - 外部変換関数 */
regproc typreceive /* クライアント - サーバ変換関数 */
regproc typsend /* サーバ - クライアント変換関数 */
text typdefault /* デフォルト値 */
pg_operator
NameData oprname /* 演算子名 */
oid oprowner /* 所有者の usesysid */
int2 oprprec /* - 削除されました */
char oprkind /* 演算子の種別:
b=バイナリ l=左方単項 r=右方単項 */
bool oprisleft /* 左方/右方結合演算子か */
bool oprcanhash /* hashjoin に使える演算子か */
oid oprleft /* 左オペランドの型 */
oid oprright /* 右オペランドの型 */
oid oprresult /* 結果の型 */
oid oprcom /* 代用演算子 */
oid oprnegate /* 否定演算子 */
oid oprlsortop /* 左オペランドのソート演算子 */
oid oprrsortop /* 右オペランドのソート演算子 */
regproc oprcode /* この演算子を実装している関数 */
regproc oprrest /* 演算子の限定淘汰を計算する関数 */
regproc oprjoin /* 演算子の結合淘汰を計算する関数 */
pg_opclass
NameData opcname /* 演算子クラス名 */
pg_proc
NameData proname /* 関数名 */
oid proowner /* 所有者の usesysid */
oid prolang /* 関数実装言語 */
bool proisinh /* - 削除されました */
bool proistrusted /* サーバで実行されるか、
信頼されない関数プロセスか */
bool proiscachable /* 関数の返り値をキャッシュできるか */
int2 pronargs /* 引数の数 */
bool proretset /* 関数がセットを返すか - 未使用 */
oid prorettype /* 返り値 */
oid8 proargtypes /* 引数の型 */
int4 probyte_pct /* 関数計算のチェックするのに必要な、
引数のバイト数のパーセンテージ */
int4 properbyte_cpu /* 関数の入力サイズに対する
実行時間の感度 */
int4 propercall_cpu /* (入力サイズにかかわらず)
関数起動のオーバーヘッド */
int4 prooutin_ratio /* 関数の入力サイズに対する
出力サイズのパーセンテージ */
text prosrc /* 関数定義(postquel のみ) */
bytea probin /* オブジェクトファイルへのパス(C のみ) */
pg_language
NameData lanname /* 言語名 */
text lancompiler /* - 削除されました */
pg_database
NameData datname /* データベース名 */
oid datdba /* データベース管理者の usesysid */
text datpath /* データベースの、$PGDATA 配下
ディレクトリ名 */
pg_group
NameData groname /* グループ名 */
int2 grosysid /* グループの UNIX グループ ID */
int2 grolist[1] /* グループメンバの usesysids のリスト */
pg_shadow
NameData usename /* ユーザ名 */
int2 usesysid /* ユーザの UNIX ユーザ ID */
bool usecreatedb /* ユーザはデータベースを生成できるか */
bool usetrace /* ユーザはトレースフラグをセットできるか */
bool usesuper /* ユーザは POSTGRES 特権ユーザになれるか */
bool usecatupd /* ユーザはカタログを更新できるか */
pg_listener
NameData relname /* 非同期通知を希望するクラス */
int4 listenerpid /* 非同期通知を待っているフロントエンドに
対応するサーバのプロセス ID */
int4 notification/* このプロセス ID に対するイベント通知は
ペンディング状態か */
pg_prs2rule
NameData prs2name /* ルール名 */
char prs2eventtype /* ルールイベントタイプ:
R=取り出し U=更新(置換) A=追加 D=削除 */
oid prs2eventrel /* イベントを適用するクラス */
int2 prs2eventattr /* イベントを適用する属性 */
float8 necessary /* - 削除されました */
float8 sufficient /* - 削除されました */
text prs2text /* オリジナルのルール定義テキスト */
pg_prs2plans
oid prs2ruleid /* このプランが使われる prs2rule インスタンス */
int2 prs2planno /* プラン番号(1 つのルールが複数のプランを
起動する場合もあります) */
text prs2code /* このプランの外部表現 */
pg_prs2stub
oid prs2relid /* このルールを適用するクラス */
bool prs2islast /* これは最後のスタブ・フラグメントか */
int4 prs2no /* スタブ・フラグメント番号 */
stub prs2stub /* スタブ・フラグメント */
pg_rewrite
NameData rulename /* ルール名 */
char ev_type /* イベントタイプ:
RETRIEVE, REPLACE, APPEND, DELETE
コードはパーザ依存 (!?) */
oid ev_class /* このルールを適用するクラス */
int2 ev_attr /* このルールを適用する属性 */
bool is_instead /* これは instead ルールか */
text ev_qual /* このルールをトリガにしたプランを修正
(書き換え)する修飾子 */
text action /* アクションのパースツリー */
pg_lobj
oid ourid /* 倒置ファイルシステムの名前空間において
このオブジェクトを識別する pg_naming の 'ourid' */
int4 objtype /* 記憶装置タイプコード:
0=倒置 1=Unix 2=外部 3=Jaquith */
bytea object_descripto /* 多目的オブジェクトハンドルの構造体 */
pg_naming
NameData filename /* ファイル名要素 */
oid ourid /* 他のインスタンスにおいてこのインスタンスを
識別するためのランダムな oid (明白でない理由により
実際の oid を使うことができません) */
oid parentid /* 親の倒置ファイルシステムのディレクトリ
の pg_naming インスタンス */
pg_platter
NameData plname /* レコード名 */
int4 plstart /* 最高位の占有済みエクステント */
pg_plmap
oid plid /* この(ブロックの)エクステントがある
(pg_platter 内の)レコード */
oid pldbid /* この(ブロックの)エクステントが属している
クラスのデータベース */
oid plrelid /* この(ブロックの)エクステントが属している
クラス */
int4 plblkno /* クラス内の開始ブロック番号 */
int4 ploffset /* このエクステントが属しているレコードの
オフセット */
int4 plextentsz /* このエクステントの長さ */
堀田 倫英 <hotta@net-newbie.com>