Hi, Alexander! On Tue, 22 Oct 2024 at 13:26, Alexander Korotkov <aekorot...@gmail.com> wrote:
> On Wed, Oct 16, 2024 at 11:20 PM Alexander Korotkov > <aekorot...@gmail.com> wrote: > > > > On Wed, Oct 16, 2024 at 10:35 PM Peter Eisentraut <pe...@eisentraut.org> > wrote: > > > On 02.09.24 01:55, Alexander Korotkov wrote: > > > > On Mon, Sep 2, 2024 at 2:28 AM Michael Paquier <mich...@paquier.xyz> > wrote: > > > >> On Sun, Sep 01, 2024 at 10:35:27PM +0300, Alexander Korotkov wrote: > > > >>> This path hasn't changes since the patch revision when it was a > > > >>> utility command. I agree that this doesn't look like proper path > for > > > >>> stored procedure. But I don't think src/backend/utils/adt is > > > >>> appropriate path either, because it's not really about data type. > > > >>> pg_wal_replay_wait() looks a good neighbor for > > > >>> pg_wal_replay_pause()/pg_wal_replay_resume() and other WAL-related > > > >>> functions. So, what about moving it to src/backend/access/transam? > > > >> > > > >> Moving the new function to xlogfuncs.c while publishing > > > >> WaitForLSNReplay() makes sense to me. > > > > > > > > Thank you for proposal. I like this. > > > > > > > > Could you, please, check the attached patch? > > > > > > We still have stuff in src/backend/commands/waitlsn.c that is nothing > > > like a "command". You have moved some stuff elsewhere, but what are > you > > > planning to do with the rest? > > > > Thank you for spotting this another time. What about moving that > > somewhere like src/backend/access/transam/xlogwait.c ? > > Implemented this as a separate patch (0001). Also rebased other > pending patches on that. 0004 now revises header comment of > xlogwait.c with new procedure signature. > I've looked at v5 of a patchset. 0001: Looks completely ok. 0002: As stated in latch.c - WL_POSTMASTER_DEATH: Wait for postmaster to die - WL_EXIT_ON_PM_DEATH: Exit immediately if the postmaster dies * wakeEvents must include either WL_EXIT_ON_PM_DEATH for automatic exit * if the postmaster dies or WL_POSTMASTER_DEATH for a flag set in the * return value if the postmaster dies It's not completely clear to me if these comments need some clarification (not related to the patchset), or if we should look for WL_EXIT_ON_PM_DEATH for immediately FATAL. Or waiting for postmaster to die on WL_POSTMASTER_DEATH instead of just fatal immediately? 0003: Besides refactor it looks that deleteLSNWaiter() is added in WaitForLSNReplay. Maybe it's worth mentioning in the commit message. Maybe refactoring for loop for assigning result variable and breaking a loop instead of immediate return would look better and lead to natural call of after the loop before returning. 0004: Comment: + * Waits until recovery replays the target LSN with optional timeout. Throw + * an error on failure. may need mentioning "Unless no_error provided throws an error on failure" Otherwise the patch looks good. Regards, Pavel Borisov Supabase