diff --git a/docs/en_US/release_notes_5_1.rst b/docs/en_US/release_notes_5_1.rst index 684cfd805..d6e551d53 100644 --- a/docs/en_US/release_notes_5_1.rst +++ b/docs/en_US/release_notes_5_1.rst @@ -49,4 +49,6 @@ Bug fixes | `Issue #6286 `_ - Ensure that the template database should be visible while creating the database. | `Issue #6292 `_ - Fixed string index out of range error where the dependent tab is in focus and selecting any publication or table. | `Issue #6294 `_ - Fixed an issue where the dependent tab throwing an error when selecting any login/group role. +| `Issue #6307 `_ - Fixed an issue where the incorrect values visible in the dependents tab for publication. | `Issue #6312 `_ - Fixed an issue where copy/paste rows in view data paste the wrong value for boolean type. +| `Issue #6316 `_ - Ensure that the primary key should be visible properly in the table dialog. diff --git a/web/pgadmin/browser/server_groups/servers/databases/subscriptions/templates/subscriptions/sql/default/stats.sql b/web/pgadmin/browser/server_groups/servers/databases/subscriptions/templates/subscriptions/sql/default/stats.sql index 8910ae304..0289aee4a 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/subscriptions/templates/subscriptions/sql/default/stats.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/subscriptions/templates/subscriptions/sql/default/stats.sql @@ -1,11 +1,14 @@ SELECT - subname AS {{ conn|qtIdent(_('Subscription name')) }}, - latest_end_time AS {{ conn|qtIdent(_('Latest end time')) }}, - latest_end_lsn AS {{ conn|qtIdent(_('Latest end lsn')) }}, - last_msg_receipt_time AS {{ conn|qtIdent(_('Last message receipt')) }}, - last_msg_send_time AS {{ conn|qtIdent(_('Last message send time'))}} -FROM pg_catalog.pg_stat_subscription + stat.subname AS {{ conn|qtIdent(_('Subscription name')) }}, + stat.latest_end_time AS {{ conn|qtIdent(_('Latest end time')) }}, + stat.latest_end_lsn AS {{ conn|qtIdent(_('Latest end lsn')) }}, + stat.last_msg_receipt_time AS {{ conn|qtIdent(_('Last message receipt')) }}, + stat.last_msg_send_time AS {{ conn|qtIdent(_('Last message send time'))}} +FROM pg_catalog.pg_stat_subscription stat +LEFT JOIN pg_subscription sub ON sub.subname = stat.subname {% if subid %} - WHERE subid = {{ subid }}; + WHERE stat.subid = {{ subid }}; +{% else %} + WHERE sub.subdbid = {{ did }} {% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/pg/10_plus/dependents.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/pg/10_plus/dependents.sql deleted file mode 100644 index 6d3621df1..000000000 --- a/web/pgadmin/browser/server_groups/servers/templates/depends/pg/10_plus/dependents.sql +++ /dev/null @@ -1,79 +0,0 @@ -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 - 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, pg_catalog.quote_ident(pubns.nspname)||'.'||pg_catalog.quote_ident(pubcl.relname)) - 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_catalog.pg_depend dep -LEFT JOIN pg_catalog.pg_class cl ON dep.objid=cl.oid -LEFT JOIN pg_catalog.pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum -LEFT JOIN pg_catalog.pg_namespace nsc ON cl.relnamespace=nsc.oid -LEFT JOIN pg_catalog.pg_proc pr ON dep.objid=pr.oid -LEFT JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace=nsp.oid -LEFT JOIN pg_catalog.pg_trigger tg ON dep.objid=tg.oid -LEFT JOIN pg_catalog.pg_type ty ON dep.objid=ty.oid -LEFT JOIN pg_catalog.pg_namespace nst ON ty.typnamespace=nst.oid -LEFT JOIN pg_catalog.pg_constraint co ON dep.objid=co.oid -LEFT JOIN pg_catalog.pg_class coc ON co.conrelid=coc.oid -LEFT JOIN pg_catalog.pg_namespace nso ON co.connamespace=nso.oid -LEFT JOIN pg_catalog.pg_rewrite rw ON dep.objid=rw.oid -LEFT JOIN pg_catalog.pg_class clrw ON clrw.oid=rw.ev_class -LEFT JOIN pg_catalog.pg_namespace nsrw ON clrw.relnamespace=nsrw.oid -LEFT JOIN pg_catalog.pg_language la ON dep.objid=la.oid -LEFT JOIN pg_catalog.pg_namespace ns ON dep.objid=ns.oid -LEFT JOIN pg_catalog.pg_attrdef ad ON ad.oid=dep.objid -LEFT JOIN pg_catalog.pg_foreign_server fs ON fs.oid=dep.objid -LEFT JOIN pg_catalog.pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid -LEFT JOIN pg_catalog.pg_type prtyp ON prtyp.oid = pr.prorettype -LEFT JOIN pg_catalog.pg_inherits inhits ON (inhits.inhrelid=dep.objid) -LEFT JOIN pg_catalog.pg_inherits inhed ON (inhed.inhparent=dep.objid) -LEFT JOIN pg_catalog.pg_event_trigger evt ON evt.oid=dep.objid -LEFT JOIN pg_catalog.pg_collation col ON col.oid=dep.objid -LEFT JOIN pg_catalog.pg_namespace colns ON col.collnamespace=colns.oid -LEFT JOIN pg_catalog.pg_ts_config ftsc ON ftsc.oid=dep.objid -LEFT JOIN pg_catalog.pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid -LEFT JOIN pg_catalog.pg_ts_dict ftsd ON ftsd.oid=dep.objid -LEFT JOIN pg_catalog.pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid -LEFT JOIN pg_catalog.pg_ts_parser ftsp ON ftsp.oid=dep.objid -LEFT JOIN pg_catalog.pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid -LEFT JOIN pg_catalog.pg_ts_template ftst ON ftst.oid=dep.objid -LEFT JOIN pg_catalog.pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid -LEFT JOIN pg_catalog.pg_extension ext ON ext.oid=dep.objid -LEFT JOIN pg_catalog.pg_policy pl ON pl.oid=dep.objid -LEFT JOIN pg_catalog.pg_publication_rel pub_rel ON pub_rel.oid = dep.objid -LEFT JOIN pg_catalog.pg_class pubcl ON pubcl.oid = pub_rel.prrelid -LEFT JOIN pg_catalog.pg_namespace pubns ON pubns.oid=pubcl.relnamespace -{{where_clause}} AND -classid IN ( SELECT oid FROM pg_catalog.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')) -ORDER BY classid, cl.relkind diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/10_plus/dependents.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/10_plus/dependents.sql deleted file mode 100644 index aa231627d..000000000 --- a/web/pgadmin/browser/server_groups/servers/templates/depends/ppas/10_plus/dependents.sql +++ /dev/null @@ -1,82 +0,0 @@ -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 - 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, pg_catalog.quote_ident(pubns.nspname)||'.'||pg_catalog.quote_ident(pubcl.relname)) - 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_catalog.pg_depend dep -LEFT JOIN pg_catalog.pg_class cl ON dep.objid=cl.oid -LEFT JOIN pg_catalog.pg_attribute att ON dep.objid=att.attrelid AND dep.objsubid=att.attnum -LEFT JOIN pg_catalog.pg_namespace nsc ON cl.relnamespace=nsc.oid -LEFT JOIN pg_catalog.pg_proc pr ON dep.objid=pr.oid -LEFT JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace=nsp.oid -LEFT JOIN pg_catalog.pg_trigger tg ON dep.objid=tg.oid -LEFT JOIN pg_catalog.pg_type ty ON dep.objid=ty.oid -LEFT JOIN pg_catalog.pg_namespace nst ON ty.typnamespace=nst.oid -LEFT JOIN pg_catalog.pg_constraint co ON dep.objid=co.oid -LEFT JOIN pg_catalog.pg_class coc ON co.conrelid=coc.oid -LEFT JOIN pg_catalog.pg_namespace nso ON co.connamespace=nso.oid -LEFT JOIN pg_catalog.pg_rewrite rw ON dep.objid=rw.oid -LEFT JOIN pg_catalog.pg_class clrw ON clrw.oid=rw.ev_class -LEFT JOIN pg_catalog.pg_namespace nsrw ON clrw.relnamespace=nsrw.oid -LEFT JOIN pg_catalog.pg_language la ON dep.objid=la.oid -LEFT JOIN pg_catalog.pg_namespace ns ON dep.objid=ns.oid -LEFT JOIN pg_catalog.pg_attrdef ad ON ad.oid=dep.objid -LEFT JOIN pg_catalog.pg_foreign_server fs ON fs.oid=dep.objid -LEFT JOIN pg_catalog.pg_foreign_data_wrapper fdw ON fdw.oid=dep.objid -LEFT JOIN pg_catalog.pg_type prtyp ON prtyp.oid = pr.prorettype -LEFT JOIN pg_catalog.pg_inherits inhits ON (inhits.inhrelid=dep.objid) -LEFT JOIN pg_catalog.pg_inherits inhed ON (inhed.inhparent=dep.objid) -LEFT JOIN pg_catalog.pg_event_trigger evt ON evt.oid=dep.objid -LEFT JOIN pg_catalog.pg_collation col ON col.oid=dep.objid -LEFT JOIN pg_catalog.pg_namespace colns ON col.collnamespace=colns.oid -LEFT JOIN pg_catalog.pg_ts_config ftsc ON ftsc.oid=dep.objid -LEFT JOIN pg_catalog.pg_namespace ftscns ON ftsc.cfgnamespace=ftscns.oid -LEFT JOIN pg_catalog.pg_ts_dict ftsd ON ftsd.oid=dep.objid -LEFT JOIN pg_catalog.pg_namespace ftsdns ON ftsd.dictnamespace=ftsdns.oid -LEFT JOIN pg_catalog.pg_ts_parser ftsp ON ftsp.oid=dep.objid -LEFT JOIN pg_catalog.pg_namespace ftspns ON ftsp.prsnamespace=ftspns.oid -LEFT JOIN pg_catalog.pg_ts_template ftst ON ftst.oid=dep.objid -LEFT JOIN pg_catalog.pg_namespace ftstns ON ftst.tmplnamespace=ftstns.oid -LEFT JOIN pg_catalog.pg_extension ext ON ext.oid=dep.objid -LEFT JOIN pg_catalog.pg_synonym syn ON syn.oid=dep.objid -LEFT JOIN pg_catalog.pg_namespace synns ON syn.synnamespace=synns.oid -LEFT JOIN pg_catalog.pg_policy pl ON pl.oid=dep.objid -LEFT JOIN pg_catalog.pg_publication_rel pub_rel ON pub_rel.oid = dep.objid -LEFT JOIN pg_catalog.pg_class pubcl ON pubcl.oid = pub_rel.prrelid -LEFT JOIN pg_catalog.pg_namespace pubns ON pubns.oid=pubcl.relnamespace -{{where_clause}} AND -classid IN ( SELECT oid FROM pg_catalog.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')) -ORDER BY classid, cl.relkind diff --git a/web/pgadmin/static/scss/_bootstrap.overrides.scss b/web/pgadmin/static/scss/_bootstrap.overrides.scss index 94919d356..55a59025b 100644 --- a/web/pgadmin/static/scss/_bootstrap.overrides.scss +++ b/web/pgadmin/static/scss/_bootstrap.overrides.scss @@ -255,7 +255,7 @@ legend { .table { margin-bottom: 0rem; user-select: text; - table-layout: fixed; + table-layout: auto; max-width: none; width: auto; min-width: 100%;