BUG #4247: (Possible) SQL miscontruct not flagged

Started by J6Malmost 18 years ago2 messagesbugs
Jump to latest
#1J6M
j6m@adm.estp.fr

The following bug has been logged online:

Bug reference: 4247
Logged by: J6M
Email address: j6m@adm.estp.fr
PostgreSQL version: 8.1.13
Operating system: Linux x86-64
Description: (Possible) SQL miscontruct not flagged
Details:

Hi,

This European afternoon, I was trying to count how many distinct values of a
row in a table exists and put this result in another table.

Instead of writing :

select distinct(ean13),(select count(*) from fiart where ean13=a.ean13) as
n into zz from fiart as a ;

I wrote :

select distinct(ean13),(select count(*) into zz from fiart where
ean13=a.ean13) as n from fiart as a ;

I am not an expert in the most intricate shades of the SQL language. Should
the SQL interpreter not flag the query as a misconstruct statement and fire
an ERROR (or at least a WARNING) message ? (I'd guess it should).

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: J6M (#1)
Re: BUG #4247: (Possible) SQL miscontruct not flagged

"J6M" <j6m@adm.estp.fr> writes:

PostgreSQL version: 8.1.13

I wrote :

select distinct(ean13),(select count(*) into zz from fiart where
ean13=a.ean13) as n from fiart as a ;

I am not an expert in the most intricate shades of the SQL language. Should
the SQL interpreter not flag the query as a misconstruct statement and fire
an ERROR (or at least a WARNING) message ? (I'd guess it should).

8.2 and up do complain about this:

regression=# create table fiart (ean13 int);
CREATE TABLE
regression=# select distinct(ean13),(select count(*) into zz from fiart where ean13=a.ean13) as n from fiart as a ;
ERROR: bad query in sub-select

regards, tom lane