Move tracking of in_streaming to PGOutputData
commit9210afd3bcd65feccb883ace4ed6dcef6a684585
authorMichael Paquier <michael@paquier.xyz>
Thu, 28 Sep 2023 00:33:51 +0000 (28 09:33 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 28 Sep 2023 00:33:51 +0000 (28 09:33 +0900)
tree2be068139f410dac7648a1bf05f1075026fc2abc
parentebf76f2753a91615d45f113f1535a8443fa8d076
Move tracking of in_streaming to PGOutputData

"in_streaming" is a flag used to track if an instance of pgoutput is
streaming changes.  When pgoutput is started, the flag was always reset,
switched it back and forth in the stream start/stop callbacks.

Before this commit, it was a global variable, which is confusing as it
is actually attached to a state of PGOutputData.  Per my analysis, using
a global variable did not lead to an active bug like in 54ccfd65868c,
but it makes the code more consistent.  Note that we cannot backpatch
this change anyway as it requires the addition of a new field to
PGOutputData, exposed in pgoutput.h.

Author: Hou Zhijie
Reviewed-by: Amit Kapila, Michael Paquier, Peter Smith
Discussion: https://postgr.es/m/OS0PR01MB571690EF24F51F51EFFCBB0E94FAA@OS0PR01MB5716.jpnprd01.prod.outlook.com
src/backend/replication/pgoutput/pgoutput.c
src/include/replication/pgoutput.h