ALTER AGGREGATE — modifica a definição de uma função de agregação
ALTER AGGREGATEnome(assinatura_da_agregação) RENAME TOnovo_nomeALTER AGGREGATEnome(assinatura_da_agregação) OWNER TO {novo_dono| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER AGGREGATEnome(assinatura_da_agregação) SET SCHEMAnovo_esquemaondeassinatura_da_agregaçãoé: * | [modo_do_argumento] [nome_do_argumento]tipo_de_dados_do_argumento[ , ... ] | [ [modo_do_argumento] [nome_do_argumento]tipo_de_dados_do_argumento[ , ... ] ] ORDER BY [modo_do_argumento] [nome_do_argumento]tipo_de_dados_do_argumento[ , ... ]
O comando ALTER AGGREGATE modifica a definição
de uma função de agregação.
É necessário ser o dono da função de agregação para poder executar o
comando ALTER AGGREGATE.
Para alterar o esquema da função de agregação, também é necessário
possuir o privilégio CREATE no novo esquema.
Para alterar o dono, é necessário ser capaz de executar o comando
SET ROLE para a função de banco de dados
(role) que será a nova dona,
e esta função de banco de dados precisa possuir o privilégio
CREATE no esquema da função de agregação.
(Estas restrições impõem que alterar o dono não faz nada que
não poderia ser feito excluindo e recriando a função de agregação.
Entretanto, um superusuário pode alterar o dono de qualquer
função de agregação.)
nomeO nome (opcionalmente qualificado pelo esquema) da função de agregação existente.
modo_do_argumento
O modo do argumento: IN ou VARIADIC.
Se omitido, o padrão é IN.
nome_do_argumento
O nome do argumento.
Note que o comando ALTER AGGREGATE não presta
atenção aos nomes dos argumentos, porque são necessários apenas
os tipos de dados dos argumentos para determinar a identidade
da função de agregação.
tipo_de_dados_do_argumento
O tipo de dados de entrada no qual a função de agregação opera.
Para fazer referência a uma função de agregação de argumento zero,
deve ser escrito * no lugar da lista de
especificações de argumento.
Para fazer referência a uma função de agregação de conjunto ordenado,
deve ser escrito ORDER BY entre as especificações
de argumento direto e agregado.
novo_nomeO novo nome da função de agregação.
novo_donoO novo dono da função de agregação.
novo_esquemaO novo esquema para a função de agregação.
A sintaxe recomendada para referenciar uma agregação de conjunto
ordenado é escrever ORDER BY entre as
especificações de argumento direto e agregado, no mesmo estilo de
CREATE AGGREGATE.
Entretanto, também funciona omitir ORDER BY
e apenas colocar as especificações de argumento direto e agregado
em uma única lista.
Nesta forma abreviada, se for usado VARIADIC "any"
tanto nos argumentos diretos quanto nos argumentos agregados,
deve ser escrito VARIADIC "any" apenas uma vez.
Para renomear a função de agregação myavg do tipo
integer para my_average:
ALTER AGGREGATE myavg(integer) RENAME TO my_average;
Para mudar o dono da função de agregação myavg
do tipo integer para joe:
ALTER AGGREGATE myavg(integer) OWNER TO joe;
Para mover a agregação de conjunto ordenado mypercentile
com argumento direto do tipo float8 e argumento agregado
do tipo integer para o esquema myschema:
ALTER AGGREGATE mypercentile(float8 ORDER BY integer) SET SCHEMA myschema;
Funciona também assim:
ALTER AGGREGATE mypercentile(float8, integer) SET SCHEMA myschema;
Não existe o comando ALTER AGGREGATE no padrão
SQL.