Re: Elementary dependency look-up - Mailing list pgsql-hackers

From Greg Smith
Subject Re: Elementary dependency look-up
Date
Msg-id alpine.GSO.2.01.0909140214260.519@westnet.com
Whole thread Raw
In response to Re: Elementary dependency look-up  (decibel <decibel@decibel.org>)
Responses Re: Elementary dependency look-up
Re: Elementary dependency look-up
List pgsql-hackers
On Wed, 9 Sep 2009, decibel wrote:

> What might be more useful is a view that takes the guesswork out of using 
> pg_depend. Namely, convert (ref)classid into a catalog table name (or better 
> yet, what type of object it is), (ref)objid into an actual object name, and 
> (ref)objsubid into a real name.

Here's V1 of a depend unraveler I needed recently and that's saved me a 
bunch of time:

SELECT  c1.oid as relid,  n1.nspname || '.' || c1.relname as relation,  c1.relkind,  CASE    WHEN c1.relkind='r' THEN
'table'   WHEN c1.relkind='i' THEN 'index'    WHEN c1.relkind='S' THEN 'sequence'    WHEN c1.relkind='v' THEN 'view'
WHENc1.relkind='c' THEN 'composite'    WHEN c1.relkind='t' THEN 'TOAST'    ELSE '?'  END as "kind",  c2.oid as relid,
n2.nspname|| '.' || c2.relname as dependency,  c2.relkind,  CASE    WHEN c2.relkind='r' THEN 'table'    WHEN
c2.relkind='i'THEN 'index'    WHEN c2.relkind='S' THEN 'sequence'    WHEN c2.relkind='v' THEN 'view'    WHEN
c2.relkind='c'THEN 'composite'    WHEN c2.relkind='t' THEN 'TOAST'    ELSE '?'  END as "kind"
 
FROM  pg_depend d,  pg_class c1,  pg_namespace n1,  pg_class c2,  pg_namespace n2
WHERE  d.objid = c1.oid AND  c1.relnamespace = n1.oid AND  n1.nspname NOT IN('information_schema', 'pg_catalog') AND
n1.nspname!~ '^pg_toast' AND
 
  d.refobjid = c2.oid AND  c2.relnamespace = n2.oid AND  n2.nspname NOT IN('information_schema', 'pg_catalog') AND
n2.nspname!~ '^pg_toast' AND
 
  c1.oid != c2.oid

GROUP BY n1.nspname,c1.relname,c1.oid,c1.relkind,         n2.nspname,c2.relname,c2.oid,c2.relkind
ORDER BY n1.nspname,c1.relname;

I could throw this on the Wiki as a code snippet if anyone else wanted to 
tinker with it.

--
* Greg Smith gsmith@gregsmith.com http://www.gregsmith.com Baltimore, MD


pgsql-hackers by date:

Previous
From: KaiGai Kohei
Date:
Subject: [PATCH] Reworks for Access Control facilities (r2311)
Next
From: Magnus Hagander
Date:
Subject: Re: Why does LOG have higher priority than ERROR and WARNING?