On Jul 28, 2009, at 9:47 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> "Ole Tange" <postgresql.org@tange.dk> writes:
>> (modulo NULLs which seem to always cause problems in NOT INs).
>
>> Because it can be rewritten, NOT IN should never be much slower
>> than the
>> rewritten solution, as PostgreSQL should simply rewrite NOT IN to the
>> above.
>
> Let's see, you understand that the rewrite violates the SQL standard
> semantics of NOT IN, but you think we should do it anyway?
If the subquery can't return NULLs, the rewrite is valid. I know
you've rejected the idea of checking for this in the past, but perhaps
you should consider this a user vote in favor of doing so.
I learned the hard way not to do this >5 years ago but it seemed
strange to me, too.
...Robert