Обсуждение: BUG #17408: Duplicate aliases silently fail

Поиск
Список
Период
Сортировка

BUG #17408: Duplicate aliases silently fail

От
PG Bug reporting form
Дата:
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


Re: BUG #17408: Duplicate aliases silently fail

От
Pantelis Theodosiou
Дата:
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
>



Re: BUG #17408: Duplicate aliases silently fail

От
Kevin Potgieter
Дата:
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
>

Re: BUG #17408: Duplicate aliases silently fail

От
John Naylor
Дата:
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



Re: BUG #17408: Duplicate aliases silently fail

От
"David G. Johnston"
Дата:
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.