You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Roman Karlstetter (Jira)" <ji...@apache.org> on 2021/01/28 08:30:00 UTC

[jira] [Commented] (ARROW-11412) [Python] Expression evaluation problem for logical boolean expressions (and, or, not)

    [ https://issues.apache.org/jira/browse/ARROW-11412?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17273410#comment-17273410 ] 

Roman Karlstetter commented on ARROW-11412:
-------------------------------------------

Raising an error with a descriptive message might indeed be helpful. Furthermore, easy examples of such expressions in the documentation (I found no real examples for that) could make the whole idea of how to write such expressions more clear.

> [Python] Expression evaluation problem for logical boolean expressions (and, or, not)
> -------------------------------------------------------------------------------------
>
>                 Key: ARROW-11412
>                 URL: https://issues.apache.org/jira/browse/ARROW-11412
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: Python
>    Affects Versions: 2.0.0, 3.0.0
>            Reporter: Roman Karlstetter
>            Priority: Major
>
> There's a problem with boolean "and", "or" and "not" expressions when creating them in python (or I'm doing something completely stupid).
>  
> {code:java}
> >>> import pyarrow
> >>> pyarrow.__version__
> '3.0.0'
> >>> import pyarrow.dataset as ds
> >>> ds. scalar(False) and ds.scalar(True) # <--- I expect false
> <pyarrow.dataset.Expression true>
> >>> ds.scalar(True) and ds.scalar(False) # this works
> <pyarrow.dataset.Expression false>
> >>> ds.scalar(True) or ds.scalar(False) # this works
> <pyarrow.dataset.Expression true>
> >>> ds.scalar(False) or ds.scalar(True) # <--- I expect true
> <pyarrow.dataset.Expression false>
> >>> not ds.scalar(True)   # this works                                                                                                                                                                                                  
> False                                                                                                                                                                                                                       
> >>> not ds.scalar(False)      <--- I expect true                                                                                                                                                                                              
> False  
> {code}
> I tried to figure out what goes wrong here, but there are no obvious problems in the python code, same for C++ (but I didn't quite understand everything of it yet).
>  
> This happens with pyarrow3 and pyarrow2
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)