Use schema qualification while accessing the catalog objects. Fixes #3976

This commit is contained in:
Rahul Shirsat
2021-03-09 13:18:45 +05:30
committed by Akshay Joshi
parent 8cf7c41ad9
commit a2be30d257
738 changed files with 5027 additions and 5022 deletions

View File

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

View File

@@ -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')

View File

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

View File

@@ -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')

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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')

View File

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

View File

@@ -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')

View File

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

View File

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

View File

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

View File

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