ALTER ROUTINE — change the definition of a routine
ALTER ROUTINEname[ ( [ [argmode] [argname]argtype[, ...] ] ) ]action[ ... ] [ RESTRICT ] ALTER ROUTINEname[ ( [ [argmode] [argname]argtype[, ...] ] ) ] RENAME TOnew_nameALTER ROUTINEname[ ( [ [argmode] [argname]argtype[, ...] ] ) ] OWNER TO {new_owner| CURRENT_USER | SESSION_USER } ALTER ROUTINEname[ ( [ [argmode] [argname]argtype[, ...] ] ) ] SET SCHEMAnew_schemaALTER ROUTINEname[ ( [ [argmode] [argname]argtype[, ...] ] ) ] [ NO ] DEPENDS ON EXTENSIONextension_namewhereactionis one of: IMMUTABLE | STABLE | VOLATILE [ NOT ] LEAKPROOF [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER PARALLEL { UNSAFE | RESTRICTED | SAFE } COSTexecution_costROWSresult_rowsSETconfiguration_parameter{ TO | = } {value| DEFAULT } SETconfiguration_parameterFROM CURRENT RESETconfiguration_parameterRESET ALL
   ALTER ROUTINE changes the definition of a routine, which
   can be an aggregate function, a normal function, or a procedure.  See
   under ALTER AGGREGATE, ALTER FUNCTION,
   and ALTER PROCEDURE for the description of the
   parameters, more examples, and further details.
  
   To rename the routine foo for type
   integer to foobar:
ALTER ROUTINE foo(integer) RENAME TO foobar;
   This command will work independent of whether foo is an
   aggregate, function, or procedure.
  
   This statement is partially compatible with the ALTER
   ROUTINE statement in the SQL standard.  See
   under ALTER FUNCTION
   and ALTER PROCEDURE for more details.  Allowing
   routine names to refer to aggregate functions is
   a PostgreSQL extension.
  
   Note that there is no CREATE ROUTINE command.