[
https://issues.apache.org/jira/browse/ARROW-11973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306498#comment-17306498
]
Daniël Heres commented on ARROW-11973:
--------------------------------------
In PostgreSQL (the dialect we target) the default is what we currently have
implemented.
SELECT TRUE AND NULL;
> NULL
SELECT TRUE OR NULL;
> NULL
I am all for having optionally different implementations in Arrow (for
supporting different semantics / systems) though - but for DataFusion side it
makes sense to think about what kind of behavior we want?
I think kleene could be somewhat more efficient in some cases - as it could
short-circuit / doesn't need to check for possible NULLs.
> [Rust] Boolean AND/OR kernels should follow sql behaviour regarding null
> values
> -------------------------------------------------------------------------------
>
> Key: ARROW-11973
> URL: https://issues.apache.org/jira/browse/ARROW-11973
> Project: Apache Arrow
> Issue Type: New Feature
> Components: Rust, Rust - DataFusion
> Affects Versions: 3.0.0
> Reporter: Jörn Horstmann
> Assignee: Jörn Horstmann
> Priority: Major
> Labels: pull-request-available
> Time Spent: 20m
> Remaining Estimate: 0h
>
> The AND/OR boolean kernels currently have the same null handling as other
> binary expressions, if either the left or right input is NULL then the result
> will be NULL. The standard sql behaviour is different:
> OR: If one input is TRUE then the result will be TRUE even if the other input
> is NULL
> AND: If one input is FALSE then the result will be FALSE regardless of the
> other input
> This behaviour makes sense if you think of NULL as meaning UNKNOWN.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)