Re: BUG #4949: NOT IN is prohibitive slower than the rewrite for medium to large sets
- From: Robert Haas <robertmhaas(at)gmail(dot)com>
- To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
- Cc: Ole Tange <postgresql(dot)org(at)tange(dot)dk>, "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
- Subject: Re: BUG #4949: NOT IN is prohibitive slower than the rewrite for medium to large sets
- Date: Tue, 28 Jul 2009 22:05:04 -0400
- Message-id: <EA4D8D0C-7603-4C59-BCB9-0F0B1A04BE5E@gmail.com> <text/plain>
On Jul 28, 2009, at 9:47 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
"Ole Tange" <postgresql(dot)org(at)tange(dot)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
Home |
Main Index |
Thread Index