Перейти к основному содержимому

pg_aggregate

В каталоге pg_aggregate хранится информация об агрегатных функциях. Агрегатная функция – это функция, которая работает с набором значений (обычно по одному столбцу из каждой строки, соответствующей условию запроса) и возвращает одно значение, вычисленное из всех этих значений. Типичными агрегатными функциями являются sum, count и max. Каждая запись в pg_aggregate является расширением записи в pg_proc. Запись pg_proc содержит имя агрегата, типы входных и выходных данных и другую информацию, аналогичную обычным функциям.

СтолбецТип данныхОписание
aggfnoidregproc (ссылается на pg_proc.oid)OID агрегатной функции pg_proc
aggkindcharВид агрегата: n - «обычные» агрегаты, o - «агрегаты с упорядоченным набором» или h - «агрегаты с гипотетическим набором»
aggnumdirectargsint2Количество прямых (неагрегированных) аргументов упорядоченно-множественного или гипотетическо-множественного агрегата, считая переменный массив за один аргумент. Если равно pronargs, то агрегат должен быть переменным, и переменный массив описывает агрегированные аргументы, а также конечные прямые аргументы. Всегда равно нулю для обычных агрегатов
aggtransfnregproc (ссылается на pg_proc.oid)Переходная функция
aggfinalfnregproc (ссылается на pg_proc.oid)Заключительная функция (нулевая, если ее нет)
aggcombinefnregproc (ссылается на pg_proc.oid)Комбинированная функция (нулевая, если нет)
aggserialfnregproc (ссылается на pg_proc.oid)Функция сериализации (нулевая, если ее нет)
aggdeserialfnregproc (ссылается на pg_proc.oid)Функция десериализации (нулевая, если ее нет)
aggmtransfnregproc (ссылается на pg_proc.oid)Функция перехода вперед для режима подвижного агрегата (ноль, если нет)
aggminvtransfnregproc (ссылается на pg_proc.oid)Инверсная функция перехода для режима подвижного агрегата (ноль, если нет)
aggmfinalfnregproc (ссылается на pg_proc.oid)Конечная функция для режима «перемещение-агрегат» (ноль, если нет)
aggfinalextraboolTrue для передачи дополнительных фиктивных аргументов в aggfinalfn
aggmfinalextraboolTrue для передачи дополнительных фиктивных аргументов в aggmfinalfn
aggfinalmodifycharИзменяет ли aggfinalfn значение состояния перехода: r - если оно доступно только для чтения, s - если aggtransfn не может быть применен после aggfinalfn, или w, если он записывает на значение
aggmfinalmodifycharКак aggfinalmodify, но для aggmfinalfn
aggsortopoid (ссылается на pg_operator.oid)Ассоциированный оператор сортировки (нулевой, если его нет)
aggtranstypeoid (ссылается на на pg_type.oid)Тип данных внутреннего перехода (состояния) агрегатной функции
aggtransspaceint4Приблизительный средний размер (в байтах) данных о состоянии перехода, или ноль, чтобы использовать оценку по умолчанию
aggmtranstypeoid (ссылается на на pg_type.oid)Тип данных внутреннего перехода (состояния) агрегатной функции для режима подвижной агрегации (ноль, если нет)
aggmtransspaceint4Приблизительный средний размер (в байтах) данных о состоянии перехода для режима "перемещение-агрегат", или ноль, чтобы использовать оценку по умолчанию
agginitvaltextНачальное значение состояния перехода. Это текстовое поле, содержащее начальное значение в его внешнем строковом представлении. Если это поле равно null, то значение состояния перехода начинается с null
aggminitvaltextНачальное значение состояния перехода для режима "перемещение-агрегат". Это текстовое поле, содержащее начальное значение в его внешнем строковом представлении. Если это поле равно null, то значение состояния перехода начинается с null

Новые агрегатные функции регистрируются с помощью команды CREATE AGGREGATE.