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 2019/03/25 17:52:28 UTC
[calcite] 01/04: [CALCITE-2942] Materialized view rewriting logic
instantiates RelMetadataQuery each time the rule is triggered
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 <jc...@apache.org>
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);