mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2026-08-17 16:34:44 -05:00
chore: Add pg_catalog schema prefix to catalog table queries (#10004)
This commit is contained in:
@@ -105,7 +105,7 @@ class DBMSJobSchedulerModule(CollectionNodeModule):
|
||||
# Checking whether both 'edb_job_scheduler' and 'dbms_scheduler'
|
||||
# extensions are created or not.
|
||||
status, res = conn.execute_scalar("""
|
||||
SELECT COUNT(*) FROM pg_extension WHERE extname IN (
|
||||
SELECT COUNT(*) FROM pg_catalog.pg_extension WHERE extname IN (
|
||||
'edb_job_scheduler', 'dbms_scheduler') """)
|
||||
if status and int(res) == 2:
|
||||
# Get the list of databases specified for the edb_job_scheduler
|
||||
|
||||
+2
-1
@@ -122,7 +122,8 @@ def is_dbms_job_scheduler_present(self):
|
||||
self.server['port'])
|
||||
pg_cursor = connection.cursor()
|
||||
|
||||
query = """SELECT COUNT(*) FROM pg_extension WHERE extname IN
|
||||
query = """SELECT COUNT(*) FROM pg_catalog.pg_extension
|
||||
WHERE extname IN
|
||||
('edb_job_scheduler', 'dbms_scheduler')"""
|
||||
pg_cursor.execute(query)
|
||||
res = pg_cursor.fetchone()
|
||||
|
||||
@@ -115,7 +115,8 @@ def verify_event_trigger_node(self):
|
||||
pg_cursor = connection.cursor()
|
||||
pg_cursor.execute("SELECT evtenabled,"
|
||||
"evtevent, "
|
||||
"(select rolname from pg_authid where oid "
|
||||
"(select rolname from pg_catalog.pg_authid "
|
||||
"where oid "
|
||||
"= pl.evtowner) as evtowner,"
|
||||
" evtname from pg_catalog.pg_event_trigger pl "
|
||||
"WHERE evtname = '%s'" % self.test_data['name'])
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{# ============= Give foreign server name from foreign server id ============= #}
|
||||
{% if fsid %}
|
||||
SELECT srvname as name FROM pg_foreign_server srv LEFT OUTER JOIN pg_catalog.pg_foreign_data_wrapper fdw on fdw.oid=srvfdw
|
||||
SELECT srvname as name FROM pg_catalog.pg_foreign_server srv LEFT OUTER JOIN pg_catalog.pg_foreign_data_wrapper fdw on fdw.oid=srvfdw
|
||||
WHERE srv.oid={{fsid}}::oid;
|
||||
{% endif %}
|
||||
{# ============= Delete/Drop cascade foreign server ============= #}
|
||||
|
||||
@@ -71,7 +71,8 @@ def verify_language(self):
|
||||
pg_cursor.execute("SELECT * from pg_catalog.pg_language where "
|
||||
"lanname='%s'" % self.data["name"])
|
||||
pg_cursor.execute("select pl.lanname, "
|
||||
"(select rolname from pg_authid where oid "
|
||||
"(select rolname from pg_catalog.pg_authid "
|
||||
"where oid "
|
||||
"= pl.lanowner) as lanowner, "
|
||||
"pl.lanpltrusted, "
|
||||
"( select prosrc from pg_catalog.pg_proc where "
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
SELECT pg_catalog.quote_ident(n.nspname) || '.' || pg_catalog.quote_ident(cls.relname) AS table_name,
|
||||
(SELECT array_agg(attname) FROM pg_attribute att WHERE attrelid = prel.prrelid AND attnum IN (SELECT unnest(prattrs) FROM pg_publication_rel WHERE oid = prel.oid ) ) AS columns,
|
||||
(SELECT array_agg(attname) FROM pg_catalog.pg_attribute att WHERE attrelid = prel.prrelid AND attnum IN (SELECT unnest(prattrs) FROM pg_catalog.pg_publication_rel WHERE oid = prel.oid ) ) AS columns,
|
||||
pg_catalog.pg_get_expr(prel.prqual, prel.prrelid) AS where
|
||||
FROM pg_publication_rel prel
|
||||
JOIN pg_class cls ON cls.oid = prel.prrelid
|
||||
FROM pg_catalog.pg_publication_rel prel
|
||||
JOIN pg_catalog.pg_class cls ON cls.oid = prel.prrelid
|
||||
JOIN pg_catalog.pg_namespace n ON cls.relnamespace = n.oid WHERE prel.prpubid = {{pbid}} :: oid;
|
||||
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
SELECT
|
||||
pg_catalog.quote_ident(attname) as column
|
||||
FROM
|
||||
pg_attribute
|
||||
FROM pg_catalog.pg_attribute
|
||||
WHERE
|
||||
attrelid = '{{ tid }}' :: regclass
|
||||
and attnum > 0;
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
SELECT pg_catalog.quote_ident(n.nspname) || '.' || pg_catalog.quote_ident(cls.relname) AS table_name
|
||||
FROM pg_publication_rel prel
|
||||
JOIN pg_class cls ON cls.oid = prel.prrelid
|
||||
FROM pg_catalog.pg_publication_rel prel
|
||||
JOIN pg_catalog.pg_class cls ON cls.oid = prel.prrelid
|
||||
JOIN pg_catalog.pg_namespace n ON cls.relnamespace = n.oid WHERE prel.prpubid = {{pbid}} :: oid;
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
SELECT pg_catalog.quote_ident(n.nspname) || '.' || pg_catalog.quote_ident(cls.relname) AS table_name,
|
||||
(SELECT array_agg(attname) FROM pg_attribute att WHERE attrelid = prel.prrelid AND attnum IN (SELECT unnest(prattrs) FROM pg_publication_rel WHERE oid = prel.oid ) ) AS columns,
|
||||
(SELECT array_agg(attname) FROM pg_catalog.pg_attribute att WHERE attrelid = prel.prrelid AND attnum IN (SELECT unnest(prattrs) FROM pg_catalog.pg_publication_rel WHERE oid = prel.oid ) ) AS columns,
|
||||
pg_catalog.pg_get_expr(prel.prqual, prel.prrelid) AS where
|
||||
FROM pg_publication_rel prel
|
||||
JOIN pg_class cls ON cls.oid = prel.prrelid
|
||||
FROM pg_catalog.pg_publication_rel prel
|
||||
JOIN pg_catalog.pg_class cls ON cls.oid = prel.prrelid
|
||||
JOIN pg_catalog.pg_namespace n ON cls.relnamespace = n.oid WHERE prel.prpubid = {{pbid}} :: oid;
|
||||
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
SELECT
|
||||
pg_catalog.quote_ident(attname) as column
|
||||
FROM
|
||||
pg_attribute
|
||||
FROM pg_catalog.pg_attribute
|
||||
WHERE
|
||||
attrelid = '{{ tid }}' :: regclass
|
||||
and attnum > 0;
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
SELECT pg_catalog.quote_ident(n.nspname) || '.' || pg_catalog.quote_ident(cls.relname) AS table_name
|
||||
FROM pg_publication_rel prel
|
||||
JOIN pg_class cls ON cls.oid = prel.prrelid
|
||||
FROM pg_catalog.pg_publication_rel prel
|
||||
JOIN pg_catalog.pg_class cls ON cls.oid = prel.prrelid
|
||||
JOIN pg_catalog.pg_namespace n ON cls.relnamespace = n.oid WHERE prel.prpubid = {{pbid}} :: oid;
|
||||
|
||||
+2
-2
@@ -25,13 +25,13 @@ SELECT aggfnoid::oid as oid, proname as name, ns.nspname as schema,
|
||||
op.oprname as sort_oper, aggfinalextra as final_extra_param, aggmfinalextra as moving_final_extra_param,
|
||||
aggtransspace as state_data_size, aggmtransspace as moving_state_data_size,
|
||||
CASE WHEN (tt.typlen = -1 AND tt.typelem != 0) THEN
|
||||
(SELECT at.typname FROM pg_type at WHERE at.oid = tt.typelem) || '[]'
|
||||
(SELECT at.typname FROM pg_catalog.pg_type at WHERE at.oid = tt.typelem) || '[]'
|
||||
ELSE tt.typname END as state_type,
|
||||
CASE WHEN (tf.typlen = -1 AND tf.typelem != 0) THEN
|
||||
(SELECT at.typname FROM pg_catalog.pg_type at WHERE at.oid = tf.typelem) || '[]'
|
||||
ELSE tf.typname END as final_type,
|
||||
CASE WHEN (tm.typlen = -1 AND tm.typelem != 0) THEN
|
||||
(SELECT at.typname FROM pg_type at WHERE at.oid = tm.typelem) || '[]'
|
||||
(SELECT at.typname FROM pg_catalog.pg_type at WHERE at.oid = tm.typelem) || '[]'
|
||||
ELSE tm.typname END as moving_state_type,
|
||||
description
|
||||
FROM pg_catalog.pg_aggregate ag
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ SELECT aggfnoid::oid as oid,
|
||||
proname || '(' || COALESCE(pg_catalog.pg_get_function_arguments(aggfnoid::oid), '') || ')' AS name,
|
||||
pg_catalog.pg_get_userbyid(proowner) AS owner,
|
||||
description
|
||||
FROM pg_aggregate ag
|
||||
FROM pg_catalog.pg_aggregate ag
|
||||
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
|
||||
LEFT OUTER JOIN pg_catalog.pg_type tt on tt.oid=aggtranstype
|
||||
LEFT OUTER JOIN pg_catalog.pg_type tf on tf.oid=prorettype
|
||||
|
||||
+2
-2
@@ -17,13 +17,13 @@ SELECT aggfnoid::oid as oid, proname as name, ns.nspname as schema,
|
||||
op.oprname as sort_oper, aggfinalextra as final_extra_param, aggmfinalextra as moving_final_extra_param,
|
||||
aggtransspace as state_data_size, aggmtransspace as moving_state_data_size,
|
||||
CASE WHEN (tt.typlen = -1 AND tt.typelem != 0) THEN
|
||||
(SELECT at.typname FROM pg_type at WHERE at.oid = tt.typelem) || '[]'
|
||||
(SELECT at.typname FROM pg_catalog.pg_type at WHERE at.oid = tt.typelem) || '[]'
|
||||
ELSE tt.typname END as state_type,
|
||||
CASE WHEN (tf.typlen = -1 AND tf.typelem != 0) THEN
|
||||
(SELECT at.typname FROM pg_catalog.pg_type at WHERE at.oid = tf.typelem) || '[]'
|
||||
ELSE tf.typname END as final_type,
|
||||
CASE WHEN (tm.typlen = -1 AND tm.typelem != 0) THEN
|
||||
(SELECT at.typname FROM pg_type at WHERE at.oid = tm.typelem) || '[]'
|
||||
(SELECT at.typname FROM pg_catalog.pg_type at WHERE at.oid = tm.typelem) || '[]'
|
||||
ELSE tm.typname END as moving_state_type,
|
||||
description
|
||||
FROM pg_catalog.pg_aggregate ag
|
||||
|
||||
+12
-6
@@ -111,8 +111,10 @@ def create_column(server, db_name, schema_name, table_name, col_name,
|
||||
utils.set_isolation_level(connection, old_isolation_level)
|
||||
connection.commit()
|
||||
# Get column position of newly added column
|
||||
pg_cursor.execute("select attnum from pg_attribute where"
|
||||
" attname='%s'" % col_name)
|
||||
pg_cursor.execute(
|
||||
"select attnum from pg_catalog.pg_attribute where attname=%s",
|
||||
(col_name,)
|
||||
)
|
||||
col = pg_cursor.fetchone()
|
||||
col_pos = ''
|
||||
if col:
|
||||
@@ -160,8 +162,10 @@ def create_identity_column(server, db_name, schema_name, table_name,
|
||||
utils.set_isolation_level(connection, old_isolation_level)
|
||||
connection.commit()
|
||||
# Get column position of newly added column
|
||||
pg_cursor.execute("select attnum from pg_attribute where"
|
||||
" attname='%s'" % col_name)
|
||||
pg_cursor.execute(
|
||||
"select attnum from pg_catalog.pg_attribute where attname=%s",
|
||||
(col_name,)
|
||||
)
|
||||
col = pg_cursor.fetchone()
|
||||
col_pos = ''
|
||||
if col:
|
||||
@@ -193,8 +197,10 @@ def verify_column(server, db_name, col_name):
|
||||
server['port'],
|
||||
server['sslmode'])
|
||||
pg_cursor = connection.cursor()
|
||||
pg_cursor.execute("select * from pg_attribute where attname='%s'" %
|
||||
col_name)
|
||||
pg_cursor.execute(
|
||||
"select * from pg_catalog.pg_attribute where attname=%s",
|
||||
(col_name,)
|
||||
)
|
||||
col = pg_cursor.fetchone()
|
||||
connection.close()
|
||||
return col
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@ SELECT
|
||||
pr.pronargdefaults, proconfig, pg_catalog.pg_get_userbyid(proowner) AS funcowner, description,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = pr.oid
|
||||
) AS dependsonextensions,
|
||||
CASE WHEN prosupport = 0::oid THEN ''
|
||||
|
||||
+2
-2
@@ -12,8 +12,8 @@ SELECT
|
||||
pr.pronargdefaults, proconfig, pg_catalog.pg_get_userbyid(proowner) AS funcowner, description,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = pr.oid
|
||||
) AS dependsonextensions,
|
||||
CASE WHEN prosupport = 0::oid THEN ''
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@ SELECT
|
||||
pr.pronargdefaults, proconfig, pg_catalog.pg_get_userbyid(proowner) AS funcowner, description,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = pr.oid
|
||||
) AS dependsonextensions,
|
||||
CASE WHEN prosupport = 0::oid THEN '' ELSE prosupport::text END AS prosupportfunc,
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@ SELECT
|
||||
pr.pronargdefaults, proconfig, pg_catalog.pg_get_userbyid(proowner) AS funcowner, description,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = pr.oid
|
||||
) AS dependsonextensions,
|
||||
pg_catalog.pg_get_function_sqlbody(pr.oid) AS prosrc_sql,
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@ SELECT
|
||||
pr.pronargdefaults, proconfig, pg_catalog.pg_get_userbyid(proowner) AS funcowner, description,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = pr.oid
|
||||
) AS dependsonextensions,
|
||||
(
|
||||
|
||||
+2
-2
@@ -12,8 +12,8 @@ SELECT
|
||||
pr.pronargdefaults, proconfig, pg_catalog.pg_get_userbyid(proowner) AS funcowner, description,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = pr.oid
|
||||
) AS dependsonextensions,
|
||||
(
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@ SELECT
|
||||
pr.pronargdefaults, proconfig, pg_catalog.pg_get_userbyid(proowner) AS funcowner, description,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = pr.oid
|
||||
) AS dependsonextensions,
|
||||
(
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@ SELECT
|
||||
pr.pronargdefaults, proconfig, pg_catalog.pg_get_userbyid(proowner) AS funcowner, description,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = pr.oid
|
||||
) AS dependsonextensions,
|
||||
pg_catalog.pg_get_function_sqlbody(pr.oid) AS prosrc_sql,
|
||||
|
||||
@@ -41,9 +41,10 @@ def create_synonym(server, db_name, schema_name, synonym_name, sequence_name):
|
||||
connection.commit()
|
||||
|
||||
# Get 'oid' from newly created synonym
|
||||
pg_cursor.execute("SELECT s.oid as name FROM"
|
||||
" pg_synonym s WHERE s.synname='%s'" %
|
||||
synonym_name)
|
||||
pg_cursor.execute(
|
||||
"SELECT oid as name FROM pg_catalog.pg_synonym WHERE synname=%s",
|
||||
(synonym_name,)
|
||||
)
|
||||
synonym = pg_cursor.fetchone()
|
||||
connection.close()
|
||||
return synonym[0]
|
||||
@@ -70,8 +71,10 @@ def verify_synonym(server, db_name, synonym_name):
|
||||
server['host'],
|
||||
server['port'])
|
||||
pg_cursor = connection.cursor()
|
||||
pg_cursor.execute("SELECT * FROM pg_synonym WHERE synname='%s'" %
|
||||
synonym_name)
|
||||
pg_cursor.execute(
|
||||
"SELECT * FROM pg_catalog.pg_synonym WHERE synname=%s",
|
||||
(synonym_name,)
|
||||
)
|
||||
synonym = pg_cursor.fetchone()
|
||||
connection.close()
|
||||
return synonym
|
||||
|
||||
+12
-6
@@ -111,8 +111,10 @@ def create_column(server, db_name, schema_name, table_name, col_name,
|
||||
utils.set_isolation_level(connection, old_isolation_level)
|
||||
connection.commit()
|
||||
# Get column position of newly added column
|
||||
pg_cursor.execute("select attnum from pg_attribute where"
|
||||
" attname='%s'" % col_name)
|
||||
pg_cursor.execute(
|
||||
"select attnum from pg_catalog.pg_attribute where attname=%s",
|
||||
(col_name,)
|
||||
)
|
||||
col = pg_cursor.fetchone()
|
||||
col_pos = ''
|
||||
if col:
|
||||
@@ -160,8 +162,10 @@ def create_identity_column(server, db_name, schema_name, table_name,
|
||||
utils.set_isolation_level(connection, old_isolation_level)
|
||||
connection.commit()
|
||||
# Get column position of newly added column
|
||||
pg_cursor.execute("select attnum from pg_attribute where"
|
||||
" attname='%s'" % col_name)
|
||||
pg_cursor.execute(
|
||||
"select attnum from pg_catalog.pg_attribute where attname=%s",
|
||||
(col_name,)
|
||||
)
|
||||
col = pg_cursor.fetchone()
|
||||
col_pos = ''
|
||||
if col:
|
||||
@@ -193,8 +197,10 @@ def verify_column(server, db_name, col_name):
|
||||
server['port'],
|
||||
server['sslmode'])
|
||||
pg_cursor = connection.cursor()
|
||||
pg_cursor.execute("select * from pg_attribute where attname='%s'" %
|
||||
col_name)
|
||||
pg_cursor.execute(
|
||||
"select attnum from pg_catalog.pg_attribute where attname=%s",
|
||||
(col_name,)
|
||||
)
|
||||
col = pg_cursor.fetchone()
|
||||
connection.close()
|
||||
return col
|
||||
|
||||
+2
-1
@@ -32,7 +32,8 @@ class TestColumnForeignKeyGetConstraintCols(BaseTestGenerator):
|
||||
cursor = connection.cursor()
|
||||
cursor.execute("SELECT pg_class.oid as table_id, "
|
||||
"pg_attribute.attnum as column_id "
|
||||
"FROM pg_catalog.pg_class join pg_attribute on "
|
||||
"FROM pg_catalog.pg_class "
|
||||
"join pg_catalog.pg_attribute on "
|
||||
"attrelid=pg_class.oid "
|
||||
"where pg_class.relname='test_table'"
|
||||
" and pg_attribute.attname = 'some_column'")
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ SELECT DISTINCT ON (cls.relname)
|
||||
con.condeferred,
|
||||
am.amname,
|
||||
EXISTS (
|
||||
SELECT 1 FROM pg_inherits inh WHERE inh.inhrelid = cls.oid
|
||||
SELECT 1 FROM pg_catalog.pg_inherits inh WHERE inh.inhrelid = cls.oid
|
||||
) AS is_inherited,
|
||||
substring(array_to_string(cls.reloptions, ',') FROM 'fillfactor=([0-9]*)')::int AS fillfactor,
|
||||
substring(array_to_string(cls.reloptions, ',') FROM 'gin_pending_list_limit=([0-9]*)')::int AS gin_pending_list_limit,
|
||||
|
||||
+3
-3
@@ -32,8 +32,8 @@ SELECT DISTINCT ON (cls.relname)
|
||||
END AS description,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = cls.oid
|
||||
) AS dependsonextensions,
|
||||
pg_catalog.pg_get_expr(idx.indpred, idx.indrelid, true) AS indconstraint,
|
||||
@@ -42,7 +42,7 @@ SELECT DISTINCT ON (cls.relname)
|
||||
con.condeferred,
|
||||
am.amname,
|
||||
EXISTS (
|
||||
SELECT 1 FROM pg_inherits inh WHERE inh.inhrelid = cls.oid
|
||||
SELECT 1 FROM pg_catalog.pg_inherits inh WHERE inh.inhrelid = cls.oid
|
||||
) AS is_inherited,
|
||||
-- Options (with defaults per index type)
|
||||
substring(array_to_string(cls.reloptions, ',') FROM 'fillfactor=([0-9]*)')::int AS fillfactor,
|
||||
|
||||
+3
-3
@@ -33,8 +33,8 @@ SELECT DISTINCT ON (cls.relname)
|
||||
END AS description,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = cls.oid
|
||||
) AS dependsonextensions,
|
||||
pg_catalog.pg_get_expr(idx.indpred, idx.indrelid, true) AS indconstraint,
|
||||
@@ -43,7 +43,7 @@ SELECT DISTINCT ON (cls.relname)
|
||||
con.condeferred,
|
||||
am.amname,
|
||||
EXISTS (
|
||||
SELECT 1 FROM pg_inherits inh WHERE inh.inhrelid = cls.oid
|
||||
SELECT 1 FROM pg_catalog.pg_inherits inh WHERE inh.inhrelid = cls.oid
|
||||
) AS is_inherited,
|
||||
-- Options (with defaults per index type)
|
||||
substring(array_to_string(cls.reloptions, ',') FROM 'fillfactor=([0-9]*)')::int AS fillfactor,
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT ON(cls.relname) cls.oid, cls.relname as name,
|
||||
(SELECT (CASE WHEN count(i.inhrelid) > 0 THEN true ELSE false END) FROM pg_inherits i WHERE i.inhrelid = cls.oid) as is_inherited,
|
||||
(SELECT (CASE WHEN count(i.inhrelid) > 0 THEN true ELSE false END) FROM pg_catalog.pg_inherits i WHERE i.inhrelid = cls.oid) as is_inherited,
|
||||
CASE WHEN contype IN ('p', 'u', 'x') THEN desp.description ELSE des.description END AS description
|
||||
FROM pg_catalog.pg_index idx
|
||||
JOIN pg_catalog.pg_class cls ON cls.oid=indexrelid
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ SELECT DISTINCT ON(cls.relname) cls.oid, cls.relname as name, indrelid, indkey,
|
||||
CASE WHEN contype IN ('p', 'u', 'x') THEN desp.description
|
||||
ELSE des.description END AS description,
|
||||
pg_catalog.pg_get_expr(indpred, indrelid, true) as indconstraint, contype, condeferrable, condeferred, amname,
|
||||
(SELECT (CASE WHEN count(i.inhrelid) > 0 THEN true ELSE false END) FROM pg_inherits i WHERE i.inhrelid = cls.oid) as is_inherited,
|
||||
(SELECT (CASE WHEN count(i.inhrelid) > 0 THEN true ELSE false END) FROM pg_catalog.pg_inherits i WHERE i.inhrelid = cls.oid) as is_inherited,
|
||||
substring(pg_catalog.array_to_string(cls.reloptions, ',') from 'fillfactor=([0-9]*)') AS fillfactor
|
||||
{% if datlastsysoid %}, (CASE WHEN cls.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_idx {% endif %}
|
||||
FROM pg_catalog.pg_index idx
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
SELECT (PG_CATALOG.CONCAT(PG_CATALOG.QUOTE_IDENT(nspc.nspname),'.',PG_CATALOG.QUOTE_IDENT(PGCOL.COLLNAME))) AS collationame
|
||||
FROM PG_PARTITIONED_TABLE PARTT
|
||||
FROM pg_catalog.PG_PARTITIONED_TABLE PARTT
|
||||
LEFT OUTER JOIN PG_CATALOG.PG_COLLATION PGCOL
|
||||
ON PGCOL.OID = 950
|
||||
LEFT OUTER JOIN PG_CATALOG.PG_NAMESPACE NSPC
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
SELECT cl.oid as value, pg_catalog.quote_ident(nspname)||'.'||pg_catalog.quote_ident(relname) AS label
|
||||
FROM pg_catalog.pg_namespace nsp, pg_class cl
|
||||
FROM pg_catalog.pg_namespace nsp, pg_catalog.pg_class cl
|
||||
WHERE relnamespace=nsp.oid AND relkind in ('r', 'p')
|
||||
AND nsp.nspname NOT LIKE E'pg\_temp\_%'
|
||||
{% if not show_sysobj %}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
SELECT cl.oid as value, pg_catalog.quote_ident(nspname)||'.'||pg_catalog.quote_ident(relname) AS label
|
||||
FROM pg_catalog.pg_namespace nsp, pg_class cl
|
||||
FROM pg_catalog.pg_namespace nsp, pg_catalog.pg_class cl
|
||||
WHERE relnamespace=nsp.oid AND relkind='r'
|
||||
AND nsp.nspname NOT LIKE E'pg\_temp\_%'
|
||||
{% if not show_sysobj %}
|
||||
|
||||
+2
-1
@@ -28,7 +28,8 @@ class TestColumnAclSql(SQLTemplateTestBase):
|
||||
def test_setup(self, connection, cursor):
|
||||
cursor.execute("SELECT pg_class.oid AS table_id, "
|
||||
"pg_attribute.attnum AS column_id "
|
||||
"FROM pg_catalog.pg_class JOIN pg_attribute ON "
|
||||
"FROM pg_catalog.pg_class "
|
||||
"JOIN pg_catalog.pg_attribute ON "
|
||||
"attrelid=pg_class.oid "
|
||||
"WHERE pg_class.relname='test_table'"
|
||||
" AND pg_attribute.attname = 'some_column'")
|
||||
|
||||
+2
-1
@@ -28,7 +28,8 @@ class TestTriggerGetOidSql(SQLTemplateTestBase):
|
||||
def test_setup(self, connection, cursor):
|
||||
cursor.execute("SELECT pg_class.oid AS table_id, "
|
||||
"pg_attribute.attnum AS column_id "
|
||||
"FROM pg_catalog.pg_class JOIN pg_attribute ON "
|
||||
"FROM pg_catalog.pg_class "
|
||||
"JOIN pg_catalog.pg_attribute ON "
|
||||
"attrelid=pg_class.oid "
|
||||
"WHERE pg_class.relname='test_table'"
|
||||
" AND pg_attribute.attname = 'some_column'")
|
||||
|
||||
@@ -610,7 +610,8 @@ def create_postgis_extension(self):
|
||||
self.server['sslmode'])
|
||||
pg_cursor = connection.cursor()
|
||||
# Check if postgis extension is available to install
|
||||
pg_cursor.execute('''SELECT COUNT(*) FROM pg_available_extensions WHERE
|
||||
pg_cursor.execute('''SELECT COUNT(*) FROM
|
||||
pg_catalog.pg_available_extensions WHERE
|
||||
name ='postgis' ''')
|
||||
res = pg_cursor.fetchone()
|
||||
if res and len(res) > 0 and int(res[0]) == 1:
|
||||
|
||||
@@ -1553,7 +1553,7 @@ class TypeView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
"""
|
||||
# For composite type typrelid is required to fetch dependencies.
|
||||
type_where = "WHERE (dep.objid={0}::oid OR dep.objid=(select typrelid \
|
||||
from pg_type where oid = {0}::oid))".format(tid)
|
||||
from pg_catalog.pg_type where oid = {0}::oid))".format(tid)
|
||||
dependencies_result = self.get_dependencies(
|
||||
self.conn, tid, where=type_where
|
||||
)
|
||||
|
||||
+8
-8
@@ -6,21 +6,21 @@ SELECT t.oid, t.typname AS name,
|
||||
t.typrelid, t.typelem, t.typarray, t.typalign, t.typstorage,
|
||||
t.typnotnull, t.typbasetype, t.typtypmod, t.typndims,
|
||||
t.typcollation, t.typdefaultbin, t.typdefault,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typinput::oid) AS typinput,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typoutput::oid) AS typoutput,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typreceive::oid) AS typreceive,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typsend::oid) AS typsend,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typmodin::oid) AS typmodin,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typmodout::oid) AS typmodout,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typanalyze::oid) AS typanalyze,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typsubscript::oid) AS typsubscript,
|
||||
pg_catalog.format_type(t.oid, null) AS alias,
|
||||
pg_catalog.pg_get_userbyid(t.typowner) as typeowner, e.typname as element,
|
||||
|
||||
+7
-7
@@ -6,19 +6,19 @@ SELECT t.oid, t.typname AS name,
|
||||
t.typrelid, t.typelem, t.typarray, t.typalign, t.typstorage,
|
||||
t.typnotnull, t.typbasetype, t.typtypmod, t.typndims,
|
||||
t.typcollation, t.typdefaultbin, t.typdefault,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typinput::oid) AS typinput,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typoutput::oid) AS typoutput,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typreceive::oid) AS typreceive,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typsend::oid) AS typsend,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typmodin::oid) AS typmodin,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typmodout::oid) AS typmodout,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typanalyze::oid) AS typanalyze,
|
||||
pg_catalog.format_type(t.oid, null) AS alias,
|
||||
pg_catalog.pg_get_userbyid(t.typowner) as typeowner, e.typname as element,
|
||||
|
||||
+8
-8
@@ -6,21 +6,21 @@ SELECT t.oid, t.typname AS name,
|
||||
t.typrelid, t.typelem, t.typarray, t.typalign, t.typstorage,
|
||||
t.typnotnull, t.typbasetype, t.typtypmod, t.typndims,
|
||||
t.typcollation, t.typdefaultbin, t.typdefault,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typinput::oid) AS typinput,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typoutput::oid) AS typoutput,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typreceive::oid) AS typreceive,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typsend::oid) AS typsend,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typmodin::oid) AS typmodin,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typmodout::oid) AS typmodout,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typanalyze::oid) AS typanalyze,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typsubscript::oid) AS typsubscript,
|
||||
pg_catalog.format_type(t.oid, null) AS alias,
|
||||
pg_catalog.pg_get_userbyid(t.typowner) as typeowner, e.typname as element,
|
||||
|
||||
+7
-7
@@ -6,19 +6,19 @@ SELECT t.oid, t.typname AS name,
|
||||
t.typrelid, t.typelem, t.typarray, t.typalign, t.typstorage,
|
||||
t.typnotnull, t.typbasetype, t.typtypmod, t.typndims,
|
||||
t.typcollation, t.typdefaultbin, t.typdefault,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typinput::oid) AS typinput,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typoutput::oid) AS typoutput,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typreceive::oid) AS typreceive,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typsend::oid) AS typsend,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typmodin::oid) AS typmodin,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typmodout::oid) AS typmodout,
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_proc pr JOIN pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
(SELECT pg_catalog.concat(nspname, '.', proname,'') FROM pg_catalog.pg_proc pr JOIN pg_catalog.pg_namespace nsp ON pr.pronamespace = nsp.oid
|
||||
WHERE pr.oid = t.typanalyze::oid) AS typanalyze,
|
||||
pg_catalog.format_type(t.oid, null) AS alias,
|
||||
pg_catalog.pg_get_userbyid(t.typowner) as typeowner, e.typname as element,
|
||||
|
||||
+2
-2
@@ -19,8 +19,8 @@ SELECT
|
||||
description AS comment,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = c.oid
|
||||
) AS dependsonextensions,
|
||||
pg_catalog.pg_get_viewdef(c.oid, true) AS definition,
|
||||
|
||||
+2
-2
@@ -19,8 +19,8 @@ SELECT
|
||||
description AS comment,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = c.oid
|
||||
) AS dependsonextensions,
|
||||
pg_catalog.pg_get_viewdef(c.oid, true) AS definition,
|
||||
|
||||
+2
-2
@@ -19,8 +19,8 @@ SELECT
|
||||
description AS comment,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = c.oid
|
||||
) AS dependsonextensions,
|
||||
pg_catalog.pg_get_viewdef(c.oid) AS definition,
|
||||
|
||||
+2
-2
@@ -19,8 +19,8 @@ SELECT
|
||||
description AS comment,
|
||||
(
|
||||
SELECT array_agg(DISTINCT e.extname)
|
||||
FROM pg_depend d
|
||||
JOIN pg_extension e ON d.refobjid = e.oid
|
||||
FROM pg_catalog.pg_depend d
|
||||
JOIN pg_catalog.pg_extension e ON d.refobjid = e.oid
|
||||
WHERE d.objid = c.oid
|
||||
) AS dependsonextensions,
|
||||
pg_catalog.pg_get_viewdef(c.oid) AS definition,
|
||||
|
||||
+5
-5
@@ -159,7 +159,7 @@
|
||||
"url": "/browser/view/obj/",
|
||||
"is_positive_test": true,
|
||||
"inventory_data": {
|
||||
"query": "\"CREATE OR REPLACE VIEW %s.%s AS SELECT CASE WHEN (pg_db.datistemplate = false AND pg_db.datallowconn = true AND (pg_db.datconnlimit = -1 OR pg_db.datacl is null)) then true else false end as res FROM pg_database pg_db; ALTER TABLE %s.%s OWNER TO %s\" % (schema_name, view_name, schema_name, view_name, server['username'])"
|
||||
"query": "\"CREATE OR REPLACE VIEW %s.%s AS SELECT CASE WHEN (pg_db.datistemplate = false AND pg_db.datallowconn = true AND (pg_db.datconnlimit = -1 OR pg_db.datacl is null)) then true else false end as res FROM pg_catalog.pg_database pg_db; ALTER TABLE %s.%s OWNER TO %s\" % (schema_name, view_name, schema_name, view_name, server['username'])"
|
||||
},
|
||||
"test_data": {
|
||||
"server_max_version": 159999,
|
||||
@@ -182,7 +182,7 @@
|
||||
"url": "/browser/view/obj/",
|
||||
"is_positive_test": true,
|
||||
"inventory_data": {
|
||||
"query": "\"CREATE OR REPLACE VIEW %s.%s AS SELECT CASE WHEN (pg_db.datistemplate = false AND pg_db.datallowconn = true AND (pg_db.datconnlimit = -1 OR pg_db.datacl is null)) then true else false end as res FROM pg_database pg_db; ALTER TABLE %s.%s OWNER TO %s\" % (schema_name, view_name, schema_name, view_name, server['username'])"
|
||||
"query": "\"CREATE OR REPLACE VIEW %s.%s AS SELECT CASE WHEN (pg_db.datistemplate = false AND pg_db.datallowconn = true AND (pg_db.datconnlimit = -1 OR pg_db.datacl is null)) then true else false end as res FROM pg_catalog.pg_database pg_db; ALTER TABLE %s.%s OWNER TO %s\" % (schema_name, view_name, schema_name, view_name, server['username'])"
|
||||
},
|
||||
"test_data": {
|
||||
"server_min_version": 160000,
|
||||
@@ -485,7 +485,7 @@
|
||||
"url": "/browser/view/nodes/",
|
||||
"is_positive_test": true,
|
||||
"inventory_data": {
|
||||
"query": "\"CREATE OR REPLACE VIEW %s.%s AS SELECT CASE WHEN (pg_db.datistemplate = false AND pg_db.datallowconn = true AND (pg_db.datconnlimit = -1 OR pg_db.datacl is null)) then true else false end as res FROM pg_database pg_db; ALTER TABLE %s.%s OWNER TO %s\" % (schema_name, view_name, schema_name, view_name, server['username'])"
|
||||
"query": "\"CREATE OR REPLACE VIEW %s.%s AS SELECT CASE WHEN (pg_db.datistemplate = false AND pg_db.datallowconn = true AND (pg_db.datconnlimit = -1 OR pg_db.datacl is null)) then true else false end as res FROM pg_catalog.pg_database pg_db; ALTER TABLE %s.%s OWNER TO %s\" % (schema_name, view_name, schema_name, view_name, server['username'])"
|
||||
},
|
||||
"test_data": {},
|
||||
"mocking_required": false,
|
||||
@@ -616,7 +616,7 @@
|
||||
"url": "/browser/view/",
|
||||
"is_positive_test": true,
|
||||
"inventory_data": {
|
||||
"query": "\"CREATE OR REPLACE VIEW %s.%s AS SELECT CASE WHEN (pg_db.datistemplate = false AND pg_db.datallowconn = true AND (pg_db.datconnlimit = -1 OR pg_db.datacl is null)) then true else false end as res FROM pg_database pg_db; ALTER TABLE %s.%s OWNER TO %s\" % (schema_name, view_name, schema_name, view_name, server['username'])"
|
||||
"query": "\"CREATE OR REPLACE VIEW %s.%s AS SELECT CASE WHEN (pg_db.datistemplate = false AND pg_db.datallowconn = true AND (pg_db.datconnlimit = -1 OR pg_db.datacl is null)) then true else false end as res FROM pg_catalog.pg_database pg_db; ALTER TABLE %s.%s OWNER TO %s\" % (schema_name, view_name, schema_name, view_name, server['username'])"
|
||||
},
|
||||
"test_data": {},
|
||||
"mocking_required": false,
|
||||
@@ -687,7 +687,7 @@
|
||||
"url": "/browser/view/sql/",
|
||||
"is_positive_test": true,
|
||||
"inventory_data": {
|
||||
"query": "\"CREATE OR REPLACE VIEW %s.%s AS SELECT CASE WHEN (pg_db.datistemplate = false AND pg_db.datallowconn = true AND (pg_db.datconnlimit = -1 OR pg_db.datacl is null)) then true else false end as res FROM pg_database pg_db; ALTER TABLE %s.%s OWNER TO %s\" % (schema_name, view_name, schema_name, view_name, server['username'])"
|
||||
"query": "\"CREATE OR REPLACE VIEW %s.%s AS SELECT CASE WHEN (pg_db.datistemplate = false AND pg_db.datallowconn = true AND (pg_db.datconnlimit = -1 OR pg_db.datacl is null)) then true else false end as res FROM pg_catalog.pg_database pg_db; ALTER TABLE %s.%s OWNER TO %s\" % (schema_name, view_name, schema_name, view_name, server['username'])"
|
||||
},
|
||||
"test_data": {},
|
||||
"mocking_required": false,
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ SELECT
|
||||
stat.last_msg_receipt_time AS {{ conn|qtIdent(_('Last message receipt')) }},
|
||||
stat.last_msg_send_time AS {{ conn|qtIdent(_('Last message send time'))}}
|
||||
FROM pg_catalog.pg_stat_subscription stat
|
||||
LEFT JOIN pg_subscription sub ON sub.subname = stat.subname
|
||||
LEFT JOIN pg_catalog.pg_subscription sub ON sub.subname = stat.subname
|
||||
{% if subid %}
|
||||
WHERE stat.subid = {{ subid }};
|
||||
{% else %}
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
SELECT colliculocale from pg_collation where collprovider = 'i'
|
||||
SELECT colliculocale from pg_catalog.pg_collation where collprovider = 'i'
|
||||
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
SELECT CASE WHEN datlocprovider = 'i' THEN
|
||||
(SELECT daticulocale as cname FROM pg_database WHERE datname = current_database())
|
||||
(SELECT daticulocale as cname FROM pg_catalog.pg_database WHERE datname = current_database())
|
||||
ELSE
|
||||
(SELECT datcollate as cname FROM pg_database WHERE datname = current_database()
|
||||
(SELECT datcollate as cname FROM pg_catalog.pg_database WHERE datname = current_database()
|
||||
UNION
|
||||
SELECT datctype as cname FROM pg_database WHERE datname = current_database())
|
||||
SELECT datctype as cname FROM pg_catalog.pg_database WHERE datname = current_database())
|
||||
END
|
||||
FROM pg_database WHERE datname = current_database();
|
||||
FROM pg_catalog.pg_database WHERE datname = current_database();
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
SELECT colllocale as collbuiltinlocale from pg_collation where collprovider = 'b';
|
||||
SELECT colllocale as collbuiltinlocale from pg_catalog.pg_collation where collprovider = 'b';
|
||||
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
SELECT CASE WHEN datlocprovider = 'i' THEN
|
||||
(SELECT datlocale as cname FROM pg_database WHERE datname = current_database())
|
||||
(SELECT datlocale as cname FROM pg_catalog.pg_database WHERE datname = current_database())
|
||||
ELSE
|
||||
(SELECT datcollate as cname FROM pg_database WHERE datname = current_database()
|
||||
(SELECT datcollate as cname FROM pg_catalog.pg_database WHERE datname = current_database()
|
||||
UNION
|
||||
SELECT datctype as cname FROM pg_database WHERE datname = current_database())
|
||||
SELECT datctype as cname FROM pg_catalog.pg_database WHERE datname = current_database())
|
||||
END
|
||||
FROM pg_database WHERE datname = current_database();
|
||||
FROM pg_catalog.pg_database WHERE datname = current_database();
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
SELECT colllocale as colliculocale from pg_collation where collprovider = 'i'
|
||||
SELECT colllocale as colliculocale from pg_catalog.pg_collation where collprovider = 'i'
|
||||
|
||||
@@ -112,8 +112,10 @@ def create_superuser_role(server, role_name):
|
||||
utils.set_isolation_level(connection, old_isolation_level)
|
||||
connection.commit()
|
||||
# Get oid of newly created directory
|
||||
pg_cursor.execute("SELECT usename FROM pg_user WHERE "
|
||||
" usename='%s'" % role_name)
|
||||
pg_cursor.execute(
|
||||
"SELECT usename FROM pg_catalog.pg_user WHERE usename=%s",
|
||||
(role_name,)
|
||||
)
|
||||
user_role = pg_cursor.fetchone()
|
||||
role_username = user_role[0]
|
||||
connection.close()
|
||||
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
SELECT count(*)
|
||||
FROM pg_stat_replication
|
||||
FROM pg_catalog.pg_stat_replication
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
SELECT pid, 'Standby ['||COALESCE(host(client_addr), client_hostname, 'Socket')||']' as name
|
||||
FROM pg_stat_replication
|
||||
FROM pg_catalog.pg_stat_replication
|
||||
ORDER BY pid
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
SELECT st.*, 'Standby ['||COALESCE(host(client_addr), client_hostname, 'Socket')||']' as name,
|
||||
sl.slot_name, sl.slot_type, sl.active
|
||||
FROM pg_stat_replication st JOIN pg_replication_slots sl
|
||||
FROM pg_catalog.pg_stat_replication st JOIN pg_catalog.pg_replication_slots sl
|
||||
ON st.pid = sl.active_pid
|
||||
{% if pid %}
|
||||
WHERE st.pid={{pid}}
|
||||
|
||||
+2
-2
@@ -15,8 +15,8 @@ SELECT
|
||||
SELECT
|
||||
CASE WHEN pg.admin_option THEN '1' ELSE '0' END || pg.usename
|
||||
FROM
|
||||
(SELECT pg_roles.rolname AS usename, pg_auth_members.admin_option AS admin_option FROM pg_roles
|
||||
JOIN pg_auth_members ON pg_roles.oid=pg_auth_members.member AND pg_auth_members.roleid={{ rid|qtLiteral(conn) }}::oid) pg
|
||||
(SELECT pg_roles.rolname AS usename, pg_auth_members.admin_option AS admin_option FROM pg_catalog.pg_roles
|
||||
JOIN pg_catalog.pg_auth_members ON pg_roles.oid=pg_auth_members.member AND pg_auth_members.roleid={{ rid|qtLiteral(conn) }}::oid) pg
|
||||
) rolmembers
|
||||
{% endif %}
|
||||
FROM
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
SELECT CASE
|
||||
WHEN (SELECT count(extname) FROM pg_catalog.pg_extension WHERE extname='bdr') > 0
|
||||
THEN 'pgd'
|
||||
WHEN (SELECT COUNT(*) FROM pg_replication_slots) > 0
|
||||
WHEN (SELECT COUNT(*) FROM pg_catalog.pg_replication_slots) > 0
|
||||
THEN 'log'
|
||||
ELSE NULL
|
||||
END as type;
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
"url": "/browser/server/obj/",
|
||||
"is_positive_test": true,
|
||||
"test_data": {
|
||||
"db_res": "SELECT datname FROM pg_database\nWHERE datistemplate = false AND datname ILIKE '%myprefix_%'\nORDER BY datname"
|
||||
"db_res": "SELECT datname FROM pg_catalog.pg_database\nWHERE datistemplate = false AND datname ILIKE '%myprefix_%'\nORDER BY datname"
|
||||
},
|
||||
"mocking_required": false,
|
||||
"mock_data": {},
|
||||
|
||||
@@ -698,7 +698,10 @@ def terminate_session(sid=None, did=None, pid=None):
|
||||
@pga_login_required
|
||||
@check_precondition
|
||||
def check_system_statistics(sid=None, did=None):
|
||||
sql = "SELECT * FROM pg_extension WHERE extname = 'system_stats';"
|
||||
sql = (
|
||||
"SELECT * FROM pg_catalog.pg_extension "
|
||||
"WHERE extname = 'system_stats';"
|
||||
)
|
||||
status, res = g.conn.execute_scalar(sql)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
@@ -1 +1 @@
|
||||
select * from pg_replication_slots
|
||||
select * from pg_catalog.pg_replication_slots
|
||||
|
||||
@@ -1 +1 @@
|
||||
select * from pg_stat_replication
|
||||
select * from pg_catalog.pg_stat_replication
|
||||
|
||||
+18
-10
@@ -1174,7 +1174,7 @@ def _gather_security_config(conn, manager):
|
||||
# Get security-related settings from pg_settings
|
||||
settings_query = """
|
||||
SELECT name, setting, short_desc, context, source
|
||||
FROM pg_settings
|
||||
FROM pg_catalog.pg_settings
|
||||
WHERE name IN (
|
||||
-- Connection settings
|
||||
'listen_addresses', 'port', 'max_connections',
|
||||
@@ -1215,7 +1215,7 @@ def _gather_security_config(conn, manager):
|
||||
hba_query = """
|
||||
SELECT line_number, type, database, user_name, address,
|
||||
netmask, auth_method, options, error
|
||||
FROM pg_hba_file_rules
|
||||
FROM pg_catalog.pg_hba_file_rules
|
||||
ORDER BY line_number
|
||||
"""
|
||||
|
||||
@@ -1231,7 +1231,7 @@ def _gather_security_config(conn, manager):
|
||||
superusers_query = """
|
||||
SELECT rolname, rolcreaterole, rolcreatedb, rolbypassrls,
|
||||
rolconnlimit, rolvaliduntil
|
||||
FROM pg_roles
|
||||
FROM pg_catalog.pg_roles
|
||||
WHERE rolsuper = true
|
||||
ORDER BY rolname
|
||||
"""
|
||||
@@ -1246,7 +1246,7 @@ def _gather_security_config(conn, manager):
|
||||
special_roles_query = """
|
||||
SELECT rolname, rolsuper, rolcreaterole, rolcreatedb,
|
||||
rolreplication, rolbypassrls, rolcanlogin, rolconnlimit
|
||||
FROM pg_roles
|
||||
FROM pg_catalog.pg_roles
|
||||
WHERE (rolcreaterole OR rolcreatedb OR rolreplication OR rolbypassrls)
|
||||
AND NOT rolsuper
|
||||
ORDER BY rolname
|
||||
@@ -1261,7 +1261,7 @@ def _gather_security_config(conn, manager):
|
||||
# Get roles with no password expiry that can login
|
||||
no_expiry_query = """
|
||||
SELECT rolname, rolvaliduntil
|
||||
FROM pg_roles
|
||||
FROM pg_catalog.pg_roles
|
||||
WHERE rolcanlogin = true
|
||||
AND (rolvaliduntil IS NULL OR rolvaliduntil = 'infinity')
|
||||
ORDER BY rolname
|
||||
@@ -1276,7 +1276,7 @@ def _gather_security_config(conn, manager):
|
||||
# Check for loaded extensions
|
||||
extensions_query = """
|
||||
SELECT extname, extversion
|
||||
FROM pg_extension
|
||||
FROM pg_catalog.pg_extension
|
||||
ORDER BY extname
|
||||
"""
|
||||
|
||||
@@ -1459,7 +1459,9 @@ def generate_schema_security_report(sid, did, scid):
|
||||
)
|
||||
|
||||
# Get schema name from scid
|
||||
schema_query = "SELECT nspname FROM pg_namespace WHERE oid = %s"
|
||||
schema_query = (
|
||||
"SELECT nspname FROM pg_catalog.pg_namespace WHERE oid = %s"
|
||||
)
|
||||
status, result = conn.execute_dict(schema_query, [scid])
|
||||
if not status or not result.get('rows'):
|
||||
return make_json_response(
|
||||
@@ -1538,7 +1540,9 @@ def generate_schema_security_report_stream(sid, did, scid):
|
||||
)
|
||||
|
||||
# Get schema name from scid
|
||||
schema_query = "SELECT nspname FROM pg_namespace WHERE oid = %s"
|
||||
schema_query = (
|
||||
"SELECT nspname FROM pg_catalog.pg_namespace WHERE oid = %s"
|
||||
)
|
||||
status, result = conn.execute_dict(schema_query, [scid])
|
||||
if not status or not result.get('rows'):
|
||||
return make_json_response(
|
||||
@@ -1991,7 +1995,9 @@ def generate_schema_design_report(sid, did, scid):
|
||||
)
|
||||
|
||||
# Get schema name from scid
|
||||
schema_query = "SELECT nspname FROM pg_namespace WHERE oid = %s"
|
||||
schema_query = (
|
||||
"SELECT nspname FROM pg_catalog.pg_namespace WHERE oid = %s"
|
||||
)
|
||||
status, result = conn.execute_dict(schema_query, [scid])
|
||||
if not status or not result.get('rows'):
|
||||
return make_json_response(
|
||||
@@ -2070,7 +2076,9 @@ def generate_schema_design_report_stream(sid, did, scid):
|
||||
)
|
||||
|
||||
# Get schema name from scid
|
||||
schema_query = "SELECT nspname FROM pg_namespace WHERE oid = %s"
|
||||
schema_query = (
|
||||
"SELECT nspname FROM pg_catalog.pg_namespace WHERE oid = %s"
|
||||
)
|
||||
status, result = conn.execute_dict(schema_query, [scid])
|
||||
if not status or not result.get('rows'):
|
||||
return make_json_response(
|
||||
|
||||
@@ -51,7 +51,7 @@ def create_query_executor(conn) -> callable:
|
||||
if required_ext:
|
||||
check_sql = """
|
||||
SELECT EXISTS (
|
||||
SELECT 1 FROM pg_extension WHERE extname = %s
|
||||
SELECT 1 FROM pg_catalog.pg_extension WHERE extname = %s
|
||||
) as available
|
||||
"""
|
||||
status, result = conn.execute_dict(check_sql, [required_ext])
|
||||
|
||||
@@ -28,7 +28,7 @@ QUERIES = {
|
||||
'security_settings': {
|
||||
'sql': """
|
||||
SELECT name, setting, short_desc, context, source
|
||||
FROM pg_settings
|
||||
FROM pg_catalog.pg_settings
|
||||
WHERE name IN (
|
||||
'listen_addresses', 'port', 'max_connections',
|
||||
'superuser_reserved_connections',
|
||||
@@ -46,7 +46,7 @@ QUERIES = {
|
||||
'sql': """
|
||||
SELECT line_number, type, database, user_name, address,
|
||||
netmask, auth_method, options, error
|
||||
FROM pg_hba_file_rules
|
||||
FROM pg_catalog.pg_hba_file_rules
|
||||
ORDER BY line_number
|
||||
LIMIT 50
|
||||
""",
|
||||
@@ -58,7 +58,7 @@ QUERIES = {
|
||||
'sql': """
|
||||
SELECT rolname, rolcreaterole, rolcreatedb, rolbypassrls,
|
||||
rolconnlimit, rolvaliduntil
|
||||
FROM pg_roles
|
||||
FROM pg_catalog.pg_roles
|
||||
WHERE rolsuper = true
|
||||
ORDER BY rolname
|
||||
""",
|
||||
@@ -69,7 +69,7 @@ QUERIES = {
|
||||
'sql': """
|
||||
SELECT rolname, rolsuper, rolcreaterole, rolcreatedb,
|
||||
rolreplication, rolbypassrls, rolcanlogin, rolconnlimit
|
||||
FROM pg_roles
|
||||
FROM pg_catalog.pg_roles
|
||||
WHERE (rolcreaterole OR rolcreatedb
|
||||
OR rolreplication OR rolbypassrls)
|
||||
AND NOT rolsuper
|
||||
@@ -82,7 +82,7 @@ QUERIES = {
|
||||
'roles_no_expiry': {
|
||||
'sql': """
|
||||
SELECT rolname, rolvaliduntil
|
||||
FROM pg_roles
|
||||
FROM pg_catalog.pg_roles
|
||||
WHERE rolcanlogin = true
|
||||
AND (rolvaliduntil IS NULL OR rolvaliduntil = 'infinity')
|
||||
ORDER BY rolname
|
||||
@@ -99,7 +99,7 @@ QUERIES = {
|
||||
ARRAY(SELECT b.rolname FROM pg_catalog.pg_auth_members m
|
||||
JOIN pg_catalog.pg_roles b ON m.roleid = b.oid
|
||||
WHERE m.member = r.oid) as member_of
|
||||
FROM pg_roles r
|
||||
FROM pg_catalog.pg_roles r
|
||||
WHERE r.rolcanlogin = true
|
||||
ORDER BY r.rolname
|
||||
LIMIT 30
|
||||
@@ -112,7 +112,7 @@ QUERIES = {
|
||||
'sql': """
|
||||
SELECT datname, pg_catalog.pg_get_userbyid(datdba) as owner,
|
||||
datacl, datconnlimit
|
||||
FROM pg_database
|
||||
FROM pg_catalog.pg_database
|
||||
WHERE datname = current_database()
|
||||
""",
|
||||
'scope': ['database'],
|
||||
@@ -123,7 +123,7 @@ QUERIES = {
|
||||
SELECT n.nspname as schema_name,
|
||||
pg_catalog.pg_get_userbyid(n.nspowner) as owner,
|
||||
n.nspacl as acl
|
||||
FROM pg_namespace n
|
||||
FROM pg_catalog.pg_namespace n
|
||||
WHERE n.nspname NOT IN (
|
||||
'pg_catalog', 'information_schema',
|
||||
'pg_toast')
|
||||
@@ -143,8 +143,8 @@ QUERIES = {
|
||||
c.relacl as acl,
|
||||
c.relrowsecurity as row_security,
|
||||
c.relforcerowsecurity as force_row_security
|
||||
FROM pg_class c
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
FROM pg_catalog.pg_class c
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
|
||||
WHERE c.relkind IN ('r', 'p')
|
||||
AND n.nspname NOT IN (
|
||||
'pg_catalog', 'information_schema',
|
||||
@@ -172,9 +172,9 @@ QUERIES = {
|
||||
pg_catalog.pg_get_expr(
|
||||
pol.polwithcheck, pol.polrelid
|
||||
) as check_expr
|
||||
FROM pg_policy pol
|
||||
JOIN pg_class c ON c.oid = pol.polrelid
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
FROM pg_catalog.pg_policy pol
|
||||
JOIN pg_catalog.pg_class c ON c.oid = pol.polrelid
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
|
||||
WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
|
||||
ORDER BY n.nspname, c.relname, pol.polname
|
||||
LIMIT 30
|
||||
@@ -188,8 +188,8 @@ QUERIES = {
|
||||
c.relname as table_name,
|
||||
c.relrowsecurity as row_security,
|
||||
c.relforcerowsecurity as force_row_security
|
||||
FROM pg_class c
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
FROM pg_catalog.pg_class c
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
|
||||
WHERE c.relrowsecurity = true
|
||||
AND n.nspname NOT IN ('pg_catalog', 'information_schema')
|
||||
ORDER BY n.nspname, c.relname
|
||||
@@ -205,8 +205,8 @@ QUERIES = {
|
||||
p.proname as function_name,
|
||||
pg_catalog.pg_get_userbyid(p.proowner) as owner,
|
||||
p.proacl as acl
|
||||
FROM pg_proc p
|
||||
JOIN pg_namespace n ON n.oid = p.pronamespace
|
||||
FROM pg_catalog.pg_proc p
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
|
||||
WHERE p.prosecdef = true
|
||||
AND n.nspname NOT IN ('pg_catalog', 'information_schema')
|
||||
ORDER BY n.nspname, p.proname
|
||||
@@ -219,7 +219,7 @@ QUERIES = {
|
||||
'logging_settings': {
|
||||
'sql': """
|
||||
SELECT name, setting, short_desc
|
||||
FROM pg_settings
|
||||
FROM pg_catalog.pg_settings
|
||||
WHERE name IN (
|
||||
'log_connections', 'log_disconnections',
|
||||
'log_hostname', 'log_statement', 'log_line_prefix',
|
||||
@@ -235,7 +235,7 @@ QUERIES = {
|
||||
'extensions': {
|
||||
'sql': """
|
||||
SELECT extname, extversion
|
||||
FROM pg_extension
|
||||
FROM pg_catalog.pg_extension
|
||||
ORDER BY extname
|
||||
""",
|
||||
'scope': ['server', 'database'],
|
||||
@@ -254,8 +254,8 @@ QUERIES = {
|
||||
WHEN 'n' THEN 'schema'
|
||||
END as object_type,
|
||||
d.defaclacl as default_acl
|
||||
FROM pg_default_acl d
|
||||
LEFT JOIN pg_namespace n ON n.oid = d.defaclnamespace
|
||||
FROM pg_catalog.pg_default_acl d
|
||||
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = d.defaclnamespace
|
||||
ORDER BY role, schema_name, object_type
|
||||
LIMIT 30
|
||||
""",
|
||||
@@ -270,7 +270,7 @@ QUERIES = {
|
||||
'memory_settings': {
|
||||
'sql': """
|
||||
SELECT name, setting, unit, short_desc, context, source
|
||||
FROM pg_settings
|
||||
FROM pg_catalog.pg_settings
|
||||
WHERE name IN (
|
||||
'shared_buffers', 'effective_cache_size', 'work_mem',
|
||||
'maintenance_work_mem', 'wal_buffers', 'temp_buffers',
|
||||
@@ -285,7 +285,7 @@ QUERIES = {
|
||||
'checkpoint_settings': {
|
||||
'sql': """
|
||||
SELECT name, setting, unit, short_desc
|
||||
FROM pg_settings
|
||||
FROM pg_catalog.pg_settings
|
||||
WHERE name IN (
|
||||
'checkpoint_completion_target', 'checkpoint_timeout',
|
||||
'max_wal_size', 'min_wal_size'
|
||||
@@ -298,7 +298,7 @@ QUERIES = {
|
||||
'wal_settings': {
|
||||
'sql': """
|
||||
SELECT name, setting, unit, short_desc
|
||||
FROM pg_settings
|
||||
FROM pg_catalog.pg_settings
|
||||
WHERE name IN (
|
||||
'wal_level', 'synchronous_commit', 'wal_compression',
|
||||
'wal_writer_delay', 'max_wal_senders'
|
||||
@@ -314,7 +314,7 @@ QUERIES = {
|
||||
checkpoint_sync_time, buffers_checkpoint, buffers_clean,
|
||||
maxwritten_clean, buffers_backend, buffers_backend_fsync,
|
||||
buffers_alloc, stats_reset
|
||||
FROM pg_stat_bgwriter
|
||||
FROM pg_catalog.pg_stat_bgwriter
|
||||
""",
|
||||
'scope': ['server'],
|
||||
},
|
||||
@@ -323,7 +323,7 @@ QUERIES = {
|
||||
'autovacuum_settings': {
|
||||
'sql': """
|
||||
SELECT name, setting, unit, short_desc
|
||||
FROM pg_settings
|
||||
FROM pg_catalog.pg_settings
|
||||
WHERE name IN (
|
||||
'autovacuum', 'autovacuum_max_workers',
|
||||
'autovacuum_naptime',
|
||||
@@ -348,7 +348,7 @@ QUERIES = {
|
||||
last_autovacuum,
|
||||
last_analyze,
|
||||
last_autoanalyze
|
||||
FROM pg_stat_user_tables
|
||||
FROM pg_catalog.pg_stat_user_tables
|
||||
WHERE n_dead_tup > 1000
|
||||
ORDER BY n_dead_tup DESC
|
||||
LIMIT 15
|
||||
@@ -360,7 +360,7 @@ QUERIES = {
|
||||
'planner_settings': {
|
||||
'sql': """
|
||||
SELECT name, setting, unit, short_desc
|
||||
FROM pg_settings
|
||||
FROM pg_catalog.pg_settings
|
||||
WHERE name IN (
|
||||
'random_page_cost', 'seq_page_cost', 'cpu_tuple_cost',
|
||||
'cpu_index_tuple_cost', 'cpu_operator_cost',
|
||||
@@ -377,7 +377,7 @@ QUERIES = {
|
||||
'parallel_settings': {
|
||||
'sql': """
|
||||
SELECT name, setting, unit, short_desc
|
||||
FROM pg_settings
|
||||
FROM pg_catalog.pg_settings
|
||||
WHERE name IN (
|
||||
'max_worker_processes', 'max_parallel_workers_per_gather',
|
||||
'max_parallel_workers', 'max_parallel_maintenance_workers'
|
||||
@@ -391,7 +391,7 @@ QUERIES = {
|
||||
'connection_settings': {
|
||||
'sql': """
|
||||
SELECT name, setting, unit, short_desc
|
||||
FROM pg_settings
|
||||
FROM pg_catalog.pg_settings
|
||||
WHERE name IN (
|
||||
'max_connections', 'superuser_reserved_connections',
|
||||
'idle_in_transaction_session_timeout', 'idle_session_timeout',
|
||||
@@ -405,12 +405,13 @@ QUERIES = {
|
||||
'active_connections': {
|
||||
'sql': """
|
||||
SELECT
|
||||
(SELECT count(*) FROM pg_stat_activity) as total_connections,
|
||||
(SELECT count(*) FROM pg_stat_activity
|
||||
(SELECT count(*) FROM pg_catalog.pg_stat_activity)
|
||||
as total_connections,
|
||||
(SELECT count(*) FROM pg_catalog.pg_stat_activity
|
||||
WHERE state = 'active') as active_queries,
|
||||
(SELECT count(*) FROM pg_stat_activity
|
||||
(SELECT count(*) FROM pg_catalog.pg_stat_activity
|
||||
WHERE state = 'idle in transaction') as idle_in_transaction,
|
||||
(SELECT count(*) FROM pg_stat_activity
|
||||
(SELECT count(*) FROM pg_catalog.pg_stat_activity
|
||||
WHERE state = 'idle') as idle
|
||||
""",
|
||||
'scope': ['server', 'database'],
|
||||
@@ -429,7 +430,7 @@ QUERIES = {
|
||||
tup_updated, tup_deleted,
|
||||
conflicts, temp_files, temp_bytes,
|
||||
deadlocks, stats_reset
|
||||
FROM pg_stat_database
|
||||
FROM pg_catalog.pg_stat_database
|
||||
WHERE datname NOT IN ('template0', 'template1')
|
||||
ORDER BY datname
|
||||
""",
|
||||
@@ -445,7 +446,7 @@ QUERIES = {
|
||||
(heap_blks_read + heap_blks_hit), 2)
|
||||
ELSE 0 END as cache_hit_ratio,
|
||||
idx_blks_read, idx_blks_hit
|
||||
FROM pg_statio_user_tables
|
||||
FROM pg_catalog.pg_statio_user_tables
|
||||
WHERE heap_blks_read + heap_blks_hit > 1000
|
||||
ORDER BY heap_blks_read DESC
|
||||
LIMIT 15
|
||||
@@ -462,7 +463,7 @@ QUERIES = {
|
||||
n_live_tup, n_dead_tup,
|
||||
last_vacuum, last_autovacuum,
|
||||
last_analyze, last_autoanalyze
|
||||
FROM pg_stat_user_tables
|
||||
FROM pg_catalog.pg_stat_user_tables
|
||||
ORDER BY n_dead_tup DESC
|
||||
LIMIT 20
|
||||
""",
|
||||
@@ -475,8 +476,8 @@ QUERIES = {
|
||||
s.indexrelname as index_name,
|
||||
pg_size_pretty(pg_relation_size(s.indexrelid)) as size,
|
||||
s.idx_scan
|
||||
FROM pg_stat_user_indexes s
|
||||
JOIN pg_index i ON s.indexrelid = i.indexrelid
|
||||
FROM pg_catalog.pg_stat_user_indexes s
|
||||
JOIN pg_catalog.pg_index i ON s.indexrelid = i.indexrelid
|
||||
WHERE s.idx_scan = 0
|
||||
AND NOT i.indisunique
|
||||
AND NOT i.indisprimary
|
||||
@@ -493,7 +494,7 @@ QUERIES = {
|
||||
CASE WHEN seq_scan > 0
|
||||
THEN round(seq_tup_read::numeric / seq_scan, 0)
|
||||
ELSE 0 END as avg_seq_tup_read
|
||||
FROM pg_stat_user_tables
|
||||
FROM pg_catalog.pg_stat_user_tables
|
||||
WHERE seq_scan > idx_scan AND seq_scan > 100 AND n_live_tup > 1000
|
||||
ORDER BY seq_scan - idx_scan DESC
|
||||
LIMIT 15
|
||||
@@ -505,7 +506,8 @@ QUERIES = {
|
||||
'stat_statements_check': {
|
||||
'sql': """
|
||||
SELECT EXISTS (
|
||||
SELECT 1 FROM pg_extension WHERE extname = 'pg_stat_statements'
|
||||
SELECT 1 FROM pg_catalog.pg_extension
|
||||
WHERE extname = 'pg_stat_statements'
|
||||
) as available
|
||||
""",
|
||||
'scope': ['server', 'database'],
|
||||
@@ -553,7 +555,7 @@ QUERIES = {
|
||||
pg_size_pretty(pg_relation_size(relid)) as table_size,
|
||||
pg_size_pretty(pg_indexes_size(relid)) as indexes_size,
|
||||
n_live_tup as row_count
|
||||
FROM pg_stat_user_tables
|
||||
FROM pg_catalog.pg_stat_user_tables
|
||||
ORDER BY pg_total_relation_size(relid) DESC
|
||||
LIMIT 15
|
||||
""",
|
||||
@@ -576,7 +578,7 @@ QUERIES = {
|
||||
pg_wal_lsn_diff(
|
||||
pg_current_wal_lsn(), replay_lsn
|
||||
) as replay_lag
|
||||
FROM pg_stat_replication
|
||||
FROM pg_catalog.pg_stat_replication
|
||||
LIMIT 10
|
||||
""",
|
||||
'scope': ['server'],
|
||||
@@ -595,14 +597,14 @@ QUERIES = {
|
||||
pg_size_pretty(
|
||||
pg_total_relation_size(c.oid)
|
||||
) as total_size,
|
||||
(SELECT count(*) FROM pg_attribute a
|
||||
(SELECT count(*) FROM pg_catalog.pg_attribute a
|
||||
WHERE a.attrelid = c.oid
|
||||
AND a.attnum > 0
|
||||
AND NOT a.attisdropped
|
||||
) as column_count,
|
||||
obj_description(c.oid) as description
|
||||
FROM pg_class c
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
FROM pg_catalog.pg_class c
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
|
||||
WHERE c.relkind IN ('r', 'p')
|
||||
AND n.nspname NOT IN (
|
||||
'pg_catalog', 'information_schema',
|
||||
@@ -627,10 +629,10 @@ QUERIES = {
|
||||
as default_value,
|
||||
col_description(c.oid, a.attnum)
|
||||
as description
|
||||
FROM pg_attribute a
|
||||
JOIN pg_class c ON c.oid = a.attrelid
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
LEFT JOIN pg_attrdef d
|
||||
FROM pg_catalog.pg_attribute a
|
||||
JOIN pg_catalog.pg_class c ON c.oid = a.attrelid
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
|
||||
LEFT JOIN pg_catalog.pg_attrdef d
|
||||
ON d.adrelid = a.attrelid
|
||||
AND d.adnum = a.attnum
|
||||
WHERE a.attnum > 0
|
||||
@@ -656,11 +658,11 @@ QUERIES = {
|
||||
array_position(con.conkey,
|
||||
a.attnum))
|
||||
as columns
|
||||
FROM pg_constraint con
|
||||
JOIN pg_class c ON c.oid = con.conrelid
|
||||
JOIN pg_namespace n
|
||||
FROM pg_catalog.pg_constraint con
|
||||
JOIN pg_catalog.pg_class c ON c.oid = con.conrelid
|
||||
JOIN pg_catalog.pg_namespace n
|
||||
ON n.oid = c.relnamespace
|
||||
JOIN pg_attribute a
|
||||
JOIN pg_catalog.pg_attribute a
|
||||
ON a.attrelid = c.oid
|
||||
AND a.attnum = ANY(con.conkey)
|
||||
WHERE con.contype = 'p'
|
||||
@@ -679,15 +681,15 @@ QUERIES = {
|
||||
pg_size_pretty(
|
||||
pg_total_relation_size(c.oid)
|
||||
) as size
|
||||
FROM pg_class c
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
FROM pg_catalog.pg_class c
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
|
||||
WHERE c.relkind = 'r'
|
||||
AND n.nspname NOT IN (
|
||||
'pg_catalog', 'information_schema',
|
||||
'pg_toast')
|
||||
AND n.nspname NOT LIKE 'pg_temp%'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint con
|
||||
SELECT 1 FROM pg_catalog.pg_constraint con
|
||||
WHERE con.conrelid = c.oid AND con.contype = 'p'
|
||||
)
|
||||
ORDER BY pg_total_relation_size(c.oid) DESC
|
||||
@@ -712,18 +714,18 @@ QUERIES = {
|
||||
array_position(con.confkey,
|
||||
fa.attnum))
|
||||
as ref_columns
|
||||
FROM pg_constraint con
|
||||
JOIN pg_class c ON c.oid = con.conrelid
|
||||
JOIN pg_namespace n
|
||||
FROM pg_catalog.pg_constraint con
|
||||
JOIN pg_catalog.pg_class c ON c.oid = con.conrelid
|
||||
JOIN pg_catalog.pg_namespace n
|
||||
ON n.oid = c.relnamespace
|
||||
JOIN pg_class fc
|
||||
JOIN pg_catalog.pg_class fc
|
||||
ON fc.oid = con.confrelid
|
||||
JOIN pg_namespace fn
|
||||
JOIN pg_catalog.pg_namespace fn
|
||||
ON fn.oid = fc.relnamespace
|
||||
JOIN pg_attribute a
|
||||
JOIN pg_catalog.pg_attribute a
|
||||
ON a.attrelid = c.oid
|
||||
AND a.attnum = ANY(con.conkey)
|
||||
JOIN pg_attribute fa
|
||||
JOIN pg_catalog.pg_attribute fa
|
||||
ON fa.attrelid = fc.oid
|
||||
AND fa.attnum = ANY(con.confkey)
|
||||
WHERE con.contype = 'f'
|
||||
@@ -746,11 +748,11 @@ QUERIES = {
|
||||
idx.indisprimary as is_primary,
|
||||
pg_get_indexdef(idx.indexrelid) as definition,
|
||||
pg_size_pretty(pg_relation_size(i.oid)) as size
|
||||
FROM pg_index idx
|
||||
JOIN pg_class c ON c.oid = idx.indrelid
|
||||
JOIN pg_class i ON i.oid = idx.indexrelid
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
JOIN pg_am am ON am.oid = i.relam
|
||||
FROM pg_catalog.pg_index idx
|
||||
JOIN pg_catalog.pg_class c ON c.oid = idx.indrelid
|
||||
JOIN pg_catalog.pg_class i ON i.oid = idx.indexrelid
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
|
||||
JOIN pg_catalog.pg_am am ON am.oid = i.relam
|
||||
WHERE n.nspname NOT IN (
|
||||
'pg_catalog', 'information_schema',
|
||||
'pg_toast')
|
||||
@@ -772,11 +774,11 @@ QUERIES = {
|
||||
idx.indkey, a.attnum))
|
||||
as columns,
|
||||
pg_relation_size(i.oid) as size
|
||||
FROM pg_index idx
|
||||
JOIN pg_class c ON c.oid = idx.indrelid
|
||||
JOIN pg_class i ON i.oid = idx.indexrelid
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
JOIN pg_attribute a ON a.attrelid = c.oid
|
||||
FROM pg_catalog.pg_index idx
|
||||
JOIN pg_catalog.pg_class c ON c.oid = idx.indrelid
|
||||
JOIN pg_catalog.pg_class i ON i.oid = idx.indexrelid
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
|
||||
JOIN pg_catalog.pg_attribute a ON a.attrelid = c.oid
|
||||
AND a.attnum = ANY(idx.indkey)
|
||||
WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
|
||||
GROUP BY n.nspname, c.relname, i.relname, idx.indexrelid, i.oid
|
||||
@@ -803,9 +805,9 @@ QUERIES = {
|
||||
c.relname as table_name,
|
||||
con.conname as constraint_name,
|
||||
pg_get_constraintdef(con.oid) as definition
|
||||
FROM pg_constraint con
|
||||
JOIN pg_class c ON c.oid = con.conrelid
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
FROM pg_catalog.pg_constraint con
|
||||
JOIN pg_catalog.pg_class c ON c.oid = con.conrelid
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
|
||||
WHERE con.contype = 'c'
|
||||
AND n.nspname NOT IN ('pg_catalog', 'information_schema')
|
||||
ORDER BY n.nspname, c.relname, con.conname
|
||||
@@ -823,11 +825,11 @@ QUERIES = {
|
||||
array_position(con.conkey,
|
||||
a.attnum))
|
||||
as columns
|
||||
FROM pg_constraint con
|
||||
JOIN pg_class c ON c.oid = con.conrelid
|
||||
JOIN pg_namespace n
|
||||
FROM pg_catalog.pg_constraint con
|
||||
JOIN pg_catalog.pg_class c ON c.oid = con.conrelid
|
||||
JOIN pg_catalog.pg_namespace n
|
||||
ON n.oid = c.relnamespace
|
||||
JOIN pg_attribute a
|
||||
JOIN pg_catalog.pg_attribute a
|
||||
ON a.attrelid = c.oid
|
||||
AND a.attnum = ANY(con.conkey)
|
||||
WHERE con.contype = 'u'
|
||||
@@ -847,9 +849,9 @@ QUERIES = {
|
||||
array_agg(DISTINCT
|
||||
n.nspname || '.' || c.relname
|
||||
) as tables
|
||||
FROM pg_attribute a
|
||||
JOIN pg_class c ON c.oid = a.attrelid
|
||||
JOIN pg_namespace n
|
||||
FROM pg_catalog.pg_attribute a
|
||||
JOIN pg_catalog.pg_class c ON c.oid = a.attrelid
|
||||
JOIN pg_catalog.pg_namespace n
|
||||
ON n.oid = c.relnamespace
|
||||
WHERE a.attnum > 0
|
||||
AND NOT a.attisdropped
|
||||
@@ -871,8 +873,8 @@ QUERIES = {
|
||||
SELECT 'table' as object_type,
|
||||
n.nspname as schema_name,
|
||||
c.relname as name
|
||||
FROM pg_class c
|
||||
JOIN pg_namespace n
|
||||
FROM pg_catalog.pg_class c
|
||||
JOIN pg_catalog.pg_namespace n
|
||||
ON n.oid = c.relnamespace
|
||||
WHERE c.relkind IN ('r', 'p')
|
||||
AND n.nspname NOT IN (
|
||||
@@ -881,9 +883,9 @@ QUERIES = {
|
||||
UNION ALL
|
||||
SELECT 'column', n.nspname,
|
||||
c.relname || '.' || a.attname
|
||||
FROM pg_attribute a
|
||||
JOIN pg_class c ON c.oid = a.attrelid
|
||||
JOIN pg_namespace n
|
||||
FROM pg_catalog.pg_attribute a
|
||||
JOIN pg_catalog.pg_class c ON c.oid = a.attrelid
|
||||
JOIN pg_catalog.pg_namespace n
|
||||
ON n.oid = c.relnamespace
|
||||
WHERE a.attnum > 0
|
||||
AND NOT a.attisdropped
|
||||
@@ -911,9 +913,9 @@ QUERIES = {
|
||||
|| a.attname)
|
||||
ELSE NULL
|
||||
END as example_columns
|
||||
FROM pg_attribute a
|
||||
JOIN pg_class c ON c.oid = a.attrelid
|
||||
JOIN pg_namespace n
|
||||
FROM pg_catalog.pg_attribute a
|
||||
JOIN pg_catalog.pg_class c ON c.oid = a.attrelid
|
||||
JOIN pg_catalog.pg_namespace n
|
||||
ON n.oid = c.relnamespace
|
||||
WHERE a.attnum > 0
|
||||
AND NOT a.attisdropped
|
||||
@@ -974,7 +976,7 @@ def execute_query(
|
||||
# Check if extension is installed
|
||||
check_sql = """
|
||||
SELECT EXISTS (
|
||||
SELECT 1 FROM pg_extension WHERE extname = %s
|
||||
SELECT 1 FROM pg_catalog.pg_extension WHERE extname = %s
|
||||
) as available
|
||||
"""
|
||||
status, result = conn.execute_dict(check_sql, [required_ext])
|
||||
|
||||
@@ -390,7 +390,7 @@ CREATE VIEW test_schema_diff."test view" AS
|
||||
pg_class.relfilenode,
|
||||
pg_class.reltablespace,
|
||||
pg_class.relpages
|
||||
FROM pg_class
|
||||
FROM pg_catalog.pg_class
|
||||
LIMIT 10;
|
||||
|
||||
|
||||
|
||||
@@ -390,7 +390,7 @@ CREATE VIEW test_schema_diff."test view" AS
|
||||
pg_class.relfilenode,
|
||||
pg_class.reltablespace,
|
||||
pg_class.relpages
|
||||
FROM pg_class
|
||||
FROM pg_catalog.pg_class
|
||||
LIMIT 10;
|
||||
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ FROM (
|
||||
JOIN pg_catalog.pg_class cls ON cls.oid=indexrelid
|
||||
JOIN pg_catalog.pg_class tab ON tab.oid=indrelid
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid=tab.relnamespace
|
||||
LEFT JOIN pg_catalog.pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_catalog.pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
|
||||
LEFT JOIN pg_catalog.pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid='pg_catalog.pg_constraint'::regclass AND dep.deptype='i')
|
||||
LEFT OUTER JOIN pg_catalog.pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=cls.oid
|
||||
LEFT OUTER JOIN pg_catalog.pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
|
||||
@@ -524,7 +524,7 @@ FROM (
|
||||
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
|
||||
ns.nspname AS schema_name,
|
||||
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
|
||||
FROM pg_aggregate ag
|
||||
FROM pg_catalog.pg_aggregate ag
|
||||
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
|
||||
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
|
||||
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
|
||||
|
||||
@@ -109,7 +109,7 @@ FROM (
|
||||
JOIN pg_catalog.pg_class cls ON cls.oid=indexrelid
|
||||
JOIN pg_catalog.pg_class tab ON tab.oid=indrelid
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid=tab.relnamespace
|
||||
LEFT JOIN pg_catalog.pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_catalog.pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
|
||||
LEFT JOIN pg_catalog.pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid='pg_catalog.pg_constraint'::regclass AND dep.deptype='i')
|
||||
LEFT OUTER JOIN pg_catalog.pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=cls.oid
|
||||
LEFT OUTER JOIN pg_catalog.pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
|
||||
@@ -508,7 +508,7 @@ FROM (
|
||||
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
|
||||
ns.nspname AS schema_name,
|
||||
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
|
||||
FROM pg_aggregate ag
|
||||
FROM pg_catalog.pg_aggregate ag
|
||||
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
|
||||
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
|
||||
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
|
||||
|
||||
+2
-2
@@ -109,7 +109,7 @@ FROM (
|
||||
JOIN pg_catalog.pg_class cls ON cls.oid=indexrelid
|
||||
JOIN pg_catalog.pg_class tab ON tab.oid=indrelid
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid=tab.relnamespace
|
||||
LEFT JOIN pg_catalog.pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_catalog.pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
|
||||
LEFT JOIN pg_catalog.pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid='pg_catalog.pg_constraint'::regclass AND dep.deptype='i')
|
||||
LEFT OUTER JOIN pg_catalog.pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=cls.oid
|
||||
LEFT OUTER JOIN pg_catalog.pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
|
||||
@@ -585,7 +585,7 @@ FROM (
|
||||
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
|
||||
ns.nspname AS schema_name,
|
||||
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
|
||||
FROM pg_aggregate ag
|
||||
FROM pg_catalog.pg_aggregate ag
|
||||
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
|
||||
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
|
||||
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
|
||||
|
||||
+2
-2
@@ -109,7 +109,7 @@ FROM (
|
||||
JOIN pg_catalog.pg_class cls ON cls.oid=indexrelid
|
||||
JOIN pg_catalog.pg_class tab ON tab.oid=indrelid
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid=tab.relnamespace
|
||||
LEFT JOIN pg_catalog.pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
|
||||
LEFT JOIN pg_catalog.pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid='pg_catalog.pg_constraint'::regclass AND dep.deptype='i')
|
||||
LEFT OUTER JOIN pg_catalog.pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=cls.oid
|
||||
LEFT OUTER JOIN pg_catalog.pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
|
||||
@@ -594,7 +594,7 @@ FROM (
|
||||
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
|
||||
ns.nspname AS schema_name,
|
||||
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
|
||||
FROM pg_aggregate ag
|
||||
FROM pg_catalog.pg_aggregate ag
|
||||
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
|
||||
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
|
||||
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
|
||||
|
||||
+2
-2
@@ -109,7 +109,7 @@ FROM (
|
||||
JOIN pg_catalog.pg_class cls ON cls.oid=indexrelid
|
||||
JOIN pg_catalog.pg_class tab ON tab.oid=indrelid
|
||||
JOIN pg_catalog.pg_namespace n ON n.oid=tab.relnamespace
|
||||
LEFT JOIN pg_catalog.pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid=(SELECT oid FROM pg_catalog.pg_class WHERE relname='pg_constraint') AND dep.deptype='i')
|
||||
LEFT JOIN pg_catalog.pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0' AND dep.refclassid='pg_catalog.pg_constraint'::regclass AND dep.deptype='i')
|
||||
LEFT OUTER JOIN pg_catalog.pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)
|
||||
LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=cls.oid
|
||||
LEFT OUTER JOIN pg_catalog.pg_description desp ON (desp.objoid=con.oid AND desp.objsubid = 0)
|
||||
@@ -585,7 +585,7 @@ FROM (
|
||||
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
|
||||
ns.nspname AS schema_name,
|
||||
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
|
||||
FROM pg_aggregate ag
|
||||
FROM pg_catalog.pg_aggregate ag
|
||||
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
|
||||
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
|
||||
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
|
||||
|
||||
@@ -999,8 +999,11 @@ def get_safe_post_logout_redirect():
|
||||
|
||||
|
||||
def check_extension_exists(conn, extension_name):
|
||||
sql = f"SELECT * FROM pg_extension WHERE extname = '{extension_name}'"
|
||||
status, res = conn.execute_scalar(sql)
|
||||
sql = (
|
||||
"SELECT 1 FROM pg_catalog.pg_extension "
|
||||
"WHERE extname = %s"
|
||||
)
|
||||
status, res = conn.execute_scalar(sql, [extension_name])
|
||||
if status:
|
||||
if res:
|
||||
return status, True
|
||||
|
||||
@@ -447,7 +447,8 @@ class Connection(BaseConnection):
|
||||
role = manager.role
|
||||
|
||||
if is_set_role:
|
||||
_query = "SELECT rolname from pg_roles WHERE rolname = {0}" \
|
||||
_query = "SELECT rolname from pg_catalog.pg_roles " \
|
||||
"WHERE rolname = {0}" \
|
||||
"".format(self.qtLiteral(role, self.conn))
|
||||
_status, res = self.execute_scalar(_query)
|
||||
|
||||
@@ -516,9 +517,9 @@ class Connection(BaseConnection):
|
||||
|
||||
status, cur = self.__cursor()
|
||||
|
||||
# Note that we use 'UPDATE pg_settings' for setting bytea_output as a
|
||||
# convenience hack for those running on old, unsupported versions of
|
||||
# PostgreSQL 'cos we're nice like that.
|
||||
# Note that we use pg_show_all_settings()/set_config for setting
|
||||
# bytea_output as a convenience hack for those running on old,
|
||||
# unsupported versions of PostgreSQL 'cos we're nice like that.
|
||||
status = self._execute(
|
||||
cur,
|
||||
"SET DateStyle=ISO; "
|
||||
@@ -627,12 +628,12 @@ WHERE db.datname = current_database()""")
|
||||
CASE WHEN roles.rolsuper THEN true
|
||||
ELSE roles.rolcreatedb END as can_create_db,
|
||||
CASE WHEN 'pg_signal_backend'=ANY(ARRAY(WITH RECURSIVE cte AS (
|
||||
SELECT pg_roles.oid,pg_roles.rolname FROM pg_roles
|
||||
SELECT pg_roles.oid,pg_roles.rolname FROM pg_catalog.pg_roles
|
||||
WHERE pg_roles.oid = roles.oid
|
||||
UNION ALL
|
||||
SELECT m.roleid,pgr.rolname FROM cte cte_1
|
||||
JOIN pg_auth_members m ON m.member = cte_1.oid
|
||||
JOIN pg_roles pgr ON pgr.oid = m.roleid)
|
||||
JOIN pg_catalog.pg_auth_members m ON m.member = cte_1.oid
|
||||
JOIN pg_catalog.pg_roles pgr ON pgr.oid = m.roleid)
|
||||
SELECT rolname FROM cte)) THEN True
|
||||
ELSE False END as can_signal_backend
|
||||
FROM
|
||||
|
||||
@@ -563,14 +563,14 @@ def drop_database(connection, database_name):
|
||||
if connection.info.server_version >= 90100:
|
||||
pg_cursor.execute(
|
||||
"SELECT pg_terminate_backend(pg_stat_activity.pid) "
|
||||
"FROM pg_stat_activity "
|
||||
"FROM pg_catalog.pg_stat_activity "
|
||||
"WHERE pg_stat_activity.datname ='%s' AND "
|
||||
"pid <> pg_backend_pid();" % database_name
|
||||
)
|
||||
else:
|
||||
pg_cursor.execute(
|
||||
"SELECT pg_terminate_backend(procpid) "
|
||||
"FROM pg_stat_activity "
|
||||
"FROM pg_catalog.pg_stat_activity "
|
||||
"WHERE pg_stat_activity.datname ='%s' "
|
||||
"AND current_query='<IDLE>';" % database_name
|
||||
)
|
||||
@@ -597,14 +597,14 @@ def drop_database_multiple(connection, database_names):
|
||||
if get_server_version(connection) >= 90100:
|
||||
pg_cursor.execute(
|
||||
"SELECT pg_terminate_backend(pg_stat_activity.pid) "
|
||||
"FROM pg_stat_activity "
|
||||
"FROM pg_catalog.pg_stat_activity "
|
||||
"WHERE pg_stat_activity.datname ='%s' AND "
|
||||
"pid <> pg_backend_pid();" % database_name
|
||||
)
|
||||
else:
|
||||
pg_cursor.execute(
|
||||
"SELECT pg_terminate_backend(procpid) "
|
||||
"FROM pg_stat_activity "
|
||||
"FROM pg_catalog.pg_stat_activity "
|
||||
"WHERE pg_stat_activity.datname ='%s' "
|
||||
"AND current_query='<IDLE>';" % database_name
|
||||
)
|
||||
@@ -1907,7 +1907,7 @@ def module_patch(*args):
|
||||
|
||||
|
||||
def check_extension_exists(cursor, extension_name):
|
||||
cursor.execute(f"""SELECT COUNT(*) FROM pg_extension
|
||||
WHERE extname='{extension_name}'""")
|
||||
cursor.execute("""SELECT COUNT(*) FROM pg_catalog.pg_extension
|
||||
WHERE extname=%s""", (extension_name,))
|
||||
res = cursor.fetchone()
|
||||
return res
|
||||
|
||||
@@ -848,11 +848,13 @@ class ReverseEngineeredSQLTestCases(BaseTestGenerator):
|
||||
|
||||
# Fetch the lc_collate and lc_ctype
|
||||
pg_cursor.execute(
|
||||
"SELECT datcollate as cname FROM pg_database WHERE datname = "
|
||||
"SELECT datcollate as cname FROM pg_catalog.pg_database "
|
||||
"WHERE datname = "
|
||||
"'{0}'".format(db_name))
|
||||
lc_collate = ''.join(pg_cursor.fetchone())
|
||||
pg_cursor.execute(
|
||||
"SELECT datctype as cname FROM pg_database WHERE datname = "
|
||||
"SELECT datctype as cname FROM pg_catalog.pg_database "
|
||||
"WHERE datname = "
|
||||
"'{0}'".format(db_name))
|
||||
lc_ctype = ''.join(pg_cursor.fetchone())
|
||||
pg_cursor.close()
|
||||
|
||||
Reference in New Issue
Block a user