DROP AGGREGATE — удалить агрегатную функцию
DROP AGGREGATE [ IF EXISTS ]имя
(сигнатура_агр_функции
) [, ...] [ CASCADE | RESTRICT ] Здесьсигнатура_агр_функции
: * | [режим_аргумента
] [имя_аргумента
]тип_аргумента
[ , ... ] | [ [режим_аргумента
] [имя_аргумента
]тип_аргумента
[ , ... ] ] ORDER BY [режим_аргумента
] [имя_аргумента
]тип_аргумента
[ , ... ]
DROP AGGREGATE
удаляет существующую агрегатную функцию. Пользователь, выполняющий эту команду, должен быть владельцем агрегатной функции.
IF EXISTS
Не считать ошибкой, если агрегатная функция не существует. В этом случае будет выдано замечание.
имя
Имя существующей агрегатной функции (возможно, дополненное схемой).
режим_аргумента
Режим аргумента: IN
или VARIADIC
. По умолчанию подразумевается IN
.
имя_аргумента
Имя аргумента. Заметьте, что на самом деле DROP AGGREGATE
не обращает внимание на имена аргументов, так как для однозначной идентификации агрегатной функции достаточно только типов аргументов.
тип_аргумента
Тип входных данных, с которыми работает агрегатная функция. Чтобы сослаться на агрегатную функцию без аргументов, укажите вместо списка аргументов *
, а чтобы сослаться на сортирующую агрегатную функцию, добавьте ORDER BY
между указаниями непосредственных и агрегируемых аргументов.
CASCADE
Автоматически удалять объекты, зависящие от данной агрегатной функции (например, использующие её представления), и, в свою очередь, все зависящие от них объекты (см. Раздел 5.13).
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);
Оператор DROP AGGREGATE
отсутствует в стандарте SQL.