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)