PostgreSQL™ propose quatre types de fonctions :
fonctions en langage de requête (fonctions écrites en SQL, Section 37.4, « Fonctions en langage de requêtes (SQL) »)
fonctions en langage procédural (fonctions écrites, par exemple, en PL/pgSQL ou PL/Tcl, Section 37.7, « Fonctions en langage de procédures »)
fonctions internes (Section 37.8, « Fonctions internes »)
fonctions en langage C (Section 37.9, « Fonctions en langage C »)
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(7) 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™.