Skip to content

Commit fd7c133

Browse files
committed
fix clippy and some tests
1 parent 2a17451 commit fd7c133

File tree

3 files changed

+64
-48
lines changed

3 files changed

+64
-48
lines changed

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ impl JoinHashTable {
562562
for kv in hash_table.iter() {
563563
for v in kv.get_value() {
564564
if !build_indexes.contains(v) {
565-
unmatched_build_indexes.push(v.clone());
565+
unmatched_build_indexes.push(*v);
566566
}
567567
}
568568
}
@@ -590,8 +590,7 @@ impl JoinHashTable {
590590
.collect::<Result<Vec<_>>>()?,
591591
);
592592

593-
nullable_probe_block =
594-
DataBlock::concat_blocks(&vec![nullable_probe_block, null_probe_block])?;
593+
nullable_probe_block = DataBlock::concat_blocks(&[nullable_probe_block, null_probe_block])?;
595594
let merged_block = self.merge_eq_block(&nullable_probe_block, &build_block)?;
596595
Ok(merged_block)
597596
}

src/query/service/src/sql/planner/binder/join.rs

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ impl<'a> Binder {
124124
&mut left_join_conditions,
125125
&mut right_join_conditions,
126126
&mut other_conditions,
127+
&join.op,
127128
)
128129
.await?;
129130

@@ -271,6 +272,7 @@ impl<'a> JoinConditionResolver<'a> {
271272
left_join_conditions: &mut Vec<Scalar>,
272273
right_join_conditions: &mut Vec<Scalar>,
273274
other_join_conditions: &mut Vec<Scalar>,
275+
join_op: &JoinOperator,
274276
) -> Result<()> {
275277
match &self.join_condition {
276278
JoinCondition::On(cond) => {
@@ -287,8 +289,13 @@ impl<'a> JoinConditionResolver<'a> {
287289
.iter()
288290
.map(|ident| normalize_identifier(ident, self.name_resolution_ctx).name)
289291
.collect::<Vec<String>>();
290-
self.resolve_using(using_columns, left_join_conditions, right_join_conditions)
291-
.await?;
292+
self.resolve_using(
293+
using_columns,
294+
left_join_conditions,
295+
right_join_conditions,
296+
join_op,
297+
)
298+
.await?;
292299
}
293300
JoinCondition::Natural => {
294301
// NATURAL is a shorthand form of USING: it forms a USING list consisting of all column names that appear in both input tables
@@ -297,8 +304,13 @@ impl<'a> JoinConditionResolver<'a> {
297304
let mut using_columns = vec![];
298305
// Find common columns in both input tables
299306
self.find_using_columns(&mut using_columns)?;
300-
self.resolve_using(using_columns, left_join_conditions, right_join_conditions)
301-
.await?
307+
self.resolve_using(
308+
using_columns,
309+
left_join_conditions,
310+
right_join_conditions,
311+
join_op,
312+
)
313+
.await?
302314
}
303315
JoinCondition::None => {}
304316
}
@@ -363,6 +375,7 @@ impl<'a> JoinConditionResolver<'a> {
363375
using_columns: Vec<String>,
364376
left_join_conditions: &mut Vec<Scalar>,
365377
right_join_conditions: &mut Vec<Scalar>,
378+
join_op: &JoinOperator,
366379
) -> Result<()> {
367380
for join_key in using_columns.iter() {
368381
let join_key_name = join_key.as_str();
@@ -397,13 +410,17 @@ impl<'a> JoinConditionResolver<'a> {
397410
join_key_name
398411
)));
399412
};
400-
413+
let idx = if let JoinOperator::RightOuter = join_op {
414+
0
415+
} else {
416+
1
417+
};
401418
if let Some(col_binding) = self
402419
.join_context
403420
.columns
404421
.iter_mut()
405422
.filter(|col_binding| col_binding.column_name == join_key_name)
406-
.nth(1)
423+
.nth(idx)
407424
{
408425
// Always make the second using column in the join_context invisible in unqualified wildcard.
409426
col_binding.visibility = Visibility::UnqualifiedWildcardInVisible;

tests/logictest/suites/crdb/join

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,12 @@ NULL
8484
42
8585

8686
statement query II
87-
SELECT * FROM onecolumn AS a(x) RIGHT OUTER JOIN onecolumn AS b(y) ON a.x = b.y;
87+
SELECT * FROM onecolumn AS a(x) RIGHT OUTER JOIN onecolumn AS b(y) ON a.x = b.y order by x;
8888

8989
----
90+
42 42
9091
44 44
9192
NULL NULL
92-
42 42
9393

9494
statement query I
9595
SELECT * FROM onecolumn AS a RIGHT OUTER JOIN onecolumn AS b USING(x) ORDER BY x;
@@ -100,12 +100,12 @@ SELECT * FROM onecolumn AS a RIGHT OUTER JOIN onecolumn AS b USING(x) ORDER BY x
100100
NULL
101101

102102
statement query I
103-
SELECT * FROM onecolumn AS a NATURAL RIGHT OUTER JOIN onecolumn AS b;
103+
SELECT * FROM onecolumn AS a NATURAL RIGHT OUTER JOIN onecolumn AS b order by x;
104104

105105
----
106+
42
106107
44
107108
NULL
108-
42
109109

110110
statement ok
111111
drop table if exists onecolumn_w;
@@ -334,12 +334,12 @@ SELECT * FROM a LEFT OUTER JOIN b ON a.i = b.i;
334334
3 3 1
335335

336336
statement query III
337-
SELECT * FROM a RIGHT OUTER JOIN b ON a.i = b.i;
337+
SELECT * FROM a RIGHT OUTER JOIN b ON a.i = b.i order by b;
338338

339339
----
340-
2 1 2
341-
3 1 3
342-
4 0 NULL
340+
NULL 4 0
341+
2 2 1
342+
3 3 1
343343

344344
-- statement query
345345
-- SELECT * FROM a FULL OUTER JOIN b ON a.i = b.i;
@@ -354,10 +354,10 @@ statement query III
354354
SELECT * FROM a RIGHT OUTER JOIN b ON a.i=b.i ORDER BY b.i, b.b;
355355

356356
----
357-
2 1 2
358-
3 0 3
359-
3 1 3
360-
4 0 NULL
357+
2 2 1
358+
3 3 0
359+
3 3 1
360+
NULL 4 0
361361

362362
-- statement query
363363
-- SELECT * FROM a FULL OUTER JOIN b ON a.i=b.i ORDER BY b.i, b.b;
@@ -526,14 +526,14 @@ SELECT * FROM (SELECT * FROM pairs LEFT JOIN square ON b = sq AND a > 1 AND n <
526526
4 6 NULL NULL
527527

528528
statement query IIII
529-
SELECT * FROM (SELECT * FROM pairs RIGHT JOIN square ON b = sq AND a > 1 AND n < 6) WHERE (a IS NULL OR a > 2) AND n > 1 AND (a IS NULL OR a < sq);
529+
SELECT * FROM (SELECT * FROM pairs RIGHT JOIN square ON b = sq AND a > 1 AND n < 6) WHERE (a IS NULL OR a > 2) AND n > 1 AND (a IS NULL OR a < sq) order by n;
530530

531531
----
532-
2 4 3 4
533-
3 9 NULL NULL
534-
4 16 NULL NULL
535-
5 25 NULL NULL
536-
6 36 NULL NULL
532+
3 4 2 4
533+
NULL NULL 3 9
534+
NULL NULL 4 16
535+
NULL NULL 5 25
536+
NULL NULL 6 36
537537

538538
statement ok
539539
drop table if exists t1;
@@ -653,7 +653,7 @@ a a NULL
653653
c c NULL
654654

655655
statement query TTT
656-
SELECT s, str1.s, str2.s FROM str1 RIGHT OUTER JOIN str2 USING(s) order by str1.s;
656+
SELECT s, str1.s, str2.s FROM str1 RIGHT OUTER JOIN str2 USING(s) order by str2.s;
657657

658658
----
659659
A A A
@@ -706,12 +706,12 @@ SELECT * FROM xyu LEFT OUTER JOIN xyv USING(x, y) WHERE x > 2;
706706
4 4 44 NULL
707707

708708
statement query IIII
709-
SELECT * FROM xyu RIGHT OUTER JOIN xyv USING(x, y) WHERE x > 2;
709+
SELECT * FROM xyu RIGHT OUTER JOIN xyv USING(x, y) WHERE x > 2 order by y;
710710

711711
----
712-
3 1 31 31
713-
3 3 33 NULL
714-
5 5 55 NULL
712+
31 3 1 31
713+
NULL 3 3 33
714+
NULL 5 5 55
715715

716716
-- statement error 1065
717717
-- SELECT * FROM xyu FULL OUTER JOIN xyv USING(x, y) WHERE x > 2;
@@ -739,14 +739,14 @@ SELECT * FROM xyu LEFT OUTER JOIN xyv ON xyu.x = xyv.x AND xyu.y = xyv.y AND xyu
739739
4 4 44 NULL NULL NULL
740740

741741
statement query IIIIII
742-
SELECT * FROM xyu RIGHT OUTER JOIN xyv ON xyu.x = xyv.x AND xyu.y = xyv.y AND xyu.x = 1 AND xyu.y < 10;
742+
SELECT * FROM xyu RIGHT OUTER JOIN xyv ON xyu.x = xyv.x AND xyu.y = xyv.y AND xyu.x = 1 AND xyu.y < 10 order by v;
743743

744744
----
745745
1 1 1 1 1 1
746-
2 2 2 NULL NULL NULL
747-
3 1 31 NULL NULL NULL
748-
3 3 33 NULL NULL NULL
749-
5 5 55 NULL NULL NULL
746+
NULL NULL NULL 2 2 2
747+
NULL NULL NULL 3 1 31
748+
NULL NULL NULL 3 3 33
749+
NULL NULL NULL 5 5 55
750750

751751
statement query IIII
752752
SELECT * FROM (SELECT * FROM xyu ORDER BY x, y) AS xyu LEFT OUTER JOIN (SELECT * FROM xyv ORDER BY x, y) AS xyv USING(x, y) WHERE x > 2;
@@ -757,12 +757,12 @@ SELECT * FROM (SELECT * FROM xyu ORDER BY x, y) AS xyu LEFT OUTER JOIN (SELECT *
757757
4 4 44 NULL
758758

759759
statement query IIII
760-
SELECT * FROM (SELECT * FROM xyu ORDER BY x, y) AS xyu RIGHT OUTER JOIN (SELECT * FROM xyv ORDER BY x, y) AS xyv USING(x, y) WHERE x > 2;
760+
SELECT * FROM (SELECT * FROM xyu ORDER BY x, y) AS xyu RIGHT OUTER JOIN (SELECT * FROM xyv ORDER BY x, y) AS xyv USING(x, y) WHERE x > 2 order by v;
761761

762762
----
763-
3 1 31 31
764-
3 3 33 NULL
765-
5 5 55 NULL
763+
31 3 1 31
764+
NULL 3 3 33
765+
NULL 5 5 55
766766

767767
-- statement query
768768
-- SELECT * FROM (SELECT * FROM xyu ORDER BY x, y) AS xyu FULL OUTER JOIN (SELECT * FROM xyv ORDER BY x, y) AS xyv USING(x, y) WHERE x > 2;
@@ -778,14 +778,14 @@ SELECT * FROM (SELECT * FROM xyu ORDER BY x, y) AS xyu LEFT OUTER JOIN (SELECT *
778778
4 4 44 NULL NULL NULL
779779

780780
statement query IIIIII
781-
SELECT * FROM xyu RIGHT OUTER JOIN (SELECT * FROM xyv ORDER BY x, y) AS xyv ON xyu.x = xyv.x AND xyu.y = xyv.y AND xyu.x = 1 AND xyu.y < 10;
781+
SELECT * FROM xyu RIGHT OUTER JOIN (SELECT * FROM xyv ORDER BY x, y) AS xyv ON xyu.x = xyv.x AND xyu.y = xyv.y AND xyu.x = 1 AND xyu.y < 10 ORDER BY v;
782782

783783
----
784784
1 1 1 1 1 1
785-
2 2 2 NULL NULL NULL
786-
3 1 31 NULL NULL NULL
787-
3 3 33 NULL NULL NULL
788-
5 5 55 NULL NULL NULL
785+
NULL NULL NULL 2 2 2
786+
NULL NULL NULL 3 1 31
787+
NULL NULL NULL 3 3 33
788+
NULL NULL NULL 5 5 55
789789

790790
statement ok
791791
drop table if exists l;
@@ -821,13 +821,13 @@ statement query III
821821
SELECT * FROM l RIGHT OUTER JOIN r USING(a) WHERE a = 3;
822822

823823
----
824-
3 1 1
824+
1 3 1
825825

826826
statement query III
827827
SELECT * FROM l RIGHT OUTER JOIN r USING(a) WHERE a = 4;
828828

829829
----
830-
4 1 NULL
830+
NULL 4 1
831831

832832
statement ok
833833
drop table if exists foo;

0 commit comments

Comments
 (0)