SELECT DISTINCT d.deptype, from_table.relname AS classid, COALESCE(from_class.relname, from_type.typname, from_proc.proname) AS objid, from_attr.attname AS objsubid, to_table.relname AS refclassid, COALESCE(to_class.relname, to_type.typname, to_proc.proname, to_ext.extname, to_con.conname) AS refobjid, to_attr.attname AS refobjsubid FROM pg_depend d -- The dependent object. LEFT JOIN pg_attrdef from_ad ON d.classid = 'pg_attrdef'::regclass AND from_ad.oid = d.objid LEFT JOIN pg_rewrite from_rw ON d.classid = 'pg_rewrite'::regclass AND from_rw.oid = d.objid LEFT JOIN pg_class from_class ON from_class.oid = COALESCE(from_rw.ev_class, from_ad.adrelid, d.objid) LEFT JOIN pg_type from_type ON d.classid = 'pg_type'::regclass AND from_type.oid = d.objid LEFT JOIN pg_proc from_proc ON d.classid = 'pg_proc'::regclass AND from_proc.oid = d.objid LEFT JOIN pg_attribute from_attr ON (d.objsubid <> 0 OR from_ad.adrelid IS NOT NULL) AND from_attr.attnum = COALESCE(from_ad.adnum, d.objsubid) AND from_attr.attrelid = COALESCE(from_ad.adrelid, d.objid) LEFT JOIN pg_class from_table ON from_table.oid = d.classid -- The referenced object. LEFT JOIN pg_attrdef to_ad ON d.refclassid = 'pg_attrdef'::regclass AND to_ad.oid = d.refobjid LEFT JOIN pg_rewrite to_rw ON d.refclassid = 'pg_rewrite'::regclass AND to_rw.oid = d.refobjid LEFT JOIN pg_class to_class ON to_class.oid = COALESCE(to_rw.ev_class, to_ad.adrelid, d.refobjid) LEFT JOIN pg_type to_type ON d.refclassid = 'pg_type'::regclass AND to_type.oid = d.refobjid LEFT JOIN pg_proc to_proc ON d.refclassid = 'pg_proc'::regclass AND to_proc.oid = d.refobjid LEFT JOIN pg_extension to_ext ON d.refclassid = 'pg_extension'::regclass AND to_ext.oid = d.refobjid LEFT JOIN pg_constraint to_con ON d.refclassid = 'pg_constraint'::regclass AND to_con.oid = d.refobjid LEFT JOIN pg_attribute to_attr ON (d.refobjsubid <> 0 OR to_ad.adrelid IS NOT NULL) AND to_attr.attnum = COALESCE(to_ad.adnum, d.refobjsubid) AND to_attr.attrelid = COALESCE(to_ad.adrelid, d.refobjid) LEFT JOIN pg_class to_table ON to_table.oid = d.refclassid WHERE d.deptype NOT IN ('i', 'a') AND COALESCE(to_class.relnamespace, to_type.typnamespace, to_proc.pronamespace, to_ext.extnamespace, to_con.connamespace) = 'public'::regnamespace AND COALESCE(from_class.relnamespace, from_type.typnamespace, from_proc.pronamespace) = 'public'::regnamespace