pg_shdependpg_shdependカタログは、データベースオブジェクトとロールのような共有オブジェクト間のリレーション依存関係を保持します。この情報はPostgreSQLが依存関係を削除しようとする前に、これらのオブジェクトを参照されないようにすることを保証することを許可します。pg_dependを参照してください。これは単一のデータベースのオブジェクトに関する依存関係に対する似たような機能を持ちます。多くのシステムカタログと異なりpg_shdependはクラスタの全てのデータベースに共有されています。データベース毎ではなく、クラスタ毎にただ1つのpg_shdependのコピーがあります。依存するオブジェクトが格納されたデータベースのOID。テーブル列の場合、これは列番号です(objidとclassidはテーブル自身を参照します)。他のすべての種類のオブジェクトでは、この列はゼロになります。この依存関係の特定のセマンティクスを定義するコード(後述)。すべての場合において、pg_shdepend項目は依存するオブジェクトも削除しない限り、参照されるオブジェクトを削除できないことを示します。deptypeによって指定される以下のようないくつかのオプションもあります。(o)参照されるオブジェクト(ロールである必要があります)が依存するオブジェクトの所有者です。(a)参照されたオブジェクト(ロールである必要があります)が、依存するオブジェクトのACL(アクセス制御リスト。権限リストのこと)内で述べられています。(所有者はSHARED_DEPENDENCY_OWNER項目を持つため、SHARED_DEPENDENCY_ACL項目は、オブジェクトの所有者に対して作成されません。(p)依存するオブジェクトはありません。この種類の項目は、システム自体が参照されるオブジェクトに依存している記号です。よってオブジェクトは削除されてはいけません。この種類の項目はinitdbによってのみ作成されます。依存するオブジェクトの列はゼロを含んでいます。他の依存関係のオプションが将来必要になる可能性があります。現状の定義は、参照されるオブジェクトとしてロールのみをサポートしていることに特に注意してください。pg_shdescription。