"Muris Pucic" <trax(at)multicom(dot)ba> writes:
> -- The query below works, even though there is no column "first_name" in
> TABLE2. This should return an error but it does not, it returns all rows
> from TABLE1. This query should not evaluate correctly even when aliases are
> not used because it can be misleading.
> SELECT * FROM TABLE1 WHERE first_name IN (SELECT first_name FROM TABLE2)
This is not a bug, it's a perfectly legal outer reference. It is
required to work that way by the SQL standard. If you think it's
a bad design, take it up with the ISO standards committee.
regards, tom lane