Re: Possible wrong result with some "in" subquery with non-existing columns

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Xiong He <iihero(at)qq(dot)com>
Cc: pgsql-bugs <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: Possible wrong result with some "in" subquery with non-existing columns
Date: 2023-01-17 08:04:18
Message-ID: 2915686.1673942658@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

"=?ISO-8859-1?B?WGlvbmcgSGU=?=" <iihero(at)qq(dot)com> writes:
> mydb=# create table test1(id1 int primary key, col2 varchar(32));
> mydb=# create table test2(id2 int primary key, col2 varchar(32));
> mydb=# select * from test1 where id1 in (select id1 from test2 where id2 = 2);

> In the above query: id1 is not a column of table test2.

Nope, but it's a legal outer reference.

> Should not we expect this should be en error instead of it thinking it's a column from the table : test1?

This behavior is required by the SQL standard, and has been for
decades. Yes, it trips up novices all the time, but it does
have valid use-cases.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Xiong He 2023-01-17 09:06:14 Re: Possible wrong result with some "in" subquery with non-existing columns
Previous Message Xiong He 2023-01-17 08:00:09 Possible wrong result with some "in" subquery with non-existing columns