PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

36.9. 内部函数 #

内部函数是使用 C 语言编写并静态链接到 PostgreSQL 服务端内核中的函数。函数定义的“函数体”指定了该函数在 C 语言中的符号名,它不必与为 SQL 声明的函数名相同(出于向后兼容性考虑,允许空的函数体,表示 C 语言函数名与 SQL 函数名完全一致)。

通常,数据库集群初始化期间(参见 Section 18.2)会声明服务器中存在的所有内部函数,但用户可以使用 CREATE FUNCTION 为某个内部函数创建额外的别名。内部函数在 CREATE FUNCTION 中将语言名称声明为 internal。例如为 sqrt 函数创建别名:

CREATE FUNCTION square_root(double precision) RETURNS double precision
    AS 'dsqrt'
    LANGUAGE internal
    STRICT;

(大多数内部函数都需要声明为 “STRICT” 严格模式)。

Note

并非所有“预定义”函数都是上述意义上的“内部”函数。某些预定义函数是用 SQL 编写的。