logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

ALTER_ROUTINE - change the definition of a routine

Compatibility

       This statement is partially compatible with the ALTERROUTINE statement in the SQL standard. See under
       ALTER FUNCTION (ALTER_FUNCTION(7)) and ALTER PROCEDURE (ALTER_PROCEDURE(7)) for more details. Allowing
       routine names to refer to aggregate functions is a PostgreSQL extension.

Description

ALTERROUTINE changes the definition of a routine, which can be an aggregate function, a normal function,
       or a procedure. See under ALTER AGGREGATE (ALTER_AGGREGATE(7)), ALTER FUNCTION (ALTER_FUNCTION(7)), and
       ALTER PROCEDURE (ALTER_PROCEDURE(7)) for the description of the parameters, more examples, and further
       details.

Examples

       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.

Name

       ALTER_ROUTINE - change the definition of a routine

See Also

       ALTER AGGREGATE (ALTER_AGGREGATE(7)), ALTER FUNCTION (ALTER_FUNCTION(7)), ALTER PROCEDURE
       (ALTER_PROCEDURE(7)), DROP ROUTINE (DROP_ROUTINE(7))

       Note that there is no CREATE ROUTINE command.

PostgreSQL 17.5                                       2025                                      ALTERROUTINE(7)

Synopsis

       ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
           action [ ... ] [ RESTRICT ]
       ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
           RENAME TO new_name
       ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
           OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
       ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
           SET SCHEMA new_schema
       ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
           [ NO ] DEPENDS ON EXTENSION extension_name

       where action is one of:

           IMMUTABLE | STABLE | VOLATILE
           [ NOT ] LEAKPROOF
           [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
           PARALLEL { UNSAFE | RESTRICTED | SAFE }
           COST execution_cost
           ROWS result_rows
           SET configuration_parameter { TO | = } { value | DEFAULT }
           SET configuration_parameter FROM CURRENT
           RESET configuration_parameter
           RESET ALL

See Also