Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

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

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group