Quote identifiers returned by CDB_QueryTables_Updated_At
This commit is contained in:
@@ -159,11 +159,12 @@ AS $$
|
|||||||
),
|
),
|
||||||
fqtn AS (
|
fqtn AS (
|
||||||
SELECT
|
SELECT
|
||||||
(CASE WHEN c.relkind = 'f' THEN cartodb._cdb_dbname_of_foreign_table(query_tables_oid.reloid)
|
quote_ident(
|
||||||
ELSE current_database()
|
(CASE WHEN c.relkind = 'f' THEN cartodb._cdb_dbname_of_foreign_table(query_tables_oid.reloid)
|
||||||
END)::text AS dbname,
|
ELSE current_database()
|
||||||
n.nspname::text schema_name,
|
END)::text) AS dbname,
|
||||||
c.relname::text table_name,
|
quote_ident(n.nspname::text) schema_name,
|
||||||
|
quote_ident(c.relname::text) table_name,
|
||||||
c.relkind,
|
c.relkind,
|
||||||
query_tables_oid.reloid
|
query_tables_oid.reloid
|
||||||
FROM query_tables_oid, pg_catalog.pg_class c
|
FROM query_tables_oid, pg_catalog.pg_class c
|
||||||
|
|||||||
@@ -501,6 +501,15 @@ local'
|
|||||||
sql postgres "SELECT cartodb.CDB_Last_Updated_Time('{test_fdw.foo,public.local}'::text[]) < now()" should 't'
|
sql postgres "SELECT cartodb.CDB_Last_Updated_Time('{test_fdw.foo,public.local}'::text[]) < now()" should 't'
|
||||||
sql postgres "SELECT cartodb.CDB_Last_Updated_Time('{test_fdw.foo,public.local}'::text[]) > (now() - interval '1 minute')" should 't'
|
sql postgres "SELECT cartodb.CDB_Last_Updated_Time('{test_fdw.foo,public.local}'::text[]) > (now() - interval '1 minute')" should 't'
|
||||||
|
|
||||||
|
# Check we quote names on output as needed (as CDB_QueryTablesText does)
|
||||||
|
sql postgres 'CREATE TABLE "local-table-with-dashes" (c int)';
|
||||||
|
sql postgres 'INSERT INTO "local-table-with-dashes" (c) VALUES (44)';
|
||||||
|
sql postgres "SELECT cdb_tablemetadatatouch('public.local-table-with-dashes'::regclass);"
|
||||||
|
query='$query$ SELECT * FROM test_fdw.foo, local, public."local-table-with-dashes" $query$::text'
|
||||||
|
sql postgres "SELECT dbname, schema_name, table_name FROM cartodb.CDB_QueryTables_Updated_At(${query}) ORDER BY dbname, schema_name, table_name;" should 'fdw_target|test_fdw|foo
|
||||||
|
test_extension|public|local
|
||||||
|
test_extension|public|"local-table-with-dashes"'
|
||||||
|
|
||||||
DATABASE=fdw_target sql postgres 'REVOKE USAGE ON SCHEMA test_fdw FROM fdw_user;'
|
DATABASE=fdw_target sql postgres 'REVOKE USAGE ON SCHEMA test_fdw FROM fdw_user;'
|
||||||
DATABASE=fdw_target sql postgres 'REVOKE SELECT ON test_fdw.foo FROM fdw_user;'
|
DATABASE=fdw_target sql postgres 'REVOKE SELECT ON test_fdw.foo FROM fdw_user;'
|
||||||
DATABASE=fdw_target sql postgres 'REVOKE SELECT ON cdb_tablemetadata FROM fdw_user;'
|
DATABASE=fdw_target sql postgres 'REVOKE SELECT ON cdb_tablemetadata FROM fdw_user;'
|
||||||
|
|||||||
Reference in New Issue
Block a user