Skip to content

Commit d6fa44f

Browse files
committed
Add skip-empty-xacts option to test_decoding for use in the regression tests.
The regression tests for contrib/test_decoding regularly failed on postgres instances that were very slow. Either because the hardware itself was slow or because very expensive debugging options like CLOBBER_CACHE_ALWAYS were used. The reason they failed was just that some additional transactions were decoded. Analyze and vacuum, triggered by autovac. To fix just add a option to test_decoding to only display transactions in which a change was actually displayed. That's not pretty because it removes information from the tests; but better than constantly failing tests in very likely harmless ways. Backpatch to 9.4 where logical decoding was introduced. Discussion: 20140629142511.GA26930@awork2.anarazel.de
1 parent 9a0a12f commit d6fa44f

15 files changed

+130
-243
lines changed

contrib/test_decoding/expected/concurrent_ddl_dml.out

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

contrib/test_decoding/expected/ddl.out

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

contrib/test_decoding/expected/decoding_in_xact.out

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,17 @@ SELECT txid_current() = 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');
61+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
6262
data
6363
-----------------------------------------------------------
64-
BEGIN
65-
COMMIT
6664
BEGIN
6765
table public.nobarf: INSERT: id[integer]:1 data[text]:'1'
6866
COMMIT
69-
(5 rows)
67+
(3 rows)
7068

7169
COMMIT;
7270
INSERT INTO nobarf(data) VALUES('3');
73-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
71+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
7472
data
7573
-----------------------------------------------------------
7674
BEGIN

contrib/test_decoding/expected/permissions.out

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_d
1414
(1 row)
1515

1616
INSERT INTO lr_test VALUES('lr_superuser_init');
17-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
17+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
1818
data
1919
--------------------------------------------------------------
2020
BEGIN
@@ -39,7 +39,7 @@ SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_d
3939

4040
INSERT INTO lr_test VALUES('lr_superuser_init');
4141
ERROR: permission denied for relation lr_test
42-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
42+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
4343
data
4444
------
4545
(0 rows)
@@ -57,7 +57,7 @@ SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_d
5757
ERROR: must be superuser or replication role to use replication slots
5858
INSERT INTO lr_test VALUES('lr_superuser_init');
5959
ERROR: permission denied for relation lr_test
60-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
60+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
6161
ERROR: must be superuser or replication role to use replication slots
6262
SELECT pg_drop_replication_slot('regression_slot');
6363
ERROR: must be superuser or replication role to use replication slots

contrib/test_decoding/expected/prepared.out

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,9 @@ INSERT INTO test_prepared2 VALUES (9);
3939
DROP TABLE test_prepared1;
4040
DROP TABLE test_prepared2;
4141
-- show results
42-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
42+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
4343
data
4444
-------------------------------------------------------------------------
45-
BEGIN
46-
COMMIT
47-
BEGIN
48-
COMMIT
4945
BEGIN
5046
table public.test_prepared1: INSERT: id[integer]:1
5147
COMMIT
@@ -68,11 +64,7 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
6864
BEGIN
6965
table public.test_prepared2: INSERT: id[integer]:9
7066
COMMIT
71-
BEGIN
72-
COMMIT
73-
BEGIN
74-
COMMIT
75-
(30 rows)
67+
(22 rows)
7668

7769
SELECT pg_drop_replication_slot('regression_slot');
7870
pg_drop_replication_slot

contrib/test_decoding/expected/rewrite.out

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,13 @@ SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_d
99

1010
CREATE TABLE replication_example(id SERIAL PRIMARY KEY, somedata int, text varchar(120));
1111
INSERT INTO replication_example(somedata) VALUES (1);
12-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
12+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
1313
data
1414
----------------------------------------------------------------------------------------------------------
15-
BEGIN
16-
COMMIT
1715
BEGIN
1816
table public.replication_example: INSERT: id[integer]:1 somedata[integer]:1 text[character varying]:null
1917
COMMIT
20-
(5 rows)
18+
(3 rows)
2119

2220
BEGIN;
2321
INSERT INTO replication_example(somedata) VALUES (2);
@@ -58,7 +56,7 @@ INSERT INTO replication_example(somedata, testcolumn1, testcolumn3) VALUES (7, 5
5856
COMMIT;
5957
-- make old files go away
6058
CHECKPOINT;
61-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
59+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
6260
data
6361
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6462
BEGIN
@@ -70,33 +68,13 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
7068
table public.replication_example: INSERT: id[integer]:5 somedata[integer]:4 text[character varying]:null testcolumn1[integer]:2 testcolumn2[integer]:1
7169
COMMIT
7270
BEGIN
73-
COMMIT
74-
BEGIN
75-
COMMIT
76-
BEGIN
77-
COMMIT
78-
BEGIN
79-
COMMIT
80-
BEGIN
81-
COMMIT
82-
BEGIN
83-
COMMIT
84-
BEGIN
85-
COMMIT
86-
BEGIN
87-
COMMIT
88-
BEGIN
89-
COMMIT
90-
BEGIN
91-
COMMIT
92-
BEGIN
9371
table public.replication_example: INSERT: id[integer]:6 somedata[integer]:5 text[character varying]:null testcolumn1[integer]:3 testcolumn2[integer]:null
9472
COMMIT
9573
BEGIN
9674
table public.replication_example: INSERT: id[integer]:7 somedata[integer]:6 text[character varying]:null testcolumn1[integer]:4 testcolumn2[integer]:null
9775
table public.replication_example: INSERT: id[integer]:8 somedata[integer]:7 text[character varying]:null testcolumn1[integer]:5 testcolumn2[integer]:null testcolumn3[integer]:1
9876
COMMIT
99-
(35 rows)
77+
(15 rows)
10078

10179
SELECT pg_drop_replication_slot('regression_slot');
10280
pg_drop_replication_slot

contrib/test_decoding/expected/toast.out

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,9 @@ CREATE TABLE toasted_copy (
4848
);
4949
ALTER TABLE toasted_copy ALTER COLUMN data SET STORAGE EXTERNAL;
5050
\copy toasted_copy FROM STDIN
51-
SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
51+
SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
5252
substr
5353
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
54-
BEGIN
55-
COMMIT
56-
BEGIN
57-
COMMIT
5854
BEGIN
5955
table public.xpto: INSERT: id[integer]:1 toasted_col1[text]:'1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
6056
COMMIT
@@ -71,12 +67,6 @@ SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot',
7167
table public.xpto: DELETE: id[integer]:1
7268
COMMIT
7369
BEGIN
74-
COMMIT
75-
BEGIN
76-
COMMIT
77-
BEGIN
78-
COMMIT
79-
BEGIN
8070
table public.toasted_key: INSERT: id[integer]:1 toasted_key[text]:'1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123
8171
COMMIT
8272
BEGIN
@@ -89,10 +79,6 @@ SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot',
8979
table public.toasted_key: DELETE: toasted_key[text]:'123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567
9080
COMMIT
9181
BEGIN
92-
COMMIT
93-
BEGIN
94-
COMMIT
95-
BEGIN
9682
table public.toasted_copy: INSERT: id[integer]:1 data[text]:'untoasted1'
9783
table public.toasted_copy: INSERT: id[integer]:2 data[text]:'toasted1-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
9884
table public.toasted_copy: INSERT: id[integer]:3 data[text]:'untoasted2'
@@ -297,7 +283,7 @@ SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot',
297283
table public.toasted_copy: INSERT: id[integer]:202 data[text]:'untoasted199'
298284
table public.toasted_copy: INSERT: id[integer]:203 data[text]:'untoasted200'
299285
COMMIT
300-
(246 rows)
286+
(232 rows)
301287

302288
SELECT pg_drop_replication_slot('regression_slot');
303289
pg_drop_replication_slot

contrib/test_decoding/specs/concurrent_ddl_dml.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ step "s2_alter_tbl2_3rd_char" { ALTER TABLE tbl2 ALTER COLUMN val3 TYPE characte
5050
step "s2_alter_tbl2_3rd_text" { ALTER TABLE tbl2 ALTER COLUMN val3 TYPE text; }
5151
step "s2_alter_tbl2_3rd_int" { ALTER TABLE tbl2 ALTER COLUMN val3 TYPE int USING val3::integer; }
5252

53-
step "s2_get_changes" { SELECT regexp_replace(data, 'temp_\d+', 'temp') AS data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0'); }
53+
step "s2_get_changes" { SELECT regexp_replace(data, 'temp_\d+', 'temp') AS data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); }
5454

5555

5656

contrib/test_decoding/sql/ddl.sql

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ SELECT pg_drop_replication_slot('regression_slot');
1919

2020
-- check that we're detecting a streaming rep slot used for logical decoding
2121
SELECT 'init' FROM pg_create_physical_replication_slot('repl');
22-
SELECT data FROM pg_logical_slot_get_changes('repl', NULL, NULL, 'include-xids', '0');
22+
SELECT data FROM pg_logical_slot_get_changes('repl', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
2323
SELECT pg_drop_replication_slot('repl');
2424

2525

@@ -64,11 +64,11 @@ ALTER TABLE replication_example RENAME COLUMN text TO somenum;
6464
INSERT INTO replication_example(somedata, somenum) VALUES (4, 1);
6565

6666
-- collect all changes
67-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
67+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
6868

6969
ALTER TABLE replication_example ALTER COLUMN somenum TYPE int4 USING (somenum::int4);
7070
-- throw away changes, they contain oids
71-
SELECT count(data) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
71+
SELECT count(data) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
7272

7373
INSERT INTO replication_example(somedata, somenum) VALUES (5, 1);
7474

@@ -82,21 +82,21 @@ INSERT INTO replication_example(somedata, somenum, zaphod1) VALUES (6, 4, 2);
8282
COMMIT;
8383

8484
-- show changes
85-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
85+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
8686

8787
-- hide changes bc of oid visible in full table rewrites
8888
CREATE TABLE tr_unique(id2 serial unique NOT NULL, data int);
8989
INSERT INTO tr_unique(data) VALUES(10);
9090
ALTER TABLE tr_unique RENAME TO tr_pkey;
9191
ALTER TABLE tr_pkey ADD COLUMN id serial primary key;
92-
SELECT count(data) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
92+
SELECT count(data) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
9393

9494
INSERT INTO tr_pkey(data) VALUES(1);
9595
--show deletion with primary key
9696
DELETE FROM tr_pkey;
9797

9898
/* display results */
99-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
99+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
100100

101101
/*
102102
* check that disk spooling works
@@ -110,7 +110,7 @@ COMMIT;
110110

111111
/* display results, but hide most of the output */
112112
SELECT count(*), min(data), max(data)
113-
FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0')
113+
FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1')
114114
GROUP BY substring(data, 1, 24)
115115
ORDER BY 1,2;
116116

@@ -138,7 +138,7 @@ INSERT INTO tr_sub(path) VALUES ('1-top-2-#1');
138138
RELEASE SAVEPOINT b;
139139
COMMIT;
140140

141-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
141+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
142142

143143
-- check that we handle xlog assignments correctly
144144
BEGIN;
@@ -167,7 +167,7 @@ RELEASE SAVEPOINT subtop;
167167
INSERT INTO tr_sub(path) VALUES ('2-top-#1');
168168
COMMIT;
169169

170-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
170+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
171171

172172
-- make sure rollbacked subtransactions aren't decoded
173173
BEGIN;
@@ -180,7 +180,7 @@ ROLLBACK TO SAVEPOINT b;
180180
INSERT INTO tr_sub(path) VALUES ('3-top-2-#2');
181181
COMMIT;
182182

183-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
183+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
184184

185185
-- test whether a known, but not yet logged toplevel xact, followed by a
186186
-- subxact commit is handled correctly
@@ -199,7 +199,7 @@ INSERT INTO tr_sub(path) VALUES ('5-top-1-#1');
199199
COMMIT;
200200

201201

202-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
202+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
203203

204204

205205
/*
@@ -239,7 +239,7 @@ ALTER TABLE replication_metadata SET (user_catalog_table = false);
239239
INSERT INTO replication_metadata(relation, options)
240240
VALUES ('zaphod', NULL);
241241

242-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
242+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
243243

244244
/*
245245
* check whether we handle updates/deletes correct with & without a pkey
@@ -315,7 +315,7 @@ UPDATE toasttable
315315
SET toasted_col1 = (SELECT string_agg(g.i::text, '') FROM generate_series(1, 2000) g(i))
316316
WHERE id = 1;
317317

318-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
318+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
319319

320320
INSERT INTO toasttable(toasted_col1) SELECT string_agg(g.i::text, '') FROM generate_series(1, 2000) g(i);
321321

@@ -327,10 +327,10 @@ WHERE id = 1;
327327
-- make sure we decode correctly even if the toast table is gone
328328
DROP TABLE toasttable;
329329

330-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
330+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
331331

332332
-- done, free logical replication slot
333-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
333+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
334334

335335
SELECT pg_drop_replication_slot('regression_slot');
336336

contrib/test_decoding/sql/decoding_in_xact.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ BEGIN;
3232
SELECT txid_current() = 0;
3333
-- don't show yet, haven't committed
3434
INSERT INTO nobarf(data) VALUES('2');
35-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
35+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
3636
COMMIT;
3737

3838
INSERT INTO nobarf(data) VALUES('3');
39-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
39+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
4040

4141
SELECT 'stop' FROM pg_drop_replication_slot('regression_slot');

contrib/test_decoding/sql/permissions.sql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,23 @@ CREATE TABLE lr_test(data text);
1111
SET ROLE lr_superuser;
1212
SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding');
1313
INSERT INTO lr_test VALUES('lr_superuser_init');
14-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
14+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
1515
SELECT pg_drop_replication_slot('regression_slot');
1616
RESET ROLE;
1717

1818
-- replication user can control replication
1919
SET ROLE lr_replication;
2020
SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding');
2121
INSERT INTO lr_test VALUES('lr_superuser_init');
22-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
22+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
2323
SELECT pg_drop_replication_slot('regression_slot');
2424
RESET ROLE;
2525

2626
-- plain user *can't* can control replication
2727
SET ROLE lr_normal;
2828
SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding');
2929
INSERT INTO lr_test VALUES('lr_superuser_init');
30-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
30+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
3131
SELECT pg_drop_replication_slot('regression_slot');
3232
RESET ROLE;
3333

contrib/test_decoding/sql/prepared.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ DROP TABLE test_prepared1;
4545
DROP TABLE test_prepared2;
4646

4747
-- show results
48-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
48+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
4949

5050
SELECT pg_drop_replication_slot('regression_slot');

contrib/test_decoding/sql/rewrite.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ DROP TABLE IF EXISTS replication_example;
66
SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding');
77
CREATE TABLE replication_example(id SERIAL PRIMARY KEY, somedata int, text varchar(120));
88
INSERT INTO replication_example(somedata) VALUES (1);
9-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
9+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
1010

1111
BEGIN;
1212
INSERT INTO replication_example(somedata) VALUES (2);
@@ -56,7 +56,7 @@ COMMIT;
5656
-- make old files go away
5757
CHECKPOINT;
5858

59-
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
59+
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
6060
SELECT pg_drop_replication_slot('regression_slot');
6161

6262
DROP TABLE IF EXISTS replication_example;

contrib/test_decoding/sql/toast.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,5 +259,5 @@ ALTER TABLE toasted_copy ALTER COLUMN data SET STORAGE EXTERNAL;
259259
202 untoasted199
260260
203 untoasted200
261261
\.
262-
SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0');
262+
SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
263263
SELECT pg_drop_replication_slot('regression_slot');

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy