PostgreSQL 8.2.1 に関する技術情報

このリリースは 8.2 からの修正リリース(2007/01/08リリース)で、細かい修正がほどこされています。
本ドキュメントは PostgreSQL のリリースノートを基に作成しています。
8.2 からのアップデートではダンプ、リストアは不要です。

PostgreSQL 8.2 から 8.2.1 への変更点


  1. SPI を利用している場合、savepoint をロールバックするときにクラッシュする可能性のある問題が修正されました。SPI を利用している PL/pgSQL などの手続き言語も全て影響を受けます。
  2. サブクエリーを利用しているときに、クラッシュが発生する可能性のある問題が修正されました。
  3. to_number、to_char(numeric) の両関数が、STABLE かつ IMMUTABLE ではないに分類変更されました。これは GUC の lc_numeric が後から変更可能であるためです。なお、実運用上これを変更することは好ましくありません。
    • この修正は、新しいバージョンで新規に initdb したデータベースクラスタにのみ適用されます。既存のデータベースクラスタをアップグレードする場合には、メジャーバージョンアップと同じように dump/restore を行ってください。
  4. vacuum コマンドが 1 ギガバイトを超えるテーブルで、切り詰めによって不要になったファイルを削除せず 0 バイトにするようになりました。以前は特殊なケースでデータ消失が発生する可能性がありました。
  5. サブクエリーを複数回スキャンするケース (例えば EXISTS 句を利用した場合) のごく一部で、検索結果が狂うことのある問題が修正されました。
  6. 数ギガバイト以上の非常に大きなテーブルに対する hash インデックスが作成できないなどの問題が修正されました。
  7. pg_internal.init ファイルが起動後に削除されるようになりました。これにより PITR リカバリ時に誤ったフリースペース情報が発生する問題が修正されました。
  8. outer join の最適化時に誤ったプランが生成されることのある問題が修正されました。
  9. SELECT … LIMIT ALL (あるいは NULL) でクラッシュする問題が修正されました。
  10. IN (定数リスト) をインデックスで最適化した場合のコスト算出が誤っていたり、Nested Loop の外側など複数回繰り返されるインデックススキャンのコストが実際より小さく見積もられていた問題が修正され、インデックスの利用が適正化されました。
  11. タイムゾーンに、「JST」(日本標準時) が「JST-9」の省略形として追加されました。これは古いバージョンで有効でした。
  12. psql で、表示幅 0 と判断されるようなマルチバイト文字を u でエスケープした形ではなく、そのまま表示するようになりました。
  13. pg_dumpall で 8.2 以前のダンプを作成する場合、自動的に public に CONNECT 権限が付与されるようになりました。これにより作成されたデータベースについては 8.1 以前とリストア先の 8.2 で同じになります。
  14. 付属の PDF ドキュメントの生成スピードが向上しました。
  15. num_temp_buffers を大きくしている場合の、メモリ管理コストを削減しました。これにより一時テーブルの若干の高速化が見込まれます。
  16. AIX における getaddrinfo() の取り扱いを修正しました。
  17. pg_restore で、tar フォーマット、かつコメント付きラージオブジェクトが含まれている場合に失敗する問題を修正しました。
  18. VACUUM が「failed to re-find parent key」エラーを発生して失敗する問題を修正しました。
  19. 行ロック利用時に不要なデッドロックが検出される可能性のある問題を修正しました。
  20. ARRAY[] 要素の初期化時に、複数の空要素が含まれているときにエラーが発生する問題を修正しました。
  21. ecpg のメモリリーク問題を修正しました。
  22. Darwin/MacOS X のコンパイルに関する問題を修正しました。
  23. 利用しているタイムゾーンデータベースを更新しました。これによりオーストラリアとカナダの新しい夏時間ルールに対応します。
  24. 正規表現で小括弧「()」を使う場合、例えば「^(foo)$」と言ったケースにインデックスを利用できるケースが増えました。例えば psql の d 出力がこの恩恵を受けます。
  25. Windows 版特有
    • イベントログ出力が、出力先マシンの文字エンコーディングを考慮して変換が行われるようになりました。以前はプラットフォームによって文字化けしました。
    • mingw 以外で pg_dump を作成に失敗する問題が修正されました。
    • シグナル発生時にデッドロックが発生する可能性のある問題が修正されました。