33.8. 内部関数

内部関数とは、Cで作成された、PostgreSQLサーバに静的にリンクされた関数です。 関数定義の"本体"は、関数のC言語における名前であり、SQLでの使用と同じ名前で宣言する必要はありません (後方互換性のため、C言語関数名がSQL名と同じであるという意味として、空の本体も受け付けられます)。

通常、サーバに存在する全ての内部関数は、データベースクラスタの初期化(initdb)の際に宣言されますが、ユーザはCREATE FUNCTIONを使用して、内部関数の別名をさらに作成することができます。 内部関数はinternalという言語名を付けたCREATE FUNCTIONによって宣言されます。 例えば、sqrt関数の別名を作成するには以下のようにします。

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

(ほとんどの内部関数は"strict"として宣言されることを想定しています。)

注意: "組み込み済み"関数の全てが上の意味での"内部"ではありません。 SQLで作成された組み込み済み関数もあります。