hi Ben,

My instinct is that always propagating null (at least by default) is
the safest choice. Applications can choose to sanitize null to false
if that's what they want semantically.

- Wes

On Thu, Aug 29, 2019 at 8:37 AM Ben Kietzman <[email protected]> wrote:
>
> 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