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/07 01:43:25 UTC

[calcite] branch master updated: [CALCITE-3769] Remove ToRelContextFactory

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 6ea2fd0  [CALCITE-3769] Remove ToRelContextFactory
6ea2fd0 is described below

commit 6ea2fd03cbc366b673ac0adfcd246b2e3e7321dc
Author: yuzhao.cyz <yu...@gmail.com>
AuthorDate: Thu Feb 6 20:48:33 2020 +0800

    [CALCITE-3769] Remove ToRelContextFactory
---
 .../calcite/adapter/enumerable/EnumerableMatchRule.java  |  6 +++++-
 .../main/java/org/apache/calcite/plan/RelOptTable.java   | 16 ----------------
 .../main/java/org/apache/calcite/plan/ViewExpanders.java |  5 -----
 .../java/org/apache/calcite/rel/core/RelFactories.java   | 16 ----------------
 .../main/java/org/apache/calcite/rel/hint/RelHint.java   |  8 ++++----
 5 files changed, 9 insertions(+), 42 deletions(-)

diff --git a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableMatchRule.java b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableMatchRule.java
index 086680d..57a6fdb 100644
--- a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableMatchRule.java
+++ b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableMatchRule.java
@@ -33,7 +33,11 @@ public class EnumerableMatchRule extends ConverterRule {
 
   @Override public RelNode convert(RelNode rel) {
     final LogicalMatch match = (LogicalMatch) rel;
-    return EnumerableMatch.create(match.getInput(), match.getRowType(),
+    return EnumerableMatch.create(
+        convert(match.getInput(),
+            match.getInput().getTraitSet()
+                .replace(EnumerableConvention.INSTANCE)),
+        match.getRowType(),
         match.getPattern(), match.isStrictStart(), match.isStrictEnd(),
         match.getPatternDefinitions(), match.getMeasures(), match.getAfter(),
         match.getSubsets(), match.isAllRows(), match.getPartitionKeys(),
diff --git a/core/src/main/java/org/apache/calcite/plan/RelOptTable.java b/core/src/main/java/org/apache/calcite/plan/RelOptTable.java
index 420b01a..f3d01e0 100644
--- a/core/src/main/java/org/apache/calcite/plan/RelOptTable.java
+++ b/core/src/main/java/org/apache/calcite/plan/RelOptTable.java
@@ -160,20 +160,4 @@ public interface RelOptTable extends Wrapper {
      */
     List<RelHint> getTableHints();
   }
-
-  /** Interface to customize the {@link ToRelContext}. **/
-  interface ToRelContextFactory {
-    /**
-     * Returns a {@link ToRelContext} instance.
-     *
-     * @param viewExpander The view expander
-     * @param cluster      The cluster
-     * @param hints        The hints attached to the table,
-     *                     empty if the table does not have any hints
-     *
-     * @return A new {@link ToRelContext} instance.
-     */
-    ToRelContext createToRelContext(RelOptTable.ViewExpander viewExpander,
-        RelOptCluster cluster, List<RelHint> hints);
-  }
 }
diff --git a/core/src/main/java/org/apache/calcite/plan/ViewExpanders.java b/core/src/main/java/org/apache/calcite/plan/ViewExpanders.java
index 0767307..a8afc56 100644
--- a/core/src/main/java/org/apache/calcite/plan/ViewExpanders.java
+++ b/core/src/main/java/org/apache/calcite/plan/ViewExpanders.java
@@ -38,11 +38,6 @@ public abstract class ViewExpanders {
       RelOptTable.ViewExpander viewExpander,
       RelOptCluster cluster,
       List<RelHint> hints) {
-    // See if the user wants to customize the ToRelContext.
-    if (viewExpander instanceof RelOptTable.ToRelContextFactory) {
-      return ((RelOptTable.ToRelContextFactory) viewExpander)
-          .createToRelContext(viewExpander, cluster, hints);
-    }
     return new RelOptTable.ToRelContext() {
       public RelOptCluster getCluster() {
         return cluster;
diff --git a/core/src/main/java/org/apache/calcite/rel/core/RelFactories.java b/core/src/main/java/org/apache/calcite/rel/core/RelFactories.java
index 4518524..13b2cfd 100644
--- a/core/src/main/java/org/apache/calcite/rel/core/RelFactories.java
+++ b/core/src/main/java/org/apache/calcite/rel/core/RelFactories.java
@@ -528,22 +528,6 @@ public class RelFactories {
   }
 
   /**
-   * Creates a {@link TableScanFactory} that can expand
-   * {@link TranslatableTable} instances, but explodes on views.
-   *
-   * @param tableScanFactory Factory for non-translatable tables
-   * @return Table scan factory
-   */
-  @Nonnull public static TableScanFactory expandingScanFactory(
-      @Nonnull TableScanFactory tableScanFactory) {
-    return expandingScanFactory(
-        (rowType, queryString, schemaPath, viewPath) -> {
-          throw new UnsupportedOperationException("cannot expand view");
-        },
-        tableScanFactory);
-  }
-
-  /**
    * Creates a {@link TableScanFactory} that uses a
    * {@link org.apache.calcite.plan.RelOptTable.ViewExpander} to handle
    * {@link TranslatableTable} instances, and falls back to a default
diff --git a/core/src/main/java/org/apache/calcite/rel/hint/RelHint.java b/core/src/main/java/org/apache/calcite/rel/hint/RelHint.java
index 12a70e1..8102905 100644
--- a/core/src/main/java/org/apache/calcite/rel/hint/RelHint.java
+++ b/core/src/main/java/org/apache/calcite/rel/hint/RelHint.java
@@ -179,7 +179,7 @@ public class RelHint {
     public Builder hintOption(String hintOption) {
       Objects.requireNonNull(hintOption);
       Preconditions.checkState(this.kvOptions.size() == 0,
-          "List options and Key-Value options can not be mixed in");
+          "List options and key value options can not be mixed in");
       this.listOptions.add(hintOption);
       return this;
     }
@@ -188,7 +188,7 @@ public class RelHint {
     public Builder hintOptions(Iterable<String> hintOptions) {
       Objects.requireNonNull(hintOptions);
       Preconditions.checkState(this.kvOptions.size() == 0,
-          "List options and Key-Value options can not be mixed in");
+          "List options and key value options can not be mixed in");
       this.listOptions = ImmutableList.copyOf(hintOptions);
       return this;
     }
@@ -198,7 +198,7 @@ public class RelHint {
       Objects.requireNonNull(optionKey);
       Objects.requireNonNull(optionValue);
       Preconditions.checkState(this.listOptions.size() == 0,
-          "List options and key-value options can not be mixed in");
+          "List options and key value options can not be mixed in");
       this.kvOptions.put(optionKey, optionValue);
       return this;
     }
@@ -207,7 +207,7 @@ public class RelHint {
     public Builder hintOptions(Map<String, String> kvOptions) {
       Objects.requireNonNull(kvOptions);
       Preconditions.checkState(this.listOptions.size() == 0,
-          "List options and key-value options can not be mixed in");
+          "List options and key value options can not be mixed in");
       this.kvOptions = kvOptions;
       return this;
     }