Re: Move global variables of pgoutput to plugin private scope.

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-09-27T07:57:06Z
Lists: pgsql-hackers
On Wed, Sep 27, 2023 at 10:51:52AM +0530, Amit Kapila wrote:
> I have briefly looked at
> v2-0002-Move-in_streaming-to-output-private-data in the same email [1]
> but didn't think about it in detail (like whether there is any live
> bug that can be fixed or is just an improvement).

This looks like an improvement to me, as at the startup of a stream
the flag is forcibly reset to a false state.  So, you cannot really
reach a state where a second stream could be started within the same
session but with a flag incorrectly set to true.  Tracking that in the
state data of pgoutput is cleaner, definitely.

> If you wanted to
> look and commit v2-0002-Move-in_streaming-to-output-private-data, I am
> fine with that?

Sure.  I found the concept behind 0002 sound.  Feel free to go ahead
with 0001, and I can always look at the second.  Always happy to help.
--
Michael

Commits

  1. Move tracking of in_streaming to PGOutputData

  2. Fix the misuse of origin filter across multiple pg_logical_slot_get_changes() calls.

  3. Fix typos in pgoutput.c