DROP AGGREGATE

Удаляет агрегатную функцию.

Синтаксис

DROP AGGREGATE [IF EXISTS] <name> ( <aggregate_signature> ) [, ...] [CASCADE | RESTRICT]

where <aggregate_signature> is:

* |
[ <argmode> ] [ <argname> ] <argtype> [ , ... ] |
[ [ <argmode> ] [ <argname> ] <argtype> [ , ... ] ] ORDER BY [ <argmode> ] [ <argname> ] <argtype> [ , ... ]
Description
DROP AGGREGATE removes an existing aggregate function. To run this command the current user must be the owner of the aggregate function.

Параметры

  • IF EXISTS
    • Не выдавать ошибку, если агрегатная функция не существует. В этом случае выводится уведомление.
  • name
    • Имя (при необходимости с указанием схемы) существующей агрегатной функции.
  • argmode
    • Режим аргумента: IN или VARIADIC. Если опущено, по умолчанию используется IN.
  • argname
    • Имя аргумента. Обратите внимание, что команда DROP AGGREGATE фактически игнорирует имена аргументов, поскольку для определения идентичности агрегатной функции требуются только типы данных аргументов.
  • argtype
    • Тип входных данных, с которыми работает агрегатная функция. Чтобы сослаться на агрегатную функцию без аргументов, вместо списка спецификаций аргументов следует использовать символ *. Для ссылки на агрегатную функцию упорядоченного набора используйте ORDER BY между спецификациями прямых и агрегированных аргументов.
  • CASCADE
    • Автоматически удалять объекты, зависящие от агрегатной функции (например, представления, которые её используют), а также все объекты, зависящие от этих объектов.
  • RESTRICT
    • Отказаться от удаления агрегатной функции, если от неё зависят какие-либо объекты. Это поведение по умолчанию.

Замечания

Альтернативные варианты синтаксиса для обращения к агрегатным функциям упорядоченных наборов описаны в разделе ALTER AGGREGATE.

Примеры

Удалить агрегатную функцию myavg для типа integer:

DROP AGGREGATE myavg(integer);

Удалить гипотетическую агрегатную функцию myrank, принимающую произвольный список столбцов сортировки и соответствующий список прямых аргументов:

DROP AGGREGATE myrank(VARIADIC "any" ORDER BY VARIADIC "any");

Удалить несколько агрегатных функций одной командой:

DROP AGGREGATE myavg(integer), myavg(bigint);

Соответствие стандарту

В стандарте SQL отсутствует оператор DROP AGGREGATE.

См. также

ALTER AGGREGATE, CREATE AGGREGATE