alter_function(5)
ALTER FUNCTION()          SQL Commands           ALTER FUNCTION()
NAME
     ALTER FUNCTION - change the definition of a function
SYNOPSIS
     ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
         action [, ... ] [ RESTRICT ]
     ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
         RENAME TO new_name
     ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
         OWNER TO new_owner
     ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
         SET SCHEMA new_schema
     where action is one of:
         CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
         IMMUTABLE | STABLE | VOLATILE
         [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
DESCRIPTION
     ALTER FUNCTION changes the definition of a function.
     You must own the function to use ALTER FUNCTION.  To  change
     a  function's schema, you must also have CREATE privilege on
     the new schema.  To alter the owner,  you  must  also  be  a
     direct  or  indirect member of the new owning role, and that
     role must have CREATE privilege on  the  function's  schema.
     (These  restrictions enforce that altering the owner doesn't
     do anything you couldn't do by dropping and  recreating  the
     function.   However,  a superuser can alter ownership of any
     function anyway.)
PARAMETERS
     name The name (optionally schema-qualified) of  an  existing
          function.
     argmode
          The mode of an argument: either IN, OUT, or  INOUT.  If
          omitted,  the  default is IN.  Note that ALTER FUNCTION
          does not actually pay any attention to  OUT  arguments,
          since  only the input arguments are needed to determine
          the function's identity.  So it is sufficient  to  list
          the IN and INOUT arguments.
     argname
          The name of an argument.  Note that ALTER FUNCTION does
          not actually pay any attention to argument names, since
          only the argument data types are  needed  to  determine
          the function's identity.
SQL - Language StatementLast change: 2008-01-03                    1
ALTER FUNCTION()          SQL Commands           ALTER FUNCTION()
     argtype
          The data type(s) of the function's  arguments  (option-
          ally schema-qualified), if any.
     new_name
          The new name of the function.
     new_owner
          The new owner of the function. Note that if  the  func-
          tion  is  marked SECURITY DEFINER, it will subsequently
          execute as the new owner.
     new_schema
          The new schema for the function.
     CALLED ON NULL INPUT
     RETURNS NULL ON NULL INPUT
     STRICT
          CALLED ON NULL INPUT changes the function  so  that  it
          will  be  invoked when some or all of its arguments are
          null. RETURNS NULL ON NULL INPUT or STRICT changes  the
          function  so that it is not invoked if any of its argu-
          ments are null;  instead,  a  null  result  is  assumed
          automatically. See CREATE FUNCTION [create_function(5)]
          for more information.
     IMMUTABLE
     STABLE
     VOLATILE
          Change the volatility of the function to the  specified
          setting.   See CREATE FUNCTION [create_function(5)] for
          details.
     [ EXTERNAL ] SECURITY INVOKER
     [ EXTERNAL ] SECURITY DEFINER
          Change whether the function is a  security  definer  or
          not.  The  key word EXTERNAL is ignored for SQL confor-
          mance. See  CREATE  FUNCTION  [create_function(5)]  for
          more information about this capability.
     RESTRICT
          Ignored for conformance with the SQL standard.
EXAMPLES
     To rename the function sqrt for type integer to square_root:
     ALTER FUNCTION sqrt(integer) RENAME TO square_root;
SQL - Language StatementLast change: 2008-01-03                    2
ALTER FUNCTION()          SQL Commands           ALTER FUNCTION()
     To change the owner of the function sqrt for type integer to
     joe:
     ALTER FUNCTION sqrt(integer) OWNER TO joe;
     To change the schema of the function sqrt for  type  integer
     to maths:
     ALTER FUNCTION sqrt(integer) SET SCHEMA maths;
COMPATIBILITY
     This statement is partially compatible with the ALTER  FUNC-
     TION statement in the SQL standard. The standard allows more
     properties of a function to be modified, but does  not  pro-
     vide  the  ability  to  rename a function, make a function a
     security definer, or change the owner, schema, or volatility
     of  a  function. The standard also requires the RESTRICT key
     word, which is optional in PostgreSQL.
SEE ALSO
     CREATE   FUNCTION   [create_function(5)],   DROP    FUNCTION
     [drop_function(l)]
SQL - Language StatementLast change: 2008-01-03                    3
Man(1) output converted with
man2html