From 29e2ee670facba161ab097dd58ff8b32712a7ff3 Mon Sep 17 00:00:00 2001 From: Raul Marin Date: Tue, 5 Nov 2019 18:29:08 +0100 Subject: [PATCH] Accept PG9.5 and PG10 permission error messages --- test/CDB_FederatedServerTables.sql | 17 ++++++++++++++++- test/CDB_FederatedServerTables_expect | 4 +++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/test/CDB_FederatedServerTables.sql b/test/CDB_FederatedServerTables.sql index ed8dc4b..8baccb3 100644 --- a/test/CDB_FederatedServerTables.sql +++ b/test/CDB_FederatedServerTables.sql @@ -319,7 +319,22 @@ Select cartodb_id, ST_AsText(the_geom) from localtable; \echo '## Selecting from a registered table without permissions does not work' \c contrib_regression cdb_fs_tester2 -Select cartodb_id, ST_AsText(the_geom) from localtable; +CREATE OR REPLACE FUNCTION catch_permission_error(query text) +RETURNS bool +AS $$ +BEGIN + EXECUTE query; + RETURN FALSE; +EXCEPTION + WHEN insufficient_privilege THEN + RETURN TRUE; + WHEN OTHERS THEN + RAISE WARNING 'Exception %', sqlstate; + RETURN FALSE; +END +$$ LANGUAGE 'plpgsql'; +Select catch_permission_error($$SELECT cartodb_id, ST_AsText(the_geom) from localtable$$); +DROP FUNCTION catch_permission_error(text); \echo '## Deleting a registered table without permissions does not work' SELECT CDB_Federated_Table_Unregister( diff --git a/test/CDB_FederatedServerTables_expect b/test/CDB_FederatedServerTables_expect index 4026c19..40ac9d8 100644 --- a/test/CDB_FederatedServerTables_expect +++ b/test/CDB_FederatedServerTables_expect @@ -79,7 +79,9 @@ You are now connected to database "contrib_regression" as user "cdb_fs_tester". 2|POINT(2 2) ## Selecting from a registered table without permissions does not work You are now connected to database "contrib_regression" as user "cdb_fs_tester2". -ERROR: permission denied for view localtable +CREATE FUNCTION +t +DROP FUNCTION ## Deleting a registered table without permissions does not work ERROR: Not enough permissions to access the server "loopback" ## Only the owner can grant permissions over the server