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>
>
>

Reply via email to