liukun4515 commented on code in PR #4577:
URL: https://github.com/apache/arrow-datafusion/pull/4577#discussion_r1046607551


##########
datafusion/core/tests/sql/joins.rs:
##########
@@ -2400,3 +2399,52 @@ async fn reduce_cross_join_with_cast_expr_join_key() -> 
Result<()> {
 
     Ok(())
 }
+
+#[tokio::test]
+async fn reduce_cross_join_with_wildcard_and_expr() -> Result<()> {
+    let test_repartition_joins = vec![true, false];
+    for repartition_joins in test_repartition_joins {
+        let ctx = create_join_context("t1_id", "t2_id", repartition_joins)?;
+
+        let sql = "select *,t1.t1_id+11 from t1,t2 where t1.t1_id+11=t2.t2_id";
+        let msg = format!("Creating logical plan for '{}'", sql);
+        let plan = ctx
+            .create_logical_plan(&("explain ".to_owned() + sql))
+            .expect(&msg);
+        let state = ctx.state();
+        let plan = state.optimize(&plan)?;
+
+        let expected = vec![
+            "Explain [plan_type:Utf8, plan:Utf8]",
+            "  Projection: t1.t1_id, t1.t1_name, t1.t1_int, t2.t2_id, 
t2.t2_name, t2.t2_int, CAST(t1.t1_id AS Int64) + Int64(11) [t1_id:UInt32;N, 
t1_name:Utf8;N, t1_int:UInt32;N, t2_id:UInt32;N, t2_name:Utf8;N, 
t2_int:UInt32;N, t1.t1_id + Int64(11):Int64;N]",
+            "    Projection: t1.t1_id, t1.t1_name, t1.t1_int, t2.t2_id, 
t2.t2_name, t2.t2_int [t1_id:UInt32;N, t1_name:Utf8;N, t1_int:UInt32;N, 
t2_id:UInt32;N, t2_name:Utf8;N, t2_int:UInt32;N]",
+            "      Inner Join: t1.t1_id + Int64(11) = CAST(t2.t2_id AS Int64) 
[t1_id:UInt32;N, t1_name:Utf8;N, t1_int:UInt32;N, t1.t1_id + Int64(11):Int64;N, 
t2_id:UInt32;N, t2_name:Utf8;N, t2_int:UInt32;N, CAST(t2.t2_id AS 
Int64):Int64;N]",

Review Comment:
   left project is `...CAST(t1.t1_id AS Int64) + Int64(11)`, and the right 
project is `...CAST(t2.t2_id AS Int64) AS CAST(t2.t2_id AS Int64)`
   But the condition of join is `t1.t1_id + Int64(11) = CAST(t2.t2_id AS 
Int64)`.
   
   Do we need to do `type coercion` for the exprs in the `Join Plan` after this 
pr https://github.com/apache/arrow-datafusion/pull/4353?
   
   cc @ygf11 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to