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 3745e6c18a [fix](Nereids): order of project's logical properties is 
different with that of project expression (#17648)
3745e6c18a is described below

commit 3745e6c18a4bf19ab155c0fb0ac196cf43e55f33
Author: 谢健 <jianx...@gmail.com>
AuthorDate: Sat Mar 11 00:26:54 2023 +0800

    [fix](Nereids): order of project's logical properties is different with 
that of project expression (#17648)
---
 .../doris/nereids/glue/translator/PhysicalPlanTranslator.java      | 5 ++++-
 .../java/org/apache/doris/nereids/jobs/cascades/ApplyRuleJob.java  | 1 +
 .../main/java/org/apache/doris/nereids/memo/GroupExpression.java   | 7 +++++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
index 4c137e4732..a05c5c94bf 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
@@ -1361,7 +1361,10 @@ public class PhysicalPlanTranslator extends 
DefaultPlanVisitor<PlanFragment, Pla
         // TODO: fix the project alias of an aliased relation.
 
         PlanNode inputPlanNode = inputFragment.getPlanRoot();
-        List<Slot> slotList = project.getOutput();
+        List<Slot> slotList = project.getProjects()
+                .stream()
+                .map(e -> e.toSlot())
+                .collect(Collectors.toList());
         // For hash join node, use vSrcToOutputSMap to describe the expression 
calculation, use
         // vIntermediateTupleDescList as input, and set vOutputTupleDesc as 
the final output.
         // TODO: HashJoinNode's be implementation is not support projection 
yet, remove this after when supported.
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/ApplyRuleJob.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/ApplyRuleJob.java
index 1f653b22f4..d3e6031e3f 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/ApplyRuleJob.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/ApplyRuleJob.java
@@ -76,6 +76,7 @@ public class ApplyRuleJob extends Job {
                     continue;
                 }
                 GroupExpression newGroupExpression = 
result.correspondingExpression;
+                newGroupExpression.setFromRule(rule);
                 if (newPlan instanceof LogicalPlan) {
                     pushJob(new OptimizeGroupExpressionJob(newGroupExpression, 
context));
                 } else {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/GroupExpression.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/GroupExpression.java
index 4555935f25..370fabaf0e 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/GroupExpression.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/GroupExpression.java
@@ -56,6 +56,9 @@ public class GroupExpression {
 
     private long estOutputRowCount = -1;
 
+    //Record the rule that generate this plan. It's used for debugging
+    private Rule fromRule;
+
     // Mapping from output properties to the corresponding best cost, 
statistics, and child properties.
     // key is the physical properties the group expression support for its 
parent
     // and value is cost and request physical properties to its children.
@@ -99,6 +102,10 @@ public class GroupExpression {
         return children.size();
     }
 
+    public void setFromRule(Rule rule) {
+        this.fromRule = rule;
+    }
+
     public Group getOwnerGroup() {
         return ownerGroup;
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to