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

2013年4月12日

ExcelからPostgreSQLにODBC接続してピボットテーブルを作成する

Excelのピボットテーブルは、データ集計・分析を手軽に行う方法として、非常によく使われているツール・機能であると言えるでしょう。



今回は、ExcelからPostgreSQLに接続して、データベース内のデータを用いてピボットテーブルを作成する方法をご紹介します。サンプルとして以下のような項目とデータを含む「注文情報」というテーブルを使ってピボットテーブルを作成してみます(PostgreSQLのデータベース内に作成してあるテーブルで、上記のピボットテーブルはサンプルデータから作成したものです)。



今回の環境はWindows7とExcel 2010ですが、多少バージョンが違ってもほぼ同じようにできると思います。

■手順の概要


ExcelからPostgreSQLに接続してピボットテーブルを作成する基本的な手順は以下の通りです。
  • PostgreSQL用のODBCドライバをインストールする
  • ODBCデータソースの設定を行う
  • Excelで外部データソースに接続する
  • Excel上でピボットテーブルを作成する
それでは順を追って見てみます。

2013年4月4日

【リリース情報】セキュリティリリース(9.2.4、9.1.9、9.0.13、8.4.17)が出ています

先日予告されていた通り、PostgreSQLのセキュリティリリースとして、新しいバージョン9.2.4、9.1.9、9.0.13、8.4.17が公開されました。 本セキュリティリリースのFAQも公開されています。 ここでは、セキュリティリリースのFAQのうち、主要な部分を対訳形式で掲載します。(翻訳に当たっては最善は尽くしていますが)当然ながら非公式な翻訳ですので、詳細は原文をご確認ください。

誤訳や改善の余地などがありましたら、コメント欄などにてフィードバックいただけると助かります。


2013-04-04 Security Release FAQ
2013-04-04 セキュリティリリースFAQ


While this FAQ covers the 2013-04-04 PostgreSQL Security Update in general, most of its contents focus on the primary security vulnerability patched in the release, CVE-2013-1899.

このFAQは2013-04-04のPostgreSQLセキュリティアップデートをカバーしていますので、内容の大部分は、このリリースで修正された主要なセキュリティ脆弱性 CVE-2013-1899 にフォーカスしています。

Who is particularly vulnerable because of this issue?
実際にこの問題によって誰が脆弱性に晒されていますか?


2013年3月30日

【リリース情報】セキュリティFIXがリリースされます

4月4日(木)にセキュリティFIXを含むマイナーアップデートがリリースされる予定です。


今回の対象は、コミュニティでメンテナンスされているすべてのバージョンとのことです。

現在コミュニティでメンテナンスされているのは、9.2系、9.1系、9.0系、8.4系のメジャーバージョンですので、これらについてマイナーアップデートがリリースされる模様です。


なお、コアチームからは「月曜日の午後(日本時間の火曜日?)から木曜日の午前中まで、コードレポジトリのミラーやコミットメールの配送も一時停止し、(各プラットフォーム向けの)パッケージが(ビルド、テストされて)リリースされるまでの間、コミッター以外はコミットを参照できなくなります」とアナウンスが出ています。

2013年3月4日

【9.3新機能チェック】マテリアライズドビューを試してみる

昨日、PostgreSQLの次期リリースである9.3のソースコードに、マテリアライズドビューのコードが追加されました。

pgsql: Add a materialized view relations.
http://www.postgresql.org/message-id/E1UCJDN-00042x-0w@gemulon.postgresql.org

PostgreSQLの開発者Wikiによると、マテリアライズドビューはもっとも要望の多かった機能のようです。

Materialized Views - PostgreSQL wiki
http://wiki.postgresql.org/wiki/Materialized_Views

今回は、このマテリアライズドビューがどのようなものなのか、そしてどのように使えるのかを見てみます。

■マテリアライズドビューとは


「マテリアライズドビュー」とは、特に集約や集計系の処理をする際に使われる機能で、ビューから取得できるデータの実体を持つ(materialized)ビューです。

通常、ビューというのは「見え方を定義する」だけですので、ビューに対する参照処理を行うと、その都度、元のテーブルに対してSQLの参照処理が行われることになります。