このリリースは 7.4.9 からの修正リリース(2005/12/12リリース)です。
以下に変更点をまとめます。各項目の末尾に適用されるバージョンを記載しております。本ドキュメントは PostgreSQL のリリースノート/HISTORY ファイルを元に作成しています。
PostgreSQL 7.4.9 から 7.4.10 への変更点
8.1.1、8.0.5、7.4.10、7.3.12 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。
- OUTER JOIN 条件の誤った最適化が修正されました。
- サブクエリーが最適化によって展開されている場合に誤ったカラム名が返る問題が修正されました。
- CHECK 制約と TOAST 化されたカラムおよびインデックスのあるケースで UPDATE が失敗する問題が修正されました。
- バックグラウンドライターのエラー発生後における問題が修正されました。(8.0.5)
- 現在のトランザクションがアボートしているときにクライアントが Bind プロトコルメッセージを送って失敗するのを防ぐようになりました。(8.0.5、7.4.10)
- 翻訳されたメッセージにおける問題が修正されました。単語の並べ替えが必要になるトルコ語などの言語で発生し、文字列の出力が切り縮められたり、bigint の数値が誤って表示されたりします。BSD の類など一部のプラットフォームで --enable-nls を指定した場合に発生します。
- to_char(time)、to_char(interval) 関数における D、AM/PM、HH、HH12 の各指示子が再び使えるようになりました。
- AIX、HP-UX、MSVC でコンパイルするための修正がされました。(8.0.5、7.4.10)
- オプティマイザが改良されました。
- Windows で NO_SYSTEM_RESOURCES エラーが出たときにファイルの読み書きをリトライするようになりました。(8.0.5)
- ANALYZE 中の自動 VACUUM がクラッシュするのを防ぐように修正されました。
- 外部キーの ON COMMIT DELETE ROWS で一時テーブルの行を削除するときの問題が修正されました。
- トリガーが SELECT DISTINCT の出力を置き換えるときの問題が修正されました。
- 8.1 リリースノートに不正な UTF-8 バイト並びを移行する方法が追加されました。
- /contrib/tsearch2 が修正されました。
- /contrib/ltree が修正されました。(8.0.5/7.4.10/7.3.12)
- トランザクションログ管理における競合状態が修正されました。アサート警告が出るかデータ破壊を引き起こす、誤ったページでの I/O 操作をはじめるかもしれない僅かな可能性がありました。(7.4.10、7.3.12 のみ)
- 長く存在した OUTER JOIN プランニングの誤りが修正されました。この誤りにより "RIGHT JOIN is only supported with merge-joinable join conditions" というエラーメッセージが発生することがありました。
- contrib/pg_autovacuum でテーブルを DROP したときコアダンプを吐くのが防止されました。
- 大きいスクリプトを Windows で実行したときの psql のパフォーマンスの問題が修正されました。(8.0.5 のみ)
- pg_group ファイルへの更新が失われる障害を修正 (8.0.5 のみ)
- log_line_prefix に %i を含めたときの誤りを修正 (8.0.5 のみ)
8.1.1 変更点
書き込みエラーの後にバッファーに対するマーク付けに漏れがあることが発見されました。これ自体では致命的ではありませんが、後で VACUUM コマンドに対する不可解な障害を引き起こします。
ドキュメント
以下は(8.1 リリースノートに)追加された内容
UTF-8 のダンプデータを 8.1.X に読み込むとき問題が出る場合があります。これは以前のバージョンでは不正な UTF-8 データをデータベースに入れることを許容していて、バージョン 8.1 からは有効な UTF-8 データしか受け付けなくなったことに起因します。ダンプファイルを正しく直すには『iconv -c -f UTF-8 -t UTF-8 -o cleanfile.sql dumpfile.sql』としてください。-c オプションは無効なデータを削除します。実行後、diff を取って差異があれば不正なデータがるということになります。iconv コマンドは入力データ全体をメモリに読み込むので(大きいサイズの)ダンプファイルは分割したうえで適用する必要があるかもしれません。