This is an automated email from the ASF dual-hosted git repository.

englefly pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 5c9f3ab6eec [fix](nereids)do not generate min-max runtime filter for 
A<=>B and A!=B #25676
5c9f3ab6eec is described below

commit 5c9f3ab6eec5fe82bcbdca0354ecb0bf36c04e41
Author: minghong <[email protected]>
AuthorDate: Tue Oct 24 10:23:22 2023 +0800

    [fix](nereids)do not generate min-max runtime filter for A<=>B and A!=B 
#25676
---
 .../processor/post/RuntimeFilterGenerator.java     |  4 +++
 .../suites/nereids_p0/join/test_join.groovy        | 32 +++++++++++-----------
 2 files changed, 20 insertions(+), 16 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java
index b99b8904e5e..e4ee9d92176 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java
@@ -205,6 +205,10 @@ public class RuntimeFilterGenerator extends 
PlanPostProcessor {
         if (!(expr instanceof ComparisonPredicate)) {
             return null;
         }
+        if (!(expr instanceof LessThan) && !(expr instanceof LessThanEqual)
+                && !(expr instanceof GreaterThanEqual) && !(expr instanceof 
GreaterThan)) {
+            return null;
+        }
         if (!(expr.child(0) instanceof SlotReference)) {
             return null;
         }
diff --git a/regression-test/suites/nereids_p0/join/test_join.groovy 
b/regression-test/suites/nereids_p0/join/test_join.groovy
index 584b80384ae..5336c33913b 100644
--- a/regression-test/suites/nereids_p0/join/test_join.groovy
+++ b/regression-test/suites/nereids_p0/join/test_join.groovy
@@ -174,44 +174,44 @@ suite("test_join", "nereids_p0") {
     // join null value
     def table_1 = "join_null_value_left_table"
     def table_2 = "join_null_value_right_table"
-    sql"""drop table if exists ${table_1}"""
-    sql"""drop table if exists ${table_2}"""
-    sql"""create table if not exists ${table_1} (k1 tinyint, k2 decimal(9,3) 
NULL, k3 char(5) NULL,
+    sql"""drop table if exists join_null_value_left_table"""
+    sql"""drop table if exists join_null_value_right_table"""
+    sql"""create table if not exists join_null_value_left_table (k1 tinyint, 
k2 decimal(9,3) NULL, k3 char(5) NULL,
                     k4 date NULL, k5 datetime NULL, 
                     k6 double sum) engine=olap 
                     distributed by hash(k1) buckets 2 
properties("storage_type"="column", "replication_num" = "1")"""
-    sql"""create table if not exists ${table_2} (k1 tinyint, k2 decimal(9,3) 
NULL, k3 char(5) NULL,
+    sql"""create table if not exists join_null_value_right_table (k1 tinyint, 
k2 decimal(9,3) NULL, k3 char(5) NULL,
                     k4 date NULL, k5 datetime NULL, 
                     k6 double sum) engine=olap 
                     distributed by hash(k1) buckets 2 
properties("storage_type"="column", "replication_num" = "1")"""
-    sql"""insert into ${table_1} values (1, NULL,'null', NULL, NULL, 8.9),
+    sql"""insert into join_null_value_left_table values (1, NULL,'null', NULL, 
NULL, 8.9),
                     (2, NULL,'2', NULL, NULL, 8.9),
                     (3, NULL,'null', '2019-09-09', NULL, 8.9);"""
-    sql"""insert into ${table_2} values (1, NULL,'null', NULL, NULL, 8.9),
+    sql"""insert into join_null_value_right_table values (1, NULL,'null', 
NULL, NULL, 8.9),
                     (2, NULL,'2', NULL, NULL, 8.9),
                     (3, NULL,'null', '2019-09-09', NULL, 8.9);"""
-    sql"""insert into ${table_1} values (5, 2.2,"null", NULL, "2019-09-09 
00:00:00", 8.9)"""
+    sql"""insert into join_null_value_left_table values (5, 2.2,"null", NULL, 
"2019-09-09 00:00:00", 8.9)"""
     for (type in join_types) {
         for (index in range(1, 7)) {
-            qt_join_null_value1"""select * from ${table_1} a ${type} join 
${table_2} b on a.k${index} = b.k${index} and 
+            qt_join_null_value1"""select * from join_null_value_left_table a 
${type} join join_null_value_right_table b on a.k${index} = b.k${index} and 
                 a.k2 = b.k2 and a.k${index} != b.k2 order by a.k1, b.k1"""
-            qt_join_null_value2"""select * from ${table_1} a ${type} join 
${table_2} b on a.k${index} = b.k${index} and 
+            qt_join_null_value2"""select * from join_null_value_left_table a 
${type} join join_null_value_right_table b on a.k${index} = b.k${index} and 
                 a.k2 = b.k2 and a.k${index} != b.k2 order by a.k1, b.k1"""
         }
     }
     //  <=>, =, is NULL, ifnull
-    qt_join_null1"""select * from ${table_1} a  left join ${table_2} b on a.k2 
<=> b.k2 and 
+    qt_join_null1"""select * from join_null_value_left_table a  left join 
join_null_value_right_table b on a.k2 <=> b.k2 and 
         a.k3 is NULL order by a.k1, b.k1"""
-    qt_join_null2"""select * from ${table_1} a join ${table_2} b on a.k2<=> 
b.k2 and 
+    qt_join_null2"""select * from join_null_value_left_table a join 
join_null_value_right_table b on a.k2<=> b.k2 and 
         a.k4<=>NULL order by a.k1,b.k1"""
-    qt_join_null3"""select * from ${table_1} a join ${table_2} b on a.k2<=> 
b.k2
+    qt_join_null3"""select * from join_null_value_left_table a join 
join_null_value_right_table b on a.k2<=> b.k2
         and a.k4<=>NULL  and b.k4 is not NULL order by a.k1,b.k1"""
-    qt_join_null4"""select * from ${table_1} a join ${table_2} b on a.k2<=> 
b.k2 and 
+    qt_join_null4"""select * from join_null_value_left_table a join 
join_null_value_right_table b on a.k2<=> b.k2 and 
        a.k4<=>NULL  and b.k4 is not NULL and a.k3=2 order by a.k1,b.k1"""
-    qt_join_null5"""select * from ${table_1} a join ${table_2} b on 
ifnull(a.k4,null)
+    qt_join_null5"""select * from join_null_value_left_table a join 
join_null_value_right_table b on ifnull(a.k4,null)
        <=> ifnull(b.k5,null) order by a.k1, a.k2, a.k3, b.k1, b.k2"""
-    sql"drop table ${table_1}"
-    sql"drop table ${table_2}"
+    sql"drop table join_null_value_left_table"
+    sql"drop table join_null_value_right_table"
 
 
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to