PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 13.0 » Internes » Catalogues système » pg_aggregate

51.2. 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

Type

Description

aggfnoid regproc (référence pg_proc.oid)

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 (référence pg_proc.oid)

Fonction de transition

aggfinalfn regproc (référence pg_proc.oid)

Fonction finale (0 s'il n'y en a pas)

aggcombinefn regproc (référence pg_proc.oid)

Fonction combine (zero s'il n'y en a pas)

aggserialfn regproc (référence pg_proc.oid)

Fonction de sérialisation (zero s'il n'y en a pas)

aggdeserialfn regproc (référence pg_proc.oid)

Fonction de désérialisation (zero s'il n'y en a pas)

aggmtransfn regproc (référence pg_proc.oid)

Fonction de transition en avant pour le mode d'agrégat avec déplacement (zéro sinon)

aggminvtransfn regproc (référence pg_proc.oid)

Fonction de transition inverse pour le mode d'agrégat avec déplacement (zéro sinon)

aggmfinalfn regproc (référence pg_proc.oid)

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 (référence pg_operator.oid)

Opérateur de tri associé (0 s'il n'y en a pas)

aggtranstype oid (référence pg_type.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 (référence pg_type.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.