mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Added missing dependencies/dependent and corrected some wrongly identified. Fixes #5666
This commit is contained in:
parent
a91e4d8a7f
commit
4f34bc0f0e
@ -20,6 +20,7 @@ Housekeeping
|
|||||||
| `Issue #5323 <https://redmine.postgresql.org/issues/5323>`_ - Improve code coverage and API test cases for Foreign Data Wrapper.
|
| `Issue #5323 <https://redmine.postgresql.org/issues/5323>`_ - Improve code coverage and API test cases for Foreign Data Wrapper.
|
||||||
| `Issue #5326 <https://redmine.postgresql.org/issues/5326>`_ - Improve code coverage and API test cases for Domain and Domain Constraints.
|
| `Issue #5326 <https://redmine.postgresql.org/issues/5326>`_ - Improve code coverage and API test cases for Domain and Domain Constraints.
|
||||||
| `Issue #5329 <https://redmine.postgresql.org/issues/5329>`_ - Improve code coverage and API test cases for FTS Configuration, FTS Parser, FTS Dictionaries, and FTS Template.
|
| `Issue #5329 <https://redmine.postgresql.org/issues/5329>`_ - Improve code coverage and API test cases for FTS Configuration, FTS Parser, FTS Dictionaries, and FTS Template.
|
||||||
|
| `Issue #5666 <https://redmine.postgresql.org/issues/5666>`_ - Added missing dependencies/dependent and corrected some wrongly identified.
|
||||||
|
|
||||||
Bug fixes
|
Bug fixes
|
||||||
*********
|
*********
|
||||||
|
@ -1,24 +1,33 @@
|
|||||||
SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, ad.adsrc,
|
SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
CASE WHEN cl.relkind IS NOT NULL THEN cl.relkind || COALESCE(dep.refobjsubid::character varying, '')
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||||
WHEN tg.oid IS NOT NULL THEN 'T'::text
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
WHEN ty.oid IS NOT NULL AND ty.typbasetype = 0 THEN 'y'::text
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
WHEN ty.oid IS NOT NULL AND ty.typbasetype != 0 THEN 'd'::text
|
|
||||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||||
WHEN pr.oid IS NOT NULL AND prtyp.typname = 'trigger' THEN 't'::text
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
WHEN pr.oid IS NOT NULL THEN 'P'::text
|
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
WHEN rw.oid IS NOT NULL THEN 'R'::text
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
WHEN co.oid IS NOT NULL THEN 'C'::text || contype
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
WHEN fs.oid IS NOT NULL THEN 'F'::text
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
WHEN fdw.oid IS NOT NULL THEN 'f'::text
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
ELSE ''
|
ELSE ''
|
||||||
END AS type,
|
END AS type,
|
||||||
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname, fs.srvname, fdw.fdwname)
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname)
|
||||||
END AS refname,
|
END AS refname,
|
||||||
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname) AS nspname,
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname) AS nspname,
|
||||||
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
FROM pg_depend dep
|
FROM pg_depend dep
|
||||||
@ -44,8 +53,21 @@ LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.refobjid
|
|||||||
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.refobjid)
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.refobjid)
|
||||||
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.refobjid)
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.refobjid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.refobjid
|
||||||
{{where_clause}} AND
|
{{where_clause}} AND
|
||||||
refclassid IN ( SELECT oid FROM pg_class WHERE relname IN
|
refclassid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper'))
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension'))
|
||||||
ORDER BY refclassid, cl.relkind
|
ORDER BY refclassid, cl.relkind
|
@ -0,0 +1,73 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL AND att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.objid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.objid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.objid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.objid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.objid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.objid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.objid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.objid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.objid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.objid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.objid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.objid
|
||||||
|
{{where_clause}} AND
|
||||||
|
classid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension'))
|
||||||
|
ORDER BY classid, cl.relkind
|
@ -0,0 +1,75 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN pl.oid IS NOT NULL THEN 'Rs'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, pl.polname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.refobjid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.refobjid=att.attrelid AND dep.refobjsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.refobjid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.refobjid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.refobjid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.refobjid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.refobjid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.refobjid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.refobjid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.adrelid=att.attrelid AND ad.adnum=att.attnum
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.refobjid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.refobjid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_policy pl ON pl.oid=dep.refobjid
|
||||||
|
{{where_clause}} AND
|
||||||
|
refclassid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension', 'pg_policy'))
|
||||||
|
ORDER BY refclassid, cl.relkind
|
@ -0,0 +1,75 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN pl.oid IS NOT NULL THEN 'Rs'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL AND att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, pl.polname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.objid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.objid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.objid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.objid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.objid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.objid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.objid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.objid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.objid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.objid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.objid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.objid
|
||||||
|
LEFT JOIN pg_policy pl ON pl.oid=dep.objid
|
||||||
|
{{where_clause}} AND
|
||||||
|
classid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension', 'pg_policy'))
|
||||||
|
ORDER BY classid, cl.relkind
|
@ -0,0 +1,75 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, pg_get_expr(ad.adbin, ad.adrelid) as adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN pl.oid IS NOT NULL THEN 'Rs'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, pl.polname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.refobjid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.refobjid=att.attrelid AND dep.refobjsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.refobjid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.refobjid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.refobjid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.refobjid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.refobjid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.refobjid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.refobjid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.adrelid=att.attrelid AND ad.adnum=att.attnum
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.refobjid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.refobjid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_policy pl ON pl.oid=dep.refobjid
|
||||||
|
{{where_clause}} AND
|
||||||
|
refclassid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension', 'pg_policy'))
|
||||||
|
ORDER BY refclassid, cl.relkind
|
@ -0,0 +1,75 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, pg_get_expr(ad.adbin, ad.adrelid) as adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN pl.oid IS NOT NULL THEN 'Rs'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL AND att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, pl.polname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.objid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.objid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.objid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.objid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.objid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.objid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.objid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.objid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.objid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.objid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.objid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.objid
|
||||||
|
LEFT JOIN pg_policy pl ON pl.oid=dep.objid
|
||||||
|
{{where_clause}} AND
|
||||||
|
classid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension', 'pg_policy'))
|
||||||
|
ORDER BY classid, cl.relkind
|
@ -1,24 +1,33 @@
|
|||||||
SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, pg_get_expr(ad.adbin, ad.adrelid) as adsrc,
|
SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
CASE WHEN cl.relkind IS NOT NULL THEN cl.relkind || COALESCE(dep.refobjsubid::character varying, '')
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||||
WHEN tg.oid IS NOT NULL THEN 'T'::text
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
WHEN ty.oid IS NOT NULL AND ty.typbasetype = 0 THEN 'y'::text
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
WHEN ty.oid IS NOT NULL AND ty.typbasetype != 0 THEN 'd'::text
|
|
||||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||||
WHEN pr.oid IS NOT NULL AND prtyp.typname = 'trigger' THEN 't'::text
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
WHEN pr.oid IS NOT NULL THEN 'P'::text
|
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
WHEN rw.oid IS NOT NULL THEN 'R'::text
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
WHEN co.oid IS NOT NULL THEN 'C'::text || contype
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
WHEN fs.oid IS NOT NULL THEN 'F'::text
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
WHEN fdw.oid IS NOT NULL THEN 'f'::text
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
ELSE ''
|
ELSE ''
|
||||||
END AS type,
|
END AS type,
|
||||||
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname, fs.srvname, fdw.fdwname)
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname)
|
||||||
END AS refname,
|
END AS refname,
|
||||||
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname) AS nspname,
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname) AS nspname,
|
||||||
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
FROM pg_depend dep
|
FROM pg_depend dep
|
||||||
@ -44,8 +53,21 @@ LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.refobjid
|
|||||||
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.refobjid)
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.refobjid)
|
||||||
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.refobjid)
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.refobjid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.refobjid
|
||||||
{{where_clause}} AND
|
{{where_clause}} AND
|
||||||
refclassid IN ( SELECT oid FROM pg_class WHERE relname IN
|
refclassid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper'))
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension'))
|
||||||
ORDER BY refclassid, cl.relkind
|
ORDER BY refclassid, cl.relkind
|
@ -0,0 +1,73 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL AND att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.objid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.objid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.objid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.objid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.objid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.objid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.objid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.objid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.objid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.objid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.objid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.objid
|
||||||
|
{{where_clause}} AND
|
||||||
|
classid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension'))
|
||||||
|
ORDER BY classid, cl.relkind
|
@ -0,0 +1,4 @@
|
|||||||
|
SELECT rolname AS refname, refclassid, deptype
|
||||||
|
FROM pg_shdepend dep
|
||||||
|
LEFT JOIN pg_roles r ON refclassid=1260 AND refobjid=r.oid
|
||||||
|
{{where_clause}} ORDER BY 1
|
@ -0,0 +1,75 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN pl.oid IS NOT NULL THEN 'Rs'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, pl.polname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.refobjid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.refobjid=att.attrelid AND dep.refobjsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.refobjid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.refobjid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.refobjid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.refobjid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.refobjid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.refobjid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.refobjid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.adrelid=att.attrelid AND ad.adnum=att.attnum
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.refobjid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.refobjid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_policy pl ON pl.oid=dep.refobjid
|
||||||
|
{{where_clause}} AND
|
||||||
|
refclassid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension', 'pg_policy'))
|
||||||
|
ORDER BY refclassid, cl.relkind
|
@ -0,0 +1,75 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN pl.oid IS NOT NULL THEN 'Rs'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL AND att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, pl.polname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.objid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.objid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.objid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.objid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.objid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.objid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.objid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.objid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.objid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.objid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.objid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.objid
|
||||||
|
LEFT JOIN pg_policy pl ON pl.oid=dep.objid
|
||||||
|
{{where_clause}} AND
|
||||||
|
classid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension', 'pg_policy'))
|
||||||
|
ORDER BY classid, cl.relkind
|
@ -0,0 +1,79 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN syn.oid IS NOT NULL THEN 'Sy'::text
|
||||||
|
WHEN pl.oid IS NOT NULL THEN 'Rs'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, syn.synname, pl.polname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname, synns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.refobjid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.refobjid=att.attrelid AND dep.refobjsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.refobjid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.refobjid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.refobjid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.refobjid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.refobjid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.refobjid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.refobjid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.adrelid=att.attrelid AND ad.adnum=att.attnum
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.refobjid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.refobjid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_synonym syn ON syn.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace synns ON syn.synnamespace=synns.oid
|
||||||
|
LEFT JOIN pg_policy pl ON pl.oid=dep.refobjid
|
||||||
|
{{where_clause}} AND
|
||||||
|
refclassid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension',
|
||||||
|
'pg_synonym', 'pg_policy'))
|
||||||
|
ORDER BY refclassid, cl.relkind
|
@ -0,0 +1,79 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN syn.oid IS NOT NULL THEN 'Sy'::text
|
||||||
|
WHEN pl.oid IS NOT NULL THEN 'Rs'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL AND att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, syn.synname, pl.polname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname, synns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.objid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.objid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.objid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.objid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.objid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.objid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.objid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.objid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.objid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.objid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.objid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.objid
|
||||||
|
LEFT JOIN pg_synonym syn ON syn.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace synns ON syn.synnamespace=synns.oid
|
||||||
|
LEFT JOIN pg_policy pl ON pl.oid=dep.objid
|
||||||
|
{{where_clause}} AND
|
||||||
|
classid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension',
|
||||||
|
'pg_synonym', 'pg_policy'))
|
||||||
|
ORDER BY classid, cl.relkind
|
@ -0,0 +1,79 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, pg_get_expr(ad.adbin, ad.adrelid) as adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN CASE WHEN tg.tgpackageoid != 0 THEN 'Tc'::text ELSE 'Tr'::text END
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 AND ns.nspcompoundtrigger = false THEN 'Pa'::text ELSE 'n'::text END
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN syn.oid IS NOT NULL THEN 'Sy'::text
|
||||||
|
WHEN pl.oid IS NOT NULL THEN 'Rs'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, syn.synname, pl.polname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname, synns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.refobjid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.refobjid=att.attrelid AND dep.refobjsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.refobjid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.refobjid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.refobjid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.refobjid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.refobjid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.refobjid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.refobjid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.adrelid=att.attrelid AND ad.adnum=att.attnum
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.refobjid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.refobjid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_synonym syn ON syn.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace synns ON syn.synnamespace=synns.oid
|
||||||
|
LEFT JOIN pg_policy pl ON pl.oid=dep.refobjid
|
||||||
|
{{where_clause}} AND
|
||||||
|
refclassid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension',
|
||||||
|
'pg_synonym', 'pg_policy'))
|
||||||
|
ORDER BY refclassid, cl.relkind
|
@ -0,0 +1,79 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, pg_get_expr(ad.adbin, ad.adrelid) as adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN CASE WHEN tg.tgpackageoid != 0 THEN 'Tc'::text ELSE 'Tr'::text END
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 AND ns.nspcompoundtrigger = false THEN 'Pa'::text ELSE 'n'::text END
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN syn.oid IS NOT NULL THEN 'Sy'::text
|
||||||
|
WHEN pl.oid IS NOT NULL THEN 'Rs'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL AND att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, syn.synname, pl.polname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname, synns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.objid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.objid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.objid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.objid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.objid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.objid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.objid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.objid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.objid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.objid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.objid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.objid
|
||||||
|
LEFT JOIN pg_synonym syn ON syn.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace synns ON syn.synnamespace=synns.oid
|
||||||
|
LEFT JOIN pg_policy pl ON pl.oid=dep.objid
|
||||||
|
{{where_clause}} AND
|
||||||
|
classid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension',
|
||||||
|
'pg_synonym', 'pg_policy'))
|
||||||
|
ORDER BY classid, cl.relkind
|
@ -0,0 +1,77 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN syn.oid IS NOT NULL THEN 'Sy'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, syn.synname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname, synns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.refobjid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.refobjid=att.attrelid AND dep.refobjsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.refobjid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.refobjid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.refobjid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.refobjid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.refobjid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.refobjid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.refobjid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.adrelid=att.attrelid AND ad.adnum=att.attnum
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.refobjid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.refobjid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_synonym syn ON syn.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace synns ON syn.synnamespace=synns.oid
|
||||||
|
{{where_clause}} AND
|
||||||
|
refclassid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension',
|
||||||
|
'pg_synonym'))
|
||||||
|
ORDER BY refclassid, cl.relkind
|
@ -0,0 +1,77 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN syn.oid IS NOT NULL THEN 'Sy'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL AND att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, syn.synname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname, synns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.objid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.objid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.objid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.objid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.objid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.objid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.objid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.objid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.objid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.objid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.objid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.objid
|
||||||
|
LEFT JOIN pg_synonym syn ON syn.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace synns ON syn.synnamespace=synns.oid
|
||||||
|
{{where_clause}} AND
|
||||||
|
classid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension',
|
||||||
|
'pg_synonym'))
|
||||||
|
ORDER BY classid, cl.relkind
|
@ -0,0 +1,4 @@
|
|||||||
|
SELECT rolname AS refname, refclassid, deptype
|
||||||
|
FROM pg_shdepend dep
|
||||||
|
LEFT JOIN pg_roles r ON refclassid=1260 AND refobjid=r.oid
|
||||||
|
{{where_clause}} ORDER BY 1
|
@ -0,0 +1,79 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN syn.oid IS NOT NULL THEN 'Sy'::text
|
||||||
|
WHEN pl.oid IS NOT NULL THEN 'Rs'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, syn.synname, pl.polname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname, synns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.refobjid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.refobjid=att.attrelid AND dep.refobjsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.refobjid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.refobjid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.refobjid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.refobjid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.refobjid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.refobjid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.refobjid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.adrelid=att.attrelid AND ad.adnum=att.attnum
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.refobjid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.refobjid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_synonym syn ON syn.oid=dep.refobjid
|
||||||
|
LEFT JOIN pg_namespace synns ON syn.synnamespace=synns.oid
|
||||||
|
LEFT JOIN pg_policy pl ON pl.oid=dep.refobjid
|
||||||
|
{{where_clause}} AND
|
||||||
|
refclassid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension',
|
||||||
|
'pg_synonym', 'pg_policy'))
|
||||||
|
ORDER BY refclassid, cl.relkind
|
@ -0,0 +1,79 @@
|
|||||||
|
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||||
|
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||||
|
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||||
|
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||||
|
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||||
|
WHEN pr.oid IS NOT NULL AND (prtyp.typname = 'trigger' OR prtyp.typname = 'event_trigger') THEN 'Pt'::text
|
||||||
|
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||||
|
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||||
|
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||||
|
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||||
|
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||||
|
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||||
|
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||||
|
WHEN evt.oid IS NOT NULL THEN 'Et'::text
|
||||||
|
WHEN col.oid IS NOT NULL THEN 'Co'::text
|
||||||
|
WHEN ftsc.oid IS NOT NULL THEN 'Fc'::text
|
||||||
|
WHEN ftsp.oid IS NOT NULL THEN 'Fp'::text
|
||||||
|
WHEN ftsd.oid IS NOT NULL THEN 'Fd'::text
|
||||||
|
WHEN ftst.oid IS NOT NULL THEN 'Ft'::text
|
||||||
|
WHEN ext.oid IS NOT NULL THEN 'Ex'::text
|
||||||
|
WHEN syn.oid IS NOT NULL THEN 'Sy'::text
|
||||||
|
WHEN pl.oid IS NOT NULL THEN 'Rs'::text
|
||||||
|
ELSE ''
|
||||||
|
END AS type,
|
||||||
|
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
||||||
|
CASE WHEN cl.relname IS NOT NULL AND att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||||
|
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname,
|
||||||
|
fs.srvname, fdw.fdwname, evt.evtname, col.collname, ftsc.cfgname, ftsd.dictname, ftsp.prsname,
|
||||||
|
ftst.tmplname, ext.extname, syn.synname, pl.polname)
|
||||||
|
END AS refname,
|
||||||
|
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname, colns.nspname, ftscns.nspname,
|
||||||
|
ftsdns.nspname, ftspns.nspname, ftstns.nspname, synns.nspname) AS nspname,
|
||||||
|
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
||||||
|
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
||||||
|
FROM pg_depend dep
|
||||||
|
LEFT JOIN pg_class cl ON dep.objid=cl.oid
|
||||||
|
LEFT JOIN pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum
|
||||||
|
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
||||||
|
LEFT JOIN pg_proc pr ON dep.objid=pr.oid
|
||||||
|
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
||||||
|
LEFT JOIN pg_trigger tg ON dep.objid=tg.oid
|
||||||
|
LEFT JOIN pg_type ty ON dep.objid=ty.oid
|
||||||
|
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
||||||
|
LEFT JOIN pg_constraint co ON dep.objid=co.oid
|
||||||
|
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
||||||
|
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
||||||
|
LEFT JOIN pg_rewrite rw ON dep.objid=rw.oid
|
||||||
|
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
||||||
|
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
||||||
|
LEFT JOIN pg_language la ON dep.objid=la.oid
|
||||||
|
LEFT JOIN pg_namespace ns ON dep.objid=ns.oid
|
||||||
|
LEFT JOIN pg_attrdef ad ON ad.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.objid
|
||||||
|
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid
|
||||||
|
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
||||||
|
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.objid)
|
||||||
|
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.objid)
|
||||||
|
LEFT JOIN pg_event_trigger evt ON evt.oid=dep.objid
|
||||||
|
LEFT JOIN pg_collation col ON col.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace colns ON col.collnamespace=colns.oid
|
||||||
|
LEFT JOIN pg_ts_config ftsc ON ftsc.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid
|
||||||
|
LEFT JOIN pg_ts_dict ftsd ON ftsd.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid
|
||||||
|
LEFT JOIN pg_ts_parser ftsp ON ftsp.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid
|
||||||
|
LEFT JOIN pg_ts_template ftst ON ftst.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid
|
||||||
|
LEFT JOIN pg_extension ext ON ext.oid=dep.objid
|
||||||
|
LEFT JOIN pg_synonym syn ON syn.oid=dep.objid
|
||||||
|
LEFT JOIN pg_namespace synns ON syn.synnamespace=synns.oid
|
||||||
|
LEFT JOIN pg_policy pl ON pl.oid=dep.objid
|
||||||
|
{{where_clause}} AND
|
||||||
|
classid IN ( SELECT oid FROM pg_class WHERE relname IN
|
||||||
|
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
||||||
|
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper',
|
||||||
|
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension',
|
||||||
|
'pg_synonym', 'pg_policy'))
|
||||||
|
ORDER BY classid, cl.relkind
|
@ -1,50 +0,0 @@
|
|||||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, pg_get_expr(ad.adbin, ad.adrelid) as adsrc,
|
|
||||||
CASE WHEN cl.relkind IS NOT NULL THEN cl.relkind || COALESCE(dep.objsubid::text, '')
|
|
||||||
WHEN tg.oid IS NOT NULL THEN 'T'::text
|
|
||||||
WHEN ty.oid IS NOT NULL THEN 'y'::text
|
|
||||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
|
||||||
WHEN pr.oid IS NOT NULL AND prtyp.typname = 'trigger' THEN 't'::text
|
|
||||||
WHEN pr.oid IS NOT NULL THEN 'P'::text
|
|
||||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
|
||||||
WHEN rw.oid IS NOT NULL THEN 'R'::text
|
|
||||||
WHEN co.oid IS NOT NULL THEN 'C'::text || contype
|
|
||||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
|
||||||
WHEN fs.oid IS NOT NULL THEN 'F'::text
|
|
||||||
WHEN fdw.oid IS NOT NULL THEN 'f'::text
|
|
||||||
ELSE ''
|
|
||||||
END AS type,
|
|
||||||
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
|
||||||
CASE WHEN cl.relname IS NOT NULL AND att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
|
||||||
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname, fs.srvname, fdw.fdwname)
|
|
||||||
END AS refname,
|
|
||||||
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname) AS nspname,
|
|
||||||
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
|
||||||
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
|
||||||
FROM pg_depend dep
|
|
||||||
LEFT JOIN pg_class cl ON dep.objid=cl.oid
|
|
||||||
LEFT JOIN pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum
|
|
||||||
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
|
||||||
LEFT JOIN pg_proc pr ON dep.objid=pr.oid
|
|
||||||
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
|
||||||
LEFT JOIN pg_trigger tg ON dep.objid=tg.oid
|
|
||||||
LEFT JOIN pg_type ty ON dep.objid=ty.oid
|
|
||||||
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
|
||||||
LEFT JOIN pg_constraint co ON dep.objid=co.oid
|
|
||||||
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
|
||||||
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
|
||||||
LEFT JOIN pg_rewrite rw ON dep.objid=rw.oid
|
|
||||||
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
|
||||||
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
|
||||||
LEFT JOIN pg_language la ON dep.objid=la.oid
|
|
||||||
LEFT JOIN pg_namespace ns ON dep.objid=ns.oid
|
|
||||||
LEFT JOIN pg_attrdef ad ON ad.oid=dep.objid
|
|
||||||
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.objid
|
|
||||||
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid
|
|
||||||
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
|
||||||
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.objid)
|
|
||||||
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.objid)
|
|
||||||
{{where_clause}} AND
|
|
||||||
classid IN ( SELECT oid FROM pg_class WHERE relname IN
|
|
||||||
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
|
||||||
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper'))
|
|
||||||
ORDER BY classid, cl.relkind
|
|
@ -1,50 +0,0 @@
|
|||||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
|
||||||
CASE WHEN cl.relkind IS NOT NULL THEN cl.relkind || COALESCE(dep.objsubid::text, '')
|
|
||||||
WHEN tg.oid IS NOT NULL THEN 'T'::text
|
|
||||||
WHEN ty.oid IS NOT NULL THEN 'y'::text
|
|
||||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
|
||||||
WHEN pr.oid IS NOT NULL AND prtyp.typname = 'trigger' THEN 't'::text
|
|
||||||
WHEN pr.oid IS NOT NULL THEN 'P'::text
|
|
||||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
|
||||||
WHEN rw.oid IS NOT NULL THEN 'R'::text
|
|
||||||
WHEN co.oid IS NOT NULL THEN 'C'::text || contype
|
|
||||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
|
||||||
WHEN fs.oid IS NOT NULL THEN 'F'::text
|
|
||||||
WHEN fdw.oid IS NOT NULL THEN 'f'::text
|
|
||||||
ELSE ''
|
|
||||||
END AS type,
|
|
||||||
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
|
||||||
CASE WHEN cl.relname IS NOT NULL AND att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
|
||||||
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname, fs.srvname, fdw.fdwname)
|
|
||||||
END AS refname,
|
|
||||||
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname) AS nspname,
|
|
||||||
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
|
||||||
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
|
||||||
FROM pg_depend dep
|
|
||||||
LEFT JOIN pg_class cl ON dep.objid=cl.oid
|
|
||||||
LEFT JOIN pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum
|
|
||||||
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
|
||||||
LEFT JOIN pg_proc pr ON dep.objid=pr.oid
|
|
||||||
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
|
||||||
LEFT JOIN pg_trigger tg ON dep.objid=tg.oid
|
|
||||||
LEFT JOIN pg_type ty ON dep.objid=ty.oid
|
|
||||||
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
|
||||||
LEFT JOIN pg_constraint co ON dep.objid=co.oid
|
|
||||||
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
|
||||||
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
|
||||||
LEFT JOIN pg_rewrite rw ON dep.objid=rw.oid
|
|
||||||
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
|
||||||
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
|
||||||
LEFT JOIN pg_language la ON dep.objid=la.oid
|
|
||||||
LEFT JOIN pg_namespace ns ON dep.objid=ns.oid
|
|
||||||
LEFT JOIN pg_attrdef ad ON ad.oid=dep.objid
|
|
||||||
LEFT JOIN pg_foreign_server fs ON fs.oid=dep.objid
|
|
||||||
LEFT JOIN pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid
|
|
||||||
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
|
||||||
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.objid)
|
|
||||||
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.objid)
|
|
||||||
{{where_clause}} AND
|
|
||||||
classid IN ( SELECT oid FROM pg_class WHERE relname IN
|
|
||||||
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
|
||||||
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper'))
|
|
||||||
ORDER BY classid, cl.relkind
|
|
@ -1,48 +0,0 @@
|
|||||||
SET LOCAL join_collapse_limit=8;
|
|
||||||
SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, ad.adsrc,
|
|
||||||
CASE WHEN cl.relkind IS NOT NULL THEN cl.relkind || COALESCE(dep.refobjsubid::character varying, '')
|
|
||||||
WHEN tg.oid IS NOT NULL THEN 'T'::text
|
|
||||||
WHEN ty.oid IS NOT NULL AND ty.typbasetype = 0 THEN 'y'::text
|
|
||||||
WHEN ty.oid IS NOT NULL AND ty.typbasetype != 0 THEN 'd'::text
|
|
||||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
|
||||||
WHEN pr.oid IS NOT NULL AND prtyp.typname = 'trigger' THEN 't'::text
|
|
||||||
WHEN pr.oid IS NOT NULL THEN 'P'::text
|
|
||||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
|
||||||
WHEN rw.oid IS NOT NULL THEN 'R'::text
|
|
||||||
WHEN co.oid IS NOT NULL THEN 'C'::text || contype
|
|
||||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
|
||||||
ELSE ''
|
|
||||||
END AS type,
|
|
||||||
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
|
||||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
|
||||||
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname)
|
|
||||||
END AS refname,
|
|
||||||
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname) AS nspname,
|
|
||||||
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
|
||||||
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
|
||||||
FROM pg_depend dep
|
|
||||||
LEFT JOIN pg_class cl ON dep.refobjid=cl.oid
|
|
||||||
LEFT JOIN pg_attribute att ON dep.refobjid=att.attrelid AND dep.refobjsubid=att.attnum
|
|
||||||
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
|
||||||
LEFT JOIN pg_proc pr ON dep.refobjid=pr.oid
|
|
||||||
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
|
||||||
LEFT JOIN pg_trigger tg ON dep.refobjid=tg.oid
|
|
||||||
LEFT JOIN pg_type ty ON dep.refobjid=ty.oid
|
|
||||||
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
|
||||||
LEFT JOIN pg_constraint co ON dep.refobjid=co.oid
|
|
||||||
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
|
||||||
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
|
||||||
LEFT JOIN pg_rewrite rw ON dep.refobjid=rw.oid
|
|
||||||
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
|
||||||
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
|
||||||
LEFT JOIN pg_language la ON dep.refobjid=la.oid
|
|
||||||
LEFT JOIN pg_namespace ns ON dep.refobjid=ns.oid
|
|
||||||
LEFT JOIN pg_attrdef ad ON ad.adrelid=att.attrelid AND ad.adnum=att.attnum
|
|
||||||
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
|
||||||
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.refobjid)
|
|
||||||
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.refobjid)
|
|
||||||
{{where_clause}} AND
|
|
||||||
refclassid IN ( SELECT oid FROM pg_class WHERE relname IN
|
|
||||||
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
|
||||||
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper'))
|
|
||||||
ORDER BY refclassid, cl.relkind
|
|
@ -1,47 +0,0 @@
|
|||||||
SET LOCAL join_collapse_limit=8;
|
|
||||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
|
||||||
CASE WHEN cl.relkind IS NOT NULL THEN cl.relkind || COALESCE(dep.objsubid::text, '')
|
|
||||||
WHEN tg.oid IS NOT NULL THEN 'T'::text
|
|
||||||
WHEN ty.oid IS NOT NULL THEN 'y'::text
|
|
||||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
|
||||||
WHEN pr.oid IS NOT NULL AND prtyp.typname = 'trigger' THEN 't'::text
|
|
||||||
WHEN pr.oid IS NOT NULL THEN 'P'::text
|
|
||||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
|
||||||
WHEN rw.oid IS NOT NULL THEN 'R'::text
|
|
||||||
WHEN co.oid IS NOT NULL THEN 'C'::text || contype
|
|
||||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
|
||||||
ELSE ''
|
|
||||||
END AS type,
|
|
||||||
COALESCE(coc.relname, clrw.relname) AS ownertable,
|
|
||||||
CASE WHEN cl.relname IS NOT NULL AND att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
|
||||||
ELSE COALESCE(cl.relname, co.conname, pr.proname, tg.tgname, ty.typname, la.lanname, rw.rulename, ns.nspname)
|
|
||||||
END AS refname,
|
|
||||||
COALESCE(nsc.nspname, nso.nspname, nsp.nspname, nst.nspname, nsrw.nspname) AS nspname,
|
|
||||||
CASE WHEN inhits.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherits,
|
|
||||||
CASE WHEN inhed.inhparent IS NOT NULL THEN '1' ELSE '0' END AS is_inherited
|
|
||||||
FROM pg_depend dep
|
|
||||||
LEFT JOIN pg_class cl ON dep.objid=cl.oid
|
|
||||||
LEFT JOIN pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum
|
|
||||||
LEFT JOIN pg_namespace nsc ON cl.relnamespace=nsc.oid
|
|
||||||
LEFT JOIN pg_proc pr ON dep.objid=pr.oid
|
|
||||||
LEFT JOIN pg_namespace nsp ON pr.pronamespace=nsp.oid
|
|
||||||
LEFT JOIN pg_trigger tg ON dep.objid=tg.oid
|
|
||||||
LEFT JOIN pg_type ty ON dep.objid=ty.oid
|
|
||||||
LEFT JOIN pg_namespace nst ON ty.typnamespace=nst.oid
|
|
||||||
LEFT JOIN pg_constraint co ON dep.objid=co.oid
|
|
||||||
LEFT JOIN pg_class coc ON co.conrelid=coc.oid
|
|
||||||
LEFT JOIN pg_namespace nso ON co.connamespace=nso.oid
|
|
||||||
LEFT JOIN pg_rewrite rw ON dep.objid=rw.oid
|
|
||||||
LEFT JOIN pg_class clrw ON clrw.oid=rw.ev_class
|
|
||||||
LEFT JOIN pg_namespace nsrw ON clrw.relnamespace=nsrw.oid
|
|
||||||
LEFT JOIN pg_language la ON dep.objid=la.oid
|
|
||||||
LEFT JOIN pg_namespace ns ON dep.objid=ns.oid
|
|
||||||
LEFT JOIN pg_attrdef ad ON ad.oid=dep.objid
|
|
||||||
LEFT JOIN pg_type prtyp ON prtyp.oid = pr.prorettype
|
|
||||||
LEFT JOIN pg_inherits inhits ON (inhits.inhrelid=dep.objid)
|
|
||||||
LEFT JOIN pg_inherits inhed ON (inhed.inhparent=dep.objid)
|
|
||||||
{{where_clause}} AND
|
|
||||||
classid IN ( SELECT oid FROM pg_class WHERE relname IN
|
|
||||||
('pg_class', 'pg_constraint', 'pg_conversion', 'pg_language', 'pg_proc', 'pg_rewrite', 'pg_namespace',
|
|
||||||
'pg_trigger', 'pg_type', 'pg_attrdef', 'pg_event_trigger', 'pg_foreign_server', 'pg_foreign_data_wrapper'))
|
|
||||||
ORDER BY classid, cl.relkind;
|
|
@ -32,7 +32,7 @@ class TestDependenciesSql(SQLTemplateTestBase):
|
|||||||
|
|
||||||
def generate_sql(self, version):
|
def generate_sql(self, version):
|
||||||
file_path = os.path.join(os.path.dirname(__file__), "..", "templates",
|
file_path = os.path.join(os.path.dirname(__file__), "..", "templates",
|
||||||
"depends", "sql")
|
"depends", self.server['type'])
|
||||||
template_file = self.get_template_file(version, file_path,
|
template_file = self.get_template_file(version, file_path,
|
||||||
"dependencies.sql")
|
"dependencies.sql")
|
||||||
template = file_as_template(template_file)
|
template = file_as_template(template_file)
|
||||||
|
@ -32,7 +32,7 @@ class TestDependentsSql(SQLTemplateTestBase):
|
|||||||
|
|
||||||
def generate_sql(self, version):
|
def generate_sql(self, version):
|
||||||
file_path = os.path.join(os.path.dirname(__file__), "..", "templates",
|
file_path = os.path.join(os.path.dirname(__file__), "..", "templates",
|
||||||
"depends", "sql")
|
"depends", self.server['type'])
|
||||||
template_file = self.get_template_file(version, file_path,
|
template_file = self.get_template_file(version, file_path,
|
||||||
"dependents.sql")
|
"dependents.sql")
|
||||||
template = file_as_template(template_file)
|
template = file_as_template(template_file)
|
||||||
|
@ -8,12 +8,13 @@
|
|||||||
##########################################################################
|
##########################################################################
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from pgadmin.utils.route import BaseTestGenerator
|
|
||||||
from regression.python_test_utils import test_utils
|
from regression.python_test_utils import test_utils
|
||||||
from regression.python_test_utils.template_helper import file_as_template
|
from regression.python_test_utils.template_helper import file_as_template
|
||||||
|
from regression.python_test_utils.sql_template_test_base import \
|
||||||
|
SQLTemplateTestBase
|
||||||
|
|
||||||
|
|
||||||
class TestRoleDependenciesSql(BaseTestGenerator):
|
class TestRoleDependenciesSql(SQLTemplateTestBase):
|
||||||
scenarios = [
|
scenarios = [
|
||||||
# Fetching default URL for schema node.
|
# Fetching default URL for schema node.
|
||||||
('Test Role Dependencies SQL file', dict())
|
('Test Role Dependencies SQL file', dict())
|
||||||
@ -50,7 +51,7 @@ class TestRoleDependenciesSql(BaseTestGenerator):
|
|||||||
"WHERE pg_class.relname='test_new_role_table'")
|
"WHERE pg_class.relname='test_new_role_table'")
|
||||||
self.table_id = cursor.fetchone()[0]
|
self.table_id = cursor.fetchone()[0]
|
||||||
|
|
||||||
sql = self.generate_sql('default')
|
sql = self.generate_sql(connection.server_version)
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
|
|
||||||
fetch_result = cursor.fetchall()
|
fetch_result = cursor.fetchall()
|
||||||
@ -63,7 +64,9 @@ class TestRoleDependenciesSql(BaseTestGenerator):
|
|||||||
connection.commit()
|
connection.commit()
|
||||||
|
|
||||||
def generate_sql(self, version):
|
def generate_sql(self, version):
|
||||||
template_file = self.get_template_file(version,
|
file_path = os.path.join(os.path.dirname(__file__), "..", "templates",
|
||||||
|
"depends", self.server['type'])
|
||||||
|
template_file = self.get_template_file(version, file_path,
|
||||||
"role_dependencies.sql")
|
"role_dependencies.sql")
|
||||||
template = file_as_template(template_file)
|
template = file_as_template(template_file)
|
||||||
sql = template.render(
|
sql = template.render(
|
||||||
@ -79,8 +82,3 @@ class TestRoleDependenciesSql(BaseTestGenerator):
|
|||||||
first_row[description.name] = fetch_result[0][index]
|
first_row[description.name] = fetch_result[0][index]
|
||||||
|
|
||||||
self.assertEqual('o', first_row["deptype"])
|
self.assertEqual('o', first_row["deptype"])
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_template_file(version, filename):
|
|
||||||
return os.path.join(os.path.dirname(__file__), "..", "templates",
|
|
||||||
"depends", "sql", version, filename)
|
|
||||||
|
@ -446,7 +446,8 @@ class PGChildNodeView(NodeView):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
# Set the sql_path
|
# Set the sql_path
|
||||||
sql_path = 'depends/sql/#{0}#'.format(conn.manager.version)
|
sql_path = 'depends/{0}/#{1}#'.format(
|
||||||
|
conn.manager.server_type, conn.manager.version)
|
||||||
|
|
||||||
if where is None:
|
if where is None:
|
||||||
where_clause = "WHERE dep.objid={0}::oid".format(object_id)
|
where_clause = "WHERE dep.objid={0}::oid".format(object_id)
|
||||||
@ -500,7 +501,8 @@ class PGChildNodeView(NodeView):
|
|||||||
Returns: Dictionary of dependents for the selected node.
|
Returns: Dictionary of dependents for the selected node.
|
||||||
"""
|
"""
|
||||||
# Set the sql_path
|
# Set the sql_path
|
||||||
sql_path = 'depends/sql/#{0}#'.format(conn.manager.version)
|
sql_path = 'depends/{0}/#{1}#'.format(
|
||||||
|
conn.manager.server_type, conn.manager.version)
|
||||||
|
|
||||||
if where is None:
|
if where is None:
|
||||||
where_clause = "WHERE dep.refobjid={0}::oid".format(object_id)
|
where_clause = "WHERE dep.refobjid={0}::oid".format(object_id)
|
||||||
@ -525,29 +527,38 @@ class PGChildNodeView(NodeView):
|
|||||||
Returns: Dictionary of dependency for the selected node.
|
Returns: Dictionary of dependency for the selected node.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Dictionary for the object types
|
standard_types = {
|
||||||
types = {
|
|
||||||
# None specified special handling for this type
|
|
||||||
'r': None,
|
'r': None,
|
||||||
'i': 'index',
|
'i': 'index',
|
||||||
'S': 'sequence',
|
'S': 'sequence',
|
||||||
'v': 'view',
|
'v': 'view',
|
||||||
'x': 'external_table',
|
'p': 'partition_table',
|
||||||
'p': 'partition',
|
'f': 'foreign_table',
|
||||||
'P': 'function',
|
'm': 'materialized_view',
|
||||||
'n': 'schema',
|
't': 'toast_table',
|
||||||
'y': 'type',
|
'I': 'partition_index'
|
||||||
'd': 'domain',
|
}
|
||||||
't': 'trigger_function',
|
|
||||||
'T': 'trigger',
|
# Dictionary for the object types
|
||||||
'l': 'language',
|
custom_types = {
|
||||||
'f': 'foreign_data_wrapper',
|
'x': 'external_table', 'n': 'schema', 'd': 'domain',
|
||||||
'F': 'foreign_server',
|
'l': 'language', 'Cc': 'check', 'Cd': 'domain_constraints',
|
||||||
'R': None,
|
'Cf': 'foreign_key', 'Cp': 'primary_key', 'Co': 'collation',
|
||||||
'C': None,
|
'Cu': 'unique_constraint', 'Cx': 'exclusion_constraint',
|
||||||
|
'Fw': 'foreign_data_wrapper', 'Fs': 'foreign_server',
|
||||||
|
'Fc': 'fts_configuration', 'Fp': 'fts_parser',
|
||||||
|
'Fd': 'fts_dictionary', 'Ft': 'fts_template',
|
||||||
|
'Ex': 'extension', 'Et': 'event_trigger', 'Pa': 'package',
|
||||||
|
'Pf': 'function', 'Pt': 'trigger_function', 'Pp': 'procedure',
|
||||||
|
'Rl': 'rule', 'Rs': 'row_security_policy', 'Sy': 'synonym',
|
||||||
|
'Ty': 'type', 'Tr': 'trigger', 'Tc': 'compound_trigger',
|
||||||
|
# None specified special handling for this type
|
||||||
'A': None
|
'A': None
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Merging above two dictionaries
|
||||||
|
types = {**standard_types, **custom_types}
|
||||||
|
|
||||||
# Dictionary for the restrictions
|
# Dictionary for the restrictions
|
||||||
dep_types = {
|
dep_types = {
|
||||||
# None specified special handling for this type
|
# None specified special handling for this type
|
||||||
@ -579,61 +590,50 @@ class PGChildNodeView(NodeView):
|
|||||||
# Fetch the type name from the dictionary
|
# Fetch the type name from the dictionary
|
||||||
# if type is not present in the types dictionary then
|
# if type is not present in the types dictionary then
|
||||||
# we will continue and not going to add it.
|
# we will continue and not going to add it.
|
||||||
if len(type_str) and type_str[0] in types:
|
if len(type_str) and type_str in types and \
|
||||||
|
types[type_str] is not None:
|
||||||
|
type_name = types[type_str]
|
||||||
|
if type_str == 'Rl':
|
||||||
|
ref_name = \
|
||||||
|
_ref_name + ' ON ' + ref_name + row['ownertable']
|
||||||
|
_ref_name = None
|
||||||
|
elif type_str == 'Cf':
|
||||||
|
ref_name += row['ownertable'] + '.'
|
||||||
|
elif type_str == 'm':
|
||||||
|
icon = 'icon-mview'
|
||||||
|
elif len(type_str) and type_str[0] in types and \
|
||||||
|
types[type_str[0]] is None:
|
||||||
# if type is present in the types dictionary, but it's
|
# if type is present in the types dictionary, but it's
|
||||||
# value is None then it requires special handling.
|
# value is None then it requires special handling.
|
||||||
if types[type_str[0]] is None:
|
if type_str[0] == 'r':
|
||||||
if type_str[0] == 'r':
|
if int(type_str[1]) > 0:
|
||||||
if int(type_str[1]) > 0:
|
type_name = 'column'
|
||||||
type_name = 'column'
|
else:
|
||||||
else:
|
type_name = 'table'
|
||||||
type_name = 'table'
|
if 'is_inherits' in row and row['is_inherits'] == '1':
|
||||||
if 'is_inherits' in row \
|
if 'is_inherited' in row and \
|
||||||
and row['is_inherits'] == '1':
|
row['is_inherited'] == '1':
|
||||||
if 'is_inherited' in row \
|
icon = 'icon-table-multi-inherit'
|
||||||
and row['is_inherited'] == '1':
|
# For tables under partitioned tables,
|
||||||
icon = 'icon-table-multi-inherit'
|
# is_inherits will be true and dependency
|
||||||
# For tables under partitioned tables,
|
# will be auto as it inherits from parent
|
||||||
# is_inherits will be true and dependency
|
# partitioned table
|
||||||
# will be auto as it inherits from parent
|
elif ('is_inherited' in row and
|
||||||
# partitioned table
|
row['is_inherited'] == '0') and \
|
||||||
elif ('is_inherited' in row and
|
dep_str == 'a':
|
||||||
row['is_inherited'] == '0')\
|
type_name = 'partition'
|
||||||
and dep_str == 'a':
|
else:
|
||||||
type_name = 'partition'
|
icon = 'icon-table-inherits'
|
||||||
else:
|
elif 'is_inherited' in row and \
|
||||||
icon = 'icon-table-inherits'
|
row['is_inherited'] == '1':
|
||||||
elif 'is_inherited' in row \
|
icon = 'icon-table-inherited'
|
||||||
and row['is_inherited'] == '1':
|
elif type_str[0] == 'A':
|
||||||
icon = 'icon-table-inherited'
|
# Include only functions
|
||||||
|
if row['adbin'].startswith('{FUNCEXPR'):
|
||||||
elif type_str[0] == 'R':
|
type_name = 'function'
|
||||||
type_name = 'rule'
|
ref_name = row['adsrc']
|
||||||
ref_name = \
|
else:
|
||||||
_ref_name + ' ON ' + ref_name + row['ownertable']
|
continue
|
||||||
_ref_name = None
|
|
||||||
elif type_str[0] == 'C':
|
|
||||||
if type_str[1] == 'c':
|
|
||||||
type_name = 'check'
|
|
||||||
elif type_str[1] == 'f':
|
|
||||||
type_name = 'foreign_key'
|
|
||||||
ref_name += row['ownertable'] + '.'
|
|
||||||
elif type_str[1] == 'p':
|
|
||||||
type_name = 'primary_key'
|
|
||||||
elif type_str[1] == 'u':
|
|
||||||
type_name = 'unique_constraint'
|
|
||||||
elif type_str[1] == 'x':
|
|
||||||
type_name = 'exclusion_constraint'
|
|
||||||
elif type_str[0] == 'A':
|
|
||||||
# Include only functions
|
|
||||||
if row['adbin'].startswith('{FUNCEXPR'):
|
|
||||||
type_name = 'function'
|
|
||||||
ref_name = row['adsrc']
|
|
||||||
else:
|
|
||||||
continue
|
|
||||||
else:
|
|
||||||
type_name = types[type_str[0]]
|
|
||||||
else:
|
else:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@ -644,7 +644,6 @@ class PGChildNodeView(NodeView):
|
|||||||
if show_system_objects is None:
|
if show_system_objects is None:
|
||||||
show_system_objects = self.blueprint.show_system_objects
|
show_system_objects = self.blueprint.show_system_objects
|
||||||
if dep_str[0] in dep_types:
|
if dep_str[0] in dep_types:
|
||||||
|
|
||||||
# if dep_type is present in the dep_types dictionary, but it's
|
# if dep_type is present in the dep_types dictionary, but it's
|
||||||
# value is None then it requires special handling.
|
# value is None then it requires special handling.
|
||||||
if dep_types[dep_str[0]] is None:
|
if dep_types[dep_str[0]] is None:
|
||||||
|
@ -99,7 +99,7 @@ define('misc.dependencies', [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'field',
|
name: 'field',
|
||||||
label: '', // label kept blank, it will change dynamically
|
label: ' ', // label kept blank, it will change dynamically
|
||||||
cell: 'string',
|
cell: 'string',
|
||||||
editable: false,
|
editable: false,
|
||||||
},
|
},
|
||||||
|
@ -100,7 +100,7 @@ define('misc.dependents', [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'field',
|
name: 'field',
|
||||||
label: '', // label kept blank, it will change dynamically
|
label: ' ', // label kept blank, it will change dynamically
|
||||||
cell: 'string',
|
cell: 'string',
|
||||||
editable: false,
|
editable: false,
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user