On Thu, Dec 11, 2025 at 10:45 AM Ajin Cherian <[email protected]> wrote:
>
> As patch 0001 has been pushed. I've rebased and created a new version
> v36 with the remaining patch.
>

I have made a number of changes in code comments and docs. Kindly
review and if you are okay with these then include them in the next
version.

-- 
With Regards,
Amit Kapila.
diff --git a/doc/src/sgml/logicaldecoding.sgml 
b/doc/src/sgml/logicaldecoding.sgml
index 33940504622..cae8a376c3b 100644
--- a/doc/src/sgml/logicaldecoding.sgml
+++ b/doc/src/sgml/logicaldecoding.sgml
@@ -406,13 +406,12 @@ postgres=# SELECT * from 
pg_logical_slot_get_changes('regression_slot', NULL, NU
       synchronized using the <link linkend="pg-sync-replication-slots">
       <function>pg_sync_replication_slots</function></link> function on the 
standby.
       However, unlike automatic synchronization, it does not perform 
incremental
-      updates. It retries cyclically to some extent—continuing until all
-      the failover slots that existed on primary at the start of the function
-      call are synchronized. Any slots created after the function begins will
-      not be synchronized. In contrast, automatic synchronization
-      via <varname>sync_replication_slots</varname> provides continuous slot
-      updates, enabling seamless failover and supporting high availability.
-      Therefore, it is the recommended method for synchronizing slots.
+      updates. It retries cyclically until all the failover slots that existed 
on
+      primary at the start of the function call are synchronized. Any slots 
created
+      after the function begins will not be synchronized. In contrast, 
automatic
+      synchronization via <varname>sync_replication_slots</varname> provides
+      continuous slot updates, enabling seamless failover and supporting high
+      availability. Therefore, it is the recommended method for synchronizing 
slots.
      </para>
     </note>
 
diff --git a/src/backend/replication/logical/slotsync.c 
b/src/backend/replication/logical/slotsync.c
index 437e882fa81..10a769ccf85 100644
--- a/src/backend/replication/logical/slotsync.c
+++ b/src/backend/replication/logical/slotsync.c
@@ -608,7 +608,7 @@ reserve_wal_for_local_slot(XLogRecPtr restart_lsn)
  * future synchronization; otherwise, do nothing.
  *
  * *slot_persistence_pending is set to true if any of the slots fail to
- * persist. It is utilized by the SQL function pg_sync_replication_slots().
+ * persist.
  *
  * Return true if the slot is marked as RS_PERSISTENT (sync-ready), otherwise
  * false.
@@ -688,7 +688,7 @@ update_and_persist_local_synced_slot(RemoteSlot 
*remote_slot, Oid remote_dbid,
  * periodic syncs.
  *
  * *slot_persistence_pending is set to true if any of the slots fail to
- * persist. It is utilized by the SQL function pg_sync_replication_slots().
+ * persist.
  *
  * Returns TRUE if the local slot is updated.
  */
@@ -911,15 +911,8 @@ synchronize_one_slot(RemoteSlot *remote_slot, Oid 
remote_dbid,
  * If slot_names is NIL, fetches all failover logical slots from the
  * primary server, otherwise fetches only the ones with names in slot_names.
  *
- * Parameters:
- *     wrconn - Connection to the primary server
- *     slot_names - List of slot names (char *) to fetch from primary,
- *                             or NIL to fetch all failover logical slots.
- *
- * Returns:
- *     List of remote slot information structures. Returns NIL if no slot
- *     is found.
- *
+ * Returns list of remote slot information structures, if any, otherwise,
+ * NIL if no slot is found.
  */
 static List *
 fetch_remote_slots(WalReceiverConn *wrconn, List *slot_names)
@@ -1054,18 +1047,13 @@ fetch_remote_slots(WalReceiverConn *wrconn, List 
*slot_names)
 /*
  * Synchronize slots.
  *
- * Takes a list of remote slots and synchronizes them locally. Creates the
- * slots if not present on the standby and updates existing ones.
+ * This function takes a list of remote slots and synchronizes them locally. It
+ * creates the slots if not present on the standby and updates existing ones.
  *
- * Parameters:
- * wrconn - Connection to the primary server
- * remote_slot_list - List of RemoteSlot structures to synchronize.
- * slot_persistence_pending - boolean used by SQL function
- *                                                       
pg_sync_replication_slots() to track if any slots
- *                                                       could not be 
persisted and need to be retried.
+ * If slot_persistence_pending is not NULL, it will be set to true if one or
+ * more slots could not be persisted.
  *
- * Returns:
- * TRUE if any of the slots gets updated in this sync-cycle.
+ * Returns TRUE if any of the slots gets updated in this sync-cycle.
  */
 static bool
 synchronize_slots(WalReceiverConn *wrconn, List *remote_slot_list,
@@ -1981,6 +1969,7 @@ extract_slot_names(List *remote_slots)
  *
  * Repeatedly fetches and updates replication slot information from the
  * primary until all slots are at least "sync ready".
+ *
  * Exits early if promotion is triggered or certain critical
  * configuration parameters have changed.
  */
@@ -2042,7 +2031,6 @@ SyncReplicationSlots(WalReceiverConn *wrconn)
 
                        /* wait before retrying again */
                        wait_for_slot_activity(some_slot_updated);
-
                }
 
                if (slot_names)

Reply via email to