pgsql: Fix 'skip-empty-xacts' option in test_decoding for streaming mod

From: Amit Kapila <akapila(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix 'skip-empty-xacts' option in test_decoding for streaming mod
Date: 2020-11-17 06:45:24
Message-ID: E1keuk0-0001UN-Cc@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix 'skip-empty-xacts' option in test_decoding for streaming mode.

In streaming mode, the transaction can be decoded in multiple streams and
those streams can be interleaved with streams of other transactions. So,
we can't remember the transaction's write status in the logical decoding
context because that might get changed due to some other transactions and
lead to wrong answers for 'skip-empty-xacts' option. We decided to keep
each transaction's write status in the ReorderBufferTxn to avoid
interleaved streams changing the status of some unrelated transactions.

Diagnosed-by: Amit Kapila
Author: Dilip Kumar
Reviewed-by: Amit Kapila
Discussion: https://postgr.es/m/CAA4eK1LR7=XNM_TLmpZMFuV8ZQpoxkem--NZJYf8YXmesbvwLA@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/9653f24ad8307f393de51e0a64d9b10a49efa6e3

Modified Files
--------------
.../test_decoding/expected/concurrent_stream.out | 5 +-
contrib/test_decoding/specs/concurrent_stream.spec | 10 ++-
contrib/test_decoding/test_decoding.c | 93 ++++++++++++++++++----
src/backend/replication/logical/reorderbuffer.c | 1 +
src/include/replication/reorderbuffer.h | 5 ++
src/tools/pgindent/typedefs.list | 1 +
6 files changed, 96 insertions(+), 19 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Geoghegan 2020-11-17 17:02:19 pgsql: nbtree: Rename nbtinsert.c variables for consistency.
Previous Message Tom Lane 2020-11-17 01:33:11 pgsql: Don't Insert() a VFD entry until it's fully built.