43.24. pg_proc

Le catalogue pg_proc stocke les informations sur les fonctions (ou procédures). La description de CREATE FUNCTION et la Section 33.3 contiennent plus d'informations sur le sens de certaines colonnes.

Cette table contient des données pour les fonctions d'agrégat comme pour les fonctions simples. Si proisagg est vrai, il devrait y avoir une ligne correspondante dans pg_aggregate.

Tableau 43-24. Colonnes de pg_proc

NomTypeRéférencesDescription
pronamename Nom de la fonction
pronamespaceoidpg_namespace .oid OID de l'espace de noms auquel cette fonction appartient.
proownerint4pg_shadow .usesysidPropriétaire de la fonction.
prolangoidpg_language .oidLangage ou interface d'appel pour cette fonction
proisaggbool La fonction est une fonction d'agrégat.
prosecdefbool Si vrai, la fonction définit la sécurité (c'est-à-dire une fonction << setuid >>).
proisstrictbool  Si vrai, la fonction retourne NULL si un de ses arguments au moins est NULL. Dans ce cas, la fonction ne sera en fait pas appelée du tout. Les fonctions qui ne sont pas << strictes >> doivent être préparées à traiter des paramètres NULL.
proretsetbool Si vrai, la fonction retourne un ensemble (c'est-à-dire des valeurs multiples du type défini).
provolatilechar  provolatile indique si le résultat de la fonction dépend uniquement de ses arguments ou s'il est affecté par des facteurs externes. Il vaut i pour les fonctions << immuables >>, qui donnent toujours le même résultat quand les paramètres entrés sont les mêmes. Il vaut s pour les fonctions << stables >>, dont le résultat (pour les mêmes paramètres d'entrée) ne change pas tout au long d'un balayage (de table). Il vaut v pour les fonctions << volatiles >>, dont le résultat peut varier à tout instant. (Utilisez v aussi pour les fonctions qui ont des effets de bord, afin que les appels à ces fonctions ne soient pas optimisés.)
pronargsint2 Nombre d'arguments
prorettypeoidpg_type .oidType de données renvoyé
proargtypesoidvectorpg_type .oidTableau contenant les types de données des arguments de la fonction.
prosrctext  Ce champ indique au gestionnaire de fonctions la façon d'invoquer la fonction. Il peut s'agir du code source pour un langage interprété, d'un symbole lié, d'un nom de fichier ou de n'importe quoi d'autre, en fonction du langage ou de la convention d'appel.
probinbytea Information supplémentaire sur la façon d'invoquer la fonction. Encore une fois, l'interprétation dépend du langage.
proaclaclitem[] Droits d'accès

prosrc contient le nom de la fonction en langage C (symbol lié) pour les fonctions compilées, aussi bien les fonctions standard que les fonctions chargées dynamiquement. Pour tous les autres types de langages, prosrc contient le code source de la fonction. probin est inutilisé, sauf pour les fonctions en C chargées dynamiquement, pour lesquelles il donne le nom de fichier de la bibliothèque partagée qui contient la fonction.