-- Setup \set QUIET on SET client_min_messages TO error; \set VERBOSITY terse SET SESSION AUTHORIZATION postgres; CREATE EXTENSION postgres_fdw; \set QUIET off -- Register a new server SELECT '1.1', cartodb.CDB_Federated_Server_List_Servers(); SELECT '1.2', cartodb.CDB_Federated_Server_List_Servers(server := 'doesNotExist'); SELECT '1.3', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote'::text, config := '{ "server": { "host": "localhost", "port": @@PGPORT@@ }, "credentials": { "username": "fdw_user", "password": "foobarino" } }'::jsonb); SELECT '1.4', cartodb.CDB_Federated_Server_List_Servers(); -- Register a second server SELECT '2.1', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote2'::text, config := '{ "server": { "dbname": "fdw_target", "host": "localhost", "port": @@PGPORT@@, "extensions": "postgis", "updatable": "false", "use_remote_estimate": "true", "fetch_size": "1000" }, "credentials": { "username": "fdw_user", "password": "foobarino" } }'::jsonb); SELECT '2.2', cartodb.CDB_Federated_Server_List_Servers(); -- Re-register the second server -- SELECT '3.1', cartodb.CDB_Federated_Server_Register_PG(); -- SELECT '3.2', cartodb.CDB_PG_Federated_Server_List_Servers(); -- Unregister #1 SELECT '4.1', cartodb.CDB_Federated_Server_Unregister(server := 'myRemote'::text); SELECT '4.2', cartodb.CDB_Federated_Server_List_Servers(); -- Unregister a server that doesn't exist SELECT '5.1', cartodb.CDB_Federated_Server_Unregister(server := 'doesNotExist'::text); SELECT '5.2', cartodb.CDB_Federated_Server_List_Servers(); -- Unregister #2 SELECT '6.1', cartodb.CDB_Federated_Server_Unregister(server := 'myRemote2'::text); SELECT '6.2', cartodb.CDB_Federated_Server_List_Servers(); -- Should show the appropiate output (database, read-write, user, pass) -- Test multiple user mappings -- Should work ok with special characters in the name -- Should throw with invalid or NULL config -- -- List works with multiple and single server -- Cleanup \set QUIET on DROP EXTENSION postgres_fdw; \set QUIET off