arguments (for functions)
functions:
- name: <function name>
arguments:
- name: <arg name>
data_type: <string> # warehouse-specific
description: <markdown_string>
default_value: <string | boolean | integer> # optional, available in Snowflake and Postgres
Definitionβ
The arguments property is used to define the parameters that a resource can accept. Each argument can have a name, a type field, and optional properties such as description and default_value.
For functions, you can add arguments to a function property, which defines the parameters for user-defined functions (UDFs) in your warehouse. The data_type for function arguments is warehouse-specific (for example, STRING, VARCHAR, INTEGER) and should match the data types supported by your data platform.
Propertiesβ
nameβ
The name of the argument. This is a required field if arguments is specified.
data_typeβ
The data type that the warehouse expects for this parameter. This is a required field if arguments is specified and must match the data types supported by your specific data platform.
The data_type values are warehouse-specific. Use the data type syntax that your warehouse requires:
- Snowflake:
STRING,NUMBER,BOOLEAN,TIMESTAMP_NTZ, etc. - BigQuery:
STRING,INT64,BOOL,TIMESTAMP,ARRAY<STRING>, etc. - Redshift:
VARCHAR,INTEGER,BOOLEAN,TIMESTAMP, etc. - Postgres:
TEXT,INTEGER,BOOLEAN,TIMESTAMP, etc.
Refer to your warehouse documentation for the complete list of supported data types.
descriptionβ
An optional markdown string describing the argument. This is helpful for documentation purposes.
default_valueβ
Use the default_value property to make a function argument optional.
- When an argument isn't defined with a
default_value, it becomes a required argument, and you must pass a value for them when you use the function. If a required argument isnβt passed, the function call fails. - Arguments with a
default_valueare optional β if you don't pass a value for the argument, the warehouse uses the value you set indefault_value.
This property is supported in Snowflake and Postgres.
When you use default_value, the order of your arguments matter. Any required arguments (those without default values) have to come before optional ones. Here's an example with the correct order:
functions:
- name: sum_2_values
description: Add two values together
arguments:
- name: val1 # this argument comes first because it has no default value
data_type: integer
description: The first value
- name: val2
data_type: integer
description: The second value
default_value: 0
returns:
data_type: integer
In this example:
val1has nodefault_value, so itβs required.val2has adefault_valueof0, so itβs optional. If you donβt provide a value forval2, the function uses0instead.
Examplesβ
Simple function argumentsβ
functions:
- name: is_positive_int
arguments:
- name: a_string
data_type: string
description: "The string that I want to check if it's representing a positive integer (like '10')"
returns:
data_type: boolean
Complex data typesβ
functions:
- name: calculate_discount
arguments:
- name: original_price
data_type: DECIMAL(10,2)
description: "The original price before discount"
- name: discount_percent
data_type: INTEGER
description: "The discount percentage to apply"
returns:
data_type: DECIMAL(10,2)
description: "The discounted price"
Array data types (BigQuery example)β
functions:
- name: get_tags
arguments:
- name: tag_string
data_type: STRING
description: "Comma-separated string of tags"
returns:
data_type: ARRAY<STRING>
description: "An array of individual tag strings"
Related documentationβ
Was this page helpful?
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.