ALTER FUNCTION

Nome

ALTER FUNCTION -- altera a definição de uma função

Sinopse

ALTER FUNCTION nome ( [ [ modo_do_argumento ] [ nome_do_argumento ] tipo_do_argumento [, ...] ] )
    ação [, ... ] [ RESTRICT ]
ALTER FUNCTION nome ( [ [ modo_do_argumento ] [ nome_do_argumento ] tipo_do_argumento [, ...] ] )
    RENAME TO novo_nome
ALTER FUNCTION nome ( [ [ modo_do_argumento ] [ nome_do_argumento ] tipo_do_argumento [, ...] ] )
    OWNER TO novo_dono
ALTER FUNCTION nome ( [ [ modo_do_argumento ] [ nome_do_argumento ] tipo_do_argumento [, ...] ] )
    SET SCHEMA novo_esquema

onde ação é um entre:

    CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
    IMMUTABLE | STABLE | VOLATILE
    [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER

Descrição

O comando ALTER FUNCTION altera a definição de uma função.

É necessário ser o dono da função para utilizar ALTER FUNCTION. Para mudar o esquema da função também é necessário possuir o privilégio CREATE no novo esquema. Para alterar o dono, também é necessário ser um membro direto ou indireto do novo papel (role) dono, e este papel deve possuir o privilégio CREATE no esquema da função (Estas restrições garantem que alterar o dono não faz nada que não poderia ser feito removendo e recriando a função. Entretanto, de qualquer forma, um superusuário sempre pode alterar o dono de qualquer função).

Parâmetros

nome

O nome (opcionalmente qualificado pelo esquema) de uma função existente.

modo_do_argumento

O modo do argumento da função: um entre IN, OUT e INOUT. Se for omitido, o padrão é IN. Deve ser observado que, na verdade, o comando ALTER FUNCTION não presta nenhuma atenção aos argumentos OUT, uma vez que somente há necessidade dos argumentos de entrada para determinar a identidade da função. Portanto, basta listar os argumentos IN e INOUT.

nome_do_argumento

O nome do argumento da função. Deve ser observado que, na verdade, o comando ALTER FUNCTION não presta nenhuma atenção aos nomes dos argumentos, uma vez que somente há necessidade dos tipos de dado dos argumentos para determinar a identidade da função.

tipo_do_argumento

O tipo de dado do argumento da função (opcionalmente qualificado pelo esquema), caso haja algum.

novo_nome

O novo nome da função.

novo_dono

O novo dono da função. Deve ser observado que, se a função estiver marcada com SECURITY DEFINER, esta será executada subseqüentemente com o novo dono.

novo_esquema

O novo esquema da função.

CALLED ON NULL INPUT
RETURNS NULL ON NULL INPUT
STRICT

CALLED ON NULL INPUT altera a função para que esta seja chamada quando algum ou todos os seus argumentos forem nulos. RETURNS NULL ON NULL INPUT ou STRICT altera a função para que esta não seja chamada se algum de seus argumentos for nulo; em vez disso, é assumido automaticamente um resultado nulo. Para obter mais informações deve ser consultado o comando CREATE FUNCTION.

IMMUTABLE
STABLE
VOLATILE

Altera a volatilidade da função para a definição especificada. Para obter mais informações deve ser consultado o comando CREATE FUNCTION.

[ EXTERNAL ] SECURITY INVOKER
[ EXTERNAL ] SECURITY DEFINER

Altera se a função é definidora de segurança ou não. A palavra chave EXTERNAL é ignorada, existindo apenas por motivo de conformidade com o padrão SQL. Para obter mais informações sobre esta funcionalidade deve ser consultado o comando CREATE FUNCTION.

RESTRICT

Ignorada, existindo apenas por motivo de conformidade com o padrão SQL.

Exemplos

Para mudar o nome da função sqrt para o tipo integer para raiz_quadrada:

ALTER FUNCTION sqrt(integer) RENAME TO raiz_quadrada;

Para mudar o dono da função sqrt para o tipo integer para joel:

ALTER FUNCTION sqrt(integer) OWNER TO joel;

Para mudar o esquema da função sqrt para o tipo integer para maths:

ALTER FUNCTION sqrt(integer) SET SCHEMA maths;

Compatibilidade

Este comando é parcialmente compatível com o comando ALTER FUNCTION do padrão SQL. O padrão permite que sejam modificadas mais propriedades da função, mas não fornece a funcionalidade de mudar o nome da função, tornar a função definidora de segurança, ou mudar o dono, o esquema ou a volatilidade da função. O padrão também requer a palavra chave RESTRICT, que é opcional no PostgreSQL.

Consulte também

CREATE FUNCTION, DROP FUNCTION
SourceForge.net Logo CSS válido!