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
