You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2017/01/09 06:51:58 UTC
[2/4] kylin git commit: KYLIN-2367 fix select * where ...
KYLIN-2367 fix select * where ...
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/3b70b1a8
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/3b70b1a8
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/3b70b1a8
Branch: refs/heads/yang22-hbase1.x
Commit: 3b70b1a8b3efda3c6f85f841786e3dece9ece848
Parents: 3396d37
Author: Li Yang <li...@apache.org>
Authored: Mon Jan 9 14:41:05 2017 +0800
Committer: Li Yang <li...@apache.org>
Committed: Mon Jan 9 14:43:40 2017 +0800
----------------------------------------------------------------------
.../org/apache/calcite/sql2rel/SqlToRelConverter.java | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/3b70b1a8/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
----------------------------------------------------------------------
diff --git a/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java b/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
index cf36f61..ae8194c 100644
--- a/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
+++ b/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
@@ -567,7 +567,8 @@ public class SqlToRelConverter {
*
* LogicalSort (optional)
* |- LogicalProject
- * |- OLAPTableScan
+ * |- LogicalFilter (optional)
+ * |- OLAPTableScan
*/
LogicalProject rootPrj = null;
LogicalSort rootSort = null;
@@ -580,11 +581,14 @@ public class SqlToRelConverter {
return root;
}
- if (!rootPrj.getInput().getClass().getSimpleName().equals("OLAPTableScan"))
+ RelNode input = rootPrj.getInput();
+ if (!(//
+ input.getClass().getSimpleName().equals("OLAPTableScan")//
+ || (input.getClass().getSimpleName().equals("LogicalFilter") && input.getInput(0).getClass().getSimpleName().equals("OLAPTableScan"))//
+ ))
return root;
- RelNode scan = rootPrj.getInput();
- if (rootPrj.getRowType().getFieldCount() < scan.getRowType().getFieldCount())
+ if (rootPrj.getRowType().getFieldCount() < input.getRowType().getFieldCount())
return root;
RelDataType inType = rootPrj.getRowType();
@@ -603,7 +607,7 @@ public class SqlToRelConverter {
}
RelDataType projRowType = getCluster().getTypeFactory().createStructType(projTypeBuilder);
- rootPrj = LogicalProject.create(scan, projExp, projRowType);
+ rootPrj = LogicalProject.create(input, projExp, projRowType);
if (rootSort != null) {
rootSort = (LogicalSort) rootSort.copy(rootSort.getTraitSet(), rootPrj, rootSort.collation, rootSort.offset, rootSort.fetch);
}