You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2014/09/02 21:57:14 UTC

git commit: In Planner, query de-correlation no longer requires state in a SqlToRelConverter.

Repository: incubator-optiq
Updated Branches:
  refs/heads/master fda19af13 -> 7efed5c36


In Planner, query de-correlation no longer requires state in a SqlToRelConverter.


Project: http://git-wip-us.apache.org/repos/asf/incubator-optiq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-optiq/commit/7efed5c3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-optiq/tree/7efed5c3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-optiq/diff/7efed5c3

Branch: refs/heads/master
Commit: 7efed5c365fc8360d52f69385a10ebaae26f6f68
Parents: fda19af
Author: Julian Hyde <jh...@apache.org>
Authored: Tue Sep 2 11:57:07 2014 -0700
Committer: Julian Hyde <jh...@apache.org>
Committed: Tue Sep 2 11:57:07 2014 -0700

----------------------------------------------------------------------
 .../net/hydromatic/optiq/prepare/PlannerImpl.java | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/7efed5c3/core/src/main/java/net/hydromatic/optiq/prepare/PlannerImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/net/hydromatic/optiq/prepare/PlannerImpl.java b/core/src/main/java/net/hydromatic/optiq/prepare/PlannerImpl.java
index e657540..4dc5124 100644
--- a/core/src/main/java/net/hydromatic/optiq/prepare/PlannerImpl.java
+++ b/core/src/main/java/net/hydromatic/optiq/prepare/PlannerImpl.java
@@ -33,6 +33,7 @@ import org.eigenbase.sql.parser.SqlParseException;
 import org.eigenbase.sql.parser.SqlParser;
 import org.eigenbase.sql.parser.SqlParserImplFactory;
 import org.eigenbase.sql.validate.SqlValidator;
+import org.eigenbase.sql2rel.RelDecorrelator;
 import org.eigenbase.sql2rel.SqlRexConvertletTable;
 import org.eigenbase.sql2rel.SqlToRelConverter;
 import org.eigenbase.util.Util;
@@ -52,6 +53,7 @@ public class PlannerImpl implements Planner {
 
   private final Lex lex;
   private final SqlParserImplFactory parserFactory;
+  private final SqlRexConvertletTable convertletTable;
 
   // Options. TODO: allow client to set these. Maybe use a ConnectionConfig.
   private boolean caseSensitive = true;
@@ -71,8 +73,6 @@ public class PlannerImpl implements Planner {
   private SqlNode validatedSqlNode;
 
   // set in STATE_5_CONVERT
-  private SqlToRelConverter sqlToRelConverter;
-  private SqlRexConvertletTable convertletTable;
   private RelNode rel;
 
   /** Creates a planner. Not a public API; call
@@ -180,7 +180,7 @@ public class PlannerImpl implements Planner {
   public RelNode convert(SqlNode sql) throws RelConversionException {
     ensure(State.STATE_4_VALIDATED);
     assert validatedSqlNode != null;
-    this.sqlToRelConverter =
+    final SqlToRelConverter sqlToRelConverter =
         new SqlToRelConverter(
             new ViewExpanderImpl(), validator, createCatalogReader(), planner,
             createRexBuilder(), convertletTable);
@@ -188,7 +188,7 @@ public class PlannerImpl implements Planner {
     sqlToRelConverter.enableTableAccessConversion(false);
     rel = sqlToRelConverter.convertQuery(validatedSqlNode, false, true);
     rel = sqlToRelConverter.flattenTypes(rel, true);
-    rel = sqlToRelConverter.decorrelate(validatedSqlNode, rel);
+    rel = RelDecorrelator.decorrelateQuery(rel);
     state = State.STATE_5_CONVERTED;
     return rel;
   }
@@ -198,7 +198,7 @@ public class PlannerImpl implements Planner {
   public class ViewExpanderImpl implements ViewExpander {
     public RelNode expandView(RelDataType rowType, String queryString,
         List<String> schemaPath) {
-      SqlParser parser = SqlParser.create(parserFactory, queryString,
+      final SqlParser parser = SqlParser.create(parserFactory, queryString,
           lex.quoting, lex.unquotedCasing, lex.quotedCasing);
       SqlNode sqlNode;
       try {
@@ -209,11 +209,11 @@ public class PlannerImpl implements Planner {
 
       final OptiqCatalogReader catalogReader =
           createCatalogReader().withSchemaPath(schemaPath);
-      SqlValidator validator = new OptiqSqlValidator(
-          operatorTable, catalogReader, typeFactory);
-      SqlNode validatedSqlNode = validator.validate(sqlNode);
+      final SqlValidator validator = new OptiqSqlValidator(operatorTable,
+          catalogReader, typeFactory);
+      final SqlNode validatedSqlNode = validator.validate(sqlNode);
 
-      SqlToRelConverter sqlToRelConverter = new SqlToRelConverter(
+      final SqlToRelConverter sqlToRelConverter = new SqlToRelConverter(
           null, validator, catalogReader, planner,
           createRexBuilder(), convertletTable);
       sqlToRelConverter.setTrimUnusedFields(false);