FUNCTION
Config path: /<database>/<schema>/function/<name>(<dtypes>).yaml
Example:
Schema
language (str) - language of function (default: SQL)
runtime_version (str) - used to specify version of Python, Java, etc.
returns (str) - for single return value, return data type --- OR ---
returns (dict) - for table return values
{key} (ident) - return column name
{value} (str) - return column data type
body (str) - function body
is_secure (bool) - is function SECURE
is_strict (bool) - is function STRICT (always returns NULL on NULL input)
is_immutable (bool) - is function IMMUTABLE (same input always produced the same output)
is_memoizable (bool)
imports (list) - files to import (usually JAR packages)
{items} (dict)
stage (ident) - name of stage
path (str) - path to file
packages (list) - Snowflake system packages to import as dependencies
{items} (str) - name of package, with optional version of package
handler (str) - name of class and method to be called
external_access_integrations (list)
{items} (ident) - name of external access integration
secrets (dict)
{key} (str) - secret variable name used in function code
{value} (ident) - name of secret object
comment (str)
Usage notes
Snowflake supports overloading of function names. Multiple functions may have the same name as long as they have different arguments. It is required to use comma-separated base data types of arguments in config names. For example:
my_function(number).yaml
,my_function(varchar,number).yaml
Files for
imports
should be maintained using STAGE FILES.If function
body
is empty,handler
andimports
with pre-compiled JAR or Python code are required.runtime_version
should be specified as string with explicit double-quotes (e.g."3.8"
). Otherwise YAML parser may confuse it with number, which may cause some unwanted effects.You may use custom YAML tag
!include
to store function body in a separate file instead of storing it inside YAML.
Links
Last updated