DROP FUNCTION

  • Capella Operational
  • reference
    +
    The DROP FUNCTION statement enables you to delete a user-defined function.

    Prerequisites

    To manage …​ You must have …​

    Global inline functions

    Manage Global Functions role.

    Scoped inline functions

    Manage Scope Functions role, with permissions on the specified bucket and scope.

    Global external functions

    Manage Global External Functions role.

    Scoped external functions

    Manage Scope External Functions role, with permissions on the specified bucket and scope.

    For more details about user roles, see Authorization.

    Syntax

    drop-function ::= 'DROP' 'FUNCTION' function ( 'IF' 'EXISTS' )?
    Syntax diagram: refer to source code listing
    function

    Function Name

    Function Name

    function ::= ( namespace ':' ( bucket '.' scope '.' )? )? identifier
    Syntax diagram: refer to source code listing

    The name of the function. This is usually an unqualified identifier, such as func1 or `func-1`. In this case, the path to the function is determined by the current query context.

    To delete a global function in a particular namespace, the function name must be a qualified identifier with a namespace, such as default:func1. Similarly, to delete a scoped function in a particular scope, the function name must be a qualified identifier with the full path to a scope, such as default:`travel-sample`.inventory.func1. Refer to Global Functions and Scoped Functions for more information.

    The name of a user-defined function is case-sensitive, unlike that of a built-in function. You must delete the user-defined function using the same case that was used when it was created.

    IF EXISTS Clause

    The optional IF EXISTS clause enables the statement to complete successfully when the specified function doesn’t exist.

    When the function does not exist within the specified context: [1]

    • If this clause is not present, an error is generated.

    • If this clause is present, the statement does nothing and completes without error.

    Usage

    When you drop a SQL++ managed user-defined function, the associated external function code is deleted also.

    Examples

    Example 1. Drop an inline function

    This statement deletes an inline function called celsius.

    DROP FUNCTION celsius;

    You can run the following query to check that the function is no longer available.

    SELECT * FROM system:functions;
    Example 2. Drop a SQL++ managed user-defined function

    This statement deletes a SQL++ managed user-defined function called add100.

    DROP FUNCTION add100 IF EXISTS;

    You can run the following query to check that the function is no longer available.

    SELECT * FROM system:functions;

    1. That is, you are dropping a global function, and the function does not exist within the specified namespace; or, you are dropping a scoped function, and the function does not exist within the specified scope.