Обсуждение: BUG #17408: Duplicate aliases silently fail
The following bug has been logged on the website: Bug reference: 17408 Logged by: Kevin Potgieter Email address: porturpotgieter@gmail.com PostgreSQL version: 13.6 Operating system: Not related Description: Hi, Assigning aliases to columns works perfectly. eg. "SELECT name AS customer_name FROM customers" However you are able to assign duplicate aliases which does not cause a conflict eg. "SELECT name AS customer_name, surname AS customer_name FROM customers" The expectation here is that duplicate aliases would cause the query to fail due to duplicate column names in the result, however there is no error or warning. Regards Kevin
On Wed, Feb 16, 2022 at 10:46 AM PG Bug reporting form <noreply@postgresql.org> wrote: > > The following bug has been logged on the website: > > Bug reference: 17408 > Logged by: Kevin Potgieter > Email address: porturpotgieter@gmail.com > PostgreSQL version: 13.6 > Operating system: Not related > Description: > > Hi, > > Assigning aliases to columns works perfectly. > > eg. "SELECT name AS customer_name FROM customers" > > However you are able to assign duplicate aliases which does not cause a > conflict > > eg. "SELECT name AS customer_name, surname AS customer_name FROM > customers" > > The expectation here is that duplicate aliases would cause the query to fail > due to duplicate column names in the result, however there is no error or > warning. This may look weird but the SQL standard allows it. Postgres is only following what the standard dictates. Best regards, Pantelis Theodosiou > > Regards > Kevin >
Is it perhaps and option that postgres could warn you in the same way it warns you when you do an update without a where clause?
On Wed, 16 Feb 2022, 2:02 pm Pantelis Theodosiou, <ypercube@gmail.com> wrote:
On Wed, Feb 16, 2022 at 10:46 AM PG Bug reporting form
<noreply@postgresql.org> wrote:
>
> The following bug has been logged on the website:
>
> Bug reference: 17408
> Logged by: Kevin Potgieter
> Email address: porturpotgieter@gmail.com
> PostgreSQL version: 13.6
> Operating system: Not related
> Description:
>
> Hi,
>
> Assigning aliases to columns works perfectly.
>
> eg. "SELECT name AS customer_name FROM customers"
>
> However you are able to assign duplicate aliases which does not cause a
> conflict
>
> eg. "SELECT name AS customer_name, surname AS customer_name FROM
> customers"
>
> The expectation here is that duplicate aliases would cause the query to fail
> due to duplicate column names in the result, however there is no error or
> warning.
This may look weird but the SQL standard allows it. Postgres is only
following what the standard dictates.
Best regards,
Pantelis Theodosiou
>
> Regards
> Kevin
>
On Wed, Feb 16, 2022 at 5:46 PM PG Bug reporting form <noreply@postgresql.org> wrote: > Assigning aliases to columns works perfectly. > > eg. "SELECT name AS customer_name FROM customers" > > However you are able to assign duplicate aliases which does not cause a > conflict > > eg. "SELECT name AS customer_name, surname AS customer_name FROM > customers" > > The expectation here is that duplicate aliases would cause the query to fail > due to duplicate column names in the result, however there is no error or > warning. FWIW, if the aliases are referenced higher up in a query, it does result in error: WITH dupe_cols AS (SELECT name AS customer_name, surname AS customer_name FROM customers) SELECT customer_name FROM dupe_cols; ERROR: column reference "customer_name" is ambiguous LINE 2: customers) select customer_name from dupe_cols; -- John Naylor EDB: http://www.enterprisedb.com
On Wednesday, February 16, 2022, Kevin Potgieter <porturpotgieter@gmail.com> wrote:
Is it perhaps and option that postgres could warn you in the same way it warns you when you do an update without a where clause?
We do?
Even if that is true I don’t see the point forma select query.
David J.