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