Dear Hou,

Thanks for updating the patch! I can finally come back to the thread.

Regarding the max_retain_conflict_duration, I prefer GUC approach because it has
already had a mechanism for converting unit: subscription option does not have 
it.

Below part contains my comments:

01. check_new_cluster_subscription_configuration

```
@@ -2024,6 +2025,7 @@ check_new_cluster_subscription_configuration(void)
        PGresult   *res;
        PGconn     *conn;
        int                     max_active_replication_origins;
+       int                     max_replication_slots;
```

I feel max_replication_slots is needed when 
old_cluster.sub_retain_conflict_info is true.

02. check_old_cluster_for_valid_slots
```
+                       /*
+                        * The name "pg_conflict_detection" (defined as
+                        * CONFLICT_DETECTION_SLOT) has been reserved for 
logical
+                        * replication conflict detection since PG18.
+                        */
+                       if (GET_MAJOR_VERSION(new_cluster.major_version) >= 
1800 &&
+                               strcmp(slot->slotname, "pg_conflict_detection") 
== 0)
```

IIUC, we can assume that the vesion of new_cluster is same as pg_upgrade, so no
need to check the major version here.

03.

Can we add a test for upgrading subscriber node with retain_conflict_info in 
004_subscription?

Best regards,
Hayato Kuroda
FUJITSU LIMITED

Reply via email to