From ef493055b67d30393a71c59d6fcbc2bd406528c2 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Wed, 10 Oct 2018 13:53:02 -0700 Subject: [PATCH] Force synchronous commit to be enabled for all test_decoding tests. Without that the tests fail when forced to be run against a cluster with synchronous_commit = off (as the WAL might not yet be flushed to disk by the point logical decoding gets called, and thus the expected output breaks). Most tests already do that, add it to a few newer tests. Author: Andres Freund --- contrib/test_decoding/expected/truncate.out | 2 ++ contrib/test_decoding/specs/oldest_xmin.spec | 2 ++ contrib/test_decoding/specs/snapshot_transfer.spec | 2 ++ contrib/test_decoding/sql/truncate.sql | 3 +++ 4 files changed, 9 insertions(+) diff --git a/contrib/test_decoding/expected/truncate.out b/contrib/test_decoding/expected/truncate.out index be85178206..1cf2ae835c 100644 --- a/contrib/test_decoding/expected/truncate.out +++ b/contrib/test_decoding/expected/truncate.out @@ -1,3 +1,5 @@ +-- predictability +SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); ?column? ---------- diff --git a/contrib/test_decoding/specs/oldest_xmin.spec b/contrib/test_decoding/specs/oldest_xmin.spec index 141fe2b145..6cb13e85ce 100644 --- a/contrib/test_decoding/specs/oldest_xmin.spec +++ b/contrib/test_decoding/specs/oldest_xmin.spec @@ -17,6 +17,7 @@ teardown } session "s0" +setup { SET synchronous_commit=on; } step "s0_begin" { BEGIN; } step "s0_getxid" { SELECT txid_current() IS NULL; } step "s0_alter" { ALTER TYPE basket DROP ATTRIBUTE mangos; } @@ -26,6 +27,7 @@ step "s0_vacuum" { VACUUM pg_attribute; } step "s0_get_changes" { SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); } session "s1" +setup { SET synchronous_commit=on; } step "s1_begin" { BEGIN; } step "s1_insert" { INSERT INTO harvest VALUES ((1, 2, 3)); } step "s1_commit" { COMMIT; } diff --git a/contrib/test_decoding/specs/snapshot_transfer.spec b/contrib/test_decoding/specs/snapshot_transfer.spec index 47db7fd90a..8fb70e6567 100644 --- a/contrib/test_decoding/specs/snapshot_transfer.spec +++ b/contrib/test_decoding/specs/snapshot_transfer.spec @@ -17,6 +17,7 @@ teardown } session "s0" +setup { SET synchronous_commit=on; } step "s0_begin" { BEGIN; } step "s0_begin_sub0" { SAVEPOINT s0; } step "s0_log_assignment" { SELECT txid_current() IS NULL; } @@ -30,6 +31,7 @@ step "s0_commit" { COMMIT; } step "s0_get_changes" { SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); } session "s1" +setup { SET synchronous_commit=on; } step "s1_produce_new_snap" { ALTER TABLE harvest ADD COLUMN mangos int; } # start top-level without base snap, get base snap in subxact, then create new diff --git a/contrib/test_decoding/sql/truncate.sql b/contrib/test_decoding/sql/truncate.sql index 88f113fd5b..5aecdf0881 100644 --- a/contrib/test_decoding/sql/truncate.sql +++ b/contrib/test_decoding/sql/truncate.sql @@ -1,3 +1,6 @@ +-- predictability +SET synchronous_commit = on; + SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); CREATE TABLE tab1 (id serial unique, data int);