手続き言語のインストール手続き言語は、それらが使用されるデータベース全てに"インストール"されている必要があります。DATABASEによってコピーされますので、その後に作成された全てのデータベースで自動的に使用できます。したがって、データベース管理者はどのデータベースにどの言語を使用するかを決定できますし、デフォルトで使用できる言語も決定できます。プログラムを使用してこれを行うこともできます。PL/Perlをtemplate1データベースにインストールするには、下記のように実行してください。template1下記の手作業は拡張機能としてパッケージ化されていない言語をインストールする場合にのみ行うことを推奨します。手続き言語を次の5段階でデータベースにインストールすることができます。この作業はデータベースのスーパーユーザで行う必要があります。EXTENSIONが利用できます。その言語ハンドラ用の共有オブジェクトがコンパイルされ、適切なライブラリディレクトリにインストールされている必要があります。これは、通常のユーザ定義のC関数を作成してインストールする時と同じです。項35.9.6を参照してください。実際のプログラミング言語エンジンを提供する外部ライブラリに、言語ハンドラが依存していることがよくあります。この場合はそのライブラリもインストールしなければなりません。ハンドラは下記のコマンドで宣言されなければなりません。C;language_handlerという特別な戻り値の型は、この関数が定義済みのSQLデータ型を返さず、SQL文では直接使用できないことをデータベースシステムに伝えます。コマンド)を実行する"インライン"ハンドラ関数を提供することができます。インラインハンドラ関数が言語により提供されるのであれば、以下のようなコマンドで宣言されます。C;省略可能ですが、言語ハンドラは、実際に実行することなく関数定義の正確性を検査する"有効性検査"関数を提供することができます。FUNCTIONで呼び出されます。有効性検査関数が言語により提供されるのであれば、以下のようなコマンドで宣言されます。STRICT;最終的に、PLは下記のコマンドで宣言されなければいけません。;TRUSTEDというオプションキーワードは、ユーザがアクセス権を持たないデータに対して、その言語がアクセス権を持たないことを指定します。TRUSTEDである言語は(スーパーユーザ権限を持たない)一般ユーザ用に設計されており、安全に関数やトリガプロシージャを作成できます。PL関数はデータベースサーバの内部で実行されますので、TRUSTEDフラグはデータベースサーバ内部やファイルシステムへのアクセスを持たない言語のみが使わなければなりません。PL/pgSQLとPL/Tcl、PL/Perl言語はTRUSTEDの対象と考えられています。提供される機能が無制限に設計されているPL/TclU、PL/PerlU、PL/PythonU言語については、TRUSTEDを指定してはなりません。例38-1に、手作業によるインストール手順がPL/Perl言語でどのように動作するかを示します。PL/Perlの手作業によるインストール以下のコマンドは、データベースサーバにPL/Perl言語の呼び出しハンドラ関数用の共有ライブラリの存在場所を通知します。C;PL/Perlはインラインハンドラ関数と有効性検査関数を有していますので、以下のようにも宣言できます。STRICT;以下のコマンドは、直前に宣言された関数を、言語属性がplperlである関数やトリガプロシージャ用に呼び出さなければならないことを定義します。plperl_validator;デフォルトのPostgreSQLインストレーションでは、PL/pgSQL言語用のハンドラは構築され、"library"ディレクトリにインストールされます。PL/pgSQL言語自体がデータベースすべてにインストールされます。同様に、Perlサポート付きで構築した場合はPL/PerlとPL/PerlUハンドラが、Pythonサポート付きで構築した場合はPL/PythonUハンドラが構築され、インストールされますが、言語自体はデフォルトではインストールされません。