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)