Re: "IS NOT NULL" != "NOT NULL"

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Sean Chittenden <sean(at)chittenden(dot)org>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: "IS NOT NULL" != "NOT NULL"
Date: 2002-01-18 19:05:05
Message-ID: 8536.1011380705@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Sean Chittenden <sean(at)chittenden(dot)org> writes:
> db=> SELECT COUNT(*) FROM pkg_hosts WHERE timestamp_col NOT NULL;
> count
> -------
> 0
> (1 row)

> db=> SELECT COUNT(*) FROM pkg_hosts WHERE timestamp_col IS NOT NULL;
> count
> -------
> 1242
> (1 row)

> Why aren't those the same? Seems like the IS would be an extra word
> that's not necessarily needed. ::shrug:: -sc

This is more than a tad hard to believe, considering that the parser
converts both of these constructs into the same internal representation:

| a_expr NOTNULL
{ $$ = makeA_Expr(NOTNULL, NULL, $1, NULL); }
| a_expr IS NOT NULL_P
{ $$ = makeA_Expr(NOTNULL, NULL, $1, NULL); }

Can you provide a reproducible example where the results are different?

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2002-01-18 19:14:02 Re: BLOB question + MS Access ODBC issue
Previous Message Steve Boyle (Roselink) 2002-01-18 18:41:51 Re: Function problem