You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Timo Walther (Jira)" <ji...@apache.org> on 2021/01/08 09:50:01 UTC

[jira] [Updated] (FLINK-6810) Add a set of built-in scalar functions to Table API & SQL

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

Timo Walther updated FLINK-6810:
--------------------------------
    Description: 
In this JIRA, we will create some sub-tasks for adding specific scalar functions such as mathematical-function {{LOG}}, date-functions {{DATEADD}}, string-functions {{LPAD}}, etc.

*How to contribute a built-in scalar function*
Thank you very much for contributing a built-in function. In order to make sure your contributions are in a good direction, it is recommended to read the following instructions.
 # Investigate the behavior of the function that you are going to contribute in major DBMSs. This is very important since we have to understand the exact semantics of the function.
 # It is recommended to add function for both SQL and table-API (Java and Scala).
 # For every scalar function, add corresponding docs which should include a SQL, a Java and a Scala version in {{./docs/dev/table/functions.md}}. Make sure your description of the function is accurate. Please do not simply copy documentation from other projects, especially if the projects are not Apache licensed.
 # Take overflow, NullPointerException and other exceptions into consideration.
 # Add unit tests for every new function and its supported APIs. Have a look at {{ScalarFunctionsTest}}, {{SqlExpressionTest}}, {{ScalaFunctionsValidationTest}}, etc. for how to implement function tests.
 !how to add a scalar function.png! 
Welcome anybody to add the sub-task about standard database scalar function.

Note: Usually, adding a runtime function to {{ScalarFunctions.scala}} is sufficient. However, sometimes it makes sense to implement a {{CallGenerator}} for {{FunctionGenerator}} to leverage object reuse. E.g., {{HashCalcCallGen}} creates a {{MessageDigest}} only once for {{SHA2}} if the parameters are literals.

  was:
In this JIRA, we will create some sub-tasks for adding specific scalar functions such as mathematical-function {{LOG}}, date-functions
 {{DATEADD}}, string-functions {{LPAD}}, etc.

*How to contribute a built-in scalar function*
Thank you very much for contributing a built-in function. In order to make sure your contributions are in a good direction, it is recommended to read the following instructions.
 # Investigate the behavior of the function that you are going to contribute in major DBMSs. This is very important since we have to understand the exact semantics of the function.
 # It is recommended to add function for both SQL and table-API (Java and Scala).
 # For every scalar function, add corresponding docs which should include a SQL, a Java and a Scala version in {{./docs/dev/table/functions.md}}. Make sure your description of the function is accurate. Please do not simply copy documentation from other projects, especially if the projects are not Apache licensed.
 # Take overflow, NullPointerException and other exceptions into consideration.
 # Add unit tests for every new function and its supported APIs. Have a look at {{ScalarFunctionsTest}}, {{SqlExpressionTest}}, {{ScalaFunctionsValidationTest}}, etc. for how to implement function tests.
 !how to add a scalar function.png! 
Welcome anybody to add the sub-task about standard database scalar function.

Note: Usually, adding a runtime function to {{ScalarFunctions.scala}} is sufficient. However, sometimes it makes sense to implement a {{CallGenerator}} for {{FunctionGenerator}} to leverage object reuse. E.g., {{HashCalcCallGen}} creates a {{MessageDigest}} only once for {{SHA2}} if the parameters are literals.


> Add a set of built-in scalar functions to Table API & SQL
> ---------------------------------------------------------
>
>                 Key: FLINK-6810
>                 URL: https://issues.apache.org/jira/browse/FLINK-6810
>             Project: Flink
>          Issue Type: New Feature
>          Components: Table SQL / API
>    Affects Versions: 1.4.0
>            Reporter: sunjincheng
>            Assignee: sunjincheng
>            Priority: Major
>         Attachments: how to add a scalar function.png
>
>
> In this JIRA, we will create some sub-tasks for adding specific scalar functions such as mathematical-function {{LOG}}, date-functions {{DATEADD}}, string-functions {{LPAD}}, etc.
> *How to contribute a built-in scalar function*
> Thank you very much for contributing a built-in function. In order to make sure your contributions are in a good direction, it is recommended to read the following instructions.
>  # Investigate the behavior of the function that you are going to contribute in major DBMSs. This is very important since we have to understand the exact semantics of the function.
>  # It is recommended to add function for both SQL and table-API (Java and Scala).
>  # For every scalar function, add corresponding docs which should include a SQL, a Java and a Scala version in {{./docs/dev/table/functions.md}}. Make sure your description of the function is accurate. Please do not simply copy documentation from other projects, especially if the projects are not Apache licensed.
>  # Take overflow, NullPointerException and other exceptions into consideration.
>  # Add unit tests for every new function and its supported APIs. Have a look at {{ScalarFunctionsTest}}, {{SqlExpressionTest}}, {{ScalaFunctionsValidationTest}}, etc. for how to implement function tests.
>  !how to add a scalar function.png! 
> Welcome anybody to add the sub-task about standard database scalar function.
> Note: Usually, adding a runtime function to {{ScalarFunctions.scala}} is sufficient. However, sometimes it makes sense to implement a {{CallGenerator}} for {{FunctionGenerator}} to leverage object reuse. E.g., {{HashCalcCallGen}} creates a {{MessageDigest}} only once for {{SHA2}} if the parameters are literals.



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