Re: BUG #4949: NOT IN is prohibitive slower than the rewrite for medium to large sets - Mailing list pgsql-bugs

From Robert Haas
Subject Re: BUG #4949: NOT IN is prohibitive slower than the rewrite for medium to large sets
Date
Msg-id EA4D8D0C-7603-4C59-BCB9-0F0B1A04BE5E@gmail.com
Whole thread Raw
In response to Re: BUG #4949: NOT IN is prohibitive slower than the rewrite for medium to large sets  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
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

pgsql-bugs by date:

Previous
From: Robert Haas
Date:
Subject: Re: BUG #4945: Parallel update(s) gone wild
Next
From: Craig Ringer
Date:
Subject: Re: BUG #4945: Parallel update(s) gone wild