diff --git a/docs/en_US/release_notes_4_26.rst b/docs/en_US/release_notes_4_26.rst index 93c4ff513..2c9c866cd 100644 --- a/docs/en_US/release_notes_4_26.rst +++ b/docs/en_US/release_notes_4_26.rst @@ -22,3 +22,4 @@ Bug fixes | `Issue #5722 `_ - Ensure that the user should be able to drop the database even if it is connected. | `Issue #5748 `_ - Fixed incorrect reverse engineering SQL for Foreign key when creating a table. | `Issue #5754 `_ - Fixed an issue where schema diff is not working when providing the options to Foreign Data Wrapper, Foreign Server, and User Mapping. +| `Issue #5766 `_ - Fixed string indices must be integers issue for PostgreSQL < 9.3. \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/gpdb/5_plus/dependencies.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/gpdb/5_plus/dependencies.sql index d3908051e..81bb2a676 100644 --- a/web/pgadmin/browser/server_groups/servers/templates/depends/gpdb/5_plus/dependencies.sql +++ b/web/pgadmin/browser/server_groups/servers/templates/depends/gpdb/5_plus/dependencies.sql @@ -11,7 +11,6 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, 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 @@ -23,7 +22,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, 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, + fs.srvname, fdw.fdwname, 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, @@ -53,7 +52,6 @@ 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 @@ -68,7 +66,7 @@ LEFT JOIN pg_extension ext ON ext.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_trigger', 'pg_type', 'pg_attrdef', 'pg_foreign_server', 'pg_foreign_data_wrapper', 'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension')) UNION SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc, diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/gpdb/5_plus/dependents.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/gpdb/5_plus/dependents.sql index 0b85a3759..71b0a1edb 100644 --- a/web/pgadmin/browser/server_groups/servers/templates/depends/gpdb/5_plus/dependents.sql +++ b/web/pgadmin/browser/server_groups/servers/templates/depends/gpdb/5_plus/dependents.sql @@ -11,7 +11,6 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc, 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 @@ -23,7 +22,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc, 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, + fs.srvname, fdw.fdwname, 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, @@ -53,7 +52,6 @@ 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 @@ -68,6 +66,6 @@ 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_trigger', 'pg_type', 'pg_attrdef', '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 diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.1_plus/dependencies.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.1_plus/dependencies.sql index d3908051e..81bb2a676 100644 --- a/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.1_plus/dependencies.sql +++ b/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.1_plus/dependencies.sql @@ -11,7 +11,6 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, 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 @@ -23,7 +22,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, 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, + fs.srvname, fdw.fdwname, 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, @@ -53,7 +52,6 @@ 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 @@ -68,7 +66,7 @@ LEFT JOIN pg_extension ext ON ext.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_trigger', 'pg_type', 'pg_attrdef', 'pg_foreign_server', 'pg_foreign_data_wrapper', 'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension')) UNION SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc, diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.1_plus/dependents.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.1_plus/dependents.sql index 0b85a3759..71b0a1edb 100644 --- a/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.1_plus/dependents.sql +++ b/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.1_plus/dependents.sql @@ -11,7 +11,6 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc, 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 @@ -23,7 +22,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc, 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, + fs.srvname, fdw.fdwname, 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, @@ -53,7 +52,6 @@ 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 @@ -68,6 +66,6 @@ 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_trigger', 'pg_type', 'pg_attrdef', '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 diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.3_plus/dependencies.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.3_plus/dependencies.sql new file mode 100644 index 000000000..d3908051e --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.3_plus/dependencies.sql @@ -0,0 +1,87 @@ +SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, 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 + 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) + 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 +{{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')) +UNION +SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, 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 + ELSE '' END AS type, + NULL AS ownertable, + CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '') + ELSE cl.relname END AS refname, + nsc.nspname AS nspname, '0' AS is_inherits, '0' 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_attrdef ad ON ad.adrelid=att.attrelid AND ad.adnum=att.attnum +WHERE dep.objid IN (SELECT oid FROM pg_rewrite WHERE ev_class={{object_id}}) AND cl.relkind not in ('v', 'm') +ORDER BY refclassid, relkind diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.3_plus/dependents.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.3_plus/dependents.sql new file mode 100644 index 000000000..0b85a3759 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/templates/depends/pg/9.3_plus/dependents.sql @@ -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 diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.1_plus/dependencies.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.1_plus/dependencies.sql index c453d9c67..500217673 100644 --- a/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.1_plus/dependencies.sql +++ b/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.1_plus/dependencies.sql @@ -11,7 +11,6 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, 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 @@ -24,7 +23,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, 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, + fs.srvname, fdw.fdwname, 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, @@ -54,7 +53,6 @@ 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 @@ -71,7 +69,7 @@ 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_trigger', 'pg_type', 'pg_attrdef', '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')) UNION diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.1_plus/dependents.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.1_plus/dependents.sql index 97f299e0f..8845979e5 100644 --- a/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.1_plus/dependents.sql +++ b/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.1_plus/dependents.sql @@ -11,7 +11,6 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc, 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 @@ -24,7 +23,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc, 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, + fs.srvname, fdw.fdwname, 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, @@ -54,7 +53,6 @@ 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 @@ -71,7 +69,7 @@ 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_trigger', 'pg_type', 'pg_attrdef', '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 diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.3_plus/dependencies.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.3_plus/dependencies.sql new file mode 100644 index 000000000..c453d9c67 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.3_plus/dependencies.sql @@ -0,0 +1,91 @@ +SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, 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')) +UNION +SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, 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 + ELSE '' END AS type, + NULL AS ownertable, + CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '') + ELSE cl.relname END AS refname, + nsc.nspname AS nspname, '0' AS is_inherits, '0' 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_attrdef ad ON ad.adrelid=att.attrelid AND ad.adnum=att.attnum +WHERE dep.objid IN (SELECT oid FROM pg_rewrite WHERE ev_class={{object_id}}) AND cl.relkind not in ('v', 'm') +ORDER BY refclassid, relkind diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.3_plus/dependents.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.3_plus/dependents.sql new file mode 100644 index 000000000..97f299e0f --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/9.3_plus/dependents.sql @@ -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