From a6fc71f6def9adfb56b54c3ac76e153f0b5c99ab Mon Sep 17 00:00:00 2001 From: Dilip Kumar Date: Thu, 12 Nov 2020 15:00:25 +0530 Subject: [PATCH v2 2/2] Test case to test the interleaved empty transactions --- contrib/test_decoding/expected/concurrent_stream.out | 5 +++-- contrib/test_decoding/specs/concurrent_stream.spec | 8 ++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/contrib/test_decoding/expected/concurrent_stream.out b/contrib/test_decoding/expected/concurrent_stream.out index e731d13..6f8b217 100644 --- a/contrib/test_decoding/expected/concurrent_stream.out +++ b/contrib/test_decoding/expected/concurrent_stream.out @@ -1,11 +1,12 @@ -Parsed test spec with 2 sessions +Parsed test spec with 3 sessions -starting permutation: s0_begin s0_ddl s1_ddl s1_begin s1_toast_insert s1_commit s1_get_stream_changes +starting permutation: s0_begin s0_ddl s1_ddl s1_begin s1_toast_insert s2_ddl s1_commit s1_get_stream_changes step s0_begin: BEGIN; step s0_ddl: CREATE TABLE stream_test1(data text); step s1_ddl: CREATE TABLE stream_test(data text); step s1_begin: BEGIN; step s1_toast_insert: INSERT INTO stream_test SELECT large_val(); +step s2_ddl: CREATE TABLE stream_test2(data text); step s1_commit: COMMIT; step s1_get_stream_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL,NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'stream-changes', '1'); data diff --git a/contrib/test_decoding/specs/concurrent_stream.spec b/contrib/test_decoding/specs/concurrent_stream.spec index ad9fde9..8d24ca1 100644 --- a/contrib/test_decoding/specs/concurrent_stream.spec +++ b/contrib/test_decoding/specs/concurrent_stream.spec @@ -8,7 +8,7 @@ setup -- consume DDL SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); - CREATE OR REPLACE FUNCTION large_val() RETURNS TEXT LANGUAGE SQL AS 'select array_agg(md5(g::text))::text from generate_series(1, 80000) g'; + CREATE OR REPLACE FUNCTION large_val() RETURNS TEXT LANGUAGE SQL AS 'select array_agg(md5(g::text))::text from generate_series(1, 60000) g'; } teardown @@ -23,6 +23,10 @@ setup { SET synchronous_commit=on; } step "s0_begin" { BEGIN; } step "s0_ddl" {CREATE TABLE stream_test1(data text);} +session "s2" +setup { SET synchronous_commit=on; } +step "s2_ddl" {CREATE TABLE stream_test2(data text);} + # The transaction commit for s1_ddl will add the INTERNAL_SNAPSHOT change to # the currently running s0_ddl and we want to test that s0_ddl should not get # streamed when user asked to skip-empty-xacts. @@ -34,4 +38,4 @@ step "s1_toast_insert" {INSERT INTO stream_test SELECT large_val();} step "s1_commit" { COMMIT; } step "s1_get_stream_changes" { SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL,NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'stream-changes', '1');} -permutation "s0_begin" "s0_ddl" "s1_ddl" "s1_begin" "s1_toast_insert" "s1_commit" "s1_get_stream_changes" +permutation "s0_begin" "s0_ddl" "s1_ddl" "s1_begin" "s1_toast_insert" "s2_ddl" "s1_commit" "s1_get_stream_changes" -- 1.8.3.1