File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -316,6 +316,43 @@ fn rewrite_plan_with_known_rewrites(
316316 } ) ;
317317 Ok ( new_plan)
318318 }
319+ LogicalPlan :: Join ( datafusion:: logical_expr:: Join { on, filter, .. } ) => {
320+ let mut new_expressions = vec ! [ ] ;
321+ if on. len ( ) > 0 {
322+ for ( left, right) in on {
323+ let left = rewrite_table_scans_in_expr (
324+ left. clone ( ) ,
325+ known_rewrites,
326+ subquery_uses_partial_path,
327+ subquery_table_scans,
328+ ) ?;
329+ let right = rewrite_table_scans_in_expr (
330+ right. clone ( ) ,
331+ known_rewrites,
332+ subquery_uses_partial_path,
333+ subquery_table_scans,
334+ ) ?;
335+ let equal_expr = Expr :: BinaryExpr ( BinaryExpr :: new (
336+ Box :: new ( left) ,
337+ logical_expr:: Operator :: Eq ,
338+ Box :: new ( right) ,
339+ ) ) ;
340+ new_expressions. push ( equal_expr) ;
341+ }
342+ }
343+ if let Some ( filter) = filter {
344+ let new_filter = rewrite_table_scans_in_expr (
345+ filter. clone ( ) ,
346+ known_rewrites,
347+ subquery_uses_partial_path,
348+ subquery_table_scans,
349+ ) ?;
350+ new_expressions. push ( new_filter) ;
351+ }
352+
353+ let new_plan = plan. with_new_exprs ( new_expressions, rewritten_inputs) ?;
354+ Ok ( new_plan)
355+ }
319356 _ => {
320357 let mut new_expressions = vec ! [ ] ;
321358 for expression in plan. expressions ( ) {
You can’t perform that action at this time.
0 commit comments