pgsql: Refactor slot synchronization logic in slotsync.c.

From: Amit Kapila <akapila(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Refactor slot synchronization logic in slotsync.c.
Date: 2026-02-12 09:15:25
Message-ID: E1vqSnE-000M1H-1e@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: 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(dot)fnst(at)fujitsu(dot)com>
Reviewed-by: Shveta Malik <shveta(dot)malik(at)gmail(dot)com>
Reviewed-by: Amit Kapila <amit(dot)kapila16(at)gmail(dot)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(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Dean Rasheed 2026-02-12 10:00:38 pgsql: Add support for INSERT ... ON CONFLICT DO SELECT.
Previous Message Dean Rasheed 2026-02-12 09:07:18 pgsql: Remove p_is_insert from struct ParseState.