Hi Hanyu Zheng 👋 I've actually included the function into a UDF jar, hoping I could get away with not forking Flink itself. Do you think that'll work?
In my SQL script I import the function like this: ```sql create temporary function ArrayAggFunction   as 'eu.spaziodati.cp.flink.funcs.ArrayAggFunction'   using jar '<file:///opt/flink/plugins/cp-funcs.jar';> ``` Then I use it like this: ```sql select `...`, ArrayAggFunction(row(...)) ``` So the fact that a Row is being passed into the function does not surprise me, but I don't get how RowData comes into play. Daniele On October 24, 2024, user <user@flink.apache.org> wrote: > Hi Daniele Parmeggiani, > > I have some ideas regarding the issue. From the exception: > > java.lang.ClassCastException: class org.apache.flink.types.Row cannot > be cast to class org.apache.flink.table.data.RowData > This error clearly indicates that the code is trying to cast a Row > object to a RowData object, which suggests that the input data being > processed is of type Row. However, the backported ARRAY_AGG function > expects RowData. The type mismatch between Row and RowData might be > causing the error. > > We need to confirm whether the data type passed to ARRAY_AGG is the > correct one. Additionally, the input and output strategy should be > defined in BuiltInFunctionDefinitions — we should first define the > input and output types and then let the function use them. > > It’s possible that checking the type in the wrong place and passing an > incorrect data type is leading to this issue. > > > -- > > <https://www.confluent.io> > Hanyu (Peter) Zheng he/him/hisSoftware Engineer+1 (213) 431-7193 > <tel:+1+(213)+431-7193> > Follow us: > <https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email- > signature_type.community_content.blog> > <https://twitter.com/ConfluentInc> <https://www.linkedin.com/in/hanyu- > peter-zheng/> <https://slackpass.io/confluentcommunity> > <https://youtube.com/confluent> > <https://www.confluent.io/get-started?utm_campaign=tm.fm- > apac_cd.inbound&utm_source=gmail&utm_medium=organic> > >