You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Dominik Wosiński (Jira)" <ji...@apache.org> on 2021/08/18 13:52:00 UTC

[jira] [Created] (FLINK-23863) AVRO Raw types do not match for UDFs

Dominik Wosiński created FLINK-23863:
----------------------------------------

             Summary: AVRO Raw types do not match for UDFs
                 Key: FLINK-23863
                 URL: https://issues.apache.org/jira/browse/FLINK-23863
             Project: Flink
          Issue Type: Improvement
          Components: API / DataStream, Table SQL / API
    Affects Versions: 1.13.2
            Reporter: Dominik Wosiński


It seems that for some reason when using UDF, we can't properly use RAW types at least for AVRO generated classes. The following code:
```

{color:#bbb529}@FunctionHint{color}(
 input = Array(
 {color:#cc7832}new {color}DataTypeHint(value = {color:#6a8759}"RAW"{color}{color:#cc7832}, {color}bridgedTo = classOf[TestEnum])
 ){color:#cc7832},
{color} output = {color:#cc7832}new {color}DataTypeHint(value = {color:#6a8759}"RAW"{color}{color:#cc7832}, {color}bridgedTo = classOf[SecondEnum])
)
{color:#cc7832}class {color}EnumMappingFunction {color:#cc7832}extends {color}ScalarFunction {

 {color:#cc7832}def {color}{color:#ffc66d}eval{color}({color:#72737a}event{color}: TestEnum): SecondEnum = {SecondEnum.{color:#9876aa}ANOTHER_TEST_VALUE{color}}
 }
```

Will result in this rather unhelpful error:
```
Caused by: org.apache.flink.table.api.ValidationException: Invalid argument type at position 0. Data type RAW('org.test.TestEnum', '...') expected but RAW('org.test.TestEnum', '...') passed.
```
Perhaps it is due to different type serializer that is generated by Flink SQL and the `DataTypeHint` ? 

I've created the following minimal reproducible example to make it easier to identify the error  https://github.com/Wosin/FlinkRepro.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)