Обсуждение: truth table missing values

Поиск
Список
Период
Сортировка

truth table missing values

От
Dennis Björklund
Дата:
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


Re: truth table missing values

От
Peter Eisentraut
Дата:
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@gmx.net

Re: truth table missing values

От
"scott.marlowe"
Дата:
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>