Re: BUG #19003: A SELECT that does not return a valid table

Vik Fearing <vik@postgresfriends.org>

From: Vik Fearing <vik@postgresfriends.org>
To: Tom Lane <tgl@sss.pgh.pa.us>, alexandrebailly1955@gmail.com
Cc: pgsql-bugs@lists.postgresql.org
Date: 2025-07-31T09:17:14Z
Lists: pgsql-bugs
On 30/07/2025 23:34, Tom Lane wrote:
> PG Bug reporting form<noreply@postgresql.org> writes:
>> SELECT 'John' AS nom,'James' AS nom
>> returns a table with attributes nom and nom that I can see in the output.
>> Returning a table that contains twice the same column should not be
>> permitted.
> There is pretty much zero chance that we will enforce that
> restriction.  It would break too much application code.
> Also, it looks to me like there is no such requirement in
> the SQL standard.


Indeed.  In SQL:2023-1 (available free of charge at [1]) says in 
Subclause 4.6, "Tables":


     "An operation that references zero or more base tables and returns 
a table is called a *query*. The result of a query is called a *derived 
table*."


and


     "Derived tables, other than viewed tables, may contain more than 
one column with the same name."


So, not only is this not a bug we should fix, it is explicitly allowed 
by the standard.


[1] https://www.iso.org/standard/76583.html

-- 

Vik Fearing