PostgreSQL 提供了四种类型的函数:
查询语言函数(使用 SQL 编写的函数,参见 Section 36.5)
过程语言函数(使用诸如 PL/pgSQL 或 PL/Tcl 等编写的函数,参见 Section 36.8)
内部函数(静态编译入内核内部的函数,参见 Section 36.9)
C 语言函数(动态链接加载的 C 函数,参见 Section 36.10)
各类函数均可接受基本数据类型、复合类型或其组合作为输入参数。此外,各类函数均可返回基本类型或复合类型结果。函数亦可定义为返回基本类型或复合类型的数据行集合(表函数)。
多种类型的函数可以接受或返回某些伪类型(例如多态类型),但可用的具体机制各不相同。详细信息请参阅各类函数的具体说明。
定义 SQL 函数最为简便,因此我们首先讨论 SQL 函数。针对 SQL 函数介绍的大多数概念同样适用于其他类型的函数。
在通读本章的过程中,结合参考 CREATE FUNCTION 命令的参考手册页面有助于更好地理解相关示例。本章中的某些示例代码可以在 PostgreSQL 源码分发的 src/tutorial 目录下的 funcs.sql 和 funcs.c 中找到。