[ 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 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. > 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 API & SQL > Affects Versions: 1.4.0 > Reporter: sunjincheng > Assignee: sunjincheng > Priority: Major > Labels: starter > 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 if the parameters > are literals. -- This message was sent by Atlassian JIRA (v7.6.3#76005)