[
https://issues.apache.org/jira/browse/CALCITE-4040?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
xzh_dz updated CALCITE-4040:
----------------------------
Description:
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}
When an aggregate function does not support roll up, materialization
recognition should fail and return the original relnode instead of throwing 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}
was:
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}
When an aggregate function does not support roll up, materialization
recognition should fail, returning the original relnode instead of throwing 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}
> When an aggregate function does not support roll up, materialization
> recognition should fail and return the original relnode instead of throwing
> an 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: 1h 10m
> 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}
> When an aggregate function does not support roll up, materialization
> recognition should fail and return the original relnode instead of throwing
> 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)