[ https://issues.apache.org/jira/browse/CALCITE-4040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17125584#comment-17125584 ]
xzh_dz commented on CALCITE-4040: --------------------------------- [~donnyzone] Thanks for review. Some aggregate functions does not support roll up, it will throw an exception.For example, `stddev_pop` aggregate function does not support roll up. > Nonstandard SqlAggFunction rollup NPE Exception > ----------------------------------------------- > > Key: CALCITE-4040 > URL: https://issues.apache.org/jira/browse/CALCITE-4040 > Project: Calcite > Issue Type: Wish > Reporter: xzh_dz > Priority: Major > Time Spent: 0.5h > Remaining Estimate: 0h > > When i try to rollup some SqlAggFunctions in my project,I find something > wrong. > A case can be reproduced as below: > MaterializationTest: > {code:java} > @Test public void testSqlAggFunctionRollup() { > checkNoMaterialize( > "select \"empid\", stddev_pop(\"deptno\") from \"emps\" group by > \"empid\", \"deptno\"", > "select \"empid\", stddev_pop(\"deptno\") from \"emps\" group by > \"empid\"", > HR_FKUK_MODEL); > } > {code} > If sql is not materialized, it should not throw an exception. > Exception: > {code:java} > java.sql.SQLException: Error while executing SQL "explain plan for select > "empid", stddev_pop("deptno") from "emps" group by "empid"": null > at org.apache.calcite.avatica.Helper.createException(Helper.java:56) > at org.apache.calcite.avatica.Helper.createException(Helper.java:41) > at > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:163) > at > org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227) > at > org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:528) > Caused by: java.lang.NullPointerException > at java.util.Objects.requireNonNull(Objects.java:203) > at > org.apache.calcite.rel.core.AggregateCall.<init>(AggregateCall.java:98) > at > org.apache.calcite.rel.core.AggregateCall.create(AggregateCall.java:198) > at > org.apache.calcite.plan.SubstitutionVisitor.unifyAggregates(SubstitutionVisitor.java:1854) > at > org.apache.calcite.plan.SubstitutionVisitor$AggregateToAggregateUnifyRule.apply(SubstitutionVisitor.java:1545) > at > org.apache.calcite.plan.SubstitutionVisitor.go(SubstitutionVisitor.java:544) > at > org.apache.calcite.plan.SubstitutionVisitor.go(SubstitutionVisitor.java:478) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)