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);