37.8. 内部功能

内部函数是用 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;

(大多数内部函数期望被声明为“严格”.)

Note

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