54.2. pg_aggregate
В каталоге pg_aggregate хранится информация об агрегатных функциях. Агрегатная функция — это такая функция, которая работает с множеством значений (обычно, с содержимым одного столбца всех строк, удовлетворяющих условию запроса) и возвращает одно значение, вычисленное по этому множеству. Типичные агрегатные функции — sum, count и max. Все записи в pg_aggregate представляют собой дополнение записей в pg_proc. Запись в pg_proc определяет имя агрегатной функции, типы входных и выходных данных, а также другие свойства, подобные имеющимся у обычных функций.
Таблица 54.2. Столбцы pg_aggregate
| Тип столбца Описание | 
|---|
| 
 OID агрегатной функции в  | 
| 
 Тип агрегатной функции:  | 
| 
 Число непосредственных (не агрегируемых) аргументов для сортирующей или гипотезирующей агрегатной функции (переменный массив аргументов считается одним аргументом). Если равняется  | 
| 
 Функция перехода | 
| 
 Функция завершения (ноль, если её нет) | 
| 
 Комбинирующая функция (ноль, если её нет) | 
| 
 Функция сериализации (ноль, если её нет) | 
| 
 Функция десериализации (ноль, если её нет) | 
| 
 Функция прямого перехода для режима движущегося агрегата (ноль, если её нет) | 
| 
 Функция обратного перехода для режима движущегося агрегата (ноль, если её нет) | 
| 
 Функция завершения для режима движущегося агрегата (ноль, если её нет) | 
| 
 Со значением True в  | 
| 
 Со значением True в  | 
| 
 Признак модифицирования переходного состояния функцией  | 
| 
 Аналогично  | 
| 
 Связанный оператор сортировки (ноль, если его нет) | 
| 
 Тип данных внутреннего состояния (перехода) агрегатной функции | 
| 
 Приблизительный средний размер (в байтах) данных состояния перехода, либо ноль для выбора значения по умолчанию | 
| 
 Тип данных внутреннего состояния (перехода) для агрегатной функции в режиме движущегося агрегата (ноль в случае отсутствия) | 
| 
 Приблизительный средний размер (в байтах) данных состояния перехода для режима движущегося агрегата, либо ноль для выбора значения по умолчанию | 
| 
 Начальное значение для состояния перехода. Это текстовое поле, содержащее значение в виде внешнего строкового представления. Если это поле содержит NULL, начальным значением состояния перехода будет NULL. | 
| 
 Начальное значение для состояния перехода в режиме движущегося агрегата. Это текстовое поле, содержащее значение в виде внешнего строкового представления. Если это поле содержит NULL, начальным значением состояния перехода будет NULL. | 
Новые агрегатные функции создаются командой CREATE AGGREGATE. За дополнительными сведениями о разработке агрегатных функций, значении функций перехода и т. д. обратитесь к Разделу 40.12.