tartarus created FLINK-22455:
--------------------------------
Summary: FlinkRelBuilder#windowAggregate will throw
ClassCastException when function reuse
Key: FLINK-22455
URL: https://issues.apache.org/jira/browse/FLINK-22455
Project: Flink
Issue Type: Bug
Components: Table SQL / Planner
Reporter: tartarus
Attachments: FlinkRelBuilderTest.scala
If the input parameter aggCalls of FlinkRelBuilder#windowAggregate contains the
same aggregate function. Then it will throw ClassCastException, because of the
optimization of aggregate function reuse. We did not judge the return value
type, but direct type conversion;
{code:java}
val aggregate = super.transform(
new UnaryOperator[RelBuilder.Config] {
override def apply(t: RelBuilder.Config)
: RelBuilder.Config = t.withPruneInputOfAggregate(false)
})
.push(build())
.aggregate(groupKey, aggCalls)
.build()
.asInstanceOf[LogicalAggregate]
{code}
I wrote a test that triggered this problem.
You can use the attached code to reproduce this problem.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)