This is an automated email from the ASF dual-hosted git repository.
morrysnow 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 89157447aa9 [fix](nereids) set mark join reference for bitmap-in-apply
(#35435)
89157447aa9 is described below
commit 89157447aa9b6bb171964fce51f61dfea95a9548
Author: minghong <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]