diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java index a5e245f9f8..c09f034525 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java @@ -882,7 +882,8 @@ public class StmtRewriter { } } } else { - joinOp = JoinOperator.LEFT_ANTI_JOIN; + joinOp = expr instanceof InPredicate ? JoinOperator.NULL_AWARE_LEFT_ANTI_JOIN + : JoinOperator.LEFT_ANTI_JOIN; } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java index 8068c1a998..87282dcaac 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java @@ -1357,8 +1357,8 @@ public class Coordinator { // when left table is empty, it's bucketset is empty. // set right table destination address to the address of left table - if (destParams.instanceExecParams.size() == 1 - && destParams.instanceExecParams.get(0).bucketSeqSet.isEmpty()) { + if (destParams.instanceExecParams.size() == 1 && (bucketNum == 0 + || destParams.instanceExecParams.get(0).bucketSeqSet.isEmpty())) { bucketNum = 1; destParams.instanceExecParams.get(0).bucketSeqSet.add(0); }