無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

47.40. pg_shdepend

pg_shdepend カタログは、データベースオブジェクトとロールのような共有オブジェクト間のリレーション依存関係を保持します。 この情報は PostgreSQL が依存関係を削除しようとする前に、これらのオブジェクトを参照されないようにすることを保証することを許可します。

pg_depend を参照してください。 これは単一のデータベースのオブジェクトに関する依存関係に対する似たような機能を持ちます。

多くのシステムカタログと異なり pg_shdepend はクラスタの全てのデータベースに共有されています。 データベース毎ではなく、クラスタ毎にただ1つの pg_shdepend のコピーがあります。

表 47-40. pg_shdepend の列

名前 参照先 説明
dbid oid pg_database .oid 依存するオブジェクトが格納されたデータベースのOID。共有オブジェクトではゼロ
classid oid pg_class .oid 依存するオブジェクトが格納されたシステムカタログのOID
objid oid any OID column 特定の依存するオブジェクトのOID
objsubid int4   テーブル列の場合、これは列番号です( objid classid はテーブル自身を参照します)。 他のすべての種類のオブジェクトでは、この列はゼロになります。
refclassid oid pg_class .oid 参照されるオブジェクトが入っているシステムカタログのOID(共有カタログである必要があります)
refobjid oid 任意のOID列 特定の参照されるオブジェクトのOID
deptype char   この依存関係の特定のセマンティクスを定義するコード(後述)。

すべての場合において、 pg_shdepend 項目は依存するオブジェクトも削除しない限り、参照されるオブジェクトを削除できないことを示します。 もっとも、 deptype によって指定される以下のようないくつかのオプションもあります。

SHARED_DEPENDENCY_OWNER ( o )

参照されるオブジェクト(ロールである必要があります)が依存するオブジェクトの所有者です。

SHARED_DEPENDENCY_ACL ( a )

参照されたオブジェクト(ロールである必要があります)が、依存するオブジェクトのACL(アクセス制御リスト。権限リストのこと)内で述べられています。 (所有者は SHARED_DEPENDENCY_OWNER 項目を持つため、 SHARED_DEPENDENCY_ACL 項目は、オブジェクトの所有者に対して作成されません。)

SHARED_DEPENDENCY_PIN ( p )

依存するオブジェクトはありません。 この種類の項目は、システム自体が参照されるオブジェクトに依存している記号です。 よってオブジェクトは削除されてはいけません。 この種類の項目は initdb によってのみ作成されます。 依存するオブジェクトの列はゼロを含んでいます。

他の依存関係のオプションが将来必要になる可能性があります。 現状の定義は、参照されるオブジェクトとしてロールのみをサポートしていることに特に注意してください。


powered by SEO.CUG.NET