Обсуждение: truth table missing values
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
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
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>