functions
Creates, updates, deletes, gets or lists a functions
resource.
Overview
Name | functions |
Type | Resource |
Id | snowflake.function.functions |
Fields
The following fields are returned by SELECT
queries:
- list_functions
- fetch_function
A Snowflake function
Name | Datatype | Description |
---|---|---|
name | string | Specifies the name for the function, must be unique for the schema in which the function is created |
arguments | array | |
body | string | Function's body. |
created_on | string (date-time) | Date and time when the function was created. |
function_type | string | (default: service-function) |
language | string | Function's language. |
max_batch_rows | integer | Specifies the max rows for batch operation. |
returns | string | Specifies the type for the function return value. (default: TEXT) |
signature | string | Function's arguments. |
A Snowflake function
Name | Datatype | Description |
---|---|---|
name | string | Specifies the name for the function, must be unique for the schema in which the function is created |
arguments | array | |
body | string | Function's body. |
created_on | string (date-time) | Date and time when the function was created. |
function_type | string | (default: service-function) |
language | string | Function's language. |
max_batch_rows | integer | Specifies the max rows for batch operation. |
returns | string | Specifies the type for the function return value. (default: TEXT) |
signature | string | Function's arguments. |
Methods
The following methods are available for this resource:
Name | Accessible by | Required Params | Optional Params | Description |
---|---|---|---|---|
list_functions | select | database_name , schema_name , endpoint | like | Lists the user functions under the database and schema. |
fetch_function | select | database_name , schema_name , nameWithArgs , endpoint | Fetch a Function using the describe command output. | |
create_function | insert | database_name , schema_name , endpoint | createMode | Create a function. |
delete_function | delete | database_name , schema_name , nameWithArgs , endpoint | ifExists | Delete a function with the given name and args. |
execute_function | exec | database_name , schema_name , name , endpoint | Execute a Function. |
Parameters
Parameters can be passed in the WHERE
clause of a query. Check the Methods section to see which parameters are required or optional for each operation.
Name | Datatype | Description |
---|---|---|
database_name | string | Identifier (i.e. name) for the database to which the resource belongs. You can use the /api/v2/databases GET request to get a list of available databases. |
endpoint | string | Organization and Account Name (default: orgid-acctid) |
name | string | Identifier (i.e. name) for the resource. |
nameWithArgs | string | Function's name with Args |
schema_name | string | Identifier (i.e. name) for the schema to which the resource belongs. You can use the /api/v2/databases/{database}/schemas GET request to get a list of available schemas for the specified database. |
createMode | string | Query parameter allowing support for different modes of resource creation. Possible values include: - errorIfExists : Throws an error if you try to create a resource that already exists. - orReplace : Automatically replaces the existing resource with the current one. - ifNotExists : Creates a new resource when an alter is requested for a non-existent resource. |
ifExists | boolean | Query parameter that specifies how to handle the request for a resource that does not exist: - true : The endpoint does not throw an error if the resource does not exist. It returns a 200 success response, but does not take any action on the resource. - false : The endpoint throws an error if the resource doesn't exist. |
like | string | Query parameter to filter the command output by resource name. Uses case-insensitive pattern matching, with support for SQL wildcard characters. |
SELECT
examples
- list_functions
- fetch_function
Lists the user functions under the database and schema.
SELECT
name,
arguments,
body,
created_on,
function_type,
language,
max_batch_rows,
returns,
signature
FROM snowflake.function.functions
WHERE database_name = '{{ database_name }}' -- required
AND schema_name = '{{ schema_name }}' -- required
AND endpoint = '{{ endpoint }}' -- required
AND like = '{{ like }}';
Fetch a Function using the describe command output.
SELECT
name,
arguments,
body,
created_on,
function_type,
language,
max_batch_rows,
returns,
signature
FROM snowflake.function.functions
WHERE database_name = '{{ database_name }}' -- required
AND schema_name = '{{ schema_name }}' -- required
AND nameWithArgs = '{{ nameWithArgs }}' -- required
AND endpoint = '{{ endpoint }}' -- required;
INSERT
examples
- create_function
- Manifest
Create a function.
INSERT INTO snowflake.function.functions (
data__function_type,
data__name,
data__arguments,
data__returns,
data__max_batch_rows,
data__created_on,
data__signature,
data__language,
data__body,
database_name,
schema_name,
endpoint,
createMode
)
SELECT
'{{ function_type }}',
'{{ name }}' --required,
'{{ arguments }}' --required,
'{{ returns }}',
{{ max_batch_rows }},
'{{ created_on }}',
'{{ signature }}',
'{{ language }}',
'{{ body }}',
'{{ database_name }}',
'{{ schema_name }}',
'{{ endpoint }}',
'{{ createMode }}'
;
# Description fields are for documentation purposes
- name: functions
props:
- name: database_name
value: string
description: Required parameter for the functions resource.
- name: schema_name
value: string
description: Required parameter for the functions resource.
- name: endpoint
value: string
description: Required parameter for the functions resource.
- name: function_type
value: string
default: service-function
- name: name
value: string
description: >
Specifies the name for the function, must be unique for the schema in which the function is created
- name: arguments
value: array
- name: returns
value: string
description: >
Specifies the type for the function return value.
valid_values: ['FIXED', 'INT', 'REAL', 'NUMBER', 'TEXT', 'BOOLEAN', 'DATE', 'TIME', 'TIMESTAMP_TZ', 'TIMESTAMP_LTZ', 'TIMESTAMP_NTZ']
default: TEXT
- name: max_batch_rows
value: integer
description: >
Specifies the max rows for batch operation.
- name: created_on
value: string
description: >
Date and time when the function was created.
- name: signature
value: string
description: >
Function's arguments.
- name: language
value: string
description: >
Function's language.
- name: body
value: string
description: >
Function's body.
- name: createMode
value: string
description: Query parameter allowing support for different modes of resource creation. Possible values include: - `errorIfExists`: Throws an error if you try to create a resource that already exists. - `orReplace`: Automatically replaces the existing resource with the current one. - `ifNotExists`: Creates a new resource when an alter is requested for a non-existent resource.
DELETE
examples
- delete_function
Delete a function with the given name and args.
DELETE FROM snowflake.function.functions
WHERE database_name = '{{ database_name }}' --required
AND schema_name = '{{ schema_name }}' --required
AND nameWithArgs = '{{ nameWithArgs }}' --required
AND endpoint = '{{ endpoint }}' --required
AND ifExists = '{{ ifExists }}';
Lifecycle Methods
- execute_function
Execute a Function.
EXEC snowflake.function.functions.execute_function
@database_name='{{ database_name }}' --required,
@schema_name='{{ schema_name }}' --required,
@name='{{ name }}' --required,
@endpoint='{{ endpoint }}' --required;