diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/templates/foreign_servers/sql/default/dependents.sql b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/templates/foreign_servers/sql/default/dependents.sql index 3dfb3ed15..274d60e9f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/templates/foreign_servers/sql/default/dependents.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/templates/foreign_servers/sql/default/dependents.sql @@ -1,12 +1,6 @@ {# ============= Get dependents of foreign server ============= #} {% if fsid %} -WITH umapData AS - ( - SELECT u.oid AS um_oid, CASE WHEN u.umuser = 0::oid THEN 'PUBLIC'::name ELSE a.rolname END AS name, - array_to_string(u.umoptions, ',') AS umoptions FROM pg_user_mapping u - LEFT JOIN pg_authid a ON a.oid = u.umuser WHERE u.umserver = {{ fsid }}::OID - ) - -SELECT um.um_oid, name, dep.deptype FROM umapData um - LEFT JOIN pg_depend dep ON dep.objid=um.um_oid +SELECT um.umid as um_oid, um.usename as name, dep.deptype FROM pg_user_mappings um + LEFT JOIN pg_depend dep ON dep.objid=um.umid + WHERE um.srvid = {{ fsid }}::OID {% endif %} 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 7adc27479..51e2927b7 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,19 +5,9 @@ FROM pg_foreign_server srv LEFT OUTER JOIN pg_description des ON (des.objoid=srv.oid AND des.objsubid=0 AND des.classoid='pg_foreign_server'::regclass) WHERE srv.oid = {{fserid}}::oid {% endif %} -{% if fsid or umid or fdwdata or data %} -WITH umapData AS - ( - SELECT u.oid AS um_oid, CASE WHEN u.umuser = 0::oid THEN 'PUBLIC'::name ELSE a.rolname END AS name, - array_to_string(u.umoptions, ',') AS umoptions FROM pg_user_mapping u - LEFT JOIN pg_authid a ON a.oid = u.umuser {% if fsid %} WHERE u.umserver = {{fsid}}::oid {% endif %} {% if umid %} WHERE u.oid= {{umid}}::oid {% endif %} - ) - SELECT * FROM umapData -{% if data %} - WHERE {% if data.name == "CURRENT_USER" %} name = {{data.name}} {% elif data.name == "PUBLIC" %} name = {{data.name|qtLiteral}} {% else %} name = {{data.name|qtLiteral}} {% endif %} -{% endif %} -{% if fdwdata %} - WHERE fdw.fdwname = {{fdwdata.name|qtLiteral}}::text -{% endif %} - ORDER BY 2; +{% if fsid or umid %} +SELECT u.umid AS um_oid, u.usename as name, array_to_string(u.umoptions, ',') AS umoptions +FROM pg_user_mappings u +{% if fsid %} WHERE u.srvid = {{fsid}}::oid {% endif %} {% if umid %} WHERE u.umid= {{umid}}::oid {% endif %} +ORDER BY 2; {% endif %} diff --git a/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js index e489f246a..0c4a315db 100644 --- a/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js +++ b/web/pgadmin/tools/search_objects/static/js/search_objects_dialog_wrapper.js @@ -277,7 +277,7 @@ export default class SearchObjectsDialogWrapper extends DialogWrapper { }) .catch((args)=>{ this.showMessage(gettext('Unable to locate this object in the browser.'), true); - console.warn(args); + console.warn(args, rowData.id_path); }); }); @@ -601,7 +601,11 @@ export default class SearchObjectsDialogWrapper extends DialogWrapper { let errmsg = ''; if (error.response) { - errmsg = error.response.statusText; + if(error.response.data && error.response.data.errormsg) { + errmsg = error.response.data.errormsg; + } else { + errmsg = error.response.statusText; + } } else if (error.request) { errmsg = gettext('No response received'); } else { diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql index c6afef675..ad64c5943 100644 --- a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql +++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/10_plus/search.sql @@ -390,9 +390,9 @@ FROM ( {% if all_obj or obj_type in ['user_mapping'] %} select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name, {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info - from pg_user_mapping um + from pg_user_mappings um inner join pg_roles ro on um.umuser = ro.oid - inner join pg_foreign_server sr on um.umserver = sr.oid + inner join pg_foreign_server sr on um.srvid = sr.oid inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid {% endif %} {% if all_obj %} diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql index e9be02279..185d3d6b6 100644 --- a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql +++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/11_plus/search.sql @@ -407,9 +407,9 @@ FROM ( {% if all_obj or obj_type in ['user_mapping'] %} select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name, {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info - from pg_user_mapping um + from pg_user_mappings um inner join pg_roles ro on um.umuser = ro.oid - inner join pg_foreign_server sr on um.umserver = sr.oid + inner join pg_foreign_server sr on um.srvid = sr.oid inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid {% endif %} {% if all_obj %} diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql index b384b316d..c8f2f85b8 100644 --- a/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql +++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/pg/default/search.sql @@ -322,9 +322,9 @@ FROM ( {% if all_obj or obj_type in ['user_mapping'] %} select 'user_mapping'::text AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name, {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info - from pg_user_mapping um + from pg_user_mappings um inner join pg_roles ro on um.umuser = ro.oid - inner join pg_foreign_server sr on um.umserver = sr.oid + inner join pg_foreign_server sr on um.srvid = sr.oid inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid {% endif %} {% if all_obj %} diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql index 87a32ee66..1bac1f0fb 100644 --- a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql +++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/10_plus/search.sql @@ -416,9 +416,9 @@ FROM ( {% if all_obj or obj_type in ['user_mapping'] %} select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name, {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info - from pg_user_mapping um + from pg_user_mappings um inner join pg_roles ro on um.umuser = ro.oid - inner join pg_foreign_server sr on um.umserver = sr.oid + inner join pg_foreign_server sr on um.srvid = sr.oid inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid {% endif %} {% if all_obj %} diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql index 6faf56ad6..2b4e5afa9 100644 --- a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql +++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/12_plus/search.sql @@ -437,9 +437,9 @@ FROM ( {% if all_obj or obj_type in ['user_mapping'] %} select 'user_mapping' AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name, {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info - from pg_user_mapping um + from pg_user_mappings um inner join pg_roles ro on um.umuser = ro.oid - inner join pg_foreign_server sr on um.umserver = sr.oid + inner join pg_foreign_server sr on um.srvid = sr.oid inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid {% endif %} {% if all_obj %} diff --git a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql index 7bb126e32..d458b8d7d 100644 --- a/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql +++ b/web/pgadmin/tools/search_objects/templates/search_objects/sql/ppas/default/search.sql @@ -360,9 +360,9 @@ FROM ( {% if all_obj or obj_type in ['user_mapping'] %} select 'user_mapping'::text AS obj_type, ro.rolname AS obj_name, ':foreign_data_wrapper.'||fdw.oid||':/' || fdw.fdwname || '/:foreign_server.'||sr.oid||':/' || sr.srvname || '/:user_mapping.'||ro.oid||':/' || ro.rolname AS obj_path, ''::text AS schema_name, {{ show_node_prefs['user_mapping'] }} AS show_node, NULL AS other_info - from pg_user_mapping um + from pg_user_mappings um inner join pg_roles ro on um.umuser = ro.oid - inner join pg_foreign_server sr on um.umserver = sr.oid + inner join pg_foreign_server sr on um.srvid = sr.oid inner join pg_foreign_data_wrapper fdw on sr.srvfdw = fdw.oid {% endif %} {% if all_obj %}