Snowflake · Schema

UserDefinedFunction

A snowflake UDF

Data LakesData SharingData WarehousingDatabaseSQL

Properties

Name Type Description
name string The name of the UDF
is_temporary boolean Specifies whether the UDF is temporary or not
is_aggregate boolean Specifies whether the UDF is an aggregate function. Applicable only for Python language type
is_memoizable boolean Indicates whether the function is memoizable. Applicable only for Python language type.
is_table_function boolean True if the UDF is a table function; false otherwise.
valid_for_clustering boolean True if the UDF is valid for clustering; false otherwise.
is_secure boolean Specifies whether the function/procedure is secure or not
arguments array List of arguments for the function/procedure
return_type object Return type of the function/procedure. Should be a SQL data type or a table
language_config object Language that the function/procedure is written in
comment string Specifies a comment for the function/procedure
body string Function/procedure definition
created_on string The date and time when the function/procedure was created
schema_name string The name of the schema in which the function/procedure exists.
database_name string The name of the database in which the function/procedure exists.
min_num_arguments integer The minimum number of arguments
max_num_arguments integer The maximum number of arguments
owner string Role that owns the function/procedure
owner_role_type string The type of role that owns the function/procedure
is_builtin boolean If the function/procedure is built-in or not (user-defined)
View JSON Schema on GitHub

JSON Schema

snowflake-userdefinedfunction-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/UserDefinedFunction",
  "title": "UserDefinedFunction",
  "type": "object",
  "description": "A snowflake UDF",
  "properties": {
    "name": {
      "type": "string",
      "pattern": "^\"([^\"]|\"\")+\"|[a-zA-Z_][a-zA-Z0-9_$]*$",
      "description": "The name of the UDF",
      "example": "Example Title"
    },
    "is_temporary": {
      "type": "boolean",
      "description": "Specifies whether the UDF is temporary or not",
      "example": true
    },
    "is_aggregate": {
      "type": "boolean",
      "description": "Specifies whether the UDF is an aggregate function. Applicable only for Python language type",
      "example": true
    },
    "is_memoizable": {
      "type": "boolean",
      "description": "Indicates whether the function is memoizable. Applicable only for Python language type.",
      "example": true
    },
    "is_table_function": {
      "type": "boolean",
      "readOnly": true,
      "description": "True if the UDF is a table function; false otherwise.",
      "example": true
    },
    "valid_for_clustering": {
      "type": "boolean",
      "readOnly": true,
      "description": "True if the UDF is valid for clustering; false otherwise.",
      "example": true
    },
    "is_secure": {
      "type": "boolean",
      "description": "Specifies whether the function/procedure is secure or not",
      "example": true
    },
    "arguments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Argument"
      },
      "description": "List of arguments for the function/procedure",
      "example": []
    },
    "return_type": {
      "$ref": "#/components/schemas/ReturnType",
      "description": "Return type of the function/procedure. Should be a SQL data type or a table"
    },
    "language_config": {
      "$ref": "#/components/schemas/FunctionLanguage",
      "description": "Language that the function/procedure is written in"
    },
    "comment": {
      "type": "string",
      "description": "Specifies a comment for the function/procedure",
      "example": "example_value"
    },
    "body": {
      "type": "string",
      "description": "Function/procedure definition",
      "example": "example_value"
    },
    "created_on": {
      "type": "string",
      "format": "date-time",
      "readOnly": true,
      "description": "The date and time when the function/procedure was created",
      "example": "2026-01-15T10:30:00Z"
    },
    "schema_name": {
      "type": "string",
      "pattern": "^\"([^\"]|\"\")+\"|[a-zA-Z_][a-zA-Z0-9_$]*$",
      "readOnly": true,
      "description": "The name of the schema in which the function/procedure exists.",
      "example": "example_value"
    },
    "database_name": {
      "type": "string",
      "pattern": "^\"([^\"]|\"\")+\"|[a-zA-Z_][a-zA-Z0-9_$]*$",
      "readOnly": true,
      "description": "The name of the database in which the function/procedure exists.",
      "example": "example_value"
    },
    "min_num_arguments": {
      "type": "integer",
      "readOnly": true,
      "description": "The minimum number of arguments",
      "example": 10
    },
    "max_num_arguments": {
      "type": "integer",
      "readOnly": true,
      "description": "The maximum number of arguments",
      "example": 10
    },
    "owner": {
      "type": "string",
      "pattern": "^\"([^\"]|\"\")+\"|[a-zA-Z_][a-zA-Z0-9_$]*$",
      "readOnly": true,
      "description": "Role that owns the function/procedure",
      "example": "example_value"
    },
    "owner_role_type": {
      "type": "string",
      "pattern": "^\"([^\"]|\"\")+\"|[a-zA-Z_][a-zA-Z0-9_$]*$",
      "readOnly": true,
      "description": "The type of role that owns the function/procedure",
      "example": "example_value"
    },
    "is_builtin": {
      "type": "boolean",
      "readOnly": true,
      "description": "If the function/procedure is built-in or not (user-defined)",
      "example": true
    }
  },
  "required": [
    "name",
    "arguments",
    "return_type",
    "language_config"
  ]
}