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)

Reply via email to