pg_aggregate
Эта страница переведена при помощи нейросети GigaChat.
В каталоге pg_aggregate хранится информация об агрегатных функциях. Агрегатная функция – это функция, которая работает с набором значений (обычно по одному столбцу из каждой строки, соответствующей условию запроса) и возвращает одно значение, вычисленное из всех этих значений. Типичными агрегатными функциями являются sum, count и max. Каждая запись в pg_aggregate является расширением записи в pg_proc. Запись pg_proc содержит имя агрегата, типы входных и выходных данных и другую информацию, аналогичную обычным функциям.
Столбцы pg_aggregate:
| Столбец | Тип данных | Описание |
|---|---|---|
| aggfnoid | regproc (ссылается на pg_proc.oid) | OID агрегатной функции pg_proc |
| aggkind | char | Вид агрегата: n - «обычные» агрегаты, o - «агрегаты с упорядоченным набором» или h - «агрегаты с гипотетическим набором» |
| aggnumdirectargs | int2 | Количество прямых (неагрегированных) аргументов упорядоченно-множественного или гипотетическо-множественного агрегата, считая переменный массив за один аргумент. Если равно pronargs, то агрегат должен быть переменным, и переменный массив описывает агрегированные аргументы, а также конечные прямые аргументы. Всегда равно нулю для обычных агрегатов |
| aggtransfn | regproc (ссылается на pg_proc.oid) | Переходная функция |
| aggfinalfn | regproc (ссылается на pg_proc.oid) | Заключительная функция (нулевая, если ее нет) |
| aggcombinefn | regproc (ссылается на pg_proc.oid) | Комбинированная функция (нулевая, если нет) |
| aggserialfn | regproc (ссылается на pg_proc.oid) | Функция сериализации (нулевая, если ее нет) |
| aggdeserialfn | regproc (ссылается на pg_proc.oid) | Функция десериализации (нулевая, если ее нет) |
| aggmtransfn | regproc (ссылается на pg_proc.oid) | Функция перехода вперед для режима подвижного агрегата (ноль, если нет) |
| aggminvtransfn | regproc (ссылается на pg_proc.oid) | Инверсная функция перехода для режима подвижного агрегата (ноль, если нет) |
| aggmfinalfn | regproc (ссылается на pg_proc.oid) | Конечная функция для режима «перемещение-агрегат» (ноль, если нет) |
| aggfinalextra | bool | True для передачи дополнительных фиктивных аргументов в aggfinalfn |
| aggmfinalextra | bool | True для передачи дополнительных фиктивных аргументов в aggmfinalfn |
| aggfinalmodify | char | Изменяет ли aggfinalfn значение состояния перехода: r - если оно доступно только для чтения, s - если aggtransfn не может быть применен после aggfinalfn, или w, если он записывает на значение |
| aggmfinalmodify | char | Как aggfinalmodify, но для aggmfinalfn |
| aggsortop | oid (ссылается на pg_operator.oid) | Ассоциированный оператор сортировки (нулевой, если его нет) |
| aggtranstype | oid (ссылается на на pg_type.oid) | Тип данных внутреннего перехода (состояния) агрегатной функции |
| aggtransspace | int4 | Приблизительный средний размер (в байтах) данных о состоянии перехода, или ноль, чтобы использовать оценку по умолчанию |
| aggmtranstype | oid (ссылается на на pg_type.oid) | Тип данных внутреннего перехода (состояния) агрегатной функции для режима подвижной агрегации (ноль, если нет) |
| aggmtransspace | int4 | Приблизительный средний размер (в байтах) данных о состоянии перехода для режима "перемещение-агрегат", или ноль, чтобы использовать оценку по умолчанию |
| agginitval | text | Начальное значение состояния перехода. Это текстовое поле, содержащее начальное значение в его внешнем строковом представлении. Если это поле равно null, то значение состояния перехода начинается с null |
| aggminitval | text | Начальное значение состояния перехода для режима "перемещение-агрегат". Это текстовое поле, содержащее начальное значение в его внешнем строковом представлении. Если это поле равно null, то значение состояния перехода начинается с null |
Новые агрегатные функции регистрируются с помощью команды CREATE AGGREGATE. Дополнительные сведения о записи агрегатных функций, значении функций перехода и т.д. см. в разделе «Пользовательские агрегатные функции»