forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
133 lines
18 KiB
HTML
133 lines
18 KiB
HTML
<a name="EN-US_TOPIC_0000001233563173"></a><a name="EN-US_TOPIC_0000001233563173"></a>
|
|
|
|
<h1 class="topictitle1">PG_DEPEND</h1>
|
|
<div id="body8662426"><p id="EN-US_TOPIC_0000001233563173__a9096a4d734f74701b2a2fae05fc6ee9f"><strong id="EN-US_TOPIC_0000001233563173__b93171884518">PG_DEPEND</strong> records the dependency relationships between database objects. This information allows <strong id="EN-US_TOPIC_0000001233563173__en-us_topic_0058966075_b842352706162628">DROP</strong> commands to find which other objects must be dropped by <strong id="EN-US_TOPIC_0000001233563173__en-us_topic_0058966075_b842352706162637">DROP CASCADE</strong> or prevent dropping in the <strong id="EN-US_TOPIC_0000001233563173__en-us_topic_0058966075_b842352706162642">DROP RESTRICT</strong> case.</p>
|
|
<p id="EN-US_TOPIC_0000001233563173__a5567f0ffacd54fb5b06105cc61012849">See also <a href="dws_04_0616.html">PG_SHDEPEND</a>, which provides a similar function for dependencies involving objects that are shared across a database cluster.</p>
|
|
|
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="EN-US_TOPIC_0000001233563173__te5ced7e313ab4a77a4e7f9a0f47ff490" frame="border" border="1" rules="all"><caption><b>Table 1 </b>PG_DEPEND columns</caption><thead align="left"><tr id="EN-US_TOPIC_0000001233563173__r78c30127a1754713bcb73ccb89a06821"><th align="left" class="cellrowborder" valign="top" width="16.16%" id="mcps1.3.3.2.5.1.1"><p id="EN-US_TOPIC_0000001233563173__acb3c0bbf9dd841c18004a855fa9ef513">Name</p>
|
|
</th>
|
|
<th align="left" class="cellrowborder" valign="top" width="11.28%" id="mcps1.3.3.2.5.1.2"><p id="EN-US_TOPIC_0000001233563173__abcf721b7e1594bd9a5906d71a37482df">Type</p>
|
|
</th>
|
|
<th align="left" class="cellrowborder" valign="top" width="21.62%" id="mcps1.3.3.2.5.1.3"><p id="EN-US_TOPIC_0000001233563173__ac101e767b72946e68a0c78ef4cf9b387">Reference</p>
|
|
</th>
|
|
<th align="left" class="cellrowborder" valign="top" width="50.94%" id="mcps1.3.3.2.5.1.4"><p id="EN-US_TOPIC_0000001233563173__af624f369916b4bafacdbf97f0a0a8374">Description</p>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody><tr id="EN-US_TOPIC_0000001233563173__r9f5ed3d2488b4148b1c2afc271f4f185"><td class="cellrowborder" valign="top" width="16.16%" headers="mcps1.3.3.2.5.1.1 "><p id="EN-US_TOPIC_0000001233563173__a32464c32a8a7467398a053618dafa2e3">classid</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="11.28%" headers="mcps1.3.3.2.5.1.2 "><p id="EN-US_TOPIC_0000001233563173__a6e7f6d825d9e42d7b901386980782602">oid</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="21.62%" headers="mcps1.3.3.2.5.1.3 "><p id="EN-US_TOPIC_0000001233563173__a5646afc584cb4300bb0da9ad4ff65b32"><a href="dws_04_0578.html">PG_CLASS</a>.oid</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50.94%" headers="mcps1.3.3.2.5.1.4 "><p id="EN-US_TOPIC_0000001233563173__a27460e684c5341a09674c91f344f46c4">OID of the system catalog the dependent object is in</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="EN-US_TOPIC_0000001233563173__ra399abbdfeed48a5b0472d4d2620dc77"><td class="cellrowborder" valign="top" width="16.16%" headers="mcps1.3.3.2.5.1.1 "><p id="EN-US_TOPIC_0000001233563173__a03a4afb04d4a432382fb9b8a7257e600">objid</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="11.28%" headers="mcps1.3.3.2.5.1.2 "><p id="EN-US_TOPIC_0000001233563173__a1be7e2313253417292c6a9706bde2fcb">oid</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="21.62%" headers="mcps1.3.3.2.5.1.3 "><p id="EN-US_TOPIC_0000001233563173__a0d0e371a90354980b5e9db5fa33809f8">Any OID column</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50.94%" headers="mcps1.3.3.2.5.1.4 "><p id="EN-US_TOPIC_0000001233563173__a7ef522037b2a4482b57ff4c371eb1222">OID of the specific dependent object</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="EN-US_TOPIC_0000001233563173__rc3db053efba742d99b48a83a61967840"><td class="cellrowborder" valign="top" width="16.16%" headers="mcps1.3.3.2.5.1.1 "><p id="EN-US_TOPIC_0000001233563173__aca065edf328e4f2688cef6435ed8cdd0">objsubid</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="11.28%" headers="mcps1.3.3.2.5.1.2 "><p id="EN-US_TOPIC_0000001233563173__aeadfac22f75d45f3b11ea2cc275100bf">integer</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="21.62%" headers="mcps1.3.3.2.5.1.3 "><p id="EN-US_TOPIC_0000001233563173__ae893f3ae1ea54912ae4b03f18316908a">-</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50.94%" headers="mcps1.3.3.2.5.1.4 "><p id="EN-US_TOPIC_0000001233563173__ad528309295694cdab6b9c7b6c5db056b">For a table column, this is the column number (the objid and classid refer to the table itself). For all other object types, this column is <strong id="EN-US_TOPIC_0000001233563173__b314412311120">0</strong>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="EN-US_TOPIC_0000001233563173__r28bcc14297a246c187d13c2baba746c5"><td class="cellrowborder" valign="top" width="16.16%" headers="mcps1.3.3.2.5.1.1 "><p id="EN-US_TOPIC_0000001233563173__a63729c2524d841acaf36af395e928905">refclassid</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="11.28%" headers="mcps1.3.3.2.5.1.2 "><p id="EN-US_TOPIC_0000001233563173__a5e855f1b6eb34ea2b8fce84dfb73e8d6">oid</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="21.62%" headers="mcps1.3.3.2.5.1.3 "><p id="EN-US_TOPIC_0000001233563173__a8290bb8428de4ef59dde33e7d71f426d"><a href="dws_04_0578.html">PG_CLASS</a>.oid</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50.94%" headers="mcps1.3.3.2.5.1.4 "><p id="EN-US_TOPIC_0000001233563173__a8ebad6c20d574cadbe0744e02550c6ab">OID of the system catalog the referenced object is in</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="EN-US_TOPIC_0000001233563173__r2d44246a075647e69bb9b3caec633db1"><td class="cellrowborder" valign="top" width="16.16%" headers="mcps1.3.3.2.5.1.1 "><p id="EN-US_TOPIC_0000001233563173__ac5c1265401904babbc52a1d1108b075a">refobjid</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="11.28%" headers="mcps1.3.3.2.5.1.2 "><p id="EN-US_TOPIC_0000001233563173__ae6af578cc0ff49a0b7b8b9f57a976dbb">oid</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="21.62%" headers="mcps1.3.3.2.5.1.3 "><p id="EN-US_TOPIC_0000001233563173__a7dd63f78310f47c58818f3e6e0bead54">Any OID column</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50.94%" headers="mcps1.3.3.2.5.1.4 "><p id="EN-US_TOPIC_0000001233563173__a60f363b66661414593e07c3f9fc0c97d">OID of the specific referenced object</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="EN-US_TOPIC_0000001233563173__r8890a5e883fa44e4845b740cdb6f8f4d"><td class="cellrowborder" valign="top" width="16.16%" headers="mcps1.3.3.2.5.1.1 "><p id="EN-US_TOPIC_0000001233563173__aae9585ef33264368a1ec5e1d20bdcb96">refobjsubid</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="11.28%" headers="mcps1.3.3.2.5.1.2 "><p id="EN-US_TOPIC_0000001233563173__aca4638eefd794354aac246e562d7dc64">integer</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="21.62%" headers="mcps1.3.3.2.5.1.3 "><p id="EN-US_TOPIC_0000001233563173__afd3415f660d843a5997f0fd180574e39">-</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50.94%" headers="mcps1.3.3.2.5.1.4 "><p id="EN-US_TOPIC_0000001233563173__af6c8aaf7d31343678969cb3caaaa9432">For a table column, this is the column number (the refobjid and refclassid refer to the table itself). For all other object types, this column is <strong id="EN-US_TOPIC_0000001233563173__b1640815327127">0</strong>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="EN-US_TOPIC_0000001233563173__rabbdcdb69c4d4543ae674fa42ffbbce9"><td class="cellrowborder" valign="top" width="16.16%" headers="mcps1.3.3.2.5.1.1 "><p id="EN-US_TOPIC_0000001233563173__a0596cd11eb80475d94fab91acc594773">deptype</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="11.28%" headers="mcps1.3.3.2.5.1.2 "><p id="EN-US_TOPIC_0000001233563173__ab8d8e8f6dc994a2981379641c4ae3209">"char"</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="21.62%" headers="mcps1.3.3.2.5.1.3 "><p id="EN-US_TOPIC_0000001233563173__a278c38f793734204a0032cfc43698d5e">-</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50.94%" headers="mcps1.3.3.2.5.1.4 "><p id="EN-US_TOPIC_0000001233563173__afb530153200844159a69c0894ad053fa">A code defining the specific semantics of this dependency relationship</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001233563173__a74c76bfc374040a2810cd8f5ee4dda08">In all cases, a <strong id="EN-US_TOPIC_0000001233563173__b842352706163739">pg_depend</strong> entry indicates that the referenced object cannot be dropped without also dropping the dependent object. However, there are several subflavors defined by <strong id="EN-US_TOPIC_0000001233563173__b1374818375510">deptype</strong>:</p>
|
|
<ul id="EN-US_TOPIC_0000001233563173__ua8a164d3386940718750f58e4c1d511b"><li id="EN-US_TOPIC_0000001233563173__lf61c826156984c80bd04e057ef0fc578">DEPENDENCY_NORMAL (n): A normal relationship between separately-created objects. The dependent object can be dropped without affecting the referenced object. The referenced object can only be dropped by specifying <strong id="EN-US_TOPIC_0000001233563173__b2729102519712">CASCADE</strong>, in which case the dependent object is dropped, too. Example: a table column has a normal dependency on its data type.</li><li id="EN-US_TOPIC_0000001233563173__lda87eb87916d460fab5f120c7abbd4d7">DEPENDENCY_AUTO (a): The dependent object can be dropped separately from the referenced object, and should be automatically dropped (regardless of RESTRICT or CASCADE mode) if the referenced object is dropped. Example: a named constraint on a table is made autodependent on the table, so that it will go away if the table is dropped.</li><li id="EN-US_TOPIC_0000001233563173__lf044346a0d3048adb5cb8607f73c1e8b">DEPENDENCY_INTERNAL (i): The dependent object was created as part of creation of the referenced object, and is only a part of its internal implementation. A DROP of the dependent object will be disallowed outright (We'll tell the user to issue a DROP against the referenced object, instead). A DROP of the referenced object will be propagated through to drop the dependent object whether CASCADE is specified or not. Example: A trigger created to enforce a foreign-key constraint is made internally dependent on the constraint's <a href="dws_04_0580.html">PG_CONSTRAINT</a> entry.</li><li id="EN-US_TOPIC_0000001233563173__la557dbe687a3467ebb9f5901c3eb4a70">DEPENDENCY_EXTENSION (e): dependent objects depended object extension of a member. For details, see <a href="dws_04_0589.html">PG_EXTENSION</a>). The dependent object can be dropped via <strong id="EN-US_TOPIC_0000001233563173__b842352706165638">DROP EXTENSION</strong> on the referenced object. Functionally this dependency type acts the same as an internal dependency, but it is kept separate for clarity and to simplify <strong id="EN-US_TOPIC_0000001233563173__b17639331194611">gs_dump</strong>.</li><li id="EN-US_TOPIC_0000001233563173__ld6e5e2aeb50545a88fc03ebb8bd0bf8d">DEPENDENCY_PIN (p): There is no dependent object. This type of entry is a signal that the system itself depends on the referenced object, and so that object must never be deleted. Entries of this type are created only by <strong id="EN-US_TOPIC_0000001233563173__b842352706165839">initdb</strong>. The columns with dependent object are all zeroes.</li></ul>
|
|
<div class="section" id="EN-US_TOPIC_0000001233563173__section1516510274469"><h4 class="sectiontitle">Examples</h4><p id="EN-US_TOPIC_0000001233563173__p62416314469">Query the table that depends on the database object sequence <strong id="EN-US_TOPIC_0000001233563173__b17881153111312">serial1</strong>:</p>
|
|
<ol id="EN-US_TOPIC_0000001233563173__ol54695511817"><li id="EN-US_TOPIC_0000001233563173__li13469251184">Query the OID of the sequence <strong id="EN-US_TOPIC_0000001233563173__b6193115011312">serial1</strong> in the system catalog <strong id="EN-US_TOPIC_0000001233563173__b457720101411">PG_CLASS</strong>.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233563173__screen135451115102011"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">oid</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_class</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">relname</span><span class="w"> </span><span class="o">=</span><span class="s1">'serial1'</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">oid</span>
|
|
<span class="c1">-------</span>
|
|
<span class="w"> </span><span class="mi">17815</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000001233563173__li178576139181">Use the system catalog <strong id="EN-US_TOPIC_0000001233563173__b69728551324">PG_DEPEND</strong> and the OID of <strong id="EN-US_TOPIC_0000001233563173__b99519552335">serial1</strong> to obtain the objects that depend on <strong id="EN-US_TOPIC_0000001233563173__b1775814590331">serial1</strong>.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233563173__screen201821221209"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span>
|
|
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_depend</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">objid</span><span class="w"> </span><span class="o">=</span><span class="s1">'17815'</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">classid</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">objid</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">objsubid</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">refclassid</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">refobjid</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">refobjsubid</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">deptype</span>
|
|
<span class="c1">---------+-------+----------+------------+----------+-------------+---------</span>
|
|
<span class="w"> </span><span class="mi">1259</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">17815</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2615</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2200</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">n</span>
|
|
<span class="w"> </span><span class="mi">1259</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">17815</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1259</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">17812</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">a</span>
|
|
<span class="p">(</span><span class="mi">2</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000001233563173__li1581165143110">Obtain the OID of the table that depends on the serial1 sequence based on the refobjid field and query the table name. The result indicates that the table <strong id="EN-US_TOPIC_0000001233563173__b77611456203515">customer_address</strong> depends on <strong id="EN-US_TOPIC_0000001233563173__b3651111163613">serial1</strong>.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233563173__screen124261031857"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">relname</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_class</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">oid</span><span class="o">=</span><span class="s1">'17812'</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">relname</span>
|
|
<span class="c1">------------------</span>
|
|
<span class="w"> </span><span class="n">customer_address</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li></ol>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_04_0561.html">System Catalogs</a></div>
|
|
</div>
|
|
</div>
|
|
|