Skip to content

Commit 71784d5

Browse files
committed
fix: fix right join bug, issue 9018, add test cases
1 parent d73a8f9 commit 71784d5

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -294,12 +294,12 @@ impl HashJoinState for JoinHashTable {
294294
}
295295

296296
let rest_block = self.rest_block()?;
297-
if rest_block.is_empty() {
298-
return Ok(blocks.to_vec());
299-
}
300297
let input_block = DataBlock::concat_blocks(&[blocks, &[rest_block]].concat())?;
301298

302299
if unmatched_build_indexes.is_empty() && self.hash_join_desc.other_predicate.is_none() {
300+
if input_block.is_empty() {
301+
return Ok(vec![]);
302+
}
303303
return Ok(vec![input_block]);
304304
}
305305

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
statement ok
2+
DROP DATABASE IF EXISTS databend1;
3+
4+
statement ok
5+
CREATE DATABASE databend1;
6+
7+
statement ok
8+
USE databend1;
9+
10+
statement ok
11+
CREATE TABLE t0(c0VARCHAR VARCHAR NULL, c1BOOLEAN BOOLEAN NULL, c2BOOLEAN BOOLEAN NULL);
12+
13+
statement ok
14+
CREATE TABLE t1(c0INT INT64 NULL DEFAULT(-273272402), c1INT INT64 NULL);
15+
16+
statement ok
17+
select 1 as count FROM t0 NATURAL RIGHT JOIN t1;

0 commit comments

Comments
 (0)