truth table missing values

Lists: pgsql-docs
From: Dennis Björklund <db(at)zigo(dot)dhs(dot)org>
To: pgsql-docs(at)postgresql(dot)org
Subject: truth table missing values
Date: 2003-08-04 11:11:50
Message-ID: Pine.LNX.4.44.0308041258110.26410-100000@zigo.dhs.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs

The truth table in

http://www.postgresql.org/docs/7.3/static/functions.html#FUNCTIONS-LOGICAL

is missing some rows. The meaning is clear if you know that AND and OR is
commutative but that is not written there either.

The reason I found this at all is because in mysql AND is not commutative.
In other words, in mysql

SELECT (NULL AND FALSE);

is not the same as

SELECT (FALSE AND NULL);

The reason stated in
http://www.mysql.com/documentation/mysql/bychapter/manual_Introduction.html#Differences_from_ANSI

is

"NULL AND FALSE will evaluate to NULL and not to FALSE. This is because we
don't think it's good to have to evaluate a lot of extra conditions in
this case."

I tried to look in the devel doc to see if it was the same there, but the
devel part of the site is gone at the moment it seems like. It might be a
good idea to add all combinations just to make it clear for people comming
from mysql (not me, I just stumbled over it by mistake).

--
/Dennis


From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Dennis Björklund <db(at)zigo(dot)dhs(dot)org>
Cc: pgsql-docs(at)postgresql(dot)org
Subject: Re: truth table missing values
Date: 2003-08-04 14:00:03
Message-ID: Pine.LNX.4.56.0308041557490.915@krusty.credativ.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs

Dennis Björklund writes:

> The truth table in
>
> http://www.postgresql.org/docs/7.3/static/functions.html#FUNCTIONS-LOGICAL
>
> is missing some rows. The meaning is clear if you know that AND and OR is
> commutative but that is not written there either.

I've added a note that they are commutative.

--
Peter Eisentraut peter_e(at)gmx(dot)net


From: "scott(dot)marlowe" <scott(dot)marlowe(at)ihs(dot)com>
To: Dennis Björklund <db(at)zigo(dot)dhs(dot)org>
Cc: <pgsql-docs(at)postgresql(dot)org>
Subject: Re: truth table missing values
Date: 2003-08-04 16:05:40
Message-ID: Pine.LNX.4.33.0308041004300.10401-100000@css120.ihs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs

On Mon, 4 Aug 2003, Dennis Björklund wrote:

> The reason stated in
> http://www.mysql.com/documentation/mysql/bychapter/manual_Introduction.html#Differences_from_ANSI
>
> is
>
> "NULL AND FALSE will evaluate to NULL and not to FALSE. This is because we
> don't think it's good to have to evaluate a lot of extra conditions in
> this case."

<sarcasm>
wow, with a development philosophy like that it's amazing mysql isn't
running in banks everywhere.
</sarcasm>