Refactor slot synchronization logic in slotsync.c.

Following e68b6adad9, the reason for skipping slot synchronization is
stored as a slot property. This commit removes redundant function
parameters that previously tracked this state, instead relying directly on
the slot property.

Additionally, this change centralizes the logic for skipping
synchronization when required WAL has not yet been received or flushed. By
consolidating this check, we reduce code duplication and the risk of
inconsistent state updates across different code paths.

In passing, add an assertion to ensure a slot is marked as temporary if a
consistent point has not been reached during synchronization.

Author: Zhijie Hou <[email protected]>
Reviewed-by: Shveta Malik <[email protected]>
Reviewed-by: Amit Kapila <[email protected]>
Discussion: 
https://postgr.es/m/ty4pr01mb16907dd16098be3b20486d45694...@ty4pr01mb16907.jpnprd01.prod.outlook.com
Discussion: 
https://postgr.es/m/CAFPTHDZAA+gWDntpa5ucqKKba41=txmoxqn3q4rpjo9cdxg...@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/788ec96d591d0a7c916f2f4332765f46410d73b5

Modified Files
--------------
src/backend/replication/logical/slotsync.c | 163 +++++++++--------------------
1 file changed, 51 insertions(+), 112 deletions(-)

Reply via email to