PostgreSQLでは、SQLやC言語以外の言語でユーザ定義の関数を作成することができます。 これらの他の言語は一般に手続き言語(PL)と呼ばれます。 手続き言語で関数が記述されていた場合、データベースサーバにはその関数のソースを理解する能力が組み込まれていません。 代わりに、その処理はその言語を解釈する特別なハンドラに引き渡されます。 そのハンドラは解析、構文分析、実行など全てのことを行うこともできますし、PostgreSQLと存在するプログラミング言語の実装との"橋渡し"ともなり得ます。 ハンドラそのものはC言語関数で、他のC言語関数と同様に、共有オブジェクトにコンパイルされ、要求に応じてロードされます。
現在PostgreSQLの標準配布物では、PL/pgSQL(第37章)、PL/Tcl(第38章)、PL/Perl(第39章)、PL/Python(第40章)という4つの手続き言語があります。 さらに、コア配布物には含まれない手続き言語があります。 付録Hでその見つけ方を説明します。 ユーザは他の言語を定義することもできます。 新しい手続き言語の開発について、その基礎を第47章で説明します。