すべてのプロダクト
Search
ドキュメントセンター

PolarDB:pg_shdepend

最終更新日:May 30, 2024

カタログpg_shdependは、データベースオブジェクトとロールなどの共有オブジェクトとの間の依存関係を記録します。 この情報では、PostgreSQLを使用して、オブジェクトを削除する前に参照しないようにします。

ほとんどのシステムカタログとは異なり、pg_shdependはクラスターのすべてのデータベースで共有されます。pg_shdependのコピーはクラスターごとに1つだけで、データベースごとに1つではありません。

データ型

説明

dbid

oid

依存オブジェクトが存在するデータベースのOID、または共有オブジェクトまたはSHARED_DEPENDENCY_PINエントリの場合はゼロ。

クラシッド

oid

依存オブジェクトが存在するシステムカタログのOID、またはSHARED_DEPENDENCY_PINエントリの場合はゼロ。

objid

oid

特定の依存オブジェクトのOID、またはSHARED_DEPENDENCY_PINエントリの場合はゼロ。

objsubid

int4

テーブル列の場合、これは列番号です (objidclassidはテーブル自体を参照します) 。 他のすべてのオブジェクトタイプでは、この列はゼロです。

refclassid

oid

参照オブジェクトが存在するシステムカタログのOID (共有カタログである必要があります) 。

refobjid

oid

特定の参照オブジェクトのOID。

deptype

char

この依存関係の特定のセマンティクスを定義するコード。

いずれの場合も、pg_shdependエントリは、依存オブジェクトもドロップしないと参照オブジェクトをドロップできないことを示します。 ただし、deptypeによって識別されるいくつかのサブフレーバーがあります。

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

  • SHARED_DEPENDENCY_ACL (a) 参照されるオブジェクト (ロールでなければならない) は、依存オブジェクトのACL (アクセス制御リスト、すなわち特権リスト) に記載される。 (オブジェクトの所有者はとにかくaSHARED_DEPENDENCY_OWNERentryを持つため、ASHARED_DEPENDENCY_ACLentryは作成されません。)

  • SHARED_DEPENDENCY_POLICY (r) 参照されるオブジェクト (ロールでなければならない) は、依存ポリシーオブジェクトのターゲットとして言及される。

  • SHARED_DEPENDENCY_PIN (p) 依存オブジェクトは存在しない。このタイプのエントリは、システム自体が参照されるオブジェクトに依存していることを示す信号であり、そのオブジェクトは決して削除されてはならない。 このタイプのエントリはbyinitdbのみ作成されます。 依存オブジェクトの列にはゼロが含まれます。