DROP AGGREGATE — elimina una función de agregación
DROP AGGREGATE [ IF EXISTS ]nombre(firma_agregado) [, ...] [ CASCADE | RESTRICT ] dondefirma_agregadoes: * | [modo_arg] [nombre_arg]tipo_arg[ , ... ] | [ [modo_arg] [nombre_arg]tipo_arg[ , ... ] ] ORDER BY [modo_arg] [nombre_arg]tipo_arg[ , ... ]
DROP AGGREGATE elimina una función de
agregación existente. Para ejecutar este comando, el usuario actual
debe ser el propietario de la función de agregación.
IF EXISTSNo arroja un error si la función de agregación no existe. Se emite una advertencia (notice) en este caso.
nombreEl nombre (opcionalmente calificado por esquema) de una función de agregación existente.
modo_arg
El modo de un argumento: IN o VARIADIC.
Si se omite, el valor predeterminado es IN.
nombre_arg
El nombre de un argumento.
Ten en cuenta que DROP AGGREGATE en realidad no presta
atención 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.
tipo_arg
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 con cero 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 los
agregados.
CASCADEElimina automáticamente los objetos que dependen de la función de agregación (como las vistas que la utilizan), y a su vez todos los objetos que dependen de esos objetos (consulta la Section 5.15).
RESTRICTRechaza eliminar la función de agregación si hay objetos que dependen de ella. Este es el comportamiento predeterminado.
Las sintaxis alternativas para hacer referencia a agregados de conjunto ordenado (ordered-set) se describen en la ALTER AGGREGATE.
Para eliminar la función de agregación myavg para el tipo
integer:
DROP AGGREGATE myavg(integer);
Para eliminar la función de agregación de conjunto hipotético myrank,
que toma una lista arbitraria de columnas de ordenación y una lista coincidente
de argumentos directos:
DROP AGGREGATE myrank(VARIADIC "any" ORDER BY VARIADIC "any");
Para eliminar múltiples funciones de agregación en un solo comando:
DROP AGGREGATE myavg(integer), myavg(bigint);
No existe la sentencia DROP AGGREGATE en el estándar
SQL.