Skip empty transaction stream in test_decoding.
authorAmit Kapila
Fri, 11 Sep 2020 04:30:01 +0000 (10:00 +0530)
committerAmit Kapila
Fri, 11 Sep 2020 04:30:01 +0000 (10:00 +0530)
commit0ba5181c00eb0216bdfd9afbf3d680fee67d34b3
tree250356edd17e6087427dc4551fe51c3c74368d36
parent9f1cf97bb5387a6243c8a6c9725616ef7447962e
Skip empty transaction stream in test_decoding.

We were decoding empty transactions via streaming APIs added in commit
45fdc9738b even when the user used the option 'skip-empty-xacts'. The APIs
makes no effort to skip empty xacts under the assumption that we will
never try to stream such transactions. However, that is not true because
we can pick to stream a transaction that has change messages for
REORDER_BUFFER_CHANGE_INTERNAL_SNAPSHOT and we don't send such messages to
downstream rather they are just to update the internal state. So, we need
to skip such xacts when plugin uses the option 'skip-empty-xacts'.

Diagnosed-By: Amit Kapila
Author: Dilip Kumar
Reviewed-by: Amit Kapila
Discussion: https://postgr.es/m/CAA4eK1+OqgFNZkf7=ETe_y5ntjgDk3T0wcdkd4Sot_u1hySGfw@mail.gmail.com
contrib/test_decoding/Makefile
contrib/test_decoding/expected/concurrent_stream.out [new file with mode: 0644]
contrib/test_decoding/expected/stream.out
contrib/test_decoding/specs/concurrent_stream.spec [new file with mode: 0644]
contrib/test_decoding/test_decoding.c