You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "jingzhang (JIRA)" <ji...@apache.org> on 2017/12/23 03:40:00 UTC
[jira] [Created] (CALCITE-2108) AggregateJoinTransposeRule fails
when process aggregateCall above SqlSumEmptyIsZeroAggFunction without
groupKeys
jingzhang created CALCITE-2108:
----------------------------------
Summary: AggregateJoinTransposeRule fails when process aggregateCall above SqlSumEmptyIsZeroAggFunction without groupKeys
Key: CALCITE-2108
URL: https://issues.apache.org/jira/browse/CALCITE-2108
Project: Calcite
Issue Type: Bug
Reporter: jingzhang
Assignee: Julian Hyde
{code}
final HepProgram preProgram = new HepProgramBuilder()
.addRuleInstance(AggregateProjectMergeRule.INSTANCE)
.build();
final HepProgram program = new HepProgramBuilder()
.addRuleInstance(AggregateReduceFunctionsRule.INSTANCE)
.addRuleInstance(AggregateJoinTransposeRule.EXTENDED)
.build();
final String sql = "select sum(sal)\n"
+ "from (select * from sales.emp where empno = 10) as e\n"
+ "join sales.dept as d on e.job = d.name";
{code}
AggregateJoinTransposeRule fails when run the above sql, the exception is as following.
{code}
java.lang.AssertionError: type mismatch:
aggCall type:
INTEGER NOT NULL
inferred type:
INTEGER
at org.apache.calcite.util.Litmus$1.fail(Litmus.java:31)
at org.apache.calcite.plan.RelOptUtil.eq(RelOptUtil.java:1838)
at org.apache.calcite.rel.core.Aggregate.typeMatchesInferred(Aggregate.java:428)
at org.apache.calcite.rel.core.Aggregate.<init>(Aggregate.java:161)
at org.apache.calcite.rel.logical.LogicalAggregate.<init>(LogicalAggregate.java:65)
at org.apache.calcite.rel.logical.LogicalAggregate.create_(LogicalAggregate.java:110)
at org.apache.calcite.rel.logical.LogicalAggregate.create(LogicalAggregate.java:100)
at org.apache.calcite.rel.core.RelFactories$AggregateFactoryImpl.createAggregate(RelFactories.java:213)
at org.apache.calcite.tools.RelBuilder.aggregate(RelBuilder.java:1267)
at org.apache.calcite.tools.RelBuilder.aggregate(RelBuilder.java:1825)
at org.apache.calcite.rel.rules.AggregateJoinTransposeRule.onMatch(AggregateJoinTransposeRule.java:337)
{code}
*Notes*: This is different with the issue referred in https://issues.apache.org/jira/browse/CALCITE-2105. This question caused by the SqlSplittableAggFunction of SqlSumEmptyIsZeroAggFunction is SumSplitter. If groupByKeys is empty, then the aggregateCalls returnTypes of Sum is nullable, while the returnTypes of Sum0 is not nullable.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)