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