| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
|---|---|
| To: | Zeugswetter Andreas SB <ZeugswetterA(at)wien(dot)spardat(dot)at> | 
| Cc: | "'pgsql-hackers(at)postgresql(dot)org'" <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: AW: Re: [SQL] behavior of ' = NULL' vs. MySQL vs. Stand ards | 
| Date: | 2001-06-08 14:17:05 | 
| Message-ID: | 9495.992009825@sss.pgh.pa.us | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Zeugswetter Andreas SB  <ZeugswetterA(at)wien(dot)spardat(dot)at> writes:
> Actually I am not sure whether the column = NULL syntax is even defined 
> or allowed in SQL92 (e.g. Informix interprets the NULL as column name in 
> this context and errs out).
Strictly speaking, SQL92 would require you to write
	foo = CAST (NULL AS type-of-foo)
However, we allow unadorned NULL in other contexts as a shorthand for
the CAST notation, so it's inconsistent of us to say that in this
context it means something different.
The real problem with accepting this Microsoftism is that it's a trap
for unwary programmers.  Case 1: someone who's not studied SQL in detail
might experiment with examples involving "foo = NULL" and jump to
reasonable but entirely incorrect conclusions about how comparisons
involving NULL operate.  Case 2: someone who *has* studied SQL, and is
also aware that we accept unadorned NULLs, will also draw the wrong
conclusions about what this construct will do.  Bottom line: this kluge
surprises everyone except those who already know it exists.  I don't
like systems that surprise their users in inconsistent ways.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2001-06-08 14:34:22 | Re: AW: Re: [SQL] behavior of ' = NULL' vs. MySQL vs. Stand ards | 
| Previous Message | Jean-Francois Leveque | 2001-06-08 13:21:56 | Need information about Foreign Key created Triggers |