Re: BUG #2961: NULL values in subselects force NOT IN to false

From: Aaron Logue <gyro(at)cryogenius(dot)com>
To: Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com>
Cc: <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #2961: NULL values in subselects force NOT IN to false
Date: 2007-02-06 22:54:38
Message-ID: Pine.LNX.4.33.0702061413360.8111-100000@ns.cryogenius.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Mon, 5 Feb 2007, Stephan Szabo wrote:
> On Fri, 2 Feb 2007, Aaron Logue wrote:
> > The following bug has been logged online:
> >
> > Bug reference: 2961
> > Logged by: Aaron Logue
> > Email address: gyro(at)cryogenius(dot)com
> > PostgreSQL version: 8.2.1
> > Operating system: Linux (various flavors)
> > Description: NULL values in subselects force NOT IN to false
> > Details:
> >
> > SELECT X FROM (SELECT 42 AS X) AS FOO WHERE X NOT IN (7,NULL);
> >
> > returns 0 rows. Shouldn't "X NOT IN (7,NULL)" be
> > true if X is neither 7 nor NULL? Removing the NULL causes the row to be
> > returned.
>
> NOT IN with NULLs is defined by spec in a way that most people do not
> expect if they aren't thinking about three valued logic.
>
> x NOT IN RVC is effectively NOT(x = ANY RVC).
> ...

Shouldn't IS be used to compare x with a NULL rather than = ?

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Stephan Szabo 2007-02-06 23:48:51 Re: BUG #2961: NULL values in subselects force NOT IN to false
Previous Message Tom Lane 2007-02-06 22:50:41 Re: BUG #2970: "FETCH ABSOLUTE -1" from a holdable cursor failed