Slava Moudry wrote:
I believe this is a parser error, it should fail rather than return all rows
from keyword since there is no keyword_id in carrier table. The same can be
illustrated with any other tables:

smslocate_edw=# select count(*) from keyword where keyword_id in (select
keyword_id from carrier)

It's not a bug, although I admit I've done the same mistake myself many times. keyword_id refers to keyword.keyword_id from the outer query in this case. It makes sense if you think of a more complex query like:

select count(*) from keyword where keyword_ratio > (select keyword_id / carrier_id from carrier)

If keyword_id wasn't allowed in the subquery, it would be impossible to write more complex queries like that.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to