Re: INSERT ... RETURNING documentation - Mailing list pgsql-docs

From David G. Johnston
Subject Re: INSERT ... RETURNING documentation
Date
Msg-id CAKFQuwYZJykuHnbc3d_Ks2mQyca6cB0JeoWVHLsBPphgNbXgCQ@mail.gmail.com
Whole thread Raw
In response to INSERT ... RETURNING documentation  (PG Doc comments form <noreply@postgresql.org>)
Responses Re: INSERT ... RETURNING documentation
List pgsql-docs
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.

pgsql-docs by date:

Previous
From: PG Doc comments form
Date:
Subject: INSERT ... RETURNING documentation
Next
From: Tom Lane
Date:
Subject: Re: INSERT ... RETURNING documentation