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 1e3da95359 [fix](Nereids): fix LAsscom split conjuncts. (#17792)
1e3da95359 is described below
commit 1e3da9535902b648cb53d849dc3d8a235170c570
Author: jakevin <[email protected]>
AuthorDate: Wed Mar 15 13:39:08 2023 +0800
[fix](Nereids): fix LAsscom split conjuncts. (#17792)
---
.../nereids/rules/exploration/join/InnerJoinLAsscomProject.java | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
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 4a64610fab..b48e429ccf 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
@@ -65,7 +65,7 @@ public class InnerJoinLAsscomProject extends
OneExplorationRuleFactory {
GroupPlan a = bottomJoin.left();
GroupPlan b = bottomJoin.right();
GroupPlan c = topJoin.right();
- Set<Slot> cOutputSet = c.getOutputSet();
+ Set<ExprId> cExprIdSet = c.getOutputExprIdSet();
/* ********** Split projects ********** */
Map<Boolean, List<NamedExpression>> map =
JoinReorderUtils.splitProjection(projects, b);
@@ -95,15 +95,16 @@ public class InnerJoinLAsscomProject extends
OneExplorationRuleFactory {
// Add all slots used by OnCondition when projects not
empty.
Set<ExprId> aExprIdSet =
JoinReorderUtils.combineProjectAndChildExprId(a, aProjects);
Map<Boolean, Set<Slot>> abOnUsedSlots = Stream.concat(
- bottomJoin.getHashJoinConjuncts().stream(),
- bottomJoin.getHashJoinConjuncts().stream())
+ newTopHashConjuncts.stream(),
+ newTopOtherConjuncts.stream())
.flatMap(onExpr -> onExpr.getInputSlots().stream())
+ .filter(slot ->
!cExprIdSet.contains(slot.getExprId()))
.collect(Collectors.partitioningBy(
slot ->
aExprIdSet.contains(slot.getExprId()), Collectors.toSet()));
JoinReorderUtils.addSlotsUsedByOn(abOnUsedSlots.get(true),
aProjects);
JoinReorderUtils.addSlotsUsedByOn(abOnUsedSlots.get(false), bProjects);
- aProjects.addAll(cOutputSet);
+ aProjects.addAll(c.getOutput());
/* ********** new Plan ********** */
LogicalJoin<Plan, Plan> newBottomJoin =
topJoin.withConjunctsChildren(newBottomHashConjuncts,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]