Re: Should the WAIT FOR command tag be "WAIT" or "WAIT FOR"?

From: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Alexander Korotkov <aekorotkov(at)gmail(dot)com>, Ivan Kartyshov <i(dot)kartyshov(at)postgrespro(dot)ru>, Xuneng Zhou <xunengzhou(at)gmail(dot)com>
Subject: Re: Should the WAIT FOR command tag be "WAIT" or "WAIT FOR"?
Date: 2026-08-28 21:39:54
Message-ID: CAD21AoDO2Oy0xtkk0cVNWU2AZDm_28EGK7AvHXxP8rfXzbiqBw@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Aug 28, 2026 at 1:11 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com> writes:
> > While reviewing a patch for the WAIT FOR command I noticed that its
> > command tag is "WAIT" rather than "WAIT FOR". I could not find this
> > discussed in the main thread, although I have not read all of them, so
> > I might miss something. I want to confirm it because a command tag is
> > not something we can revisit later when we release v19.0.
>
> I think it's fine. The FOR is a noise word that's useful only to
> make the command's grammar vaguely resemble English. For precedent,
> consider INSERT, which must have INTO but that's not part of the
> command tag.

Good point. A difference between INSERT and WAIT is that the doc uses
"WAIT FOR" as its command name instead of "WAIT" whereas it uses
"INSERT" for INSERT statements:

% git grep -e "<command>WAIT.*</command>"
doc/src/sgml/ref/wait_for.sgml: <command>WAIT FOR</command> must be
executed as a top-level command.
doc/src/sgml/ref/wait_for.sgml: <command>WAIT FOR</command> waits
until the specified
doc/src/sgml/ref/wait_for.sgml: <command>WAIT FOR</command> compares
only the numeric
doc/src/sgml/ref/wait_for.sgml: <command>WAIT FOR</command> will
return <literal>success</literal>
doc/src/sgml/ref/wait_for.sgml: On a standby server, <command>WAIT
FOR</command> sessions may be
doc/src/sgml/ref/wait_for.sgml: doing. Applications using
<command>WAIT FOR</command> on a standby
doc/src/sgml/ref/wait_for.sgml: You can use <command>WAIT
FOR</command> command to wait for
doc/src/sgml/ref/wait_for.sgml: Then an application could run
<command>WAIT FOR</command>
doc/src/sgml/ref/wait_for.sgml: The same example uses <command>WAIT
FOR</command> with
doc/src/sgml/release-19.sgml: A new <link
linkend="sql-wait-for"><command>WAIT FOR</command></link>
doc/src/sgml/release-19.sgml:Add <link
linkend="sql-wait-for"><command>WAIT FOR</command></link> command to
allow standbys to wait for <link
linkend="wal-internals"><acronym>LSN</acronym></link> values to be
written, flushed, or replayed (Kartyshov Ivan, Alexander Korotkov,
Xuneng Zhou)

>
> > Strictly the same rule would argue for
> > "WAIT FOR LSN", but "WAIT FOR" is the name the manual gives the
> > command, and it leaves room if other things become waitable in the
> > future.
>
> If anything, I'd change the manual. "WAIT FOR" is neither short
> nor a useful description of what's being waited for. Either "WAIT"
> or "WAIT FOR LSN" would be more plausible as a page heading.

Agreed.

Regards,

--
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2026-08-28 21:48:42 WAIT FOR command should do some query jumbling
Previous Message Peter Eisentraut 2026-08-28 21:33:12 new clang warnings about unused global variables