mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Use schema qualification while accessing the catalog objects. Fixes #3976
This commit is contained in:
committed by
Akshay Joshi
parent
8cf7c41ad9
commit
a2be30d257
@@ -6,13 +6,13 @@ SELECT
|
||||
'Table' AS object_type,
|
||||
CASE WHEN (rel.relkind = 'p' OR rel.relispartition) THEN 'icon-partition' ELSE 'icon-table' END AS icon
|
||||
FROM
|
||||
pg_class rel
|
||||
JOIN pg_namespace nsp ON nsp.oid=rel.relnamespace
|
||||
LEFT OUTER JOIN pg_tablespace spc ON spc.oid=rel.reltablespace
|
||||
LEFT OUTER JOIN pg_description des ON (des.objoid=rel.oid AND des.objsubid=0 AND des.classoid='pg_class'::regclass)
|
||||
LEFT OUTER JOIN pg_constraint con ON con.conrelid=rel.oid AND con.contype='p'
|
||||
LEFT OUTER JOIN pg_class tst ON tst.oid = rel.reltoastrelid
|
||||
LEFT JOIN pg_type typ ON rel.reloftype=typ.oid
|
||||
pg_catalog.pg_class rel
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=rel.relnamespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_tablespace spc ON spc.oid=rel.reltablespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=rel.oid AND des.objsubid=0 AND des.classoid='pg_class'::regclass)
|
||||
LEFT OUTER JOIN pg_catalog.pg_constraint con ON con.conrelid=rel.oid AND con.contype='p'
|
||||
LEFT OUTER JOIN pg_catalog.pg_class tst ON tst.oid = rel.reltoastrelid
|
||||
LEFT JOIN pg_catalog.pg_type typ ON rel.reloftype=typ.oid
|
||||
WHERE
|
||||
rel.relkind IN ('r','s','t','p') AND rel.relnamespace = {{ node_id }}::oid
|
||||
ORDER BY
|
||||
|
||||
@@ -5,18 +5,18 @@
|
||||
{% set kind = 'p' if type == 'procedure' else 'f' %}
|
||||
SELECT
|
||||
pr.oid,
|
||||
pg_get_function_identity_arguments(pr.oid) AS proargs,
|
||||
pg_catalog.pg_get_function_identity_arguments(pr.oid) AS proargs,
|
||||
pr.proname AS name,
|
||||
nsp.nspname AS nspname,
|
||||
'{{ func_type }}' AS object_type,
|
||||
'{{ icon }}' AS icon
|
||||
FROM
|
||||
pg_proc pr
|
||||
JOIN pg_namespace nsp ON nsp.oid=pr.pronamespace
|
||||
JOIN pg_type typ ON typ.oid=prorettype
|
||||
JOIN pg_namespace typns ON typns.oid=typ.typnamespace
|
||||
JOIN pg_language lng ON lng.oid=prolang
|
||||
LEFT OUTER JOIN pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
|
||||
pg_catalog.pg_proc pr
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=pr.pronamespace
|
||||
JOIN pg_catalog.pg_type typ ON typ.oid=prorettype
|
||||
JOIN pg_catalog.pg_namespace typns ON typns.oid=typ.typnamespace
|
||||
JOIN pg_catalog.pg_language lng ON lng.oid=prolang
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
|
||||
WHERE
|
||||
pronamespace = {{ node_id }}::oid
|
||||
AND typname {{ 'NOT' if type != 'trigger_function' else '' }} IN ('trigger', 'event_trigger')
|
||||
|
||||
@@ -6,8 +6,8 @@ SELECT
|
||||
'Foreign Table' AS object_type,
|
||||
'icon-coll-foreign_table' AS icon
|
||||
FROM
|
||||
pg_class rel
|
||||
JOIN pg_namespace nsp ON nsp.oid=rel.relnamespace
|
||||
pg_catalog.pg_class rel
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=rel.relnamespace
|
||||
|
||||
WHERE
|
||||
rel.relkind IN ('f') AND rel.relnamespace = {{ node_id }}::oid
|
||||
|
||||
@@ -4,18 +4,18 @@
|
||||
{% set icon = 'icon-function' if type == 'function' else 'icon-trigger_function' %}
|
||||
SELECT
|
||||
pr.oid,
|
||||
pg_get_function_identity_arguments(pr.oid) AS proargs,
|
||||
pg_catalog.pg_get_function_identity_arguments(pr.oid) AS proargs,
|
||||
pr.proname AS name,
|
||||
nsp.nspname AS nspname,
|
||||
'{{ func_type }}' AS object_type,
|
||||
'{{ icon }}' AS icon
|
||||
FROM
|
||||
pg_proc pr
|
||||
JOIN pg_namespace nsp ON nsp.oid=pr.pronamespace
|
||||
JOIN pg_type typ ON typ.oid=prorettype
|
||||
JOIN pg_namespace typns ON typns.oid=typ.typnamespace
|
||||
JOIN pg_language lng ON lng.oid=prolang
|
||||
LEFT OUTER JOIN pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
|
||||
pg_catalog.pg_proc pr
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=pr.pronamespace
|
||||
JOIN pg_catalog.pg_type typ ON typ.oid=prorettype
|
||||
JOIN pg_catalog.pg_namespace typns ON typns.oid=typ.typnamespace
|
||||
JOIN pg_catalog.pg_language lng ON lng.oid=prolang
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
|
||||
WHERE
|
||||
proisagg = FALSE AND pronamespace = {{ node_id }}::oid
|
||||
AND typname {{ 'NOT' if type != 'trigger_function' else '' }} IN ('trigger', 'event_trigger')
|
||||
|
||||
@@ -4,7 +4,7 @@ SELECT
|
||||
nsp.oid,
|
||||
nsp.nspname as name
|
||||
FROM
|
||||
pg_namespace nsp
|
||||
pg_catalog.pg_namespace nsp
|
||||
WHERE
|
||||
{% if nspid %}
|
||||
nsp.oid={{nspid}}::oid AND
|
||||
|
||||
@@ -6,9 +6,9 @@ SELECT
|
||||
'Sequence' AS object_type,
|
||||
'icon-sequence' AS icon
|
||||
FROM
|
||||
pg_class cl
|
||||
JOIN pg_namespace nsp ON nsp.oid=cl.relnamespace
|
||||
LEFT OUTER JOIN pg_description des ON (des.objoid=cl.oid AND des.classoid='pg_class'::regclass)
|
||||
pg_catalog.pg_class cl
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=cl.relnamespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=cl.oid AND des.classoid='pg_class'::regclass)
|
||||
WHERE
|
||||
relkind = 'S' AND relnamespace = {{ node_id }}::oid
|
||||
ORDER BY
|
||||
|
||||
@@ -6,13 +6,13 @@ SELECT
|
||||
'Table' AS object_type,
|
||||
'icon-table' AS icon
|
||||
FROM
|
||||
pg_class rel
|
||||
JOIN pg_namespace nsp ON nsp.oid=rel.relnamespace
|
||||
LEFT OUTER JOIN pg_tablespace spc ON spc.oid=rel.reltablespace
|
||||
LEFT OUTER JOIN pg_description des ON (des.objoid=rel.oid AND des.objsubid=0 AND des.classoid='pg_class'::regclass)
|
||||
LEFT OUTER JOIN pg_constraint con ON con.conrelid=rel.oid AND con.contype='p'
|
||||
LEFT OUTER JOIN pg_class tst ON tst.oid = rel.reltoastrelid
|
||||
LEFT JOIN pg_type typ ON rel.reloftype=typ.oid
|
||||
pg_catalog.pg_class rel
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=rel.relnamespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_tablespace spc ON spc.oid=rel.reltablespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=rel.oid AND des.objsubid=0 AND des.classoid='pg_class'::regclass)
|
||||
LEFT OUTER JOIN pg_catalog.pg_constraint con ON con.conrelid=rel.oid AND con.contype='p'
|
||||
LEFT OUTER JOIN pg_catalog.pg_class tst ON tst.oid = rel.reltoastrelid
|
||||
LEFT JOIN pg_catalog.pg_type typ ON rel.reloftype=typ.oid
|
||||
WHERE
|
||||
rel.relkind IN ('r','s','t') AND rel.relnamespace = {{ node_id }}::oid
|
||||
ORDER BY
|
||||
|
||||
@@ -7,17 +7,17 @@ SELECT
|
||||
'{{ ntype }}' AS object_type,
|
||||
'icon-view' AS icon
|
||||
FROM
|
||||
pg_class c
|
||||
JOIN pg_namespace nsp ON nsp.oid=c.relnamespace
|
||||
LEFT OUTER JOIN pg_tablespace spc ON spc.oid=c.reltablespace
|
||||
LEFT OUTER JOIN pg_description des ON (des.objoid=c.oid and des.objsubid=0 AND des.classoid='pg_class'::regclass)
|
||||
LEFT OUTER JOIN pg_class tst ON tst.oid = c.reltoastrelid
|
||||
pg_catalog.pg_class c
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=c.relnamespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_tablespace spc ON spc.oid=c.reltablespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=c.oid and des.objsubid=0 AND des.classoid='pg_class'::regclass)
|
||||
LEFT OUTER JOIN pg_catalog.pg_class tst ON tst.oid = c.reltoastrelid
|
||||
WHERE
|
||||
((c.relhasrules AND (EXISTS (
|
||||
SELECT
|
||||
r.rulename
|
||||
FROM
|
||||
pg_rewrite r
|
||||
pg_catalog.pg_rewrite r
|
||||
WHERE
|
||||
((r.ev_class = c.oid)
|
||||
AND (bpchar(r.ev_type) = '1'::bpchar))
|
||||
|
||||
@@ -6,13 +6,13 @@ SELECT
|
||||
'Table' AS object_type,
|
||||
CASE WHEN (rel.relkind = 'p' OR rel.relispartition) THEN 'icon-partition' ELSE 'icon-table' END AS icon
|
||||
FROM
|
||||
pg_class rel
|
||||
JOIN pg_namespace nsp ON nsp.oid=rel.relnamespace
|
||||
LEFT OUTER JOIN pg_tablespace spc ON spc.oid=rel.reltablespace
|
||||
LEFT OUTER JOIN pg_description des ON (des.objoid=rel.oid AND des.objsubid=0 AND des.classoid='pg_class'::regclass)
|
||||
LEFT OUTER JOIN pg_constraint con ON con.conrelid=rel.oid AND con.contype='p'
|
||||
LEFT OUTER JOIN pg_class tst ON tst.oid = rel.reltoastrelid
|
||||
LEFT JOIN pg_type typ ON rel.reloftype=typ.oid
|
||||
pg_catalog.pg_class rel
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=rel.relnamespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_tablespace spc ON spc.oid=rel.reltablespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=rel.oid AND des.objsubid=0 AND des.classoid='pg_class'::regclass)
|
||||
LEFT OUTER JOIN pg_catalog.pg_constraint con ON con.conrelid=rel.oid AND con.contype='p'
|
||||
LEFT OUTER JOIN pg_catalog.pg_class tst ON tst.oid = rel.reltoastrelid
|
||||
LEFT JOIN pg_catalog.pg_type typ ON rel.reloftype=typ.oid
|
||||
WHERE
|
||||
rel.relkind IN ('r','s','t','p') AND rel.relnamespace = {{ node_id }}::oid
|
||||
ORDER BY
|
||||
|
||||
@@ -5,18 +5,18 @@
|
||||
{% set kind = 'p' if type == 'procedure' else 'f' %}
|
||||
SELECT
|
||||
pr.oid,
|
||||
pg_get_function_identity_arguments(pr.oid) AS proargs,
|
||||
pg_catalog.pg_get_function_identity_arguments(pr.oid) AS proargs,
|
||||
pr.proname AS name,
|
||||
nsp.nspname AS nspname,
|
||||
'{{ func_type }}' AS object_type,
|
||||
'{{ icon }}' AS icon
|
||||
FROM
|
||||
pg_proc pr
|
||||
JOIN pg_namespace nsp ON nsp.oid=pr.pronamespace
|
||||
JOIN pg_type typ ON typ.oid=prorettype
|
||||
JOIN pg_namespace typns ON typns.oid=typ.typnamespace
|
||||
JOIN pg_language lng ON lng.oid=prolang
|
||||
LEFT OUTER JOIN pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
|
||||
pg_catalog.pg_proc pr
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=pr.pronamespace
|
||||
JOIN pg_catalog.pg_type typ ON typ.oid=prorettype
|
||||
JOIN pg_catalog.pg_namespace typns ON typns.oid=typ.typnamespace
|
||||
JOIN pg_catalog.pg_language lng ON lng.oid=prolang
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
|
||||
WHERE
|
||||
pronamespace = {{ node_id }}::oid
|
||||
AND typname {{ 'NOT' if type != 'trigger_function' else '' }} IN ('trigger', 'event_trigger')
|
||||
|
||||
@@ -6,8 +6,8 @@ SELECT
|
||||
'Foreign Table' AS object_type,
|
||||
'icon-coll-foreign_table' AS icon
|
||||
FROM
|
||||
pg_class rel
|
||||
JOIN pg_namespace nsp ON nsp.oid=rel.relnamespace
|
||||
pg_catalog.pg_class rel
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=rel.relnamespace
|
||||
|
||||
WHERE
|
||||
rel.relkind IN ('f') AND rel.relnamespace = {{ node_id }}::oid
|
||||
|
||||
@@ -4,18 +4,18 @@
|
||||
{% set icon = 'icon-function' if type == 'function' else 'icon-procedure' if type == 'procedure' else 'icon-trigger_function' %}
|
||||
SELECT
|
||||
pr.oid,
|
||||
pg_get_function_identity_arguments(pr.oid) AS proargs,
|
||||
pg_catalog.pg_get_function_identity_arguments(pr.oid) AS proargs,
|
||||
pr.proname AS name,
|
||||
nsp.nspname AS nspname,
|
||||
'{{ func_type }}' AS object_type,
|
||||
'{{ icon }}' AS icon
|
||||
FROM
|
||||
pg_proc pr
|
||||
JOIN pg_namespace nsp ON nsp.oid=pr.pronamespace
|
||||
JOIN pg_type typ ON typ.oid=prorettype
|
||||
JOIN pg_namespace typns ON typns.oid=typ.typnamespace
|
||||
JOIN pg_language lng ON lng.oid=prolang
|
||||
LEFT OUTER JOIN pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
|
||||
pg_catalog.pg_proc pr
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=pr.pronamespace
|
||||
JOIN pg_catalog.pg_type typ ON typ.oid=prorettype
|
||||
JOIN pg_catalog.pg_namespace typns ON typns.oid=typ.typnamespace
|
||||
JOIN pg_catalog.pg_language lng ON lng.oid=prolang
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
|
||||
WHERE
|
||||
proisagg = FALSE AND pronamespace = {{ node_id }}::oid
|
||||
AND typname {{ 'NOT' if type != 'trigger_function' else '' }} IN ('trigger', 'event_trigger')
|
||||
|
||||
@@ -4,7 +4,7 @@ SELECT
|
||||
nsp.oid,
|
||||
nsp.nspname as name
|
||||
FROM
|
||||
pg_namespace nsp
|
||||
pg_catalog.pg_namespace nsp
|
||||
WHERE
|
||||
nsp.nspparent = 0 AND
|
||||
{% if nspid %}
|
||||
|
||||
@@ -6,9 +6,9 @@ SELECT
|
||||
'Sequence' AS object_type,
|
||||
'icon-sequence' AS icon
|
||||
FROM
|
||||
pg_class cl
|
||||
JOIN pg_namespace nsp ON nsp.oid=cl.relnamespace
|
||||
LEFT OUTER JOIN pg_description des ON (des.objoid=cl.oid AND des.classoid='pg_class'::regclass)
|
||||
pg_catalog.pg_class cl
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=cl.relnamespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=cl.oid AND des.classoid='pg_class'::regclass)
|
||||
WHERE
|
||||
relkind = 'S' AND relnamespace = {{ node_id }}::oid
|
||||
ORDER BY
|
||||
|
||||
@@ -6,13 +6,13 @@ SELECT
|
||||
'Table' AS object_type,
|
||||
'icon-table' AS icon
|
||||
FROM
|
||||
pg_class rel
|
||||
JOIN pg_namespace nsp ON nsp.oid=rel.relnamespace
|
||||
LEFT OUTER JOIN pg_tablespace spc ON spc.oid=rel.reltablespace
|
||||
LEFT OUTER JOIN pg_description des ON (des.objoid=rel.oid AND des.objsubid=0 AND des.classoid='pg_class'::regclass)
|
||||
LEFT OUTER JOIN pg_constraint con ON con.conrelid=rel.oid AND con.contype='p'
|
||||
LEFT OUTER JOIN pg_class tst ON tst.oid = rel.reltoastrelid
|
||||
LEFT JOIN pg_type typ ON rel.reloftype=typ.oid
|
||||
pg_catalog.pg_class rel
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=rel.relnamespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_tablespace spc ON spc.oid=rel.reltablespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=rel.oid AND des.objsubid=0 AND des.classoid='pg_class'::regclass)
|
||||
LEFT OUTER JOIN pg_catalog.pg_constraint con ON con.conrelid=rel.oid AND con.contype='p'
|
||||
LEFT OUTER JOIN pg_catalog.pg_class tst ON tst.oid = rel.reltoastrelid
|
||||
LEFT JOIN pg_catalog.pg_type typ ON rel.reloftype=typ.oid
|
||||
WHERE
|
||||
rel.relkind IN ('r','s','t') AND rel.relnamespace = {{ node_id }}::oid
|
||||
ORDER BY
|
||||
|
||||
@@ -8,20 +8,20 @@ SELECT
|
||||
'{{ ntype }}' AS object_type,
|
||||
'{{ view_icon }}' AS icon
|
||||
FROM
|
||||
pg_class c
|
||||
JOIN pg_namespace nsp ON nsp.oid=c.relnamespace
|
||||
LEFT OUTER JOIN pg_tablespace spc ON spc.oid=c.reltablespace
|
||||
LEFT OUTER JOIN pg_description des ON (des.objoid=c.oid and des.objsubid=0 AND des.classoid='pg_class'::regclass)
|
||||
LEFT OUTER JOIN pg_class tst ON tst.oid = c.reltoastrelid
|
||||
pg_catalog.pg_class c
|
||||
JOIN pg_catalog.pg_namespace nsp ON nsp.oid=c.relnamespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_tablespace spc ON spc.oid=c.reltablespace
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=c.oid and des.objsubid=0 AND des.classoid='pg_class'::regclass)
|
||||
LEFT OUTER JOIN pg_catalog.pg_class tst ON tst.oid = c.reltoastrelid
|
||||
WHERE
|
||||
((c.relhasrules AND (EXISTS (
|
||||
SELECT
|
||||
r.rulename
|
||||
FROM
|
||||
pg_rewrite r
|
||||
pg_catalog.pg_rewrite r
|
||||
WHERE
|
||||
((r.ev_class = c.oid)
|
||||
AND (bpchar(r.ev_type) = '1'::bpchar))
|
||||
AND (pg_catalog.bpchar(r.ev_type) = '1'::bpchar))
|
||||
))
|
||||
) AND (c.relkind = '{{ node_type }}'::char)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user