Weston Pace created ARROW-18334:
-----------------------------------

             Summary: Expression::Canonicalize does not unbind the expression 
from a kernel
                 Key: ARROW-18334
                 URL: https://issues.apache.org/jira/browse/ARROW-18334
             Project: Apache Arrow
          Issue Type: Bug
          Components: C++
            Reporter: Weston Pace


In general, we get away with this, since most kernels are of the shape {{FOO(T, 
T)}}.  However, when the input types differ, this can be a problem.

Concretely, we have kernels:

{noformat}
add_checked<Timestamp,Duration>() -> types[0]
add_checked<Duration,Timestamp>() -> types[1]
{noformat}

A call is made with expression {{field_ref("x") + duration_literal}}.  This 
call is bound to {{add_checked<Timestamp, Duration>}}.  However, the expression 
is then simplified to {{duration_literal + field_ref("x")}}.  Oddly enough, the 
math in this case is correct, since it is just addition, but the output type is 
not.  It assigns an output type of duration instead of timestamp.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to