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 1883acf2341 [fix](nereids) disable PushDownJoinOtherCondition rule for mark join (#31084) 1883acf2341 is described below commit 1883acf2341037d6823a03abfac272ce0a480317 Author: starocean999 <40539150+starocean...@users.noreply.github.com> AuthorDate: Mon Feb 19 17:43:05 2024 +0800 [fix](nereids) disable PushDownJoinOtherCondition rule for mark join (#31084) --- .../rules/rewrite/PushDownJoinOtherCondition.java | 3 ++- .../data/nereids_p0/join/test_mark_join.out | 9 +++++++++ .../suites/nereids_p0/join/test_mark_join.groovy | 19 ++++++++++++++++++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownJoinOtherCondition.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownJoinOtherCondition.java index 8fff61988d4..cec7413cd61 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownJoinOtherCondition.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownJoinOtherCondition.java @@ -62,7 +62,8 @@ public class PushDownJoinOtherCondition extends OneRewriteRuleFactory { return logicalJoin() // TODO: we may need another rule to handle on true or on false condition .when(join -> !join.getOtherJoinConjuncts().isEmpty() && !(join.getOtherJoinConjuncts().size() == 1 - && join.getOtherJoinConjuncts().get(0) instanceof BooleanLiteral)) + && join.getOtherJoinConjuncts().get(0) instanceof BooleanLiteral) + && !join.isMarkJoin()) .then(join -> { List<Expression> otherJoinConjuncts = join.getOtherJoinConjuncts(); List<Expression> remainingOther = Lists.newArrayList(); diff --git a/regression-test/data/nereids_p0/join/test_mark_join.out b/regression-test/data/nereids_p0/join/test_mark_join.out index 4098502b75d..1ab6bcce40e 100644 --- a/regression-test/data/nereids_p0/join/test_mark_join.out +++ b/regression-test/data/nereids_p0/join/test_mark_join.out @@ -41,3 +41,12 @@ 3 \N true 4 \N false +-- !mark_join7 -- +1 p 0 +9 1 +\N \N 2 +\N \N 3 +3 4 +2 q 5 +0 6 + diff --git a/regression-test/suites/nereids_p0/join/test_mark_join.groovy b/regression-test/suites/nereids_p0/join/test_mark_join.groovy index 6008919d831..e951ea15577 100644 --- a/regression-test/suites/nereids_p0/join/test_mark_join.groovy +++ b/regression-test/suites/nereids_p0/join/test_mark_join.groovy @@ -21,6 +21,7 @@ suite("test_mark_join", "nereids_p0") { sql "drop table if exists `test_mark_join_t1`;" sql "drop table if exists `test_mark_join_t2`;" + sql "drop table if exists table_7_undef_partitions2_keys3_properties4_distributed_by5;" sql """ CREATE TABLE IF NOT EXISTS `test_mark_join_t1` ( @@ -60,6 +61,16 @@ suite("test_mark_join", "nereids_p0") { ); """ + sql """ + create table table_7_undef_partitions2_keys3_properties4_distributed_by5 ( + col_int_undef_signed int/*agg_type_placeholder*/ , + col_varchar_10__undef_signed varchar(10)/*agg_type_placeholder*/ , + pk int/*agg_type_placeholder*/ + ) engine=olap + distributed by hash(pk) buckets 10 + properties("replication_num" = "1"); + """ + sql """ insert into `test_mark_join_t1` values (1, 1, 1, 'abc', 'efg', 'hjk'), @@ -80,6 +91,8 @@ suite("test_mark_join", "nereids_p0") { ); """ + sql """insert into table_7_undef_partitions2_keys3_properties4_distributed_by5(pk,col_int_undef_signed,col_varchar_10__undef_signed) values (0,1,'p'),(1,9,''),(2,null,null),(3,null,null),(4,3,''),(5,2,'q'),(6,0,'');""" + qt_mark_join1 """ select k1, k2 @@ -122,5 +135,9 @@ suite("test_mark_join", "nereids_p0") { from test_mark_join_t1 order by 1, 2, 3; """ - + qt_mark_join7 """ + SELECT * FROM table_7_undef_partitions2_keys3_properties4_distributed_by5 AS t1 + WHERE EXISTS ( SELECT MIN(`pk`) FROM table_7_undef_partitions2_keys3_properties4_distributed_by5 AS t2 WHERE t1.pk = 6 ) + OR EXISTS ( SELECT `pk` FROM table_7_undef_partitions2_keys3_properties4_distributed_by5 AS t2 WHERE t1.pk = 5 ) order by pk ; + """ } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org