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

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git

commit dfcabf8d4711177fa7c60994c3f314408b52ee38
Author: minghong <engle...@gmail.com>
AuthorDate: Mon May 27 20:44:46 2024 +0800

    [fix](nereids) set mark join reference for bitmap-in-apply (#35435)
    
    bitmap filter is implemented before mark-join. When support mark-join, we 
forgot to update the bitmap-filter branch.
    when convert a bitmap-apply-in to join, we should set markjoinReference to 
the join if there are markJoinRefereneces
---
 .../doris/nereids/rules/rewrite/InApplyToJoin.java     |  1 +
 .../data/query_p0/join/test_bitmap_filter_nereids.out  | 18 ++++++++++++++++--
 .../query_p0/join/test_bitmap_filter_nereids.groovy    |  5 ++++-
 3 files changed, 21 insertions(+), 3 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/InApplyToJoin.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/InApplyToJoin.java
index d2db0183467..fdf6efb8167 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/InApplyToJoin.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/InApplyToJoin.java
@@ -90,6 +90,7 @@ public class InApplyToJoin extends OneRewriteRuleFactory {
                 return new LogicalJoin<>(JoinType.LEFT_SEMI_JOIN, 
Lists.newArrayList(),
                         Lists.newArrayList(expr),
                         new DistributeHint(DistributeType.NONE),
+                        apply.getMarkJoinSlotReference(),
                         apply.left(), agg, null);
             }
 
diff --git a/regression-test/data/query_p0/join/test_bitmap_filter_nereids.out 
b/regression-test/data/query_p0/join/test_bitmap_filter_nereids.out
index 2b1f654a198..95170815937 100644
--- a/regression-test/data/query_p0/join/test_bitmap_filter_nereids.out
+++ b/regression-test/data/query_p0/join/test_bitmap_filter_nereids.out
@@ -98,7 +98,7 @@
 1      1989
 10     1991
 
--- !sql1 --
+-- !sql15 --
 1      1989
 3      1989
 5      1985
@@ -108,4 +108,18 @@
 11     1989
 12     32767
 13     -32767
-14     255
\ No newline at end of file
+14     255
+
+-- !sq16 --
+1      1989
+2      1986
+3      1989
+5      1985
+7      -32767
+9      1991
+10     1991
+11     1989
+12     32767
+13     -32767
+14     255
+
diff --git 
a/regression-test/suites/query_p0/join/test_bitmap_filter_nereids.groovy 
b/regression-test/suites/query_p0/join/test_bitmap_filter_nereids.groovy
index be18b4fe0ea..7567705dabf 100644
--- a/regression-test/suites/query_p0/join/test_bitmap_filter_nereids.groovy
+++ b/regression-test/suites/query_p0/join/test_bitmap_filter_nereids.groovy
@@ -92,5 +92,8 @@ suite("test_bitmap_filter_nereids") {
         notContains "RF000[bitmap]"
     }  
     sql "set parallel_pipeline_task_num=6;"
-    qt_sql1 "select k1, k2 from test_query_db.bigtable where k1 in (select k2 
from bitmap_table_nereids) order by k1;"
+    qt_sql15 "select k1, k2 from test_query_db.bigtable where k1 in (select k2 
from bitmap_table_nereids) order by k1;"
+
+    //mark join
+    qt_sq16 "select k1, k2 from test_query_db.bigtable where k1 in (select k2 
from bitmap_table_nereids) or k1=2 order by k1"
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to