import Since from '@components/shared/Since.astro' import RailroadDiagram from '@components/RailroadDiagram.astro' import Tabs from '@components/Tabs/Tabs.astro' import TabItem from '@components/Tabs/TabItem.astro'

ALTER FUNCTION statement

The ALTER FUNCTION statement can be used to modify an existing defined function.

Statement syntax

SurrealQL Syntax

ALTER FUNCTION [ IF EXISTS ] fn::@name
[ ( [ $argument: @type, ... ] ) ] [ -> @type | DROP RETURNS ]
[ { @query ... } ]
[ COMMENT @string | DROP COMMENT ]
[ PERMISSIONS [ NONE | FULL | WHERE @condition ] ]

Example usage

-- Declare a function
DEFINE FUNCTION fn::get_message($input: any) {
$input.message
};

-- No `message` field, returns nothing
fn::get_message("wrong input");

-- Tighten up the valid input for the function
ALTER FUNCTION fn::get_message($input: { error_code: 200, message: string } | {error_code: 404, message: string} ) {
$input.message
};

-- Returns an error now
fn::get_message("wrong input");

-- Okay, returns 'Looks good'
fn::get_message({ error_code: 200, message: "Looks good" });