pg_aggregate
Le catalogue pg_aggregate
stocke les informations
concernant les fonctions d'agrégat. Une fonction d'agrégat est une fonction
qui opère sur un ensemble de données (typiquement une colonne de chaque ligne
qui correspond à une condition de requête) et retourne une valeur unique
calculée à partir de toutes ces valeurs.
Les fonctions d'agrégat classiques sont
sum
(somme), count
(compteur) et
max
(plus grande valeur). Chaque entrée de
pg_aggregate
est une extension d'une entrée de
pg_proc
. L'entrée de pg_proc
contient le nom de l'agrégat, les types de données d'entrée et de sortie, et
d'autres informations similaires aux fonctions ordinaires.
Tableau 51.2. Les colonnes de pg_aggregate
Nom | Type | Références | Description |
---|---|---|---|
aggfnoid | regproc |
| OID pg_proc de la fonction d'agrégat |
aggkind | char | Type d'agrégat :
n pour les agrégats « normaux » (standards),
o pour les agrégats d'« ensemble trié », ou
h pour les agrégats d'« ensembles hypothétiques »
| |
aggnumdirectargs | int2 | Nombre d'arguments directs (non agrégés) d'un ensemble trié ou d'un
ensemble hypothétique, comptant un tableau variadique comme un seul
argument. Si cette valeur est égale à pronargs ,
l'agrégat doit être variadique et le tableau variadique décrit aussi les
arguments agrégés ainsi que les arguments directs finaux. Toujours à 0
pour les agrégats standards. | |
aggtransfn | regproc |
| Fonction de transition |
aggfinalfn | regproc |
| Fonction finale (0 s'il n'y en a pas) |
aggcombinefn | regproc |
| Fonction combine (zero s'il n'y en a pas) |
aggserialfn | regproc |
| Fonction de sérialisation (zero s'il n'y en a pas) |
aggdeserialfn | regproc |
| Fonction de désérialisation (zero s'il n'y en a pas) |
aggmtransfn | regproc |
| Fonction de transition en avant pour le mode d'agrégat avec déplacement (zéro sinon) |
aggminvtransfn | regproc |
| Fonction de transition inverse pour le mode d'agrégat avec déplacement (zéro sinon) |
aggmfinalfn | regproc |
| Fonction finale pour le mode d'agrégat avec déplacement (zéro sinon) |
aggfinalextra | bool | Vrai pour passer des arguments supplémentaires à aggfinalfn | |
aggmfinalextra | bool | Vrai pour passer des arguments supplémentaires à aggmfinalfn | |
aggfinalmodify | char | Si aggfinalfn modifie la valeur d'état
de transition :
r s'il est en lecture seule,
s si aggtransfn
ne peut pas être appliqué après aggfinalfn ,
ou w s'il écrit sur la valeur
| |
aggmfinalmodify | char | Comme aggfinalmodify , mais pour
aggmfinalfn
| |
aggsortop | oid |
| Opérateur de tri associé (0 s'il n'y en a pas) |
aggtranstype | oid |
| Type de la donnée interne de transition (état) de la fonction d'agrégat |
aggtransspace | int4 | Taille moyenne approximative (en octets) des données de l'état de transition, ou zéro pour utiliser une estimation par défaut | |
aggmtranstype | oid |
| Type de données de la transition interne (état) de la fonction d'agrégat pour le mode d'agrégat avec déplacement (zéro sinon) |
aggmtransspace | int4 | Taille moyenne approximative (en octets) des données d'état de transition pour le mode d'agrégat avec déplacement ou zéro pour utiliser une estimation par défaut | |
agginitval | text | Valeur initiale de la fonction de transition. C'est un champ texte qui contient la valeur initiale dans sa représentation externe en chaîne de caractères. Si ce champ est NULL, la valeur d'état de transition est initialement NULL. | |
aggminitval | text | La valeur initiale de l'état de transition pour le mode d'agrégat avec déplacement. C'est un champ texte contenant la valeur initiale dans sa représentation externe sous forme de chaîne. Si ce champ est NULL, la valeur de l'état de transition commence avec NULL. |
Les nouvelles fonctions d'agrégat sont enregistrées avec la commande CREATE AGGREGATE. La Section 37.12 fournit de plus amples informations sur l'écriture des fonctions d'agrégat et sur la signification des fonctions de transition.