From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Joe Conway" <joseph(dot)conway(at)home(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: AW: Re: [SQL] behavior of ' = NULL' vs. MySQL vs. Stand ards |
Date: | 2001-06-18 20:26:09 |
Message-ID: | 8339.992895969@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
"Joe Conway" <joseph(dot)conway(at)home(dot)com> writes:
> I also noticed that in PostgreSQL I can do the following (both before and
> after this patch):
> select f2 is null from foo;
> whereas in both Oracle and MSSQL it causes a syntax error. Any thoughts on
> this?
I dug into this further and discovered that indeed it is not SQL92
... but it is SQL99. Amazingly enough, SQL92 doesn't allow boolean
expressions as a possible type of general expression:
<value expression> ::=
<numeric value expression>
| <string value expression>
| <datetime value expression>
| <interval value expression>
It only allows them as <search condition>s, which is to say WHERE,
HAVING, CASE WHEN, CHECK, and one or two other places.
But SQL99 gets it right:
<value expression> ::=
<numeric value expression>
| <string value expression>
| <datetime value expression>
| <interval value expression>
| <boolean value expression>
| <user-defined type value expression>
| <row value expression>
| <reference value expression>
| <collection value expression>
Looks like we're ahead of the curve here...
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2001-06-18 21:32:44 | Re: corrupted document in 7.1.2 |
Previous Message | The Hermit Hacker | 2001-06-18 20:17:00 | Re: LEFT JOIN ... |