U kunt een deel van deze informatie daadwerkelijk verzamelen door de interne 'afhankelijk'-informatie van de database te doorzoeken. Als iets van een ander afhangt, suggereert dat dat het het gebruikt. Hier is een voorbeeldquery om u een idee te geven hoe u de twee betrokken structuren kunt doorkruisen:
SELECT
c1.oid as relid,
n1.nspname || '.' || c1.relname as relation,
c1.relkind,
c2.oid as relid,
n2.nspname || '.' || c2.relname as dependency,
c2.relkind
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;
Informatie over al deze interne bits is te vinden in de systeemcatalogus documentatie.