1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
-- Indirection for connection strings
CREATE OR REPLACE FUNCTION public.pglogical_regress_variables(
OUT orig_provider_dsn text,
OUT provider_dsn text,
OUT provider1_dsn text,
OUT subscriber_dsn text
) RETURNS record LANGUAGE SQL AS $f$
SELECT
current_setting('pglogical.orig_provider_dsn'),
current_setting('pglogical.provider_dsn'),
current_setting('pglogical.provider1_dsn'),
current_setting('pglogical.subscriber_dsn')
$f$;
SELECT * FROM pglogical_regress_variables()
\gset
/*
* Tests to ensure that objects/data that exists pre-clone is successfully
* cloned. The results are checked, after the clone, in preseed_check.sql.
*/
\c :provider_dsn
CREATE SEQUENCE some_local_seq;
CREATE TABLE some_local_tbl(id serial primary key, key text unique not null, data text);
INSERT INTO some_local_tbl(key, data) VALUES('key1', 'data1');
INSERT INTO some_local_tbl(key, data) VALUES('key2', NULL);
INSERT INTO some_local_tbl(key, data) VALUES('key3', 'data3');
CREATE TABLE some_local_tbl1(id serial, key text unique not null, data text);
INSERT INTO some_local_tbl1(key, data) VALUES('key1', 'data1');
INSERT INTO some_local_tbl1(key, data) VALUES('key2', NULL);
INSERT INTO some_local_tbl1(key, data) VALUES('key3', 'data3');
CREATE TABLE some_local_tbl2(id serial, key text, data text);
INSERT INTO some_local_tbl2(key, data) VALUES('key1', 'data1');
INSERT INTO some_local_tbl2(key, data) VALUES('key2', NULL);
INSERT INTO some_local_tbl2(key, data) VALUES('key3', 'data3');
CREATE TABLE some_local_tbl3(id integer, key text, data text);
INSERT INTO some_local_tbl3(key, data) VALUES('key1', 'data1');
INSERT INTO some_local_tbl3(key, data) VALUES('key2', NULL);
INSERT INTO some_local_tbl3(key, data) VALUES('key3', 'data3');
/*
* Make sure that the pglogical_regress_variables function exists both on
* provider and subscriber since the original connection might have been
* to completely different database.
*/
CREATE OR REPLACE FUNCTION public.pglogical_regress_variables(
OUT orig_provider_dsn text,
OUT provider_dsn text,
OUT provider1_dsn text,
OUT subscriber_dsn text
) RETURNS record LANGUAGE SQL AS $f$
SELECT
current_setting('pglogical.orig_provider_dsn'),
current_setting('pglogical.provider_dsn'),
current_setting('pglogical.provider1_dsn'),
current_setting('pglogical.subscriber_dsn')
$f$;
CREATE DATABASE regression1;
CREATE DATABASE sourcedb;
\c :orig_provider_dsn
CREATE OR REPLACE FUNCTION public.pglogical_regress_variables(
OUT orig_provider_dsn text,
OUT provider_dsn text,
OUT provider1_dsn text,
OUT subscriber_dsn text
) RETURNS record LANGUAGE SQL AS $f$
SELECT
current_setting('pglogical.orig_provider_dsn'),
current_setting('pglogical.provider_dsn'),
current_setting('pglogical.provider1_dsn'),
current_setting('pglogical.subscriber_dsn')
$f$;
\c :provider1_dsn
CREATE OR REPLACE FUNCTION public.pglogical_regress_variables(
OUT orig_provider_dsn text,
OUT provider_dsn text,
OUT provider1_dsn text,
OUT subscriber_dsn text
) RETURNS record LANGUAGE SQL AS $f$
SELECT
current_setting('pglogical.orig_provider_dsn'),
current_setting('pglogical.provider_dsn'),
current_setting('pglogical.provider1_dsn'),
current_setting('pglogical.subscriber_dsn')
$f$;
\c :subscriber_dsn
CREATE OR REPLACE FUNCTION public.pglogical_regress_variables(
OUT orig_provider_dsn text,
OUT provider_dsn text,
OUT provider1_dsn text,
OUT subscriber_dsn text
) RETURNS record LANGUAGE SQL AS $f$
SELECT
current_setting('pglogical.orig_provider_dsn'),
current_setting('pglogical.provider_dsn'),
current_setting('pglogical.provider1_dsn'),
current_setting('pglogical.subscriber_dsn')
$f$;
|