To my knowledge, there isn't explicit documentation on how null slots in an
array should be interpreted. SQL uses Kleene logic, wherein a null is
explicitly an unknown rather than a special value. This yields for example
`(null AND false) -> false`, since `(x AND false) -> false` for all
possible values of x. This is also the behavior of Gandiva's boolean
expressions.

By contrast the boolean kernels implement something closer to the behavior
of NaN: `(null AND false) -> null`. I think this is simply an error in the
boolean kernels but in any case I think explicit documentation should be
added to prevent future confusion.

https://issues.apache.org/jira/browse/ARROW-6386

Reply via email to