Repository: kylin Updated Branches: refs/heads/yang22 3396d3740 -> 3b70b1a8b
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 Commit: 3b70b1a8b3efda3c6f85f841786e3dece9ece848 Parents: 3396d37 Author: Li Yang <liy...@apache.org> Authored: Mon Jan 9 14:41:05 2017 +0800 Committer: Li Yang <liy...@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); }