[ https://issues.apache.org/jira/browse/FLINK-3097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15383717#comment-15383717 ]
ASF GitHub Bot commented on FLINK-3097: --------------------------------------- Github user twalthr commented on the issue: https://github.com/apache/flink/pull/2265 No, there is no FLIP about it. I think a discussion in JIRA or in this PR should be enough. That's why I haven't documented it yet. I was inspired by your [document](https://docs.google.com/document/d/1KMUzvBAWSyQ39T8MyxUi0zNHyvLUnyGMPA7_RLSDpFw/edit). You are right, `ScalarFunction` has many internal functions but they are not exposed to the user, only 2 methods can be overriden. An interface is not enough as it might be sometimes necessary to override `getReturnType` and `getParameterType`. > Add support for custom functions in Table API > --------------------------------------------- > > Key: FLINK-3097 > URL: https://issues.apache.org/jira/browse/FLINK-3097 > Project: Flink > Issue Type: New Feature > Components: Table API & SQL > Reporter: Timo Walther > Assignee: Timo Walther > > Currently, the Table API has a very limited set of built-in functions. > Support for custom functions can solve this problem. Adding of a custom row > function could look like: > {code} > TableEnvironment tableEnv = new TableEnvironment(); > RowFunction<String> rf = new RowFunction<String>() { > @Override > public String call(Object[] args) { > return ((String) args[0]).trim(); > } > }; > tableEnv.getConfig().registerRowFunction("TRIM", rf, > BasicTypeInfo.STRING_TYPE_INFO); > DataSource<Tuple1<String>> input = env.fromElements( > new Tuple1<>(" 1 ")); > Table table = tableEnv.fromDataSet(input); > Table result = table.select("TRIM(f0)"); > {code} > This feature is also necessary as part of FLINK-2099. -- This message was sent by Atlassian JIRA (v6.3.4#6332)