diff --git a/src/backend/replication/logical/decode.c b/src/backend/replication/logical/decode.c index 151c3ef..f6a5d3c 100644 --- a/src/backend/replication/logical/decode.c +++ b/src/backend/replication/logical/decode.c @@ -217,12 +217,12 @@ DecodeXactOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf) uint8 info = XLogRecGetInfo(r) & XLOG_XACT_OPMASK; /* - * No point in doing anything yet, data could not be decoded anyway. It's - * ok not to call ReorderBufferProcessXid() in that case, except in the - * assignment case there'll not be any later records with the same xid; - * and in the assignment case we'll not decode those xacts. + * There is no point in decoding data changes and it's ok not to call + * ReorderBufferProcessXid() except in the assignment case since there + * will be any later records with the same xid and subxids. */ - if (SnapBuildCurrentState(builder) < SNAPBUILD_FULL_SNAPSHOT) + if (SnapBuildCurrentState(builder) < SNAPBUILD_FULL_SNAPSHOT && + info != XLOG_XACT_ASSIGNMENT) return; switch (info)