From dc65cbb08c99a176833c12b415c3f2a28b791330 Mon Sep 17 00:00:00 2001 From: Yogesh Mahajan Date: Mon, 19 Apr 2021 11:08:21 +0530 Subject: [PATCH] =?UTF-8?q?Fixed=20an=20issue=20where=C2=A0foreign=20data?= =?UTF-8?q?=20wrapper=20properties=20are=20not=20visible=20if=20the=20host?= =?UTF-8?q?=20option=20contains=20two=20host=20addresses.=20Fixes=20#6379?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/en_US/release_notes_5_2.rst | 1 + .../templates/foreign_servers/sql/9.3_plus/properties.sql | 2 +- .../templates/foreign_servers/sql/default/properties.sql | 2 +- .../templates/user_mappings/sql/default/properties.sql | 2 +- .../foreign_data_wrappers/sql/9.3_plus/properties.sql | 2 +- .../templates/foreign_data_wrappers/sql/default/properties.sql | 2 +- web/pgadmin/browser/server_groups/servers/utils.py | 3 +-- web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss | 2 ++ 8 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/en_US/release_notes_5_2.rst b/docs/en_US/release_notes_5_2.rst index 24660f589..4afdbd395 100644 --- a/docs/en_US/release_notes_5_2.rst +++ b/docs/en_US/release_notes_5_2.rst @@ -39,4 +39,5 @@ Bug fixes | `Issue #6367 `_ - Fixed an issue where the Save button is enabled by default when open the table's properties dialog on PG 9.5. | `Issue #6375 `_ - Fixed an issue where users are unable to see data of the partitions using the View/Edit data option. | `Issue #6376 `_ - Fixed an issue where a connection warning should be displayed on the user clicks on explain or explain analyze and the database server is disconnected from the browser tree. +| `Issue #6379 `_ - Fixed an issue where foreign data wrapper properties are not visible if the host option contains two host addresses. | `Issue #6385 `_ - Ensure that Backup and Restore should work on shared servers. diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/templates/foreign_servers/sql/9.3_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/templates/foreign_servers/sql/9.3_plus/properties.sql index 10565558a..86d129344 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/templates/foreign_servers/sql/9.3_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/templates/foreign_servers/sql/9.3_plus/properties.sql @@ -6,7 +6,7 @@ LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=fdw.oid AND des.obj WHERE fdw.oid={{fdwid}}::oid {% else %} SELECT srv.oid, srvname as name, srvfdw as fdwid, srvtype as fsrvtype, srvversion as fsrvversion, -fdw.fdwname as fdwname, description, pg_catalog.array_to_string(srvoptions, ',') AS fsrvoptions, +fdw.fdwname as fdwname, description, srvoptions AS fsrvoptions, pg_catalog.pg_get_userbyid(srvowner) as fsrvowner, pg_catalog.array_to_string(srvacl::text[], ', ') as acl FROM pg_catalog.pg_foreign_server srv LEFT OUTER JOIN pg_catalog.pg_foreign_data_wrapper fdw on fdw.oid=srvfdw diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/templates/foreign_servers/sql/default/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/templates/foreign_servers/sql/default/properties.sql index a16b16b2b..03e0a6689 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/templates/foreign_servers/sql/default/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/templates/foreign_servers/sql/default/properties.sql @@ -7,7 +7,7 @@ LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=fdw.oid AND des.obj WHERE fdw.oid={{fdwid}}::oid {% else %} SELECT srv.oid, srvname as name, srvtype as fsrvtype, srvversion as fsrvversion, fdw.fdwname as fdwname, description, -pg_catalog.array_to_string(srvoptions, ',') AS fsrvoptions, +srvoptions AS fsrvoptions, pg_catalog.pg_get_userbyid(srvowner) as fsrvowner, pg_catalog.array_to_string(srvacl::text[], ', ') as acl FROM pg_catalog.pg_foreign_server srv LEFT OUTER JOIN pg_catalog.pg_foreign_data_wrapper fdw on fdw.oid=srvfdw diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mappings/templates/user_mappings/sql/default/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mappings/templates/user_mappings/sql/default/properties.sql index 9bbe9f21e..aedf5600d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mappings/templates/user_mappings/sql/default/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mappings/templates/user_mappings/sql/default/properties.sql @@ -5,7 +5,7 @@ FROM pg_catalog.pg_foreign_server srv LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=srv.oid AND des.objsubid=0 AND des.classoid='pg_foreign_server'::regclass) WHERE srv.oid = {{fserid}}::oid {% elif fsid or umid %} -SELECT u.umid AS oid, u.usename AS name, u.srvid AS fsid, pg_catalog.array_to_string(u.umoptions, ',') AS umoptions, fs.srvfdw AS fdwid +SELECT u.umid AS oid, u.usename AS name, u.srvid AS fsid, umoptions AS umoptions, fs.srvfdw AS fdwid FROM pg_catalog.pg_user_mappings u LEFT JOIN pg_catalog.pg_foreign_server fs ON fs.oid = u.srvid {% if fsid %} WHERE u.srvid = {{fsid}}::oid {% endif %} {% if umid %} WHERE u.umid= {{umid}}::oid {% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/templates/foreign_data_wrappers/sql/9.3_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/templates/foreign_data_wrappers/sql/9.3_plus/properties.sql index 8f39396ac..5e67e5ee9 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/templates/foreign_data_wrappers/sql/9.3_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/templates/foreign_data_wrappers/sql/9.3_plus/properties.sql @@ -1,6 +1,6 @@ {# ============= Get all the properties of foreign data wrapper ============= #} SELECT fdw.oid, fdwname as name, fdwhandler, fdwvalidator, description, - pg_catalog.array_to_string(fdwoptions, ',') AS fdwoptions, pg_catalog.pg_get_userbyid(fdwowner) as fdwowner, pg_catalog.array_to_string(fdwacl::text[], ', ') as acl, + fdwoptions AS fdwoptions, pg_catalog.pg_get_userbyid(fdwowner) as fdwowner, pg_catalog.array_to_string(fdwacl::text[], ', ') as acl, CASE -- EPAS in redwood mode, concatenation of a string with NULL results as the original string WHEN vp.proname IS NULL THEN NULL diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/templates/foreign_data_wrappers/sql/default/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/templates/foreign_data_wrappers/sql/default/properties.sql index 09b593388..da4105966 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/templates/foreign_data_wrappers/sql/default/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/templates/foreign_data_wrappers/sql/default/properties.sql @@ -1,6 +1,6 @@ {# ============= Get all the properties of foreign data wrapper ============= #} SELECT fdw.oid, fdwname as name, fdwhandler, fdwvalidator, description, - pg_catalog.array_to_string(fdwoptions, ',') AS fdwoptions, pg_catalog.pg_get_userbyid(fdwowner) as fdwowner, pg_catalog.array_to_string(fdwacl::text[], ', ') as acl, + fdwoptions AS fdwoptions, pg_catalog.pg_get_userbyid(fdwowner) as fdwowner, pg_catalog.array_to_string(fdwacl::text[], ', ') as acl, CASE -- EPAS in redwood mode, concatenation of a string with NULL results as the original string WHEN vp.proname IS NULL THEN NULL diff --git a/web/pgadmin/browser/server_groups/servers/utils.py b/web/pgadmin/browser/server_groups/servers/utils.py index 34892804c..e07a6273a 100644 --- a/web/pgadmin/browser/server_groups/servers/utils.py +++ b/web/pgadmin/browser/server_groups/servers/utils.py @@ -161,8 +161,7 @@ def tokenize_options(options_from_db, option_name, option_value): """ options = [] if options_from_db is not None: - option_str = options_from_db.split(',') - for fdw_option in option_str: + for fdw_option in options_from_db: k, v = fdw_option.split('=', 1) options.append({option_name: k, option_value: v}) return options diff --git a/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss b/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss index 8ba3e5ebd..9d5ba4deb 100644 --- a/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss +++ b/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss @@ -52,6 +52,8 @@ #editor-panel { z-index: 0; + position: absolute; + top: $sql-editor-panel-top; bottom: 0; left: 0; right: 0;