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

Jark Wu closed FLINK-22689.
---------------------------
    Fix Version/s: 1.14.0
       Resolution: Fixed

Fixed in master: 997fa27e462c612f70401939c0fa9b217490dd73

> Table API Documentation Row-Based Operations Example Fails
> ----------------------------------------------------------
>
>                 Key: FLINK-22689
>                 URL: https://issues.apache.org/jira/browse/FLINK-22689
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / API
>    Affects Versions: 1.12.1
>            Reporter: Yunfeng Zhou
>            Assignee: Yao Zhang
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.14.0
>
>
> I wrote the following program according to the example code provided in 
> [Documentation/Table API/Row-based 
> operations|https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/dev/table/tableapi/#row-based-operations]
> {code:java}
> public class TableUDF {
>     public static void main(String[] args) {
>         StreamExecutionEnvironment env = 
> StreamExecutionEnvironment.createLocalEnvironment();
>         StreamTableEnvironment tEnv = StreamTableEnvironment.create(env);
> ​
>         Table input = tEnv.fromValues(
>                 DataTypes.of("ROW<c STRING>"),
>                 Row.of("name")
>         );
> ​
>         ScalarFunction func = new MyMapFunction();
>         tEnv.registerFunction("func", func);
> ​
>         Table table = input
>                 .map(call("func", $("c")).as("a", "b")); // exception occurs 
> here
> ​
>         table.execute().print();
>     }
> ​
>     public static class MyMapFunction extends ScalarFunction {
>         public Row eval(String a) {
>             return Row.of(a, "pre-" + a);
>         }
> ​
>         @Override
>         public TypeInformation<?> getResultType(Class<?>[] signature) {
>             return Types.ROW(Types.STRING, Types.STRING);
>         }
>     }
> }
> {code}
> The code above would throw an exception like this:
> {code}
> Exception in thread "main" org.apache.flink.table.api.ValidationException: 
> Only a scalar function can be used in the map operator.
>   at 
> org.apache.flink.table.operations.utils.OperationTreeBuilder.map(OperationTreeBuilder.java:480)
>   at org.apache.flink.table.api.internal.TableImpl.map(TableImpl.java:519)
>   at org.apache.flink.ml.common.function.TableUDFBug.main(TableUDF.java:29)
> {code}
>   The core of the program above is identical to that provided in flink 
> documentation, but it cannot function correctly. This might affect users who 
> want to use custom function with table API.
>  



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

Reply via email to