pg_proc
Le catalogue pg_proc
enregistre des informations sur les
fonctions, procédures, fonctions d'agrégat et fonctions de fenêtrage
(connues sous le nom collectif de routines). Voir CREATE FUNCTION, CREATE PROCEDURE et
Section 38.3 pour plus d'informations.
Si prokind
indique que l'enregistrement est pour
une fonction d'agrégat, il devrait y avoir une ligne correspondante dans
pg_aggregate
.
Tableau 53.39. Colonnes de pg_proc
Type Description |
---|
Identifiant de ligne |
Nom de la fonction |
OID du schéma (namespace) auquel appartient la fonction |
Propriétaire de la fonction |
Langage de codage ou interface d'appel de la fonction |
Coût d'exécution estimé (en unité de cpu_operator_cost) ; si
|
Nombre estimé de lignes de résultat (zéro si
|
Type des données des éléments du tableau de paramètres variadic, ou zéro si la fonction n'a pas de paramètres variadiques |
Fonction optionnelle de support pour le planificateur (voir Section 38.11), ou zéro sinon |
|
Si vrai, la fonction définit la sécurité (c'est une fonction « setuid ») |
Cette fonction n'a pas d'effets de bord. Aucune information sur les arguments n'est reportée sauf via la valeur de retour. Toute fonction qui pourrait renvoyer une erreur dépendant des valeurs de ses arguments n'est pas considérée sans fuite. |
Si vrai, la fonction retourne NULL si l'un de ses arguments est NULL. Dans ce cas, la fonction n'est en fait pas appelée du tout. Les fonctions qui ne sont pas « strictes » doivent traiter les paramètres NULL. |
Si vrai, la fonction retourne un ensemble (c'est-à-dire des valeurs multiples du type défini) |
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
|
|
Nombre d'arguments en entrée |
Nombre d'arguments qui ont des valeurs par défaut |
Type de données renvoyé |
Un tableau contenant les types de données des arguments de la fonction.
Ceci n'inclut que les arguments en entrée (dont les arguments
|
Un tableau contenant les types de données des arguments de la fonction. Ceci
inclut tous les arguments (y compris les arguments |
Un tableau contenant les modes des arguments de la fonction, codés avec
|
Un tableau contenant les noms des arguments de la fonction. Les arguments
sans nom sont initialisés à des chaînes vides dans le tableau.
Si aucun des arguments n'a de nom, ce champ est NULL.
Les indices correspondent aux positions de
|
Arbres d'expression (en représentation |
L'OID du type de données pour lequel les transformations s'appliquent.
Un tableau de types de données argument/résultat pour lesquels
appliquer les transformations (à partir de la clause
|
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 de lien, d'un nom de fichier ou de toute autre chose, en fonction du langage ou de la convention d'appel. |
Information supplémentaire sur la façon d'invoquer la fonction. Encore une fois, l'interprétation dépend du langage. |
Corps de fonction SQL pré-analysé. Ceci est utilisé pour les fonctions en langage SQL quand le corps est donné dans la notation du standard SQL plutôt que comme un litéral de chaîne. Il est NULL dans les autres cas. |
Configuration locale à la fonction pour les variables configurables à l'exécution |
Droits d'accès ; voir Section 5.7 pour plus de détails |
Pour les fonctions compilées, natives ou chargées dynamiquement,
prosrc
contient le nom de la fonction en
langage C(symbole de lien). Pour les fonctions en langage SQL,
prosrc
contient le texte source de la fonction
si elle est indiquée sous la forme d'une chaîne litérale ; mais si le
corps de la fonction est indiquée dans le style du standard SQL,
prosrc
est inutilisé (typiquement, une chaîne
vide) et prosqlbody
contient la définition
pré-analysée. Pour tous les autres types de langages,
prosrc
contient le code source de la fonction.
probin
est NULL, sauf pour les fonctions C
chargées dynamiquement, pour lesquelles il donne le nom de fichier de la
bibliothèque partagée qui contient la fonction.