SQL機能の改良など、ユーザやDBプログラマから見える変更点について述べる。

XML対応

SQL:2003のXMLに対応しており、XMLデータ型と、XML用の関数が追加されている。XMLデータ型では、well-formedかどうかのチェックができる(DTDによるvalidationはできない)。

テーブルやテーブルの中のデータをXML形式でエキスポートしたり、インポートすることもできる。XPath 1.0に対応した関数も用意されている。

なお、XML対応を利用するには、libxmlをPostgreSQLにリンクする必要がある。configure時に、 --with-libxmlオプションを指定すること。

ENUM型

MySQLからの移行が容易になるように、ENUM型が追加されている。ENUM型は、CREATE TYPEを使って定義する。

test=# CREATE TYPE 山手線の駅 AS ENUM ('東京','新宿','池袋');
CREATE TYPE

ここで、「山手線の駅」型の値は'東京','新宿','池袋'のどれかに限定されているので、他の値を使おうとするとエラーになる。

test=# SELECT '東京'::山手線の駅;
 山手線の駅
------------
 東京
(1 row)

test=# SELECT '京都'::山手線の駅;
ERROR:  invalid input value for enum "山手線の駅": "京都"

その他の改良

  • PostgreSQLのログ(WALログではなく、テキスト形式のログの方)をCSV形式で吐き出せるようになった。ログをDBに取り込み、容易に解析できる
  • 複合型の配列が作れるようになった
  • warm standbye用のサンプルスクリプト、pg_standbyがcontribに追加された
  • CREATE INDEXを並列実行できるようになった