summaryrefslogtreecommitdiff
path: root/contrib/test_decoding
diff options
context:
space:
mode:
authorAndres Freund2014-12-02 22:42:26 +0000
committerAndres Freund2014-12-02 22:47:08 +0000
commit0fd38e13706e6bd4b2a4ce4e0570d0aa4ad65345 (patch)
tree06761df2cd6448e02d42beb8f1ff15e0e5ad0643 /contrib/test_decoding
parent75ef435218fe4f6ce29d33e10f6f7a328c93f7e7 (diff)
Don't skip SQL backends in logical decoding for visibility computation.
The logical decoding patchset introduced PROC_IN_LOGICAL_DECODING flag PGXACT flag, that allows such backends to be skipped when computing the xmin horizon/snapshots. That's fine and sensible for walsenders streaming out logical changes, but not at all fine for SQL backends doing logical decoding. If the latter set that flag any change they have performed outside of logical decoding will not be regarded as visible - which e.g. can lead to that change being vacuumed away. Note that not setting the flag for SQL backends isn't particularly bothersome - the SQL backend doesn't do streaming, so it only runs for a limited amount of time. Per buildfarm member 'tick' and Alvaro. Backpatch to 9.4, where logical decoding was introduced.
Diffstat (limited to 'contrib/test_decoding')
-rw-r--r--contrib/test_decoding/expected/decoding_into_rel.out2
-rw-r--r--contrib/test_decoding/sql/decoding_into_rel.sql4
2 files changed, 6 insertions, 0 deletions
diff --git a/contrib/test_decoding/expected/decoding_into_rel.out b/contrib/test_decoding/expected/decoding_into_rel.out
index 2671258f5d9..be759caa31d 100644
--- a/contrib/test_decoding/expected/decoding_into_rel.out
+++ b/contrib/test_decoding/expected/decoding_into_rel.out
@@ -1,6 +1,8 @@
-- test that we can insert the result of a get_changes call into a
-- logged relation. That's really not a good idea in practical terms,
-- but provides a nice test.
+-- predictability
+SET synchronous_commit = on;
SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding');
?column?
----------
diff --git a/contrib/test_decoding/sql/decoding_into_rel.sql b/contrib/test_decoding/sql/decoding_into_rel.sql
index 3704821bcc3..54670fd39e7 100644
--- a/contrib/test_decoding/sql/decoding_into_rel.sql
+++ b/contrib/test_decoding/sql/decoding_into_rel.sql
@@ -1,6 +1,10 @@
-- test that we can insert the result of a get_changes call into a
-- logged relation. That's really not a good idea in practical terms,
-- but provides a nice test.
+
+-- predictability
+SET synchronous_commit = on;
+
SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding');
-- slot works