Начало работы
Подключение
Тесты производительности
Развёртывание
Использование данных
Загрузка данных
Миграция данных
Запрос данных
Управление кластерами
Обновление
Глобальное обслуживание
Масштабирование
Мониторинг
Безопасность
Лучшие практики
Технические принципы
Типы данных
Хранилище
Исполняющий движок
Потоковая обработка (Domino)
MARS3 Индексы
Расширения
Расширенные функции
Расширенный запрос
Федеративные запросы
Grafana
Резервное копирование и восстановление
Аварийное восстановление
Руководство
Настройка производительности
Устранение неполадок
Инструменты
Параметры конфигурации
SQL-команда
Часто задаваемые вопросы
Изменяет определение агрегатной функции
ALTER AGGREGATE <name> ( <aggregate_signature> ) RENAME TO <new_name>
ALTER AGGREGATE <name> ( <aggregate_signature> )
OWNER TO { <new_owner> | CURRENT_USER | SESSION_USER }
ALTER AGGREGATE <name> ( <aggregate_signature> ) SET SCHEMA <new_schema>
where <aggregate_signature> is:
* |
[ <argmode> ] [ <argname> ] <argtype> [ , ... ] |
[ [ <argmode> ] [ <argname> ] <argtype> [ , ... ] ] ORDER BY [ <argmode> ] [ <argname> ] <argtype> [ , ... ]
ALTER AGGREGATE изменяет определение агрегатной функции.
Чтобы использовать ALTER AGGREGATE, вы должны быть владельцем агрегатной функции. Чтобы изменить схему агрегатной функции, вы также должны иметь привилегию CREATE в новой схеме. Чтобы изменить владельца, вы также должны быть прямым или косвенным членом новой роли-владельца, и эта роль должна обладать привилегией CREATE в схеме агрегатной функции. (Эти ограничения обеспечивают то, что изменение владельца не позволяет сделать ничего такого, что нельзя было бы сделать путём удаления и повторного создания агрегатной функции. Однако суперпользователь может изменить владельца любой агрегатной функции.)
Рекомендуемый способ ссылки на агрегатную функцию упорядоченного набора — указать ORDER BY между спецификациями прямых и агрегируемых аргументов, аналогично CREATE AGGREGATE. Тем не менее, можно также опустить ORDER BY и просто объединить прямые и агрегируемые аргументы в один список. В этой краткой форме, если VARIADIC "any" использовался как в списке прямых, так и в списке агрегируемых аргументов, VARIADIC "any" следует указывать только один раз.
Переименовать агрегатную функцию myavg для типа integer в my_average:
ALTER AGGREGATE myavg(integer) RENAME TO my_average;
Изменить владельца агрегатной функции myavg для типа integer на joe:
ALTER AGGREGATE myavg(integer) OWNER TO joe;
Переместить агрегатную функцию упорядоченного набора mypercentile с прямым аргументом типа float8 и агрегируемым аргументом типа integer в схему myschema:
ALTER AGGREGATE mypercentile(float8 ORDER BY integer) SET SCHEMA myschema;
Также будет работать следующий вариант:
ALTER AGGREGATE mypercentile(float8, integer) SET SCHEMA myschema;
Оператор ALTER AGGREGATE отсутствует в стандарте SQL.