From: Andres Freund Date: Sun, 8 Nov 2015 22:01:53 +0000 (+0100) Subject: Set replication origin when decoding commit records. X-Git-Tag: REL9_6_BETA1~1120 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f3a764b0dac77451d20ee00d2f5916447a5c4346;p=postgresql Set replication origin when decoding commit records. By accident the replication origin was not set properly in DecodeCommit(). That's bad because the origin is passed to the output plugins origin filter, and accessible from the output plugin via ReorderBufferTXN->origin_id. Accessing the origin of individual changes worked before the fix, which is why this wasn't notices earlier. Reported-By: Craig Ringer Author: Craig Ringer Discussion: CAMsr+YFhBJLp=qfSz3-J+0P1zLkE8zNXM2otycn20QRMx380gw@mail.gmail.com Backpatch: 9.5, where replication origins where introduced --- diff --git a/src/backend/replication/logical/decode.c b/src/backend/replication/logical/decode.c index c629da317e..9f606875c8 100644 --- a/src/backend/replication/logical/decode.c +++ b/src/backend/replication/logical/decode.c @@ -450,7 +450,7 @@ DecodeCommit(LogicalDecodingContext *ctx, XLogRecordBuffer *buf, { XLogRecPtr origin_lsn = InvalidXLogRecPtr; XLogRecPtr commit_time = InvalidXLogRecPtr; - XLogRecPtr origin_id = InvalidRepOriginId; + XLogRecPtr origin_id = XLogRecGetOrigin(buf->record); int i; if (parsed->xinfo & XACT_XINFO_HAS_ORIGIN)