diff --git a/src/backend/replication/pgoutput/pgoutput.c b/src/backend/replication/pgoutput/pgoutput.c index 77b85fc655..7fb2d31867 100644 --- a/src/backend/replication/pgoutput/pgoutput.c +++ b/src/backend/replication/pgoutput/pgoutput.c @@ -416,9 +416,9 @@ pgoutput_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, break; } case REORDER_BUFFER_CHANGE_UPDATE: + if (change->data.tp.oldtuple) { - HeapTuple oldtuple = change->data.tp.oldtuple ? - &change->data.tp.oldtuple->tuple : NULL; + HeapTuple oldtuple = &change->data.tp.oldtuple->tuple; HeapTuple newtuple = &change->data.tp.newtuple->tuple; /* Switch relation if publishing via root. */ @@ -437,8 +437,10 @@ pgoutput_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, OutputPluginPrepareWrite(ctx, true); logicalrep_write_update(ctx->out, relation, oldtuple, newtuple); OutputPluginWrite(ctx, true); - break; } + else + elog(DEBUG1, "didn't send UPDATE change because of missing oldtuple"); + break; case REORDER_BUFFER_CHANGE_DELETE: if (change->data.tp.oldtuple) {