PostgreSQL proporciona cuatro tipos de funciones:
funciones de lenguaje de consulta (funciones escritas en SQL) (Section 36.5)
funciones de lenguajes procedimentales (funciones escritas en, por ejemplo, PL/pgSQL o PL/Tcl) (Section 36.8)
funciones internas (Section 36.9)
funciones en lenguaje C (Section 36.10)
Cada tipo de función puede tomar tipos base, tipos compuestos o combinaciones de estos como argumentos (parámetros). Además, cada tipo de función puede devolver un tipo base o un tipo compuesto. También se pueden definir funciones para devolver conjuntos de valores base o compuestos.
Muchos tipos de funciones pueden tomar o devolver ciertos pseudotipos (como los tipos polimórficos), pero las facilidades disponibles varían. Consulta la descripción de cada tipo de función para obtener más detalles.
Es más sencillo definir funciones SQL, así que empezaremos analizando esas. La mayoría de los conceptos presentados para las funciones SQL se aplicarán a los otros tipos de funciones.
A lo largo de este capítulo, puede ser útil consultar la página de referencia
del comando CREATE
FUNCTION para
comprender mejor los ejemplos. Algunos ejemplos de este capítulo
se pueden encontrar en funcs.sql y
funcs.c en el directorio src/tutorial
de la distribución de fuentes de PostgreSQL.