boolean bugs

From: "Robert B(dot) Easter" <reaster(at)comptechnews(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: boolean bugs
Date: 2001-01-06 22:31:25
Message-ID: 01010617312515.09559@comptechnews
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

CREATE TABLE nulltest (nullfield);
INSERT INTO nulltest VALUES (null);

pgcvs=# select (nullfield = 'willbenull') is null from nulltest;
?column?
----------
t
(1 row)

pgcvs=# select (nullfield = 'willbenull') is true from nulltest;
?column?
----------

(1 row)

pgcvs=# select (nullfield = 'willbenull') is false from nulltest;
?column?
----------

(1 row)

The IS operator is supposed to return only TRUE or FALSE, never NULL. See
ISO/IEC 9075-2:1999 6.30 <boolean value expression>

pgcvs=# select (nullfield = 'willbenull') is (false is false) from nulltest;
ERROR: parser: parse error at or near "("

The IS operator has a problem if right side is in parenthesis.

pgcvs=# select (nullfield = 'willbenull') and (false is false) from nulltest;
?column?
----------

(1 row)

AND and OR are ok with the paren, why not IS?

The UNKNOWN literal is not understood. It should be synonymous with NULL:

pgcvs=# select TRUE IS UNKNOWN;
ERROR: parser: parse error at or near "unknown"
pgcvs=#

This should be the same as:
pgcvs=# select TRUE IS NULL;
?column?
----------
f
(1 row)

See ISO/IEC 9075-2:1999 5.3 <literal>

pgcvs=# select true is null;
?column?
----------
f
(1 row)

pgcvs=# select null is true;
?column?
----------

(1 row)

This is strange. Just reversing the order changes the result.

I'm using the cvs version. I think 7.0.3 has all this (wrong?) behavior too.

--
-------- Robert B. Easter reaster(at)comptechnews(dot)com ---------
-- CompTechNews Message Board http://www.comptechnews.com/ --
-- CompTechServ Tech Services http://www.comptechserv.com/ --
---------- http://www.comptechnews.com/~reaster/ ------------

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2001-01-06 22:56:18 Re: boolean bugs
Previous Message Tom Lane 2001-01-06 21:38:21 Re: Concat error in PL/pgsql