
このリリースは 8.2.9 からの修正リリース(2008/09/22リリース)です。
本ドキュメントは PostgreSQL のリリースノートを基に作成しています。
8.2.x からのアップデートではダンプ、リストアは不要です。
しかし、8.2.7 より前のバージョンからアップグレードする場合は、8.2.7 に関する技術情報を参照してください。
PostgreSQL 8.2.9 から 8.2.10 への変更点
- Btree インデックスの WAL リカバリにおける誤りが修正されました (Heikk)これまでのバージョンでは、WAL がページ分割操作の中途で終了している場合に、リカバリ処理に失敗します。
- 潜在的な datfrozenxid 関数の計算誤りを修正しました(Alvaro)この誤りは最近報告されている「古い pg_clog データを削除できない」という現象の原因と考えられます。
- ローカルロックカウンタが 64bit に拡張されました (Tom)この修正は、十分に長いトランザクションにおいて、カウンタがオーバーフローし、予想外の「ロックは取得済み」というエラーを導くという報告に応えるものです。
- GiST インデックススキャンで行が重複出力されてしまう問題が修正されました (Teodor)
- UNION ALL を含むビューの権限チェックの誤りが修正されました (Heikki)参照先テーブルの権限チェックは行われていましたが、ビュー自体の権限チェックが適切に行われていませんでした。
- INSERT または UPDATE で生成される行が処理対象のテーブルの行タイプと一致するようにエグゼキュータ開始時にチェックするようになりました (Tom)このチェックにより、キャッシュされた実行計画を再利用する際に、ALTER COLUMN TYPEが実行された場合にデータの破損やクラッシュが起きることを防ぎます。
- DROP OWNED コマンドで重複した削除が行われてしまう障害が修正されました (Tom)この障害は典型的には「cache lookup failed for relation NNN」というエラーとして現れます。
- AT TIME ZONE 構文が、先ずタイムゾーン略称として解釈を試み、それが失敗したときに完全なタイムゾーン名として解釈するように、修正されました (Tom)タイムゾーン表現が曖昧な場合に一貫性に欠ける動作をする障害は 8.1 で取り込まれたもので、本修正によって 8.0 と同じ動作をするようになります。
なお、それより古いバージョンは略称のみを解釈するため該当しません。 - 64bit プラットフォームにおける日付時刻の入力関数で、整数オーバーフローを適切に検知できるように修正されました (Tom)
- 単位付き設定パラメータを表示する際の単位変換処理で、整数オーバーフローを防ぐ修正がされました (Tom)
- syslog にとても長いメッセージを書き込む際の性能が改善されました (Tom)
- pg_hba.conf において、LDAP URL のサフィックス部分にスペースを入れられるようになりました (Tom)
- SELECT DISTINCT ON 問い合わせに対する、カーソルの後ろ向き走査での障害が修正されました。(Tom)
- 入れ子になったサブクエリ式に関する、プランナの誤りが修正されました (Tom)外側サブクエリは親クエリに依存していないが、内側サブクエリが親クエリに依存している場合、外側サブクエリの値は新しい親クエリの行むけに再計算されない可能性がありました。
- プランナが GROUP BY で booleanを返す式なら、値を確認せずとも必ず2グループになると推定するように修正されました (Tom)「GROUP BY col IS NULL」のような場合には通常の見積りよりも正確になります。
- PL/pgSQL、FOR ループの変数がコンポジットタイプを含むレコードだった場合でも、失敗しないように修正されました (Tom)
- PL/Tcl で Tcl 8.5 が正しく振る舞うように、また、Tcl とのデータやりとりにおける文字エンコーディングについて、より慎重な作りに修正されました (Tom)
- Windows において、libpq が1システムコールあたり 64kB 以上発信しないように修正しました (Magnus)これは Microsoft knowledge base Q201213 に初期の Windows で、大きなデータの送信に失敗するケースの記述があることに対応したものです。
- Btree インデックスの WAL リカバリにおける誤りが修正されました (Heikk)これまでのバージョンでは、WAL がページ分割操作の中途で終了している場合に、リカバリ処理に失敗します。
- 潜在的な datfrozenxid 関数の計算誤りを修正しました(Alvaro)この誤りは最近報告されている「古い pg_clog データを削除できない」という現象の原因と考えられます。
- ローカルロックカウンタが 64bit に拡張されました (Tom)この修正は、十分に長いトランザクションにおいて、カウンタがオーバーフローし、予想外の「ロックは取得済み」というエラーを導くという報告に応えるものです。
- GiST インデックススキャンで行が重複出力されてしまう問題が修正されました (Teodor)
- UNION ALL を含むビューの権限チェックの誤りが修正されました (Heikki)参照先テーブルの権限チェックは行われていましたが、ビュー自体の権限チェックが適切に行われていませんでした。
- INSERT または UPDATE で生成される行が処理対象のテーブルの行タイプと一致するようにエグゼキュータ開始時にチェックするようになりました (Tom)このチェックにより、キャッシュされた実行計画を再利用する際に、ALTER COLUMN TYPEが実行された場合にデータの破損やクラッシュが起きることを防ぎます。
- DROP OWNED コマンドで重複した削除が行われてしまう障害が修正されました (Tom)この障害は典型的には「cache lookup failed for relation NNN」というエラーとして現れます。
- AT TIME ZONE 構文が、先ずタイムゾーン略称として解釈を試み、それが失敗したときに完全なタイムゾーン名として解釈するように、修正されました (Tom)タイムゾーン表現が曖昧な場合に一貫性に欠ける動作をする障害は 8.1 で取り込まれたもので、本修正によって 8.0 と同じ動作をするようになります。
なお、それより古いバージョンは略称のみを解釈するため該当しません。 - 64bit プラットフォームにおける日付時刻の入力関数で、整数オーバーフローを適切に検知できるように修正されました (Tom)
- 単位付き設定パラメータを表示する際の単位変換処理で、整数オーバーフローを防ぐ修正がされました (Tom)
- syslog にとても長いメッセージを書き込む際の性能が改善されました (Tom)
- pg_hba.conf において、LDAP URL のサフィックス部分にスペースを入れられるようになりました (Tom)
- SELECT DISTINCT ON 問い合わせに対する、カーソルの後ろ向き走査での障害が修正されました。
- 入れ子になったサブクエリ式に関する、プランナの誤りが修正されました (Tom)外側サブクエリは親クエリに依存していないが、内側サブクエリが親クエリに依存している場合、外側サブクエリの値は新しい親クエリの行むけに再計算されない可能性がありました。
- プランナが GROUP BY で booleanを返す式なら、値を確認せずとも必ず2グループになると推定するように修正されました (Tom)「GROUP BY col IS NULL」のような場合には通常の見積りよりも正確になります。
- PL/pgSQL、FOR ループの変数がコンポジットタイプを含むレコードだった場合でも、失敗しないように修正されました (Tom)
- PL/Tcl で Tcl 8.5 が正しく振る舞うように、また、Tcl とのデータやりとりにおける文字エンコーディングについて、より慎重な作りに修正されました (Tom)
- Windows において、libpq が1システムコールあたり 64kB 以上発信しないように修正しました (Magnus)これは Microsoft knowledge base Q201213 に初期の Windows で、大きなデータの送信に失敗するケースの記述があることに対応したものです。