pgsql: Refactor slot synchronization logic in slotsync.c. - Mailing list pgsql-committers

From Amit Kapila
Subject pgsql: Refactor slot synchronization logic in slotsync.c.
Date
Msg-id E1vqSnE-000M1H-1e@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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 <houzj.fnst@fujitsu.com>
Reviewed-by: Shveta Malik <shveta.malik@gmail.com>
Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Discussion: https://postgr.es/m/TY4PR01MB16907DD16098BE3B20486D4569463A@TY4PR01MB16907.jpnprd01.prod.outlook.com
Discussion: https://postgr.es/m/CAFPTHDZAA+gWDntpa5ucqKKba41=tXmoXqN3q4rpjO9cdxgQrw@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(-)


pgsql-committers by date:

Previous
From: Dean Rasheed
Date:
Subject: pgsql: Remove p_is_insert from struct ParseState.
Next
From: Dean Rasheed
Date:
Subject: pgsql: Add support for INSERT ... ON CONFLICT DO SELECT.