2013年5月14日

【リリース情報】PostgreSQL 9.3のベータ1がリリースされました

昨日5月13日、PostgreSQL 9.3のベータ1がリリースされました。 主要な新機能として
  • Writeable Foreign Tables, enabling pushing data to other databases
    他のデータベースへデータを送る更新可能外部テーブル
  • pgsql_fdw driver for federation of PostgreSQL databases
    複数のPostgreSQLデータベースを連携させるpgsql_fdw
  • Automatically updatable VIEWs
    更新可能ビュー (関連記事
  • MATERIALIZED VIEW declaration
    マテリアライズドビュー (関連記事
  • LATERAL JOINs
    LATERAL JOIN
  • Additional JSON constructor and extractor functions
    JSONデータの作成・読み取る新規の関数
  • Indexed regular expression search
    インデックス化された正規表現での検索
  • Disk page checksums to detect filesystem failures
    ファイルシステムの障害を検出するディスクページのチェックサム
が挙げられています。

2013年5月4日

PL/pgSQLデバッガを使ってみよう

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デバッガ」があります。