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)