Thanks Craig,

The real problem here then is that the documentation showing
the boolean comparison operators does not mention this quirk, which I 
accept may be a standard quirk but it's still a quirk. You just
wouldn't go looking for that flag unless you had any inkling that
it might exist.

And indeed the parser does not generate warnings either.

Regards,
Michael




-----Original Message-----
From: Craig Ringer [mailto:cr...@postnewspapers.com.au]
Sent: Sun 6/19/2011 6:30 PM
To: Kevin Grittner
Cc: Pilling, Michael; pgsql-bugs@postgresql.org
Subject: Re: [BUGS] BUG #6064: != NULL, <> NULL do not work
 
On 06/17/2011 10:20 PM, Kevin Grittner wrote:
> "Michael Pilling"<michael.pill...@dsto.defence.gov.au>  wrote:
>
>> A reasonable programmer would expect != NULL,<>  NULL and IS NOT
>> NULL to be synonyms.
>
> Only if that programmer was not aware of the SQL standard and had
> not worked much with a standard-conforming database.

Yep, and if they want to continue working that way, they can use the 
flag intended for compatibility with Microsoft Access that makes NULL = 
NULL result in 't' instead of NULL.

http://www.postgresql.org/docs/current/static/runtime-config-compatible.html#GUC-TRANSFORM-NULL-EQUALS

Note that this flag is very specifically limited to equality 
comparisions using the '=' operator. It won't make NULL behave as a 
value in any other way. For example, 1 > NULL will still return NULL.

--
Craig Ringer


IMPORTANT: This email remains the property of the Department of Defence and is 
subject to the jurisdiction of section 70 of the Crimes Act 1914. If you have 
received this email in error, you are requested to contact the sender and 
delete the email.

Reply via email to