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 27285aa897db64..4e29f317c89144 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 Rule build() { 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 otherJoinConjuncts = join.getOtherJoinConjuncts(); List remainingOther = Lists.newArrayList();