diff --git a/datafusion/core/src/physical_plan/joins/sort_merge_join.rs b/datafusion/core/src/physical_plan/joins/sort_merge_join.rs index 797f61db6900..28df317a8ac3 100644 --- a/datafusion/core/src/physical_plan/joins/sort_merge_join.rs +++ b/datafusion/core/src/physical_plan/joins/sort_merge_join.rs @@ -113,33 +113,21 @@ impl SortMergeJoinExec { ))); } - let (left_expr, right_expr): (Vec<_>, Vec<_>) = on + let (left_sort_exprs, right_sort_exprs): (Vec<_>, Vec<_>) = on .iter() - .map(|(l, r)| { - ( - Arc::new(l.clone()) as Arc, - Arc::new(r.clone()) as Arc, - ) - }) - .unzip(); - - let left_sort_exprs = left_expr - .into_iter() - .zip(sort_options.iter()) - .map(|(k, sort_op)| PhysicalSortExpr { - expr: k, - options: *sort_op, - }) - .collect::>(); - - let right_sort_exprs = right_expr - .into_iter() .zip(sort_options.iter()) - .map(|(k, sort_op)| PhysicalSortExpr { - expr: k, - options: *sort_op, + .map(|((l, r), sort_op)| { + let left = PhysicalSortExpr { + expr: Arc::new(l.clone()) as Arc, + options: *sort_op, + }; + let right = PhysicalSortExpr { + expr: Arc::new(r.clone()) as Arc, + options: *sort_op, + }; + (left, right) }) - .collect::>(); + .unzip(); let output_ordering = match join_type { JoinType::Inner