PostgreSQL 8.2.7 に関する技術情報

このリリースは 8.2.6 からの修正リリース(2008/03/17リリース)です。
本ドキュメントは PostgreSQL のリリースノートを基に作成しています。
8.2.x からのアップデートではダンプ、リストアは不要です。ただし下記の Windows locale 問題にあてはまる場合は REINDEX が必要な場合があります。

PostgreSQL 8.2.6 から 8.2.7 への変更点


  1. Windows のロケールの文字列比較が、異なる文字を同一のものと認識するケースに対応しました (Tom)この修正は Windows で UTF-8 エンコーディングのデータベースを利用しているユーザーにのみ適用します。この修正は2年以上前に適用されていましたが、Windows UTF-8 は異なるコードパスを利用しており、更新されていませんでした。もしも利用中のロケールが異なる文字列を同一と認識してしまう場合は、文字列カラムにすでに張られているインデックスを REINDEX で再構築する必要があるかもしれません。
  2. 異なる型からなる列に対する行比較の失敗を修正しました (Tom)
  3. 長い間修正されていなかった “LISTEN” と “NOTIFY” の競合問題を修正しました (Tom)稀なケースで “LISTEN” を実行したばかりのセッションが、受け取るべき通知を受け取れない可能性がありました。これは並列に実行されているトランザクションで実行された “NOTIFY” が遅れてコミットされていたことによります。
    この修正による副作用は、コミットされていない “LISTEN” コマンドが pg_listener に現れなくなります。コミットされていない “LISTEN” をpg_listener で確認している、という報告はいままでにありませんが、以前の動作に依存するアプリケーションは影響を受ける可能性があります。
  4. プリペアドトランザクション内での “LISTEN” と “UNLISTEN” を拒否するようにしました (Tom)今までこれらの動作は許可されていましたが、起点となるバックエンドが “UNLISTEN” がコミットされない限り終了できないなど、いくつかの望まれない結果を招いていました。
  5. プリペアドトランザクション内での一時テーブル削除を拒否するようにしました (Heikki)これは 8.1 では拒否されていましたが、8.2 と 8.3 でバグが混入してしまいました。
  6. ハッシュインデックスを使うクエリでエラーが発生すると稀にクラッシュする問題を修正しました (Heikki)
  7. 複数行を返す関数でのメモリリークの可能性を修正しました (Neil)
  8. 紀元前の閏日の日付時間型入力を修正しました (Tom)以前のコードは閏年の判定に誤りがありました。
  9. ロックの待ちがアボートされたときに、 pg_stat_activity.waiting のフラグが確実に取り除かれるようにしました (Tom)
  10. Windows Vista におけるプロセス権限の操作を修正しました (Dave, Magnus)具体的には、この修正で PostgreSQL サービスを Administrator ユーザー権限で起動できるようになりました。
  11. タイムゾーンデータファイルを tzdata 2008a に更新しました(チリにおける変更)。また、VET(Venezuela)を UTC-4:00 から UTC-4:30 に変更しました (Tom)
  12. pg_ctl がコマンドラインオプションから postmaster のポート番号を正しく抽出できるように修正しました (Itagaki Takahiro, Tom)以前は「pg_ctl start -w」を実行すると異なるポート番号の postmaster に接続しようとし、誤った起動失敗のエラーが表示される可能性がありました。
  13. 最近の gcc バージョンで誤った最適化が行なわれないように “-fwrapv” を使うようにしました (Tom)これは PostgreSQL を gcc 4.3 以降でビルドするときに必要となります。
  14. statement_timeout の値が INT_MAX よりも長い場合でも正しく処理できるようにしました(約35分) (Tom)このバグは “–enable-integer-datetimes” でビルドされたものだけに影響します。
  15. プランナーで SELECT サブクエリ が定数に単純化される場合の “unexpected PARAM_SUBLINK ID” エラーを修正しました (Tom)
  16. 制約除外(constraint-exclusion)での IS NULL と NOT 式操作の論理的なエラーを修正しました (Tom)除外されてはならないパーティションが、NULL の結果からプランナによって除外されてしまうときがありました。
  17. プランナーの “failed to build any N-way joins” エラーのもう1つの原因を修正しました (Tom)これは、ある JOIN 構文が処理される前に、ほかの JOIN 節を使わない結合を処理した場合に発生する可能性がありました。
  18. 外部結合プランの誤った定数伝搬を修正しました (Tom)プランナーが変数を定数化できると結論づけてしまい、間違った結果が返ってくるときがありました。
  19. ORDER BY と GROUP BY における定数式の出力を修正しました (Tom)明示的に型変換された定数が間違って表示されていました。例えばこれは、ビューの定義がダンプ/リストアで破壊されてしまいます。
  20. libpq が COPY OUT 中に NOTICE メッセージを正しく処理できるように修正しました (Tom)これはユーザー定義データ型の出力処理が NOTICE を発行した場合にのみ発生することが確認されていますが、それ以外の原因で発生しないという保証はありません。