You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by da...@apache.org on 2020/02/04 01:27:44 UTC
[calcite] branch master updated: [CALCITE-3765] Returns early when
there is an existing operand when assigning operands solve order
This is an automated email from the ASF dual-hosted git repository.
danny0405 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/master by this push:
new d6fa25c [CALCITE-3765] Returns early when there is an existing operand when assigning operands solve order
d6fa25c is described below
commit d6fa25cd11625ad7b4b74dafbd0211c701b38d49
Author: yuzhao.cyz <yu...@gmail.com>
AuthorDate: Mon Feb 3 12:04:40 2020 +0800
[CALCITE-3765] Returns early when there is an existing operand when assigning operands solve order
* No tests there because the change is straight-forward
* Some cosmetic changes for the code
---
.../main/java/org/apache/calcite/plan/RelOptRule.java | 1 +
.../apache/calcite/plan/volcano/VolcanoPlanner.java | 18 +++++-------------
.../VolcanoPlannerPhaseRuleMappingInitializer.java | 2 +-
.../apache/calcite/plan/volcano/VolcanoRuleCall.java | 4 ++--
4 files changed, 9 insertions(+), 16 deletions(-)
diff --git a/core/src/main/java/org/apache/calcite/plan/RelOptRule.java b/core/src/main/java/org/apache/calcite/plan/RelOptRule.java
index 04b04bb..b012250 100644
--- a/core/src/main/java/org/apache/calcite/plan/RelOptRule.java
+++ b/core/src/main/java/org/apache/calcite/plan/RelOptRule.java
@@ -394,6 +394,7 @@ public abstract class RelOptRule {
for (int n = 0; n < m; n++) {
if (operand.solveOrder[n] == k) {
exists = true;
+ break;
}
}
if (!exists) {
diff --git a/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlanner.java b/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlanner.java
index fe43db3..ee8fe00 100644
--- a/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlanner.java
+++ b/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlanner.java
@@ -265,9 +265,9 @@ public class VolcanoPlanner extends AbstractRelOptPlanner {
/**
* Creates a {@code VolcanoPlanner} with a given cost factory.
*/
- public VolcanoPlanner(RelOptCostFactory costFactory, //
+ public VolcanoPlanner(RelOptCostFactory costFactory,
Context externalContext) {
- super(costFactory == null ? VolcanoCost.FACTORY : costFactory, //
+ super(costFactory == null ? VolcanoCost.FACTORY : costFactory,
externalContext);
this.zeroCost = this.costFactory.makeZeroCost();
// If LOGGER is debug enabled, enable provenance information to be captured
@@ -293,7 +293,7 @@ public class VolcanoPlanner extends AbstractRelOptPlanner {
}
public void setRoot(RelNode rel) {
- // We're registered all the rules, and therefore RelNode classes,
+ // We've registered all the rules, and therefore RelNode classes,
// we're interested in, and have not yet started calling metadata providers.
// So now is a good time to tell the metadata layer what to expect.
registerMetadataRels();
@@ -848,8 +848,7 @@ public class VolcanoPlanner extends AbstractRelOptPlanner {
Litmus.THROW);
set = getSet(equivRel);
}
- final RelSubset subset = registerImpl(rel, set);
- return subset;
+ return registerImpl(rel, set);
}
public RelSubset ensureRegistered(RelNode rel, RelNode equivRel) {
@@ -1472,7 +1471,7 @@ public class VolcanoPlanner extends AbstractRelOptPlanner {
}
// Add the relational expression into the correct set and subset.
- RelSubset subset2 = addRelToSet(rel, set);
+ addRelToSet(rel, set);
}
/**
@@ -1920,13 +1919,6 @@ public class VolcanoPlanner extends AbstractRelOptPlanner {
this.locked = locked;
}
- public void ensureRegistered(
- RelNode rel,
- RelNode equivRel,
- VolcanoRuleCall ruleCall) {
- ensureRegistered(rel, equivRel);
- }
-
//~ Inner Classes ----------------------------------------------------------
/**
diff --git a/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlannerPhaseRuleMappingInitializer.java b/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlannerPhaseRuleMappingInitializer.java
index 130e488..02fa7ce 100644
--- a/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlannerPhaseRuleMappingInitializer.java
+++ b/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlannerPhaseRuleMappingInitializer.java
@@ -20,7 +20,7 @@ import java.util.Map;
import java.util.Set;
/**
- * VolcanoPlannerPhaseRuleMappingInitializer describes an inteface for
+ * VolcanoPlannerPhaseRuleMappingInitializer describes an interface for
* initializing the mapping of {@link VolcanoPlannerPhase}s to sets of rule
* descriptions.
*
diff --git a/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoRuleCall.java b/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoRuleCall.java
index 01a3213..ee45900 100644
--- a/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoRuleCall.java
+++ b/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoRuleCall.java
@@ -128,9 +128,9 @@ public class VolcanoRuleCall extends RelOptRuleCall {
// don't register twice and cause churn.
for (Map.Entry<RelNode, RelNode> entry : equiv.entrySet()) {
volcanoPlanner.ensureRegistered(
- entry.getKey(), entry.getValue(), this);
+ entry.getKey(), entry.getValue());
}
- volcanoPlanner.ensureRegistered(rel, rels[0], this);
+ volcanoPlanner.ensureRegistered(rel, rels[0]);
rels[0].getCluster().invalidateMetadataQuery();
if (volcanoPlanner.listener != null) {