> The funniest unexpected outcome was the classic SQL model of using NULL. Simply, 1 + NULL = NULL, and we expanded that to all expressions.
> It kind of fell apart in something like: IF A = 1 AND B = 2 OR C > 3 THEN...
That is similar to how NaN values are propagated in IEEE 754 floating point standard.
However, a comparison with a NaN would cause an exception (in CPU or programming language, unless you're using a language such as C where FP exceptions are disabled by default).
And then there are several min and max operators that don't cause an exception on every NaN but which have different preferences for propagating NaN or values.
The distinction is that a comparison affects controlflow whereas min/max are still considered data flow.
> It kind of fell apart in something like: IF A = 1 AND B = 2 OR C > 3 THEN...
That is similar to how NaN values are propagated in IEEE 754 floating point standard.
However, a comparison with a NaN would cause an exception (in CPU or programming language, unless you're using a language such as C where FP exceptions are disabled by default).
And then there are several min and max operators that don't cause an exception on every NaN but which have different preferences for propagating NaN or values. The distinction is that a comparison affects control flow whereas min/max are still considered data flow.