[ 
https://issues.apache.org/jira/browse/FLINK-17683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xintong Song updated FLINK-17683:
---------------------------------
    Fix Version/s: 1.18.0
                       (was: 1.17.0)

> Pojo with no-args constructor will be treated as ROW when returned by 
> ScalarFunction, but not when it is a field of case class.
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-17683
>                 URL: https://issues.apache.org/jira/browse/FLINK-17683
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / API
>    Affects Versions: 1.10.1
>            Reporter: xiemeilong
>            Priority: Minor
>              Labels: auto-deprioritized-major, auto-unassigned
>             Fix For: 1.18.0
>
>
> Pojo.java
> {code:java}
> @Data
> @NoArgsConstructor
> public class Pojo  {
>     private String foo;
> }
> {code}
> {code:java}
> object Fun extends ScalarFunction { 
>    def eval(): Pojo = { new Pojo() } 
> }
> case class CaseClass(pojo:Pojo)
> {code}
>  
>  
> {code:java}
> tableEnv.registerFunction("fun", Fun)
> val table = tableEnv.sqlQuery("select fun() as pojo")
> table.toRetractStream[CaseClass].print()
> {code}
>  
> exception:
>  
> {code:java}
> Exception in thread "main" org.apache.flink.table.api.ValidationException: 
> Field types of query result and registered TableSink  do not match.
> Query schema: [pojo: ROW<`foo` STRING>]
> Sink schema: [pojo: LEGACY('STRUCTURED_TYPE', 'POJO<com.yunmo.iot.Pojo>')]
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to