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) {