CREATE FUNCTION
CREATE FUNCTION#
Syntax
CreateFunctionStatement ::=
'CREATE' OptAggregate 'FUNCTION' FunctionDeclaration FunctionReturns OptionsList
OptAggregate ::=
'AGGREGATE' | /* Nothing */
FunctionDeclaration ::=
FunctionParametersPrefix ')'
FunctionParametersPrefix ::=
'(' FunctionParameter
| FunctionParametersPrefix "," FunctionParameter
FunctionParameter ::=
Identifier Type
FunctionReturns ::=
'RETURNS' Type
Type ::=
'INT' | 'INT32'
|'SMALLINT' | 'INT16'
|'BIGINT' | 'INT64'
|'FLOAT'
|'DOUBLE'
|'TIMESTAMP'
|'DATE'
|'STRING' | 'VARCHAR'
Example
Create a function whose input parameter type is string, the return type is string, and the dynamic library file is libtest_udf.so
CREATE FUNCTION cut2(x string) RETURNS string OPTIONS (FILE = 'libtest_udf.so');
Create a function whose input parameter type is two ints, the return type is int, and the dynamic library file is libtest_udf.so
CREATE FUNCTION add_one(x int, y int) RETURNS INT OPTIONS (FILE = 'libtest_udf.so');
Create an aggregate function whose input parameter type is bigint, the return type is bigint, and the dynamic library file is libtest_udf.so
CREATE AGGREGATE FUNCTION special_sum(x BIGINT) RETURNS BIGINT OPTIONS (FILE = 'libtest_udf.so');
Create an aggregate function whose input parameter type is bigint and nullable, the return type is bigint and nullable, and the dynamic library file is libtest_udf.so
CREATE AGGREGATE FUNCTION count_null(x BIGINT) RETURNS BIGINT OPTIONS (FILE = 'libtest_udf.so', ARG_NULLABLE=true, RETURN_NULLABLE=true);