From 3bb9f38eebf18da882b21d7a6ef3d0532c7f5038 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 07:38:35 +0000 Subject: [PATCH] fix(batch): hash join process left outer in some yield path (#15853) (#15863) Co-authored-by: stonepage <40830455+st1page@users.noreply.github.com> --- src/batch/src/executor/join/hash_join.rs | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/batch/src/executor/join/hash_join.rs b/src/batch/src/executor/join/hash_join.rs index ab1f6019f9878..b4c9102fc66c1 100644 --- a/src/batch/src/executor/join/hash_join.rs +++ b/src/batch/src/executor/join/hash_join.rs @@ -531,8 +531,12 @@ impl HashJoinExecutor { probe_row, build_data_types.len(), ) { - non_equi_state.first_output_row_id.clear(); - yield spilled + yield Self::process_left_outer_join_non_equi_condition( + spilled, + cond.as_ref(), + &mut non_equi_state, + ) + .await? } } } @@ -745,7 +749,12 @@ impl HashJoinExecutor { &probe_chunk, probe_row_id, ) { - yield spilled + yield Self::process_left_semi_anti_join_non_equi_condition::( + spilled, + cond.as_ref(), + &mut non_equi_state, + ) + .await? } } } @@ -1178,7 +1187,13 @@ impl HashJoinExecutor { probe_row, build_data_types.len(), ) { - yield spilled + yield Self::process_full_outer_join_non_equi_condition( + spilled, + cond.as_ref(), + &mut left_non_equi_state, + &mut right_non_equi_state, + ) + .await? } } }