Accidental setting of XLogReaderState.private_data ?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Accidental setting of XLogReaderState.private_data ?

Antonin Houska-2
StartupDecodingContext() initializes ctx->reader->private_data with ctx, and
it even does so twice. I couldn't find a place in the code where the
(LogicalDecodingContext *) pointer is retrieved from the reader, and a simple
test of logical replication works if the patch below is applied. Thus I assume
that assignment is a thinko, isn't it?

--
Antonin Houska
Web: https://www.cybertec-postgresql.com


xlogreader_private_data.diff (772 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Accidental setting of XLogReaderState.private_data ?

Tom Lane-2
Antonin Houska <[hidden email]> writes:
> StartupDecodingContext() initializes ctx->reader->private_data with ctx, and
> it even does so twice. I couldn't find a place in the code where the
> (LogicalDecodingContext *) pointer is retrieved from the reader, and a simple
> test of logical replication works if the patch below is applied. Thus I assume
> that assignment is a thinko, isn't it?

Hmm.  The second, duplicate assignment is surely pointless, but I think
that setting the ctx as the private_data is a good idea.  It hardly seems
out of the question that it might be needed in future.

                        regards, tom lane


Reply | Threaded
Open this post in threaded view
|

Re: Accidental setting of XLogReaderState.private_data ?

Michael Paquier-2
On Mon, Apr 15, 2019 at 11:06:18AM -0400, Tom Lane wrote:
> Hmm.  The second, duplicate assignment is surely pointless, but I think
> that setting the ctx as the private_data is a good idea.  It hardly seems
> out of the question that it might be needed in future.

Agreed that we should keep the assignment done with
XLogReaderAllocate().  I have committed the patch which removes the
useless assignment though.
--
Michael

signature.asc (849 bytes) Download Attachment