9.7. CREATE FUNCTION
Synopsis
- CREATE [ OR REPLACE ] FUNCTION
- qualified_function_name (
- parameter_name parameter_type
- [, ...]
- )
- RETURNS return_type
- [ COMMENT function_description ]
- [ LANGUAGE SQL ]
- [ DETERMINISTIC | NOT DETERMINISTIC ]
- [ RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ]
- [ RETURN expression ]
Description
Create a new function with the specified definition.
Each function is uniquely identified by its qualified function nameand its parameter type list. qualified_function_name
needs to be inthe format of catalog.schema.function_name
.
In order to create a function, the corresponding function namespace(in the format catalog.schema
) must first be managed by a functionnamespace manager (See Function Namespace Managers).
The optional OR REPLACE
clause causes the query to quietly replacethe existing function if a function with the identical signature (functionname with parameter type list) exists.
The return_type
needs to match the actual type of the routine bodyexpression
, without performing type coercion.
A set of routine characteristics can be specified to decorate thefunction and specify its behavior. Each kind of routine characteristiccan be specified at most once.
Routine Characteristic | Default Value | Description |
---|---|---|
Language clause | SQL | The language in which the function is defined. |
Deterministic characteristic | NOT DETERMINISTIC | Whether the function is deterministic. NOT DETERMINISTIC means that the function is possibly non-deterministic. |
Null-call clause | CALLED ON NULL INPUT | The behavior of the function in which null is supplied asthe value of at least one argument. |
Examples
Create a new function example.default.tan(double)
:
- CREATE FUNCTION example.default.tan(x double)
- RETURNS double
- DETERMINISTIC
- RETURNS NULL ON NULL INPUT
- RETURN sin(x) / cos(x)
Create the table example.default.tan(double)
if it does not alreadyexist, adding a function description and explicitly listing all the supportedroutine characteristics:
- CREATE OR REPLACE FUNCTION example.default.tan(x double)
- RETURNS double
- COMMENT 'tangent trigonometric function'
- LANGUAGE SQL
- DETERMINISTIC
- RETURNS NULL ON NULL INPUT
- RETURN sin(x) / cos(x)