CDB_Federated_Server_Unregister: Better error handling
This commit is contained in:
@@ -128,14 +128,18 @@ END
|
||||
$$
|
||||
LANGUAGE PLPGSQL VOLATILE PARALLEL UNSAFE;
|
||||
|
||||
CREATE OR REPLACE FUNCTION cartodb.CDB_Federated_Server_Unregister(server TEXT)
|
||||
CREATE OR REPLACE FUNCTION @extschema@.CDB_Federated_Server_Unregister(server TEXT)
|
||||
RETURNS void
|
||||
AS $$
|
||||
DECLARE
|
||||
final_name text := cartodb.__CDB_FS_Generate_Object_Name(server);
|
||||
final_name text := @extschema@.__CDB_FS_Generate_Object_Name(server);
|
||||
BEGIN
|
||||
-- TODO: Check if the server exists to show a nice error instead of the automatic one (which uses the implementation name)
|
||||
EXECUTE 'DROP SERVER ' || quote_ident(final_name) || ' CASCADE';
|
||||
IF NOT EXISTS (SELECT * FROM pg_foreign_server WHERE srvname = final_name)
|
||||
THEN
|
||||
RAISE EXCEPTION 'Server "%" does not exist', server;
|
||||
END IF;
|
||||
|
||||
EXECUTE @extschema@._CDB_Drop_User_PG_FDW_Server(fdw_input_name := final_name, force := true);
|
||||
END
|
||||
$$
|
||||
LANGUAGE PLPGSQL VOLATILE PARALLEL UNSAFE;
|
||||
|
||||
@@ -271,7 +271,7 @@ $$ LANGUAGE plpgsql VOLATILE PARALLEL UNSAFE;
|
||||
CREATE OR REPLACE FUNCTION @extschema@._CDB_Drop_User_PG_FDW_Server(fdw_input_name NAME, force boolean = false)
|
||||
RETURNS void AS $$
|
||||
DECLARE
|
||||
fdw_objects_name NAME := @extschema@.__CDB_User_FDW_Object_Names(fdw_input_name);
|
||||
fdw_objects_name NAME := fdw_input_name;
|
||||
cascade_clause NAME;
|
||||
BEGIN
|
||||
CASE force
|
||||
|
||||
@@ -38,6 +38,8 @@ SELECT '2.1', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote2'::te
|
||||
}
|
||||
}'::jsonb);
|
||||
SELECT '2.2', cartodb.CDB_Federated_Server_List_Servers();
|
||||
-- Check that CDB_Federated_Server_List_Servers works with name
|
||||
SELECT '2.3', cartodb.CDB_Federated_Server_List_Servers(server := 'myRemote');
|
||||
|
||||
|
||||
-- Re-register the second server
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
2.1|
|
||||
2.2|(myRemote,postgres_fdw,localhost,5432,,read-only,fdw_user)
|
||||
2.2|(myRemote2,postgres_fdw,localhost,5432,fdw_target,read-only,fdw_user)
|
||||
2.3|(myRemote,postgres_fdw,localhost,5432,,read-only,fdw_user)
|
||||
4.1|
|
||||
4.2|(myRemote2,postgres_fdw,localhost,5432,fdw_target,read-only,fdw_user)
|
||||
ERROR: server "cdb_fs_doesNotExist" does not exist
|
||||
ERROR: Server "doesNotExist" does not exist
|
||||
5.2|(myRemote2,postgres_fdw,localhost,5432,fdw_target,read-only,fdw_user)
|
||||
6.1|
|
||||
|
||||
Reference in New Issue
Block a user