[ 
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)

Reply via email to