This is an automated email from the ASF dual-hosted git repository. jcamacho pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/calcite.git
commit 79f432457f843060a76177c4d80f3c5d72d8047d Author: Jesus Camacho Rodriguez <[email protected]> AuthorDate: Thu Mar 21 09:25:06 2019 -0700 [CALCITE-2942] Materialized view rewriting logic instantiates RelMetadataQuery each time the rule is triggered Close apache/calcite#1124 --- core/src/main/java/org/apache/calcite/plan/RelOptUtil.java | 2 +- .../java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java b/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java index 1c69c15..c7f9048 100644 --- a/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java +++ b/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java @@ -201,7 +201,7 @@ public abstract class RelOptUtil { */ public static List<RelOptTable> findAllTables(RelNode rel) { final Multimap<Class<? extends RelNode>, RelNode> nodes = - RelMetadataQuery.instance().getNodeTypes(rel); + rel.getCluster().getMetadataQuery().getNodeTypes(rel); final List<RelOptTable> usedTables = new ArrayList<>(); for (Entry<Class<? extends RelNode>, Collection<RelNode>> e : nodes.asMap().entrySet()) { if (TableScan.class.isAssignableFrom(e.getKey())) { diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java index 94c456f..706dcca 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java @@ -203,7 +203,7 @@ public abstract class AbstractMaterializedViewRule extends RelOptRule { */ protected void perform(RelOptRuleCall call, Project topProject, RelNode node) { final RexBuilder rexBuilder = node.getCluster().getRexBuilder(); - final RelMetadataQuery mq = RelMetadataQuery.instance(); + final RelMetadataQuery mq = call.getMetadataQuery(); final RelOptPlanner planner = call.getPlanner(); final RexExecutor executor = Util.first(planner.getExecutor(), RexUtil.EXECUTOR);
