PostgreSQL propose quatre types de fonctions :
fonctions en langage de requête (fonctions écrites en SQL, Section 37.4)
fonctions en langage procédural (fonctions écrites, par exemple, en PL/pgSQL ou PL/Tcl, Section 37.7)
fonctions internes (Section 37.8)
fonctions en langage C (Section 37.9)
Chaque type de fonction peut accepter comme arguments (paramètres) des types de base, des types composites ou une combinaison de ceux-ci. De plus, chaque sorte de fonction peut renvoyer un type de base ou un type composite. Les fonctions pourraient aussi être définies pour renvoyer des ensembles de valeurs de base ou de valeurs composites.
De nombreuses sortes de fonctions peuvent accepter ou renvoyer certains pseudo-types (comme les types polymorphes) mais avec des fonctionnalités variées. Consultez la description de chaque type de fonction pour plus de détails.
Il est plus facile de définir des fonctions SQL aussi allons-nous commencer par celles-ci. La plupart des concepts présentés pour les fonctions SQL seront aussi gérés par les autres types de fonctions.
Lors de la lecture de ce chapitre, il peut être utile de consulter la page
de référence de la commande CREATE FUNCTION pour mieux
comprendre les exemples. Quelques exemples extraits de ce chapitre peuvent
être trouvés dans les fichiers funcs.sql
et
funcs.c
du répertoire du tutoriel de la distribution
source de PostgreSQL.