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.
Reporter: Ben Kietzman / @bkietz
Assignee: Ben Kietzman / @bkietz
Related issues:
PRs and other links:
Note: This issue was originally created as ARROW-6386. Please see the migration documentation for further details.
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) -> falsefor 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.Reporter: Ben Kietzman / @bkietz
Assignee: Ben Kietzman / @bkietz
Related issues:
PRs and other links:
Note: This issue was originally created as ARROW-6386. Please see the migration documentation for further details.