DROP FUNCTION

Description

The DROP FUNCTION statement drops a temporary or user defined function (UDF). An exception will be thrown if the function does not exist.

Syntax

DROP [TEMPORARY] FUNCTION [IF EXISTS] [db_name.]function_name;

Parameters

function_name
The name of an existing function.
TEMPORARY
Should be used to delete the `temporary` function.
IF EXISTS
If specified, no exception is thrown when the function does not exist.

Example

-- Create a permanent function `test_avg`
CREATE FUNCTION test_avg as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFAverage';

-- List user functions
SHOW USER FUNCTIONS;
  +-------------------+
  |     function      |
  +-------------------+
  | default.test_avg  |
  +-------------------+

-- Create Temporary function `test_avg`
CREATE TEMPORARY FUNCTION test_avg as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFAverage';

-- List user functions
SHOW USER FUNCTIONS;
  +-------------------+
  |     function      |
  +-------------------+
  | default.test_avg  |
  | test_avg          |
  +-------------------+

-- Drop Permanent function
DROP FUNCTION test_avg;
  +---------+
  | Result  |
  +---------+
  +---------+

-- Try to drop Permanent function which is not present
DROP FUNCTION test_avg;
  Error: Error running query:
  org.apache.spark.sql.catalyst.analysis.NoSuchPermanentFunctionException:
  Function 'default.test_avg' not found in database 'default'; (state=,code=0)

-- List the functions after dropping, it should list only temporary function
SHOW USER FUNCTIONS;
  +-----------+
  | function  |
  +-----------+
  | test_avg  |
  +-----------+
  
-- Drop Temporary function
DROP TEMPORARY FUNCTION IF EXISTS test_avg;
  +---------+
  | Result  |
  +---------+
  +---------+