Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 80901b3

Browse files
committed
Add decoding of sequences to test_decoding
Commit 0da92dc improved the logical decoding infrastructure to handle sequences, and did various changes to related parts (WAL logging etc.). But it did not include any implementation of the new callbacks added to OutputPluginCallbacks. This extends test_decoding with two callbacks to decode sequences. The decoding of sequences may be disabled using 'include-sequences', a new option of the output plugin. Author: Tomas Vondra, Cary Huang Reviewed-by: Peter Eisentraut, Hannu Krosing, Andres Freund Discussion: https://postgr.es/m/d045f3c2-6cfb-06d3-5540-e63c320df8bc@enterprisedb.com Discussion: https://postgr.es/m/1710ed7e13b.cd7177461430746.3372264562543607781@highgo.ca
1 parent 44fa848 commit 80901b3

24 files changed

+567
-55
lines changed

contrib/test_decoding/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ PGFILEDESC = "test_decoding - example of a logical decoding output plugin"
55

66
REGRESS = ddl xact rewrite toast permissions decoding_in_xact \
77
decoding_into_rel binary prepared replorigin time messages \
8-
spill slot truncate stream stats twophase twophase_stream
8+
spill slot truncate stream stats twophase twophase_stream \
9+
sequence
910
ISOLATION = mxact delayed_startup ondisk_startup concurrent_ddl_dml \
1011
oldest_xmin snapshot_transfer subxact_without_top concurrent_stream \
1112
twophase_snapshot

contrib/test_decoding/expected/ddl.out

Lines changed: 6 additions & 6 deletions
Large diffs are not rendered by default.

contrib/test_decoding/expected/decoding_in_xact.out

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ SELECT pg_current_xact_id() = '0';
5858

5959
-- don't show yet, haven't committed
6060
INSERT INTO nobarf(data) VALUES('2');
61-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
61+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '0');
6262
data
6363
-----------------------------------------------------------
6464
BEGIN

contrib/test_decoding/expected/decoding_into_rel.out

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
1919
CREATE TABLE somechange(id serial primary key);
2020
INSERT INTO somechange DEFAULT VALUES;
2121
CREATE TABLE changeresult AS
22-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
22+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '0');
2323
SELECT * FROM changeresult;
2424
data
2525
------------------------------------------------
@@ -29,9 +29,9 @@ SELECT * FROM changeresult;
2929
(3 rows)
3030

3131
INSERT INTO changeresult
32-
SELECT data FROM pg_logical_slot_peek_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
32+
SELECT data FROM pg_logical_slot_peek_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '0');
3333
INSERT INTO changeresult
34-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
34+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '0');
3535
SELECT * FROM changeresult;
3636
data
3737
--------------------------------------------------------------------------------------------------------------------------------------------------
@@ -63,7 +63,7 @@ DROP TABLE somechange;
6363
CREATE FUNCTION slot_changes_wrapper(slot_name name) RETURNS SETOF TEXT AS $$
6464
BEGIN
6565
RETURN QUERY
66-
SELECT data FROM pg_logical_slot_peek_changes(slot_name, NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
66+
SELECT data FROM pg_logical_slot_peek_changes(slot_name, NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '0');
6767
END$$ LANGUAGE plpgsql;
6868
SELECT * FROM slot_changes_wrapper('regression_slot');
6969
slot_changes_wrapper
@@ -84,7 +84,7 @@ SELECT * FROM slot_changes_wrapper('regression_slot');
8484
COMMIT
8585
(14 rows)
8686

87-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
87+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '0');
8888
data
8989
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
9090
BEGIN

contrib/test_decoding/expected/mxact.out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ step s0init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_sl
77
init
88
(1 row)
99

10-
step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
10+
step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false', 'include-sequences', 'false');
1111
data
1212
----
1313
(0 rows)
@@ -27,7 +27,7 @@ t
2727
(1 row)
2828

2929
step s0w: INSERT INTO do_write DEFAULT VALUES;
30-
step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
30+
step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false', 'include-sequences', 'false');
3131
data
3232
--------------------------------------------
3333
BEGIN
@@ -50,7 +50,7 @@ step s0init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_sl
5050
init
5151
(1 row)
5252

53-
step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
53+
step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false', 'include-sequences', 'false');
5454
data
5555
----
5656
(0 rows)
@@ -71,7 +71,7 @@ t
7171

7272
step s0alter: ALTER TABLE do_write ADD column ts timestamptz;
7373
step s0w: INSERT INTO do_write DEFAULT VALUES;
74-
step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
74+
step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false', 'include-sequences', 'false');
7575
data
7676
------------------------------------------------------------------------------
7777
BEGIN

contrib/test_decoding/expected/ondisk_startup.out

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ init
3535
step s2c: COMMIT;
3636
step s1insert: INSERT INTO do_write DEFAULT VALUES;
3737
step s1checkpoint: CHECKPOINT;
38-
step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
38+
step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false', 'include-sequences', 'false');
3939
data
4040
--------------------------------------------------------------------
4141
BEGIN
@@ -46,7 +46,7 @@ COMMIT
4646
step s1insert: INSERT INTO do_write DEFAULT VALUES;
4747
step s1alter: ALTER TABLE do_write ADD COLUMN addedbys1 int;
4848
step s1insert: INSERT INTO do_write DEFAULT VALUES;
49-
step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
49+
step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false', 'include-sequences', 'false');
5050
data
5151
--------------------------------------------------------------------------------------------
5252
BEGIN

contrib/test_decoding/expected/replorigin.out

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_d
7272
-- origin tx
7373
INSERT INTO origin_tbl(data) VALUES ('will be replicated and decoded and decoded again');
7474
INSERT INTO target_tbl(data)
75-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
75+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '0');
7676
-- as is normal, the insert into target_tbl shows up
77-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
77+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '0');
7878
data
7979
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
8080
BEGIN

contrib/test_decoding/expected/rewrite.out

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_d
6464

6565
CREATE TABLE replication_example(id SERIAL PRIMARY KEY, somedata int, text varchar(120));
6666
INSERT INTO replication_example(somedata) VALUES (1);
67-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
67+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '0');
6868
data
6969
----------------------------------------------------------------------------------------------------------
7070
BEGIN
@@ -141,7 +141,7 @@ VACUUM FULL pg_proc; VACUUM FULL pg_description; VACUUM FULL pg_shdescription; V
141141
INSERT INTO replication_example(somedata, testcolumn1, testcolumn3) VALUES (8, 6, 1);
142142
VACUUM FULL pg_proc; VACUUM FULL pg_description; VACUUM FULL pg_shdescription; VACUUM FULL iamalargetable;
143143
INSERT INTO replication_example(somedata, testcolumn1, testcolumn3) VALUES (9, 7, 1);
144-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
144+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '0');
145145
data
146146
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
147147
BEGIN

0 commit comments

Comments
 (0)