On Mon, Jul 9, 2018 at 10:34 AM, Michael Paquier <mich...@paquier.xyz> wrote: > On Mon, Jul 09, 2018 at 10:06:00AM +0900, Masahiko Sawada wrote: >> I think that this patch might be splitted but I will be able to send >> an updated patch in the next week. As you suggestion this patch needs >> more careful thoughts. I'll move this patch to the next commit fest if >> I will not be able to sent it. Is that okay? > > Fine by me. Thanks for the update.
Attached new version of patch incorporated the all comments I got from Michael-san. To prevent the WAL segment file of restart_lsn of the origin slot from removal during creating the target slot, I've chosen a way to copy new one while holding the origin one. One problem to implement this way is that the current replication slot code doesn't allow us to do straightforwardly; the code assumes that the process creating a new slot is not holding another slot. So I've changed the copy functions so that it save temporarily MyReplicationSlot and then restore and release it after creation the target slot. To ensure that both the origin and target slot are released properly in failure cases I used PG_ENSURE_ERROR_CLEANUP(). That way, we can keep the code changes of the logical decoding at a minimum. I've thought that we can change the logical decoding code so that it can assumes that the process can have more than one slots at once but it seems overkill to me. Please review it. Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
v4-0001-Copy-function-for-logical-and-physical-replicatio.patch
Description: Binary data