Dear Amit, Thanks for giving comment. New version will be available in the upcoming post.
> + res = executeQueryOrDie(conn, "SELECT slot_name " > + "FROM pg_catalog.pg_replication_slots " > + "WHERE slot_type = 'logical' AND " > + "temporary IS FALSE;"); > + > + if (PQntuples(res)) > + pg_fatal("New cluster must not have logical replication slot, but > found \"%s\"", > + PQgetvalue(res, 0, 0)); > + > + PQclear(res); > + > + nslots = count_logical_slots(&old_cluster); > + > + /* > + * Do additional checks when the logical replication slots have on the old > + * cluster. > + */ > + if (nslots) > > Shouldn't these checks be reversed? I mean it would be better to test > the presence of slots on the new cluster if there is any slot present > on the old cluster. Hmm, I think the later part is meaningful only when the old cluster has logical slots. To sum up, any checking should be done when the count_logical_slots(&old_cluster) > 0, right? Fixed like that. Best Regards, Hayato Kuroda FUJITSU LIMITED