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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
/* First test whether a table's replication set can be properly manipulated */
SELECT * FROM pglogical_regress_variables()
\gset
\c :provider_dsn
SELECT pglogical.replicate_ddl_command($$
CREATE TABLE public.test_tbl(id serial primary key, data text);
CREATE MATERIALIZED VIEW public.test_mv AS (SELECT * FROM public.test_tbl);
$$);
replicate_ddl_command
-----------------------
t
(1 row)
SELECT * FROM pglogical.replication_set_add_all_tables('default', '{public}');
replication_set_add_all_tables
--------------------------------
t
(1 row)
INSERT INTO test_tbl VALUES (1, 'a');
REFRESH MATERIALIZED VIEW test_mv;
INSERT INTO test_tbl VALUES (2, 'b');
SELECT pglogical.wait_slot_confirm_lsn(NULL, NULL);
wait_slot_confirm_lsn
-----------------------
(1 row)
SELECT * FROM test_tbl ORDER BY id;
id | data
----+------
1 | a
2 | b
(2 rows)
SELECT * FROM test_mv ORDER BY id;
id | data
----+------
1 | a
(1 row)
\c :subscriber_dsn
SELECT * FROM test_tbl ORDER BY id;
id | data
----+------
1 | a
2 | b
(2 rows)
SELECT * FROM test_mv ORDER BY id;
id | data
----+------
(0 rows)
\c :provider_dsn
SELECT pglogical.replicate_ddl_command($$
CREATE UNIQUE INDEX ON public.test_mv(id);
$$);
replicate_ddl_command
-----------------------
t
(1 row)
INSERT INTO test_tbl VALUES (3, 'c');
REFRESH MATERIALIZED VIEW CONCURRENTLY test_mv;
SELECT pglogical.wait_slot_confirm_lsn(NULL, NULL);
wait_slot_confirm_lsn
-----------------------
(1 row)
INSERT INTO test_tbl VALUES (4, 'd');
SELECT pglogical.replicate_ddl_command($$
REFRESH MATERIALIZED VIEW public.test_mv;
$$);
replicate_ddl_command
-----------------------
t
(1 row)
SELECT pglogical.wait_slot_confirm_lsn(NULL, NULL);
wait_slot_confirm_lsn
-----------------------
(1 row)
INSERT INTO test_tbl VALUES (5, 'e');
SELECT pglogical.replicate_ddl_command($$
REFRESH MATERIALIZED VIEW CONCURRENTLY public.test_mv;
$$);
replicate_ddl_command
-----------------------
t
(1 row)
SELECT pglogical.wait_slot_confirm_lsn(NULL, NULL);
wait_slot_confirm_lsn
-----------------------
(1 row)
SELECT * FROM test_tbl ORDER BY id;
id | data
----+------
1 | a
2 | b
3 | c
4 | d
5 | e
(5 rows)
SELECT * FROM test_mv ORDER BY id;
id | data
----+------
1 | a
2 | b
3 | c
4 | d
5 | e
(5 rows)
\c :subscriber_dsn
SELECT * FROM test_tbl ORDER BY id;
id | data
----+------
1 | a
2 | b
3 | c
4 | d
5 | e
(5 rows)
SELECT * FROM test_mv ORDER BY id;
id | data
----+------
1 | a
2 | b
3 | c
4 | d
5 | e
(5 rows)
\c :provider_dsn
\set VERBOSITY terse
SELECT pglogical.replicate_ddl_command($$
DROP TABLE public.test_tbl CASCADE;
$$);
NOTICE: drop cascades to materialized view public.test_mv
NOTICE: drop cascades to table public.test_tbl membership in replication set default
replicate_ddl_command
-----------------------
t
(1 row)
|