★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

9.4. 内部関数

内部関数とは、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
    WITH (isStrict);

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

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