aboutsummaryrefslogtreecommitdiff
path: root/contrib/test_decoding/test_decoding.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/test_decoding/test_decoding.c')
-rw-r--r--contrib/test_decoding/test_decoding.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/contrib/test_decoding/test_decoding.c b/contrib/test_decoding/test_decoding.c
index 12d1d0505d7..ab870d9e4dc 100644
--- a/contrib/test_decoding/test_decoding.c
+++ b/contrib/test_decoding/test_decoding.c
@@ -743,6 +743,18 @@ pg_decode_message(LogicalDecodingContext *ctx,
ReorderBufferTXN *txn, XLogRecPtr lsn, bool transactional,
const char *prefix, Size sz, const char *message)
{
+ TestDecodingData *data = ctx->output_plugin_private;
+ TestDecodingTxnData *txndata;
+
+ txndata = transactional ? txn->output_plugin_private : NULL;
+
+ /* output BEGIN if we haven't yet for transactional messages */
+ if (transactional && data->skip_empty_xacts && !txndata->xact_wrote_changes)
+ pg_output_begin(ctx, data, txn, false);
+
+ if (transactional)
+ txndata->xact_wrote_changes = true;
+
OutputPluginPrepareWrite(ctx, true);
appendStringInfo(ctx->out, "message: transactional: %d prefix: %s, sz: %zu content:",
transactional, prefix, sz);