# 38.9.内部功能

内部函数是用C编写的、静态链接到PostgreSQL server的函数。函数定义的“body”指定函数的C语言名称,该名称不必与为SQL使用而声明的名称相同。(出于向后兼容性的原因,可以接受空正文,即C语言函数名与SQL名称相同。)

通常,服务器中的所有内部函数都是在数据库集群初始化期间声明的(请参阅第19.2节),但用户可以使用创建函数为内部函数创建其他别名。内部函数在中声明创建函数用语言命名内部的。例如,为sqrt功能:

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

(大多数内部函数都希望声明为“严格”。)

# 笔记

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