pg_aggregate
The catalog pg_aggregate
stores information about
aggregate functions. An aggregate function is a function that
operates on a set of values (typically one column from each row
that matches a query condition) and returns a single value computed
from all these values. Typical aggregate functions are
sum
, count
, and
max
. Each entry in
pg_aggregate
is an extension of an entry
in pg_proc
. The pg_proc
entry carries the aggregate's name, input and output data types, and
other information that is similar to ordinary functions.
Table 51.2. pg_aggregate
Columns
Name | Type | References | Description |
---|---|---|---|
aggfnoid | regproc |
| pg_proc OID of the aggregate function |
aggkind | char | Aggregate kind:
n for “normal” aggregates,
o for “ordered-set” aggregates, or
h for “hypothetical-set” aggregates
| |
aggnumdirectargs | int2 | Number of direct (non-aggregated) arguments of an ordered-set or
hypothetical-set aggregate, counting a variadic array as one argument.
If equal to pronargs , the aggregate must be variadic
and the variadic array describes the aggregated arguments as well as
the final direct arguments.
Always zero for normal aggregates. | |
aggtransfn | regproc |
| Transition function |
aggfinalfn | regproc |
| Final function (zero if none) |
aggcombinefn | regproc |
| Combine function (zero if none) |
aggserialfn | regproc |
| Serialization function (zero if none) |
aggdeserialfn | regproc |
| Deserialization function (zero if none) |
aggmtransfn | regproc |
| Forward transition function for moving-aggregate mode (zero if none) |
aggminvtransfn | regproc |
| Inverse transition function for moving-aggregate mode (zero if none) |
aggmfinalfn | regproc |
| Final function for moving-aggregate mode (zero if none) |
aggfinalextra | bool | True to pass extra dummy arguments to aggfinalfn | |
aggmfinalextra | bool | True to pass extra dummy arguments to aggmfinalfn | |
aggsortop | oid |
| Associated sort operator (zero if none) |
aggtranstype | oid |
| Data type of the aggregate function's internal transition (state) data |
aggtransspace | int4 | Approximate average size (in bytes) of the transition state data, or zero to use a default estimate | |
aggmtranstype | oid |
| Data type of the aggregate function's internal transition (state) data for moving-aggregate mode (zero if none) |
aggmtransspace | int4 | Approximate average size (in bytes) of the transition state data for moving-aggregate mode, or zero to use a default estimate | |
agginitval | text | The initial value of the transition state. This is a text field containing the initial value in its external string representation. If this field is null, the transition state value starts out null. | |
aggminitval | text | The initial value of the transition state for moving-aggregate mode. This is a text field containing the initial value in its external string representation. If this field is null, the transition state value starts out null. |
New aggregate functions are registered with the CREATE AGGREGATE command. See Section 37.10 for more information about writing aggregate functions and the meaning of the transition functions, etc.