On Thu, Jul 12, 2018 at 9:28 PM, Masahiko Sawada <sawada.m...@gmail.com> wrote: > 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. >
The previous patch conflicts with the current HEAD. Attached updated version patch. Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
v5-0001-Copy-function-for-logical-and-physical-replicatio.patch
Description: Binary data