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
This commit is contained in:
Andres Freund 2018-10-10 13:53:02 -07:00
parent f82d4d666f
commit ef493055b6
4 changed files with 9 additions and 0 deletions

View File

@ -1,3 +1,5 @@
-- predictability
SET synchronous_commit = on;
SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding');
?column?
----------

View File

@ -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; }

View File

@ -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

View File

@ -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);