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 <jakevin...@gmail.com>
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: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to