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