>>31
I'm ok with there being a meaningless value. I just wish it's rules for evaluation were smaller.
http://www.sqlite.org/lang_expr.html
See the table under The IN and NOT IN operators.
________________________________________________________________________________________________________________
/Left operand is | Right operand | Right operand is | Left operand found within | Result of IN | Result of NOT \
|NULL | contains NULL | an empty set | right operand | operator | IN operator |
+----------------+-----------------+------------------+---------------------------+--------------+---------------+
|no | no | no | no | false | true |
+----------------+-----------------+------------------+---------------------------+--------------+---------------+
|does not matter | no | yes | no | false | true |
+----------------+-----------------+------------------+---------------------------+--------------+---------------+
|no | does not matter | no | yes | true | false |
+----------------+-----------------+------------------+---------------------------+--------------+---------------+
|no | yes | no | no | NULL | NULL |
+----------------+-----------------+------------------+---------------------------+--------------+---------------+
|yes | does not matter | no | does not matter | NULL | NULL |
\________________:_________________:__________________:___________________________:______________:_______________/
If it takes a 5x6 truth table to explain the behavior of a primitive function, there's something wrong. It's behavior should be determined from a minimal set of unbreakable axioms.