Fixed internal server error when the database server is logged in with non-super user. Fixes #5400

This commit is contained in:
Aditya Toshniwal 2020-04-16 15:05:17 +05:30 committed by Akshay Joshi
parent c0a2f1f24d
commit dc1e32a632
10 changed files with 28 additions and 39 deletions

View File

@ -59,4 +59,5 @@ Bug fixes
| `Issue #5371 <https://redmine.postgresql.org/issues/5371>`_ - Fixed tab key navigation for some dialogs.
| `Issue #5375 <https://redmine.postgresql.org/issues/5375>`_ - Fixed an issue where the Mode cell of argument grid does not appear completely in the Functions dialog.
| `Issue #5383 <https://redmine.postgresql.org/issues/5383>`_ - Fixed syntax error while refreshing the existing synonyms.
| `Issue #5387 <https://redmine.postgresql.org/issues/5387>`_ - Fixed an issue where the mode is not shown in the properties dialog of functions/procedures if all the arguments are "IN" arguments.
| `Issue #5387 <https://redmine.postgresql.org/issues/5387>`_ - Fixed an issue where the mode is not shown in the properties dialog of functions/procedures if all the arguments are "IN" arguments.
| `Issue #5400 <https://redmine.postgresql.org/issues/5400>`_ - Fixed internal server error when the database server is logged in with non-super user.

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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 {

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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 %}