mirror of
https://github.com/postgres/postgres.git
synced 2025-06-11 20:28:21 +03:00
Add BEGIN/COMMIT for transactional messages during decoding.
In test_decoding module, when skip_empty_xacts option was specified, add BEGIN/COMMIT for transactional messages. This makes the handling of transactional messages consistent irrespective of whether skip_empty_xacts option was specified. We decided not to backpatch this change because skip_empty_xacts is primarily used to have consistent test results across different runs and this change won't help with that. Author: Vignesh C Reviewed-by: Ashutosh Bapat, Hou Zhijie Discussion: https://postgr.es/m/CAExHW5ujRhbOz6_aTq_jQA8NjeFqq9d_8G9viShWvXx8gdSXiQ@mail.gmail.com
This commit is contained in:
@ -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);
|
||||
|
Reference in New Issue
Block a user