File tree Expand file tree Collapse file tree 2 files changed +50
-0
lines changed
core/tests/sqllogictests/test_files Expand file tree Collapse file tree 2 files changed +50
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ ##########
19
+ ## JOIN Tests
20
+ ##########
21
+
22
+ statement ok
23
+ CREATE TABLE students(name TEXT, mark INT) AS VALUES
24
+ ('Stuart', 28),
25
+ ('Amina', 89),
26
+ ('Christen', 50),
27
+ ('Salma', 77),
28
+ ('Samantha', 21);
29
+
30
+ statement ok
31
+ CREATE TABLE grades(grade INT, min INT, max INT) AS VALUES
32
+ (1, 0, 14),
33
+ (2, 15, 35),
34
+ (3, 36, 55),
35
+ (4, 56, 79),
36
+ (5, 80, 100);
37
+
38
+ # Regression test: https://github.com/apache/arrow-datafusion/issues/4844
39
+ query I
40
+ SELECT s.*, g.grade FROM students s join grades g on s.mark between g.min and g.max WHERE grade > 2 ORDER BY s.mark DESC
41
+ ----
42
+ Amina 89 5
43
+ Salma 77 4
44
+ Christen 50 3
Original file line number Diff line number Diff line change @@ -62,6 +62,12 @@ impl OptimizerRule for EliminateCrossJoin {
62
62
let mut all_inputs: Vec < LogicalPlan > = vec ! [ ] ;
63
63
match & input {
64
64
LogicalPlan :: Join ( join) if ( join. join_type == JoinType :: Inner ) => {
65
+ // The filter of inner join will lost, skip this rule.
66
+ // issue: https://github.com/apache/arrow-datafusion/issues/4844
67
+ if join. filter . is_some ( ) {
68
+ return Ok ( None ) ;
69
+ }
70
+
65
71
flatten_join_inputs (
66
72
& input,
67
73
& mut possible_join_keys,
You can’t perform that action at this time.
0 commit comments