[ https://issues.apache.org/jira/browse/ARROW-6372?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16917782#comment-16917782 ]
Andy Grove commented on ARROW-6372: ----------------------------------- Thanks Paddy. Here is a unit test to reproduce this (can be added to {{type_coercion.rs}}): {code:java} #[test] fn test_add_u32_i64() { binary_cast_test( DataType::UInt32, DataType::Int64, "CAST(#0 AS Int64) Plus #1", ); binary_cast_test( DataType::Int64, DataType::UInt32, "#0 Plus CAST(#1 AS Int64)", ); } {code} The issue is that theĀ {{can_coerce_from}} function in {{datafusion/src/logicalplan.rs}} does not support automatic coercion between signed and unsigned types, and is inconsistent with the logic in theĀ {{get_supertype}} method in {{datafusion/src/optimizer/utils.rs}}. This is also somewhat related to https://issues.apache.org/jira/browse/ARROW-4957 > [Rust][Datafusion] Predictate push down optimization can break query plan > ------------------------------------------------------------------------- > > Key: ARROW-6372 > URL: https://issues.apache.org/jira/browse/ARROW-6372 > Project: Apache Arrow > Issue Type: Bug > Components: Rust - DataFusion > Affects Versions: 0.14.1 > Reporter: Paddy Horan > Priority: Major > Fix For: 0.15.0 > > > The following code reproduces the issue: > [https://gist.github.com/paddyhoran/598db6cbb790fc5497320613e54a02c6] > If you disable the predicate push down optimization it works fine. -- This message was sent by Atlassian Jira (v8.3.2#803003)