[ https://issues.apache.org/jira/browse/FLINK-3097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15384031#comment-15384031 ]
ASF GitHub Bot commented on FLINK-3097: --------------------------------------- Github user twalthr commented on the issue: https://github.com/apache/flink/pull/2265 I was also thinking a lot about the names, because we have currently many `Function`s in Flink. I chose `UserDefinedFunction` as the top-level function for all user-defined functions such as `ScalarFunction`, `TableFunction`, `AggregateFunction`, or what ever will come in future. If you have a look into the tests you will see that the Java API supports both: postfix and infix notation. So you can also call functions `hashCode(text)` if you like. > 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)