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? } } }