Thread: INSERT ... RETURNING documentation
The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/16/sql-insert.html Description: The grammar [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ] seems wrong to me. I appears to say it could be either RETURNING * or output_expression [ [ AS ] output_name ] [, ...] but I believe the RETURNING is always required.
On Thursday, July 25, 2024, PG Doc comments form <noreply@postgresql.org> wrote:
The following documentation comment has been logged on the website:
Page: https://www.postgresql.org/docs/16/sql-insert.html
Description:
The grammar
[ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
seems wrong to me. I appears to say it could be either
RETURNING *
or
output_expression [ [ AS ] output_name ] [, ...]
but I believe the RETURNING is always required.
Yes, the word returning makes it the returning clause. This should be written:
[ Returning { * | output_expression [ [ AS ] output_name ] } [, …] ]
Here and on the update and delete pages.
Related, select says:
[ * | expression [ [ AS ] output_name ] [, …] ]
Shouldn’t this also be:
[ { * | expression [ [ AS ] output_name ] } [, …] ]
I know we do tend to let the reader infer exactly what the [, …] part refers to but in this case it seems reasonably ambiguous. I just think most everyone learns how * works separately so it rarely comes up since no one reads the syntax for it.
David J.
"David G. Johnston" <david.g.johnston@gmail.com> writes: > On Thursday, July 25, 2024, PG Doc comments form <noreply@postgresql.org> > wrote: >> The grammar >> [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ] >> seems wrong to me. > Yes, the word returning makes it the returning clause. This should be > written: > [ Returning { * | output_expression [ [ AS ] output_name ] } [, …] ] Agreed. > Related, select says: > [ * | expression [ [ AS ] output_name ] [, …] ] I imagine the RETURNING synopsis was copied from that one :-( Yes, let's change that too. regards, tom lane