This is an automated email from the ASF dual-hosted git repository.

hyuan 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 ebc16af  [CALCITE-3421] Reuse RelMetadataQuery in test suites
ebc16af is described below

commit ebc16afa935888578b5befc870c1997f307a6cb5
Author: dz <[email protected]>
AuthorDate: Wed Oct 16 19:22:37 2019 +0800

    [CALCITE-3421] Reuse RelMetadataQuery in test suites
    
    Close #1513
---
 .../apache/calcite/rel/logical/LogicalCalc.java    |   2 +-
 .../calcite/plan/volcano/TraitPropagationTest.java |   4 +-
 .../plan/volcano/VolcanoPlannerTraitTest.java      |   6 +-
 .../org/apache/calcite/test/RelMetadataTest.java   | 120 ++++++++++-----------
 .../java/org/apache/calcite/tools/PlannerTest.java |   2 +-
 5 files changed, 67 insertions(+), 67 deletions(-)

diff --git a/core/src/main/java/org/apache/calcite/rel/logical/LogicalCalc.java 
b/core/src/main/java/org/apache/calcite/rel/logical/LogicalCalc.java
index 2eac9bd..71257dc 100644
--- a/core/src/main/java/org/apache/calcite/rel/logical/LogicalCalc.java
+++ b/core/src/main/java/org/apache/calcite/rel/logical/LogicalCalc.java
@@ -52,7 +52,7 @@ import java.util.Set;
  *
  * <ul>
  * <li>{@link FilterToCalcRule} creates this from a {@link LogicalFilter}
- * <li>{@link ProjectToCalcRule} creates this from a {@link LogicalFilter}
+ * <li>{@link ProjectToCalcRule} creates this from a {@link LogicalProject}
  * <li>{@link org.apache.calcite.rel.rules.FilterCalcMergeRule}
  *     merges this with a {@link LogicalFilter}
  * <li>{@link org.apache.calcite.rel.rules.ProjectCalcMergeRule}
diff --git 
a/core/src/test/java/org/apache/calcite/plan/volcano/TraitPropagationTest.java 
b/core/src/test/java/org/apache/calcite/plan/volcano/TraitPropagationTest.java
index 11701a6..dc31500 100644
--- 
a/core/src/test/java/org/apache/calcite/plan/volcano/TraitPropagationTest.java
+++ 
b/core/src/test/java/org/apache/calcite/plan/volcano/TraitPropagationTest.java
@@ -110,7 +110,7 @@ public class TraitPropagationTest {
           RelOptUtil.dumpPlan("LOGICAL PLAN", planned, SqlExplainFormat.TEXT,
               SqlExplainLevel.ALL_ATTRIBUTES));
     }
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = planned.getCluster().getMetadataQuery();
     assertEquals("Sortedness was not propagated", 3,
         mq.getCumulativeCost(planned).getRows(), 0);
   }
@@ -323,7 +323,7 @@ public class TraitPropagationTest {
     public static PhysProj create(final RelNode input,
         final List<RexNode> projects, RelDataType rowType) {
       final RelOptCluster cluster = input.getCluster();
-      final RelMetadataQuery mq = RelMetadataQuery.instance();
+      final RelMetadataQuery mq = cluster.getMetadataQuery();
       final RelTraitSet traitSet =
           cluster.traitSet().replace(PHYSICAL)
               .replaceIfs(
diff --git 
a/core/src/test/java/org/apache/calcite/plan/volcano/VolcanoPlannerTraitTest.java
 
b/core/src/test/java/org/apache/calcite/plan/volcano/VolcanoPlannerTraitTest.java
index 2c42b3c..07edf4a 100644
--- 
a/core/src/test/java/org/apache/calcite/plan/volcano/VolcanoPlannerTraitTest.java
+++ 
b/core/src/test/java/org/apache/calcite/plan/volcano/VolcanoPlannerTraitTest.java
@@ -264,12 +264,12 @@ public class VolcanoPlannerTraitTest {
     RelOptCluster cluster = newCluster(planner);
     NoneTinyLeafRel leaf = new NoneTinyLeafRel(cluster, "noneLeafRel");
     planner.setRoot(leaf);
-    RelOptCost cost = planner.getCost(leaf, RelMetadataQuery.instance());
+    RelOptCost cost = planner.getCost(leaf, cluster.getMetadataQuery());
 
     assertTrue(cost.isInfinite());
 
     planner.setNoneConventionHasInfiniteCost(false);
-    cost = planner.getCost(leaf, RelMetadataQuery.instance());
+    cost = planner.getCost(leaf, cluster.getMetadataQuery());
     assertTrue(!cost.isInfinite());
   }
 
@@ -342,7 +342,7 @@ public class VolcanoPlannerTraitTest {
       RelTrait fromTrait = rel.getTraitSet().getTrait(this);
 
       if (conversionMap.containsKey(fromTrait)) {
-        final RelMetadataQuery mq = RelMetadataQuery.instance();
+        final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
         for (Pair<RelTrait, ConverterRule> traitAndRule
             : conversionMap.get(fromTrait)) {
           RelTrait trait = traitAndRule.left;
diff --git a/core/src/test/java/org/apache/calcite/test/RelMetadataTest.java 
b/core/src/test/java/org/apache/calcite/test/RelMetadataTest.java
index b877680..a5546e7 100644
--- a/core/src/test/java/org/apache/calcite/test/RelMetadataTest.java
+++ b/core/src/test/java/org/apache/calcite/test/RelMetadataTest.java
@@ -198,7 +198,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
       double expected,
       double epsilon) {
     RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     Double result = mq.getPercentageOriginalRows(rel);
     assertTrue(result != null);
     assertEquals(expected, result, epsilon);
@@ -284,7 +284,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
 
   private Set<RelColumnOrigin> checkColumnOrigin(String sql) {
     RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     return mq.getColumnOrigins(rel, 0);
   }
 
@@ -486,7 +486,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   private void checkRowCount(String sql, double expected, double expectedMin,
       double expectedMax) {
     RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     final Double result = mq.getRowCount(rel);
     assertThat(result, notNullValue());
     assertEquals(expected, result, 0d);
@@ -707,7 +707,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
       String sql,
       double expected) {
     RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     Double result = mq.getSelectivity(rel, null);
     assertTrue(result != null);
     assertEquals(expected, result, EPSILON);
@@ -752,7 +752,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   private void checkRelSelectivity(
       RelNode rel,
       double expected) {
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     Double result = mq.getSelectivity(rel, null);
     assertTrue(result != null);
     assertEquals(expected, result, EPSILON);
@@ -797,7 +797,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         new CachingRelMetadataProvider(
             rel.getCluster().getMetadataProvider(),
             rel.getCluster().getPlanner()));
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     Double result = mq.getSelectivity(rel, null);
     assertThat(result,
         within(DEFAULT_COMP_SELECTIVITY * DEFAULT_EQUAL_SELECTIVITY, EPSILON));
@@ -823,7 +823,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
       RelMetadataQuery.THREAD_PROVIDERS.set(
           JaninoRelMetadataProvider.of(
               new CachingRelMetadataProvider(metadataProvider, planner)));
-      final RelMetadataQuery mq = RelMetadataQuery.instance();
+      final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
       final Double result = mq.getRowCount(rel);
       assertThat(result, within(14d, 0.1d));
     }
@@ -832,7 +832,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   @Test public void testDistinctRowCountTable() {
     // no unique key information is available so return null
     RelNode rel = convertSql("select * from emp where deptno = 10");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     ImmutableBitSet groupKey =
         ImmutableBitSet.of(rel.getRowType().getFieldNames().indexOf("DEPTNO"));
     Double result = mq.getDistinctRowCount(rel, groupKey, null);
@@ -842,7 +842,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   @Test public void testDistinctRowCountTableEmptyKey() {
     RelNode rel = convertSql("select * from emp where deptno = 10");
     ImmutableBitSet groupKey = ImmutableBitSet.of(); // empty key
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     Double result = mq.getDistinctRowCount(rel, groupKey, null);
     assertThat(result, is(1D));
   }
@@ -851,7 +851,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
    * and {@link RelMetadataQuery#areColumnsUnique(RelNode, ImmutableBitSet)}
    * return consistent results. */
   private void assertUniqueConsistent(RelNode rel) {
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     final Set<ImmutableBitSet> uniqueKeys = mq.getUniqueKeys(rel);
     final ImmutableBitSet allCols =
         ImmutableBitSet.range(0, rel.getRowType().getFieldCount());
@@ -878,7 +878,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
    * NullPointerException"</a>. */
   @Test public void testJoinUniqueKeys() {
     RelNode rel = convertSql("select * from emp join bonus using (ename)");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     Set<ImmutableBitSet> result = mq.getUniqueKeys(rel);
     assertThat(result.isEmpty(), is(true));
     assertUniqueConsistent(rel);
@@ -890,7 +890,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "  lateral (\n"
         + "    select * from dept where dept.deptno = e.deptno)";
     final RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     assertThat(rel, isA((Class) Project.class));
     final Project project = (Project) rel;
@@ -911,7 +911,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
 
   @Test public void testGroupByEmptyUniqueKeys() {
     RelNode rel = convertSql("select count(*) from emp");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     Set<ImmutableBitSet> result = mq.getUniqueKeys(rel);
     assertThat(result,
         CoreMatchers.equalTo(
@@ -921,7 +921,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
 
   @Test public void testGroupByEmptyHavingUniqueKeys() {
     RelNode rel = convertSql("select count(*) from emp where 1 = 1");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     final Set<ImmutableBitSet> result = mq.getUniqueKeys(rel);
     assertThat(result,
         CoreMatchers.equalTo(
@@ -937,7 +937,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "group by cast(null as int)) as d on e.empno = d.deptno \n"
         + "group by e.empno, d.deptno";
     RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     final ImmutableBitSet allCols =
         ImmutableBitSet.range(0, rel.getRowType().getFieldCount());
     Boolean areGroupByKeysUnique = mq.areColumnsUnique(rel.getInput(0), 
allCols);
@@ -947,7 +947,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   @Test public void testGroupBy() {
     RelNode rel = convertSql("select deptno, count(*), sum(sal) from emp\n"
             + "group by deptno");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     final Set<ImmutableBitSet> result = mq.getUniqueKeys(rel);
     assertThat(result,
         CoreMatchers.equalTo(
@@ -959,7 +959,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
     RelNode rel = convertSql("select deptno from emp\n"
             + "union\n"
             + "select deptno from dept");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     final Set<ImmutableBitSet> result = mq.getUniqueKeys(rel);
     assertThat(result,
         CoreMatchers.equalTo(
@@ -1029,7 +1029,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
 
     // Top node is a filter. Its metadata uses getColType(RelNode, int).
     assertThat(rel, instanceOf(LogicalFilter.class));
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     assertThat(colType(mq, rel, 0), equalTo("DEPTNO-rel"));
     assertThat(colType(mq, rel, 1), equalTo("EXPR$1-rel"));
 
@@ -1112,7 +1112,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
                 rexBuilder.makeInputRef(empSort, 0),
                 rexBuilder.makeInputRef(empSort, 3)));
 
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = cluster.getMetadataQuery();
     collations = RelMdCollation.project(mq, empSort, projects);
     assertThat(collations.size(), equalTo(1));
     assertThat(collations.get(0).getFieldCollations().size(), equalTo(2));
@@ -1192,7 +1192,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   @Test public void testColumnUniquenessForValues() {
     Frameworks.withPlanner((cluster, relOptSchema, rootSchema) -> {
       final RexBuilder rexBuilder = cluster.getRexBuilder();
-      final RelMetadataQuery mq = RelMetadataQuery.instance();
+      final RelMetadataQuery mq = cluster.getMetadataQuery();
       final RelDataType rowType = cluster.getTypeFactory().builder()
           .add("a", SqlTypeName.INTEGER)
           .add("b", SqlTypeName.VARCHAR)
@@ -1273,7 +1273,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   private void checkAverageRowSize(RelOptCluster cluster, RelOptTable empTable,
       RelOptTable deptTable) {
     final RexBuilder rexBuilder = cluster.getRexBuilder();
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = cluster.getMetadataQuery();
     final LogicalTableScan empScan = LogicalTableScan.create(cluster, 
empTable);
 
     Double rowSize = mq.getAverageRowSize(empScan);
@@ -1412,7 +1412,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   private void checkPredicates(RelOptCluster cluster, RelOptTable empTable,
       RelOptTable deptTable) {
     final RelBuilder relBuilder = RelBuilder.proto().create(cluster, null);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = cluster.getMetadataQuery();
 
     final LogicalTableScan empScan = LogicalTableScan.create(cluster, 
empTable);
     relBuilder.push(empScan);
@@ -1521,7 +1521,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "  select 1 as a, 2 as b from emp)subq\n"
         + "group by a";
     final Aggregate rel = (Aggregate) convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     RelOptPredicateList inputSet = mq.getPulledUpPredicates(rel);
     ImmutableList<RexNode> pulledUpPredicates = inputSet.pulledUpPredicates;
     assertThat(pulledUpPredicates, sortsAs("[=($0, 1)]"));
@@ -1559,7 +1559,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
              JdbcAdapterTest.LockWrapper.lock(LOCK)) {
       // FIXME: fix timeout when enable implicit type coercion.
       final RelNode rel = convertSql(sql, false);
-      final RelMetadataQuery mq = RelMetadataQuery.instance();
+      final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
       RelOptPredicateList inputSet = mq.getPulledUpPredicates(rel.getInput(0));
       assertThat(inputSet.pulledUpPredicates.size(), is(18));
     }
@@ -1571,7 +1571,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "  from emp\n"
         + "  where mgr is null and deptno < 10)";
     final RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     RelOptPredicateList list = mq.getPulledUpPredicates(rel);
     assertThat(list.pulledUpPredicates,
         sortsAs("[<($0, 10), =($3, 'y'), =($4, 1), IS NULL($1), IS 
NULL($2)]"));
@@ -1582,7 +1582,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "  from emp\n"
         + "  where mgr is null and deptno < 10";
     final RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     RelOptPredicateList list = mq.getPulledUpPredicates(rel);
     // Uses "IS NOT DISTINCT FROM" rather than "=" because cannot guarantee 
not null.
     assertThat(list.pulledUpPredicates,
@@ -1591,7 +1591,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
 
   @Test public void testDistributionSimple() {
     RelNode rel = convertSql("select * from emp where deptno = 10");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     RelDistribution d = mq.getDistribution(rel);
     assertThat(d, is(RelDistributions.BROADCAST_DISTRIBUTED));
   }
@@ -1601,7 +1601,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
     final RelDistribution dist = RelDistributions.hash(ImmutableList.of(1));
     final LogicalExchange exchange = LogicalExchange.create(rel, dist);
 
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     RelDistribution d = mq.getDistribution(exchange);
     assertThat(d, is(dist));
   }
@@ -1611,7 +1611,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
     final RelDistribution dist = 
RelDistributions.hash(ImmutableList.<Integer>of());
     final LogicalExchange exchange = LogicalExchange.create(rel, dist);
 
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     RelDistribution d = mq.getDistribution(exchange);
     assertThat(d, is(dist));
   }
@@ -1621,7 +1621,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
     final RelDistribution dist = RelDistributions.SINGLETON;
     final LogicalExchange exchange = LogicalExchange.create(rel, dist);
 
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     RelDistribution d = mq.getDistribution(exchange);
     assertThat(d, is(dist));
   }
@@ -1639,7 +1639,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   @Test public void testExpressionLineageStar() {
     // All columns in output
     final RelNode tableRel = convertSql("select * from emp");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = tableRel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(4, 
tableRel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(tableRel, ref);
@@ -1654,7 +1654,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
     // mgr is column 3 in catalog.sales.emp
     // deptno is column 7 in catalog.sales.emp
     final RelNode rel = convertSql("select mgr, deptno from emp");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref1 = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r1 = mq.getExpressionLineage(rel, ref1);
@@ -1677,7 +1677,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
     // deptno is column 7 in catalog.sales.emp
     // mgr is column 3 in catalog.sales.emp
     final RelNode rel = convertSql("select deptno, mgr from emp");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref1 = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r1 = mq.getExpressionLineage(rel, ref1);
@@ -1700,7 +1700,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
     // empno is column 0 in catalog.sales.emp
     // deptno is column 7 in catalog.sales.emp
     final RelNode rel = convertSql("select empno + deptno from emp");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
@@ -1722,7 +1722,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   @Test public void testExpressionLineageInnerJoinLeft() {
     // ename is column 1 in catalog.sales.emp
     final RelNode rel = convertSql("select ename from emp,dept");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
@@ -1735,7 +1735,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   @Test public void testExpressionLineageInnerJoinRight() {
     // ename is column 0 in catalog.sales.bonus
     final RelNode rel = convertSql("select bonus.ename from emp join bonus 
using (ename)");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
@@ -1748,7 +1748,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   @Test public void testExpressionLineageLeftJoinLeft() {
     // ename is column 1 in catalog.sales.emp
     final RelNode rel = convertSql("select ename from emp left join dept using 
(deptno)");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
@@ -1761,7 +1761,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   @Test public void testExpressionLineageRightJoinRight() {
     // ename is column 0 in catalog.sales.bonus
     final RelNode rel = convertSql("select bonus.ename from emp right join 
bonus using (ename)");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
@@ -1778,7 +1778,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "inner join (select * from emp limit 2) as b\n"
         + "on a.deptno = b.deptno");
     final RelNode tableRel = convertSql("select * from emp");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = tableRel.getCluster().getMetadataQuery();
 
     final RexNode ref1 = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r1 = mq.getExpressionLineage(rel, ref1);
@@ -1804,7 +1804,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
     // lineage cannot be determined
     final RelNode rel = convertSql("select name as dname from emp left outer 
join dept"
         + " on emp.deptno = dept.deptno");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
@@ -1815,7 +1815,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
     // ename is column 1 in catalog.sales.emp
     final RelNode rel = convertSql("select ename from emp where deptno = 10");
     final RelNode tableRel = convertSql("select * from emp");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
@@ -1831,7 +1831,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
     final RelNode rel = convertSql("select deptno, count(*) from emp where 
deptno > 10 "
         + "group by deptno having count(*) = 0");
     final RelNode tableRel = convertSql("select * from emp");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
@@ -1846,7 +1846,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
     // lineage cannot be determined
     final RelNode rel = convertSql("select deptno, count(*) from emp where 
deptno > 10 "
         + "group by deptno having count(*) = 0");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(1, rel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
@@ -1859,7 +1859,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "  select * from emp union all select * from emp) "
         + "where deptno = 10");
     final RelNode tableRel = convertSql("select * from emp");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
@@ -1884,7 +1884,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + " (select * from emp union all select * from emp) b \n"
         + " on a.empno = b.empno \n"
         + " where b.deptno = 10");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
@@ -1914,7 +1914,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   @Test public void testExpressionLineageValues() {
     // lineage cannot be determined
     final RelNode rel = convertSql("select * from (values (1), (2)) as t(c)");
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
 
     final RexNode ref = RexInputRef.of(0, rel.getRowType().getFieldList());
     final Set<RexNode> r = mq.getExpressionLineage(rel, ref);
@@ -1935,7 +1935,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   private void checkAllPredicates(RelOptCluster cluster, RelOptTable empTable,
       RelOptTable deptTable) {
     final RelBuilder relBuilder = RelBuilder.proto().create(cluster, null);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = cluster.getMetadataQuery();
 
     final LogicalTableScan empScan = LogicalTableScan.create(cluster, 
empTable);
     relBuilder.push(empScan);
@@ -1991,7 +1991,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "  select empno as a, sal as b from emp where empno = 5)subq\n"
         + "group by a";
     final RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     RelOptPredicateList inputSet = mq.getAllPredicates(rel);
     ImmutableList<RexNode> pulledUpPredicates = inputSet.pulledUpPredicates;
     assertThat(pulledUpPredicates.size(), is(1));
@@ -2010,7 +2010,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "group by a) \n"
         + "where a = 5";
     final RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     RelOptPredicateList inputSet = mq.getAllPredicates(rel);
     ImmutableList<RexNode> pulledUpPredicates = inputSet.pulledUpPredicates;
     assertThat(pulledUpPredicates.size(), is(1));
@@ -2029,7 +2029,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "group by a) \n"
         + "where b = 5";
     final RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     RelOptPredicateList inputSet = mq.getAllPredicates(rel);
     // Filter on aggregate, we cannot infer lineage
     assertNull(inputSet);
@@ -2048,7 +2048,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "on a.deptno = c.deptno) as y\n"
         + "on x.deptno = y.deptno";
     final RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     final RelOptPredicateList inputSet = mq.getAllPredicates(rel);
     assertThat(inputSet.pulledUpPredicates.toString(),
         equalTo("[true, "
@@ -2074,7 +2074,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "inner join (select * from emp limit 2) as c\n"
         + "on a.deptno = c.deptno";
     final RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     final RelOptPredicateList inputSet = mq.getAllPredicates(rel);
     assertThat(inputSet.pulledUpPredicates.toString(),
         equalTo("[true, "
@@ -2094,7 +2094,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "cross join (select * from dept limit 1) as b\n"
         + "cross join (select * from emp where empno = 5 limit 2) as c) as x";
     final RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     final Set<RelTableRef> tableReferences = 
Sets.newTreeSet(mq.getTableReferences(rel));
     assertThat(tableReferences.toString(),
         equalTo("[[CATALOG, SALES, DEPT].#0, "
@@ -2116,7 +2116,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
     final LogicalJoin join =
         LogicalJoin.create(nodeWithUnknown, node, rexBuilder.makeLiteral(true),
             ImmutableSet.of(), JoinRelType.INNER);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = node.getCluster().getMetadataQuery();
     final Set<RelTableRef> tableReferences = mq.getTableReferences(join);
     assertNull(tableReferences);
   }
@@ -2127,7 +2127,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         + "union all select emp.deptno, emp.sal from emp\n"
         + "union all select emp.deptno, emp.sal from emp where empno = 5) as 
x";
     final RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     final Set<RelTableRef> tableReferences = 
Sets.newTreeSet(mq.getTableReferences(rel));
     assertThat(tableReferences.toString(),
         equalTo("[[CATALOG, SALES, EMP].#0, "
@@ -2149,14 +2149,14 @@ public class RelMetadataTest extends SqlToRelTestBase {
     final LogicalUnion union =
         LogicalUnion.create(ImmutableList.of(nodeWithUnknown, node),
             true);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = node.getCluster().getMetadataQuery();
     final Set<RelTableRef> tableReferences = mq.getTableReferences(union);
     assertNull(tableReferences);
   }
 
   private void checkNodeTypeCount(String sql, Map<Class<? extends RelNode>, 
Integer> expected) {
     final RelNode rel = convertSql(sql);
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     final Multimap<Class<? extends RelNode>, RelNode> result = 
mq.getNodeTypes(rel);
     assertThat(result, notNullValue());
     final Map<Class<? extends RelNode>, Integer> resultCount = new HashMap<>();
@@ -2418,7 +2418,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
   @Test public void testEmptyAggregateTableOrigin() {
     final FrameworkConfig config = RelBuilderTest.config().build();
     final RelBuilder builder = RelBuilder.create(config);
-    RelMetadataQuery mq = RelMetadataQuery.instance();
+    RelMetadataQuery mq = builder.getCluster().getMetadataQuery();
     RelNode agg = builder
         .scan("EMP")
         .aggregate(builder.groupKey())
@@ -2435,7 +2435,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         .scan("DEPT")
         .join(JoinRelType.INNER, builder.call(NONDETERMINISTIC_OP))
         .build();
-    RelMetadataQuery mq = RelMetadataQuery.instance();
+    RelMetadataQuery mq = join.getCluster().getMetadataQuery();
     assertTrue(mq.getPulledUpPredicates(join).pulledUpPredicates.isEmpty());
 
     RelNode join1 = builder
@@ -2457,7 +2457,7 @@ public class RelMetadataTest extends SqlToRelTestBase {
         .scan("EMP")
         .filter(builder.call(NONDETERMINISTIC_OP))
         .build();
-    RelMetadataQuery mq = RelMetadataQuery.instance();
+    RelMetadataQuery mq = filter.getCluster().getMetadataQuery();
     assertTrue(mq.getPulledUpPredicates(filter).pulledUpPredicates.isEmpty());
 
     RelNode filter1 = builder
diff --git a/core/src/test/java/org/apache/calcite/tools/PlannerTest.java 
b/core/src/test/java/org/apache/calcite/tools/PlannerTest.java
index db9dc9e..e476d99 100644
--- a/core/src/test/java/org/apache/calcite/tools/PlannerTest.java
+++ b/core/src/test/java/org/apache/calcite/tools/PlannerTest.java
@@ -284,7 +284,7 @@ public class PlannerTest {
     SqlNode parse = planner.parse(sql);
     SqlNode validate = planner.validate(parse);
     RelNode rel = planner.rel(validate).project();
-    final RelMetadataQuery mq = RelMetadataQuery.instance();
+    final RelMetadataQuery mq = rel.getCluster().getMetadataQuery();
     final RelOptPredicateList predicates = mq.getPulledUpPredicates(rel);
     final String buf = predicates.pulledUpPredicates.toString();
     assertThat(buf, equalTo(expectedPredicates));

Reply via email to