You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Xingcan Cui (JIRA)" <ji...@apache.org> on 2018/05/19 17:05:00 UTC

[jira] [Comment Edited] (FLINK-8863) Add user-defined function support in SQL Client

    [ https://issues.apache.org/jira/browse/FLINK-8863?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16481693#comment-16481693 ] 

Xingcan Cui edited comment on FLINK-8863 at 5/19/18 5:04 PM:
-------------------------------------------------------------

Hi [~twalthr], I got two questions during the implementation.

1. Why {{org.apache.flink.table.api.TableEnvironment}} only exposes a {{registerFunction()}} method for {{ScalarFunction}}?

2. Shall we add a hierarchy depth restriction for the parameters of a UDF constructor?


was (Author: xccui):
Hi [~twalthr], I got two questions during the implementation.

1. Why {{org.apache.flink.table.api.TableEnvironment}} only exposes a {{registerFunction()}} method for {{ScalarFunction}}s?

2. Shall we add a hierarchy depth restriction for the parameters of a UDF constructor?

> Add user-defined function support in SQL Client
> -----------------------------------------------
>
>                 Key: FLINK-8863
>                 URL: https://issues.apache.org/jira/browse/FLINK-8863
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Table API &amp; SQL
>            Reporter: Timo Walther
>            Assignee: Xingcan Cui
>            Priority: Major
>
> This issue is a subtask of part two "Full Embedded SQL Client" of the implementation plan mentioned inĀ [FLIP-24|https://cwiki.apache.org/confluence/display/FLINK/FLIP-24+-+SQL+Client].
> It should be possible to declare user-defined functions in the SQL client. For now, we limit the registration to classes that implement {{ScalarFunction}}, {{TableFunction}}, {{AggregateFunction}}. Functions that are implemented in SQL are not part of this issue.
> I would suggest to introduce a {{functions}} top-level property. The declaration could look similar to:
> {code}
> functions:
>   - name: testFunction
>     from: class                                   <-- optional, default: class
>     class: org.my.MyScalarFunction
>     constructor:                                  <-- optional, needed for certain types of functions
>       - 42.0
>       - class: org.my.Class                  <-- possibility to create objects via properties
>         constructor: 
>           - 1
>           - true
>           - false
>           - "whatever"
>           - type: INT
>             value: 1
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)