8000 Add skip-empty-xacts option to test_decoding for use in the regressio… · postgres/postgres@cb3d2df · GitHub
[go: up one dir, main page]

Skip to content
  • Commit cb3d2df

    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 92b2c13 commit cb3d2df

    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' 10000 , '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)
    0