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を並列実行できるようになった