В Postgresql вы можете создавать дополнительные агрегатные функции с помощью
CREATE AGGREGATE name(...);
Но это дает ошибку, если агрегат уже существует в базе данных, поэтому как я могу проверить, существует ли агрегат уже в базе данных Postgres?





SELECT * FROM pg_proc WHERE proname = 'name' AND proisagg;
drop aggregate if exists my_agg(varchar);
create aggregate my_agg(varchar) (...);
select * from pg_aggregate
where aggfnoid = 'my_agg'::regproc;