Add new function to drop a user-defined foreign server

This commit is contained in:
Rafa de la Torre
2019-07-15 16:14:07 +02:00
parent 1189d70b2a
commit 37004db047
2 changed files with 11 additions and 5 deletions

View File

@@ -241,6 +241,15 @@ BEGIN
END
$$ LANGUAGE plpgsql VOLATILE PARALLEL UNSAFE SECURITY DEFINER;
CREATE OR REPLACE FUNCTION @extschema@.CDB_Drop_User_Foreign_Server(fdw_name NAME)
RETURNS void AS $$
BEGIN
EXECUTE FORMAT ('DROP SCHEMA %I', fdw_name);
EXECUTE FORMAT ('DROP USER MAPPING FOR public SERVER %I', fdw_name);
EXECUTE FORMAT ('DROP SERVER %I', fdw_name);
END
$$ LANGUAGE plpgsql VOLATILE PARALLEL UNSAFE;
-- Set up a user foreign table
-- E.g:

View File

@@ -624,11 +624,8 @@ EOF
DATABASE=fdw_target sql postgres 'REVOKE SELECT ON cdb_tablemetadata_text FROM fdw_user;'
DATABASE=fdw_target sql postgres 'DROP ROLE fdw_user;'
# TODO add to function to delete stuff
sql postgres 'DROP FOREIGN TABLE test_user_fdw.foo;'
sql postgres 'DROP schema test_user_fdw;'
sql postgres 'DROP USER MAPPING FOR public SERVER test_user_fdw;'
sql postgres 'DROP SERVER test_user_fdw;'
sql cdb_testmember_1 "DROP FOREIGN TABLE test_user_fdw.foo;"
sql cdb_testmember_1 "SELECT cartodb.CDB_Drop_User_Foreign_Server('test_user_fdw')"
sql postgres "select pg_terminate_backend(pid) from pg_stat_activity where datname='fdw_target';"
DATABASE=fdw_target tear_down_database