mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Added publication and subscription support in Schema Diff. Fixes #6153
This commit is contained in:
committed by
Akshay Joshi
parent
c1e80ac38a
commit
44cc7a308a
@@ -19,14 +19,13 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
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
|
||||
WHEN pub_rel.oid IS NOT NULL THEN 'r'::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, quote_ident(pubns.nspname)||'.'||quote_ident(pubcl.relname))
|
||||
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,
|
||||
@@ -68,12 +67,9 @@ 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
|
||||
LEFT JOIN pg_publication_rel pub_rel ON pub_rel.oid = dep.objid
|
||||
LEFT JOIN pg_class pubcl ON pubcl.oid = pub_rel.prrelid
|
||||
LEFT JOIN pg_namespace pubns ON pubns.oid=pubcl.relnamespace
|
||||
{{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', 'pg_subscription', 'pg_publication_rel'))
|
||||
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension', 'pg_policy'))
|
||||
ORDER BY classid, cl.relkind
|
||||
|
||||
@@ -19,14 +19,13 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, pg_get_expr(ad.a
|
||||
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
|
||||
WHEN pub_rel.oid IS NOT NULL THEN 'r'::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, quote_ident(pubns.nspname)||'.'||quote_ident(pubcl.relname))
|
||||
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,
|
||||
@@ -68,12 +67,9 @@ 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
|
||||
LEFT JOIN pg_publication_rel pub_rel ON pub_rel.oid = dep.objid
|
||||
LEFT JOIN pg_class pubcl ON pubcl.oid = pub_rel.prrelid
|
||||
LEFT JOIN pg_namespace pubns ON pubns.oid=pubcl.relnamespace
|
||||
{{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', 'pg_subscription', 'pg_publication_rel'))
|
||||
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension', 'pg_policy'))
|
||||
ORDER BY classid, cl.relkind
|
||||
|
||||
@@ -20,14 +20,13 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
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
|
||||
WHEN pub_rel.oid IS NOT NULL THEN 'r'::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, quote_ident(pubns.nspname)||'.'||quote_ident(pubcl.relname))
|
||||
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,
|
||||
@@ -71,12 +70,10 @@ 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
|
||||
LEFT JOIN pg_publication_rel pub_rel ON pub_rel.oid = dep.objid
|
||||
LEFT JOIN pg_class pubcl ON pubcl.oid = pub_rel.prrelid
|
||||
LEFT JOIN pg_namespace pubns ON pubns.oid=pubcl.relnamespace
|
||||
{{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', 'pg_subscription', 'pg_publication_rel'))
|
||||
'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
|
||||
|
||||
@@ -20,14 +20,13 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, pg_get_expr(ad.a
|
||||
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
|
||||
WHEN pub_rel.oid IS NOT NULL THEN 'r'::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, quote_ident(pubns.nspname)||'.'||quote_ident(pubcl.relname))
|
||||
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,
|
||||
@@ -71,13 +70,10 @@ 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
|
||||
LEFT JOIN pg_publication_rel pub_rel ON pub_rel.oid = dep.objid
|
||||
LEFT JOIN pg_class pubcl ON pubcl.oid = pub_rel.prrelid
|
||||
LEFT JOIN pg_namespace pubns ON pubns.oid=pubcl.relnamespace
|
||||
{{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', 'pg_subscription', 'pg_publication_rel'))
|
||||
'pg_synonym', 'pg_policy'))
|
||||
ORDER BY classid, cl.relkind
|
||||
|
||||
Reference in New Issue
Block a user