Thread: BUG #13273: A query that returns wrongly labeled result instead of syntax error
BUG #13273: A query that returns wrongly labeled result instead of syntax error
From
v-brody@seznam.cz
Date:
The following bug has been logged on the website: Bug reference: 13273 Logged by: Missing comma in SELECT list results in wrong label without error Email address: v-brody@seznam.cz PostgreSQL version: 9.4.1 Operating system: CentOS Linux Description: Following query (notice the missing comma between top-level "x" and "y") returns 1 (which is "x" value) under label "y" without any warning. select "x" "y" from ( select "a" as "x", "b" as "y" from ( select 1 as "a", 2 as "b" ) "subquery1" ) "subquery2"; Expected behavior: syntax error Environment: PostgreSQL 9.4.1 on Linux version 2.6.32-504.16.2.el6.x86_64
Re: BUG #13273: A query that returns wrongly labeled result instead of syntax error
From
Thomas Munro
Date:
On Tue, May 12, 2015 at 10:46 AM, <v-brody@seznam.cz> wrote: > The following bug has been logged on the website: > > Bug reference: 13273 > Logged by: Missing comma in SELECT list results in wrong label without error > Email address: v-brody@seznam.cz > PostgreSQL version: 9.4.1 > Operating system: CentOS Linux > Description: > > Following query (notice the missing comma between top-level "x" and "y") > returns 1 (which is "x" value) under label "y" without any warning. > > select > "x" "y" > from > ( > select > "a" as "x", "b" as "y" > from > ( > select 1 as "a", 2 as "b" > ) "subquery1" > ) "subquery2"; > > Expected behavior: syntax error That is valid syntax, the AS keyword is optional (in PostgreSQL as well as in standard SQL): http://www.postgresql.org/docs/9.4/static/sql-select.html postgres=# select 42 as y; y ---- 42 (1 row) postgres=# select 42 y; y ---- 42 (1 row) -- Thomas Munro http://www.enterprisedb.com
Re: BUG #13273: A query that returns wrongly labeled result instead of syntax error
From
Václav Brodec
Date:
Thomas Munro writes: > On Tue, May 12, 2015 at 10:46 AM, <v-brody@seznam.cz> wrote: >> The following bug has been logged on the website: >> >> Bug reference: 13273 >> Logged by: Missing comma in SELECT list results in wrong label without error >> Email address: v-brody@seznam.cz >> PostgreSQL version: 9.4.1 >> Operating system: CentOS Linux >> Description: >> >> Following query (notice the missing comma between top-level "x" and "y") >> returns 1 (which is "x" value) under label "y" without any warning. >> >> select >> "x" "y" >> from >> ( >> select >> "a" as "x", "b" as "y" >> from >> ( >> select 1 as "a", 2 as "b" >> ) "subquery1" >> ) "subquery2"; >> >> Expected behavior: syntax error > > That is valid syntax, the AS keyword is optional (in PostgreSQL as > well as in standard SQL): > > http://www.postgresql.org/docs/9.4/static/sql-select.html > > postgres=# select 42 as y; > y > ---- > 42 > (1 row) > > postgres=# select 42 y; > y > ---- > 42 > (1 row) > I'm really sorry, I realized that immediately after submitting. Although I think that demanding explicit AS in this case (when overshadowing some name) might be useful. :-) Thank you for your time, Václav Brodec