KYLIN-2930 make tablescan phy type always ARRAY
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/227668a3 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/227668a3 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/227668a3 Branch: refs/heads/2.2.x Commit: 227668a34343f28f2efb30c6bf8ec106bc6239ac Parents: c21fe43 Author: Roger Shi <rogershijich...@hotmail.com> Authored: Tue Oct 10 15:04:46 2017 +0800 Committer: Roger Shi <rogershijich...@hotmail.com> Committed: Thu Oct 19 10:03:42 2017 +0800 ---------------------------------------------------------------------- kylin-it/src/test/resources/query/sql_union/query03.sql | 1 + .../main/java/org/apache/kylin/query/relnode/OLAPTableScan.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/227668a3/kylin-it/src/test/resources/query/sql_union/query03.sql ---------------------------------------------------------------------- diff --git a/kylin-it/src/test/resources/query/sql_union/query03.sql b/kylin-it/src/test/resources/query/sql_union/query03.sql new file mode 100644 index 0000000..e92d8e0 --- /dev/null +++ b/kylin-it/src/test/resources/query/sql_union/query03.sql @@ -0,0 +1 @@ +select count(*) as cnt from TEST_KYLIN_FACT where TRANS_ID < 1000 union select count(*) as cnt from TEST_KYLIN_FACT where TRANS_ID > 9000 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/kylin/blob/227668a3/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java ---------------------------------------------------------------------- diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java index 2ee4513..e9e3566 100644 --- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java +++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java @@ -25,6 +25,7 @@ import java.util.Stack; import org.apache.calcite.adapter.enumerable.EnumerableRel; import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; +import org.apache.calcite.adapter.enumerable.JavaRowFormat; import org.apache.calcite.adapter.enumerable.PhysType; import org.apache.calcite.adapter.enumerable.PhysTypeImpl; import org.apache.calcite.linq4j.tree.Blocks; @@ -334,7 +335,7 @@ public class OLAPTableScan extends TableScan implements OLAPRel, EnumerableRel { context.setReturnTupleInfo(rowType, columnRowType); String execFunction = genExecFunc(); - PhysType physType = PhysTypeImpl.of(implementor.getTypeFactory(), this.rowType, pref.preferArray()); + PhysType physType = PhysTypeImpl.of(implementor.getTypeFactory(), getRowType(), JavaRowFormat.ARRAY); MethodCallExpression exprCall = Expressions.call(table.getExpression(OLAPTable.class), execFunction, implementor.getRootExpression(), Expressions.constant(context.id)); return implementor.result(physType, Blocks.toBlock(exprCall));