You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by hu...@apache.org on 2022/07/20 07:58:04 UTC
[doris] branch master updated: [refactor] (Nereids) rename GroupExpression.getParent() to getOwnerGroup() (#11027)
This is an automated email from the ASF dual-hosted git repository.
huajianlan 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 6233b5200e [refactor] (Nereids) rename GroupExpression.getParent() to getOwnerGroup() (#11027)
6233b5200e is described below
commit 6233b5200ef5497bb078f66e1086fd832be9dcab
Author: minghong <mi...@163.com>
AuthorDate: Wed Jul 20 15:57:59 2022 +0800
[refactor] (Nereids) rename GroupExpression.getParent() to getOwnerGroup() (#11027)
GroupExpression.getParent() returns the group which contains this expr. This name is missleading especially in tree structures.
So we change the name to getOwnerGroup.
---
.../doris/nereids/jobs/cascades/ApplyRuleJob.java | 2 +-
.../nereids/jobs/cascades/CostAndEnforcerJob.java | 6 +++---
.../main/java/org/apache/doris/nereids/memo/Group.java | 8 ++++----
.../org/apache/doris/nereids/memo/GroupExpression.java | 10 +++++-----
.../main/java/org/apache/doris/nereids/memo/Memo.java | 18 +++++++++---------
.../doris/nereids/pattern/GroupExpressionMatching.java | 2 +-
.../properties/EnforceMissingPropertiesHelper.java | 8 ++++----
7 files changed, 27 insertions(+), 27 deletions(-)
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 cdf97c2100..823da86d8e 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
@@ -63,7 +63,7 @@ public class ApplyRuleJob extends Job {
List<Plan> newPlans = rule.transform(plan, context.getPlannerContext());
for (Plan newPlan : newPlans) {
GroupExpression newGroupExpression = context.getPlannerContext().getMemo()
- .copyIn(newPlan, groupExpression.getParent(), rule.isRewrite());
+ .copyIn(newPlan, groupExpression.getOwnerGroup(), rule.isRewrite());
if (newPlan instanceof LogicalPlan) {
pushTask(new DeriveStatsJob(newGroupExpression, context));
if (exploredOnly) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java
index 72a53cbcf0..520f219522 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java
@@ -162,7 +162,7 @@ public class CostAndEnforcerJob extends Job {
}
PlanContext planContext = new PlanContext(groupExpression);
// TODO: calculate stats.
- groupExpression.getParent().setStatistics(planContext.getStatistics());
+ groupExpression.getOwnerGroup().setStatistics(planContext.getStatistics());
enforce(outputProperty, childrenInputProperties);
}
@@ -193,7 +193,7 @@ public class CostAndEnforcerJob extends Job {
// enforcedProperty is superset of requiredProperty
if (!addEnforcedProperty.equals(requiredProperties)) {
- putProperty(groupExpression.getParent().getBestExpression(addEnforcedProperty),
+ putProperty(groupExpression.getOwnerGroup().getBestExpression(addEnforcedProperty),
requiredProperties, requiredProperties, Lists.newArrayList(outputProperty));
}
} else {
@@ -217,7 +217,7 @@ public class CostAndEnforcerJob extends Job {
// and shuffle join two types outputProperty.
groupExpression.putOutputPropertiesMap(outputProperty, requiredProperty);
}
- this.groupExpression.getParent().setBestPlan(groupExpression,
+ this.groupExpression.getOwnerGroup().setBestPlan(groupExpression,
curTotalCost, requiredProperty);
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Group.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Group.java
index fbb9a862c7..aa681c1ac0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Group.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Group.java
@@ -66,7 +66,7 @@ public class Group {
this.physicalExpressions.add(groupExpression);
}
this.logicalProperties = logicalProperties;
- groupExpression.setParent(this);
+ groupExpression.setOwnerGroup(this);
}
public GroupId getGroupId() {
@@ -93,7 +93,7 @@ public class Group {
} else {
physicalExpressions.add(groupExpression);
}
- groupExpression.setParent(this);
+ groupExpression.setOwnerGroup(this);
return groupExpression;
}
@@ -109,7 +109,7 @@ public class Group {
} else {
physicalExpressions.remove(groupExpression);
}
- groupExpression.setParent(null);
+ groupExpression.setOwnerGroup(null);
return groupExpression;
}
@@ -121,7 +121,7 @@ public class Group {
*/
public GroupExpression rewriteLogicalExpression(GroupExpression newExpression,
LogicalProperties logicalProperties) {
- newExpression.setParent(this);
+ newExpression.setOwnerGroup(this);
this.logicalProperties = logicalProperties;
GroupExpression oldExpression = getLogicalExpression();
logicalExpressions.clear();
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 3ff6d9b4dc..6a7a6c78ea 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
@@ -36,7 +36,7 @@ import java.util.Objects;
* Representation for group expression in cascades optimizer.
*/
public class GroupExpression {
- private Group parent;
+ private Group ownerGroup;
private List<Group> children;
private final Plan plan;
private final BitSet ruleMasks;
@@ -81,12 +81,12 @@ public class GroupExpression {
children.add(child);
}
- public Group getParent() {
- return parent;
+ public Group getOwnerGroup() {
+ return ownerGroup;
}
- public void setParent(Group parent) {
- this.parent = parent;
+ public void setOwnerGroup(Group ownerGroup) {
+ this.ownerGroup = ownerGroup;
}
public Plan getPlan() {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Memo.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Memo.java
index aac059f839..55a8e5ebcd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Memo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Memo.java
@@ -47,7 +47,7 @@ public class Memo {
private Group root;
public Memo(Plan plan) {
- root = copyIn(plan, null, false).getParent();
+ root = copyIn(plan, null, false).getOwnerGroup();
}
public Group getRoot() {
@@ -82,9 +82,9 @@ public class Memo {
if (child instanceof GroupPlan) {
childrenGroups.add(((GroupPlan) child).getGroup());
} else if (child.getGroupExpression().isPresent()) {
- childrenGroups.add(child.getGroupExpression().get().getParent());
+ childrenGroups.add(child.getGroupExpression().get().getOwnerGroup());
} else {
- childrenGroups.add(copyIn(child, null, rewrite).getParent());
+ childrenGroups.add(copyIn(child, null, rewrite).getOwnerGroup());
}
}
node = replaceChildrenToGroupPlan(node, childrenGroups);
@@ -133,9 +133,9 @@ public class Memo {
boolean rewrite, LogicalProperties logicalProperties) {
GroupExpression existedGroupExpression = groupExpressions.get(groupExpression);
if (existedGroupExpression != null
- && existedGroupExpression.getParent().getLogicalProperties().equals(logicalProperties)) {
- if (target != null && !target.getGroupId().equals(existedGroupExpression.getParent().getGroupId())) {
- mergeGroup(target, existedGroupExpression.getParent());
+ && existedGroupExpression.getOwnerGroup().getLogicalProperties().equals(logicalProperties)) {
+ if (target != null && !target.getGroupId().equals(existedGroupExpression.getOwnerGroup().getGroupId())) {
+ mergeGroup(target, existedGroupExpression.getOwnerGroup());
}
return existedGroupExpression;
}
@@ -172,7 +172,7 @@ public class Memo {
List<GroupExpression> needReplaceChild = Lists.newArrayList();
groupExpressions.values().forEach(groupExpression -> {
if (groupExpression.children().contains(source)) {
- if (groupExpression.getParent().equals(destination)) {
+ if (groupExpression.getOwnerGroup().equals(destination)) {
// cycle, we should not merge
return;
}
@@ -190,7 +190,7 @@ public class Memo {
}
if (groupExpressions.containsKey(groupExpression)) {
// TODO: need to merge group recursively
- groupExpression.getParent().removeGroupExpression(groupExpression);
+ groupExpression.getOwnerGroup().removeGroupExpression(groupExpression);
} else {
groupExpressions.put(groupExpression, groupExpression);
}
@@ -210,7 +210,7 @@ public class Memo {
* Add enforcer expression into the target group.
*/
public void addEnforcerPlan(GroupExpression groupExpression, Group group) {
- groupExpression.setParent(group);
+ groupExpression.setOwnerGroup(group);
}
private Plan replaceChildrenToGroupPlan(Plan plan, List<Group> childrenGroups) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/GroupExpressionMatching.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/GroupExpressionMatching.java
index ec5ca0ff6a..0309859404 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/GroupExpressionMatching.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/GroupExpressionMatching.java
@@ -159,7 +159,7 @@ public class GroupExpressionMatching implements Iterable<Plan> {
children.add(childrenPlans.get(i).get(childrenPlanIndex[i]));
}
- LogicalProperties logicalProperties = groupExpression.getParent().getLogicalProperties();
+ LogicalProperties logicalProperties = groupExpression.getOwnerGroup().getLogicalProperties();
// assemble children: replace GroupPlan to real plan,
// withChildren will erase groupExpression, so we must
// withGroupExpression too.
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/EnforceMissingPropertiesHelper.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/EnforceMissingPropertiesHelper.java
index aaa7a0d113..54d26f5ca6 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/EnforceMissingPropertiesHelper.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/EnforceMissingPropertiesHelper.java
@@ -77,7 +77,7 @@ public class EnforceMissingPropertiesHelper {
oldOutputProperty.getOrderSpec());
newOutputProperty.setOrderSpec(context.getRequiredProperties().getOrderSpec());
GroupExpression enforcer =
- context.getRequiredProperties().getOrderSpec().addEnforcer(groupExpression.getParent());
+ context.getRequiredProperties().getOrderSpec().addEnforcer(groupExpression.getOwnerGroup());
updateCostWithEnforcer(enforcer, oldOutputProperty, newOutputProperty);
@@ -89,7 +89,7 @@ public class EnforceMissingPropertiesHelper {
oldOutputProperty.getOrderSpec());
newOutputProperty.setDistributionSpec(context.getRequiredProperties().getDistributionSpec());
GroupExpression enforcer =
- context.getRequiredProperties().getDistributionSpec().addEnforcer(groupExpression.getParent());
+ context.getRequiredProperties().getDistributionSpec().addEnforcer(groupExpression.getOwnerGroup());
updateCostWithEnforcer(enforcer, oldOutputProperty, newOutputProperty);
@@ -99,13 +99,13 @@ public class EnforceMissingPropertiesHelper {
private void updateCostWithEnforcer(GroupExpression enforcer,
PhysicalProperties oldOutputProperty,
PhysicalProperties newOutputProperty) {
- context.getPlannerContext().getMemo().addEnforcerPlan(enforcer, groupExpression.getParent());
+ context.getPlannerContext().getMemo().addEnforcerPlan(enforcer, groupExpression.getOwnerGroup());
curTotalCost += CostCalculator.calculateCost(enforcer);
if (enforcer.updateLowestCostTable(newOutputProperty, Lists.newArrayList(oldOutputProperty), curTotalCost)) {
enforcer.putOutputPropertiesMap(newOutputProperty, newOutputProperty);
}
- groupExpression.getParent().setBestPlan(enforcer, curTotalCost, newOutputProperty);
+ groupExpression.getOwnerGroup().setBestPlan(enforcer, curTotalCost, newOutputProperty);
}
private PhysicalProperties enforceSortAndDistribution(PhysicalProperties outputProperty,
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org