PL/Python 手続き言語を使用して PostgreSQL の関数を Python 言語で作成することができます。
PL/Python の現行版では、信頼できる言語としてのみ機能します。ファイルシステムや他のローカルリソースへのアクセスを行なうことはできません。特別に、 PL/Python は、Python を制限された実行環境で使用しています。更に、ファイル open 呼び出しの使用を防止し、インポートされた特定のリストに記したモジュールのみを許可します。現在、このリストには以下が含まれています。array, bisect, binascii, calendar, cmath, codecs, errno, marshal,math, md5, mpz, operator, pcre, pickle, random, re, regex, sre,sha, string, StringIO, struct, time, whrandom, および zlib。
現行版では、PL/Python 関数の実行中データベースエラーが発生すると、サーバによってその関数は即座に終了させられます。Python の try ... catch 構文を使用してもエラー条件を trap することは不可能です。例えば、 plpy.execute() 呼び出しに渡された SQL 文に構文エラーがあった場合、この関数は終了します。この動作は、今後変更する予定です。