> On Oct 4, 2025, at 09:35, Xuneng Zhou <xunengzhou@gmail.com> wrote:
>
> Hi,
>
> On Sun, Sep 28, 2025 at 5:02 PM Xuneng Zhou <xunengzhou@gmail.com> wrote:
>>
>> Hi,
>>
>> On Fri, Sep 26, 2025 at 7:22 PM Xuneng Zhou <xunengzhou@gmail.com> wrote:
>>>
>>> Hi Álvaro,
>>>
>>> Thanks for your review.
>>>
>>> On Tue, Sep 16, 2025 at 4:24 AM Álvaro Herrera <alvherre@kurilemu.de> wrote:
>>>>
>>>> On 2025-Sep-15, Alexander Korotkov wrote:
>>>>
>>>>>> It's LGTM. The same pattern is observed in VACUUM, EXPLAIN, and CREATE
>>>>>> PUBLICATION - all use minimal grammar rules that produce generic
>>>>>> option lists, with the actual interpretation done in their respective
>>>>>> implementation files. The moderate complexity in wait.c seems
>>>>>> acceptable.
>>>>
>>>> Actually I find the code in ExecWaitStmt pretty unusual. We tend to use
>>>> lists of DefElem (a name optionally followed by a value) instead of
>>>> individual scattered elements that must later be matched up. Why not
>>>> use utility_option_list instead and then loop on the list of DefElems?
>>>> It'd be a lot simpler.
>>>
>>> I took a look at commands like VACUUM and EXPLAIN and they do follow
>>> this pattern. v11 will make use of utility_option_list.
>>>
>>>> Also, we've found that failing to surround the options by parens leads
>>>> to pain down the road, so maybe add that. Given that the LSN seems to
>>>> be mandatory, maybe make it something like
>>>>
>>>> WAIT FOR LSN 'xy/zzy' [ WITH ( utility_option_list ) ]
>>>>
>>>> This requires that you make LSN a keyword, albeit unreserved. Or you
>>>> could make it
>>>> WAIT FOR Ident [the rest]
>>>> and then ensure in C that the identifier matches the word LSN, such as
>>>> we do for "permissive" and "restrictive" in
>>>> RowSecurityDefaultPermissive.
>>>
>>> Shall make LSN an unreserved keyword as well.
>>
>> Here's the updated v11. Many thanks Jian for off-list discussions and review.
>
> v12 removed unused
> +WaitStmt
> +WaitStmtParam in pgindent/typedefs.list.
>
> Best,
> Xuneng
> <v12-0001-Implement-WAIT-FOR-command.patch>
I just tried to review v12 but failed to “git am”. Can you please rebase the change?
Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/