Alters a user-defined scalar function.


ALTER FUNCTION [[db-name.]schema.]function‑name( [ parameter‑list] ) {
    OWNER TO new‑owner
    | RENAME TO new‑name
    | SET FENCED boolean‑expr
    | SET SCHEMA new‑schema



Specifies a schema, by default public. If schema is any schema other than public, you must supply the schema name. For example:


If you specify a database, it must be the current database.

function‑name Name of the function to alter.
parameter‑list Comma-delimited list of parameters that are defined for this function. If none, specify an empty list.

Vertica supports function overloading, and uses the parameter list to identify the function to alter.

OWNER TO new‑owner Transfers function ownership to another user.
RENAME TO new‑name Renames this function.
SET FENCED { true | false } Specifies whether to enable fenced mode for this function.
SET SCHEMA new‑schema Moves the function to another schema.


Non-superuser: USAGE on the schema and one of the following:

  • Function owner
  • ALTER privilege on the function

For certain operations, non-superusers must also have the following schema privileges:

Operation Schema privileges required
RENAME TO (rename function) CREATE, USAGE
SET SCHEMA (move function to another schema)

  • CREATE: destination schema
  • USAGE: current schema


Rename function UDF_one to UDF_two:

=> ALTER FUNCTION UDF_one (int, int) RENAME TO UDF_two;

Move function UDF_two to schema macros:

=> ALTER FUNCTION UDF_two (int, int) SET SCHEMA macros;

Disable fenced mode for function UDF_two:

=> ALTER FUNCTION UDF_two (int, int) SET FENCED false;

See Also