Hi all Patch revision 3 attached. It's a one-liner, with just the fix, and an explanatory note in the patch header.
I'll leave the test changes for now, per Andres's feedback. I'll write up a proposed addition to the replication origin docs that explains the existence of separate origins for each change and for the tx as a whole, and explains how replication origins interacts with transaction commit timestamps. That'll come as a followup; I think it's worth getting the bug fix in now. -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
From 8c4285402706329a64a3f180c66a04357a932b3d Mon Sep 17 00:00:00 2001 From: Craig Ringer <cr...@2ndquadrant.com> Date: Mon, 19 Oct 2015 21:37:19 +0800 Subject: [PATCH] Send replication origin on commit The transaction replication origin is not set when decoding a commit. Origins for individual replication changes are passed correctly, as is the origin when calling the transaction filter. Fix that, supplying the transaction origin to logical decoding callbacks. Prior to this change the ReorderBufferTXN->origin_id (usually: txn->origin_id) is always InvalidRepNodeOrigin in decoding callbacks other than the origin filter. See the thread http://www.postgresql.org/message-id/CAMsr+YFhBJLp=qfsz3-j+0p1zlke8znxm2otycn20qrmx38...@mail.gmail.com for details. --- src/backend/replication/logical/decode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/replication/logical/decode.c b/src/backend/replication/logical/decode.c index c629da3..9f60687 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) -- 2.1.0
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers