ALTER AGGREGATE — cambiar la definición de una función de agregación
ALTER AGGREGATEname(aggregate_signature) RENAME TOnew_nameALTER AGGREGATEname(aggregate_signature) OWNER TO {new_owner| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER AGGREGATEname(aggregate_signature) SET SCHEMAnew_schemadondeaggregate_signaturees: * | [argmode] [argname]argtype[ , ... ] | [ [argmode] [argname]argtype[ , ... ] ] ORDER BY [argmode] [argname]argtype[ , ... ]
ALTER AGGREGATE cambia la definición de una
función de agregación.
Debes ser el propietario de la función de agregación para poder usar ALTER AGGREGATE.
Para cambiar el esquema de una función de agregación, también debes tener el
privilegio CREATE en el nuevo esquema.
Para alterar el propietario, debes poder hacer SET ROLE al
nuevo rol propietario, y ese rol debe tener el privilegio CREATE
en el esquema de la función de agregación.
(Estas restricciones garantizan que al cambiar el propietario no puedas hacer nada
que no pudieras hacer eliminando y recreando la función de agregación. Sin embargo,
un superusuario puede cambiar la propiedad de cualquier función de agregación de todos modos).
nameEl nombre (opcionalmente calificado por esquema) de una función de agregación existente.
argmode
El modo de un argumento: IN o VARIADIC.
Si se omite, el valor predeterminado es IN.
argname
El nombre de un argumento.
Ten en cuenta que ALTER AGGREGATE no presta atención
en realidad a los nombres de los argumentos, ya que solo se necesitan los tipos
de datos de los argumentos para determinar la identidad de la función de agregación.
argtype
Un tipo de datos de entrada sobre el cual opera la función de agregación.
Para hacer referencia a una función de agregación sin argumentos, escribe *
en lugar de la lista de especificaciones de argumentos.
Para hacer referencia a una función de agregación de conjunto ordenado (ordered-set), escribe
ORDER BY entre las especificaciones de los argumentos directos y agregados.
new_nameEl nuevo nombre de la función de agregación.
new_ownerEl nuevo propietario de la función de agregación.
new_schemaEl nuevo esquema para la función de agregación.
La sintaxis recomendada para hacer referencia a una agregación de conjunto ordenado
es escribir ORDER BY entre las especificaciones de los argumentos
directos y agregados, con el mismo estilo que en
CREATE AGGREGATE. Sin embargo, también funcionará
si se omite ORDER BY y simplemente se colocan las especificaciones de los
argumentos directos y agregados en una sola lista. En esta forma abreviada,
si se utilizó VARIADIC "any" tanto en la lista de argumentos directos como
en la de agregados, escribe VARIADIC "any" solo una vez.
Para renombrar la función de agregación myavg para el tipo
integer a my_average:
ALTER AGGREGATE myavg(integer) RENAME TO my_average;
Para cambiar el propietario de la función de agregación myavg para el tipo
integer a joe:
ALTER AGGREGATE myavg(integer) OWNER TO joe;
Para mover la agregación de conjunto ordenado mypercentile con
un argumento directo de tipo float8 y un argumento agregado
de tipo integer al esquema myschema:
ALTER AGGREGATE mypercentile(float8 ORDER BY integer) SET SCHEMA myschema;
Esto también funcionará:
ALTER AGGREGATE mypercentile(float8, integer) SET SCHEMA myschema;
No existe la sentencia ALTER AGGREGATE en el
estándar SQL.