Skip to content

Commit b718cf1

Browse files
committed
fix bug
1 parent b0b8c5d commit b718cf1

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/query/service/src/pipelines/processors/transforms/hash_join/join_hash_table.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,10 @@ impl HashJoinState for JoinHashTable {
714714
}
715715
}
716716

717+
if unmatched_build_indexes.is_empty() && self.hash_join_desc.other_predicate.is_none() {
718+
return Ok(blocks.to_vec());
719+
}
720+
717721
let unmatched_build_block = self.row_space.gather(&unmatched_build_indexes)?;
718722
// Create null block for unmatched rows in probe side
719723
let null_probe_block = DataBlock::create(
@@ -728,7 +732,7 @@ impl HashJoinState for JoinHashTable {
728732
})
729733
.collect::<Result<Vec<_>>>()?,
730734
);
731-
let mut merged_block = self.merge_eq_block(&null_probe_block, &unmatched_build_block)?;
735+
let mut merged_block = self.merge_eq_block(&unmatched_build_block, &null_probe_block)?;
732736
merged_block = DataBlock::concat_blocks(&[blocks, &[merged_block]].concat())?;
733737

734738
if self.hash_join_desc.other_predicate.is_none() {
@@ -750,7 +754,7 @@ impl HashJoinState for JoinHashTable {
750754
// must be one of above
751755
_ => unreachable!(),
752756
};
753-
757+
dbg!(merged_block.clone());
754758
let probe_column_len = self.probe_schema.fields().len();
755759
let probe_columns = merged_block.columns()[0..probe_column_len]
756760
.iter()
@@ -772,7 +776,9 @@ impl HashJoinState for JoinHashTable {
772776
let mut bm = validity.into_mut().right().unwrap();
773777
Self::filter_rows_for_right_join(&mut bm, &build_indexes, &mut row_state);
774778
let predicate = BooleanColumn::from_arrow_data(bm.into()).arc();
775-
return Ok(vec![DataBlock::filter_block(merged_block, &predicate)?]);
779+
let filtered_block = DataBlock::filter_block(merged_block, &predicate)?;
780+
dbg!(filtered_block.clone());
781+
return Ok(vec![filtered_block]);
776782
}
777783

778784
Ok(vec![merged_block])

src/query/service/src/pipelines/processors/transforms/hash_join/result_blocks.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@ impl JoinHashTable {
573573
.collect::<Result<Vec<_>>>()?;
574574
let nullable_probe_block = DataBlock::create(self.probe_schema.clone(), nullable_columns);
575575

576-
self.merge_eq_block(&nullable_probe_block, &build_block)
576+
self.merge_eq_block(&build_block, &nullable_probe_block)
577577
}
578578

579579
// modify the bm by the value row_state

0 commit comments

Comments
 (0)