This is an automated email from the ASF dual-hosted git repository.
jakevin 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 b93e553958 [enhance](Nereids): allow empty hash condition (#17699)
b93e553958 is described below
commit b93e553958a356651e24575f57aa87869bcb2337
Author: jakevin <[email protected]>
AuthorDate: Sun Mar 12 18:51:22 2023 +0800
[enhance](Nereids): allow empty hash condition (#17699)
---
.../nereids/rules/exploration/join/InnerJoinLAsscom.java | 11 ++++-------
.../rules/exploration/join/InnerJoinLAsscomProject.java | 13 +++++--------
2 files changed, 9 insertions(+), 15 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscom.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscom.java
index a6f3a5ab26..fa90adf630 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscom.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscom.java
@@ -27,8 +27,6 @@ import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.logical.LogicalJoin;
import org.apache.doris.nereids.util.Utils;
-import com.google.common.base.Preconditions;
-
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -64,11 +62,6 @@ public class InnerJoinLAsscom extends
OneExplorationRuleFactory {
bottomJoin, bottomJoin.getHashJoinConjuncts());
List<Expression> newTopHashConjuncts =
splitHashConjuncts.get(true);
List<Expression> newBottomHashConjuncts =
splitHashConjuncts.get(false);
- Preconditions.checkState(!newTopHashConjuncts.isEmpty(),
- "LAsscom newTopHashJoinConjuncts join can't
empty");
- if (newBottomHashConjuncts.size() == 0) {
- return null;
- }
// split OtherJoinConjuncts.
Map<Boolean, List<Expression>> splitOtherConjunts =
splitConjuncts(topJoin.getOtherJoinConjuncts(),
@@ -76,6 +69,10 @@ public class InnerJoinLAsscom extends
OneExplorationRuleFactory {
List<Expression> newTopOtherConjuncts =
splitOtherConjunts.get(true);
List<Expression> newBottomOtherConjuncts =
splitOtherConjunts.get(false);
+ if (newBottomHashConjuncts.isEmpty() &&
newBottomOtherConjuncts.isEmpty()) {
+ return null;
+ }
+
LogicalJoin<Plan, Plan> newBottomJoin =
topJoin.withConjunctsChildren(newBottomHashConjuncts,
newBottomOtherConjuncts, a, c);
newBottomJoin.getJoinReorderContext().copyFrom(bottomJoin.getJoinReorderContext());
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscomProject.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscomProject.java
index c23dfd5572..4a64610fab 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscomProject.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscomProject.java
@@ -29,8 +29,6 @@ import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.logical.LogicalJoin;
import org.apache.doris.nereids.util.Utils;
-import com.google.common.base.Preconditions;
-
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -83,18 +81,17 @@ public class InnerJoinLAsscomProject extends
OneExplorationRuleFactory {
topJoin.getHashJoinConjuncts(),
bottomJoin.getHashJoinConjuncts(), bExprIdSet);
List<Expression> newTopHashConjuncts =
splitHashConjuncts.get(true);
List<Expression> newBottomHashConjuncts =
splitHashConjuncts.get(false);
- Preconditions.checkState(!newTopHashConjuncts.isEmpty(),
"newTopHashConjuncts is empty");
- if (newBottomHashConjuncts.size() == 0) {
- return null;
- }
/* ********** split OtherConjuncts ********** */
Map<Boolean, List<Expression>> splitOtherConjuncts =
splitConjunctsWithAlias(
- topJoin.getOtherJoinConjuncts(),
bottomJoin.getOtherJoinConjuncts(),
- bExprIdSet);
+ topJoin.getOtherJoinConjuncts(),
bottomJoin.getOtherJoinConjuncts(), bExprIdSet);
List<Expression> newTopOtherConjuncts =
splitOtherConjuncts.get(true);
List<Expression> newBottomOtherConjuncts =
splitOtherConjuncts.get(false);
+ if (newBottomOtherConjuncts.isEmpty() &&
newBottomHashConjuncts.isEmpty()) {
+ return null;
+ }
+
// Add all slots used by OnCondition when projects not
empty.
Set<ExprId> aExprIdSet =
JoinReorderUtils.combineProjectAndChildExprId(a, aProjects);
Map<Boolean, Set<Slot>> abOnUsedSlots = Stream.concat(
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]