CREATE FUNCTION
Syntax
CREATE FUNCTION qualified_function_name (
parameter_name parameter_type
[, ...]
)
RETURNS return_type
[ COMMENT function_description ]
[ LANGUAGE [ JAVA ] ]
[ SPECIFIC specificName ]
[ DETERMINISTIC | NOT DETERMINISTIC ]
[ RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ]
[ SYMBOL class_name ]
[ URI hdfs_path_to_jar ]
Description
It is used to create a function based on a given definition.
- Each function is uniquely identified by a qualified name and parameter type list. The value format of qualified_function_name must be catalog.schema.function_name. You can plan and manage the function namespace (its format is catalog.schema). It is irrelevant to the concepts of catalog and schema in HetuEngine. The value of parameter_type must be a data type supported by HetuEngine.
- The value of return_type must be a data type supported by HetuEngine and must match the actual type returned by the function. Forcible type conversion is not executed.
- You can specify a group of features to decorate a function and specify its behavior. Each feature can be specified only once. For details, see Table 1.
Table 1 Feature description Feature
Default Value
Description
Language clause
-
Language used to define a function. Currently, Java is supported.- Java function: A JAR file for implementing a function needs to be provided, and the JAR file needs to be placed in HDFS that can be read by HetuEngine.
Deterministic characteristic
NOT DETERMINISTIC
Whether a function is deterministic.
- DETERMINISTIC: A function is considered deterministic if it always returns the same result set when called with the same input set.
- NOT DETERMINISTIC: A function is considered nondeterministic if it does not return the same result set when called with the same input set.
Null-call clause
CALLED ON NULL INPUT
Function behavior.
- RETURNS NULL ON NULL INPUT: When NULL is used as a function parameter, NULL is returned.
- CALLED ON NULL INPUT: When NULL is used as a function parameter, the function is called.
Symbol class_name
-
Used by a Java function to specify a fully qualified class name for function implementation.
Uri hdfs_path_to_jar
-
Used by a Java function to specify a JAR file path for function implementation.
Remarks
- Permissions are controlled only based on user groups. For details, see Table 2.
Example
- Create a Java function example.default.add_two. (You need to build and deploy the UDF first.)
CREATE FUNCTION example.default.add_two ( num integer ) RETURNS integer LANGUAGE JAVA DETERMINISTIC SYMBOL "com.example.functions.AddTwo" URI "hdfs://hacluster/udfs/function-1.0.jar"; -- Execute the function. select hetu.default.add_two(2);
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.