On Fri, Feb 28, 2025 at 3:55 PM Yura Sokolov <y.soko...@postgrespro.ru> wrote: > 28.02.2025 16:03, Yura Sokolov пишет: > > 17.02.2025 00:27, Alexander Korotkov wrote: > >> On Thu, Feb 6, 2025 at 10:31 AM Yura Sokolov <y.soko...@postgrespro.ru> > >> wrote: > >>> I briefly looked into patch and have couple of minor remarks: > >>> > >>> 1. I don't like `palloc` in the `WaitLSNWakeup`. I believe it wont issue > >>> problems, but still don't like it. I'd prefer to see local fixed array, > >>> say > >>> of 16 elements, and loop around remaining function body acting in batch of > >>> 16 wakeups. Doubtfully there will be more than 16 waiting clients often, > >>> and even then it wont be much heavier than fetching all at once. > >> > >> OK, I've refactored this to use static array of 16 size. palloc() is > >> used only if we don't fit static array. > > > > I've rebased patch and: > > - fixed compiler warning in wait.c ("maybe uninitialized 'result'"). > > - made a loop without call to palloc in WaitLSNWakeup. It is with "goto" to > > keep indentation, perhaps `do {} while` would be better? > > And fixed: > 'WAIT' is marked as BARE_LABEL in kwlist.h, but it is missing from > gram.y's bare_label_keyword rule
Thank you, Yura. I've further revised the patch. Mostly added the documentation including SQL command reference and few paragraphs in the high availability chapter explaining the read-your-writes consistency concept. ------ Regards, Alexander Korotkov Supabase
v5-0001-Implement-WAIT-FOR-command.patch
Description: Binary data