PostgreSQLのPL/pgSQLはプログラムロジックをデータベース側で実行させる非常に強力な機能です。今回は、PL/pgSQLとそのデバッガについてご紹介します。
■PostgreSQLの「PL/pgSQL」とは
PostgreSQLのPL/pgSQLは、データベース側にプログラムのロジックを埋め込むための仕組みで、通常のSQL(DDL、DML等)に制御のための構文が追加されてたような言語仕様になっています。
PL/pgSQL - SQL手続き言語
http://www.postgresql.jp/document/9.0/html/plpgsql.html
私自身、このPL/pgSQLをよく使うのですが、PL/pgSQLのひとつの難点は、ロジックが複雑になってくるとデバッグが難しい、ということでした。
そのため、伝統的なデバッグの方法、いわゆる「printfデバッグ」に頼ることになります。PL/pgSQLの場合、printfの代わりに(ログを出力する)RAISE NOTICEを使います。
エラーとメッセージ
http://www.postgresql.jp/document/9.0/html/plpgsql-errors-and-messages.html
「printfデバッグ」はどこでも使えて非常に便利なのですが、手間がかかるのが難点です。
■PL/pgSQLデバッガ by EnterpriseDB
PostgreSQLサポート企業の一社であるEnterpriseDB社は、PostgreSQLを独自に拡張したり、便利なツール類を開発して、そのコンサルティングやサポートを提供していますが、そのEnterpriseDB社の提供するツールの中に「PL/pgSQLデバッガ」があります。