You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jc...@apache.org on 2017/06/29 08:57:29 UTC

calcite git commit: [CALCITE-1859] NPE in validate method of VolcanoPlanner

Repository: calcite
Updated Branches:
  refs/heads/master cdb30028a -> a2faf47b0


[CALCITE-1859] NPE in validate method of VolcanoPlanner

Close apache/calcite#483


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/a2faf47b
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/a2faf47b
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/a2faf47b

Branch: refs/heads/master
Commit: a2faf47b0f2bc98482a39ff51c23f7b92c118fee
Parents: cdb3002
Author: Jesus Camacho Rodriguez <jc...@apache.org>
Authored: Tue Jun 27 16:37:06 2017 +0100
Committer: Jesus Camacho Rodriguez <jc...@apache.org>
Committed: Thu Jun 29 09:55:58 2017 +0100

----------------------------------------------------------------------
 .../java/org/apache/calcite/plan/volcano/VolcanoPlanner.java    | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/a2faf47b/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlanner.java
----------------------------------------------------------------------
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 1ca7491..f364704 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
@@ -888,7 +888,6 @@ public class VolcanoPlanner extends AbstractRelOptPlanner {
    * Checks internal consistency.
    */
   protected void validate() {
-    final RelMetadataQuery mq = root.getCluster().getMetadataQuery();
     for (RelSet set : allSets) {
       if (set.equivalentSet != null) {
         throw new AssertionError(
@@ -902,7 +901,7 @@ public class VolcanoPlanner extends AbstractRelOptPlanner {
               + "] is in wrong set [" + set + "]");
         }
         for (RelNode rel : subset.getRels()) {
-          RelOptCost relCost = getCost(rel, mq);
+          RelOptCost relCost = getCost(rel, rel.getCluster().getMetadataQuery());
           if (relCost.isLt(subset.bestCost)) {
             throw new AssertionError(
                 "rel [" + rel.getDescription()
@@ -1169,7 +1168,6 @@ public class VolcanoPlanner extends AbstractRelOptPlanner {
    * @see #normalizePlan(String)
    */
   public void dump(PrintWriter pw) {
-    final RelMetadataQuery mq = root.getCluster().getMetadataQuery();
     pw.println("Root: " + root.getDescription());
     pw.println("Original rel:");
     pw.println(originalRootString);
@@ -1222,6 +1220,7 @@ public class VolcanoPlanner extends AbstractRelOptPlanner {
           if (importance != null) {
             pw.print(", importance=" + importance);
           }
+          RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
           pw.print(", rowcount=" + mq.getRowCount(rel));
           pw.println(", cumulative cost=" + getCost(rel, mq));
         }