リリース日: 2010-12-16
このリリースは8.4.5に対し、各種の不具合を修正したものです。 8.4メジャーリリースにおける新機能についてはE.174を参照してください。
8.4.Xからの移行ではダンプ/リストアは不要です。 しかしながら、8.4.2以前のバージョンから更新する場合はE.172を参照してください。
Linuxにてwal_sync_method
のデフォルトが強制的にfdatasync
になるようにしました。(Tom Lane、Marti Raudsepp)
長い間、Linuxでのデフォルトは実質fdatasync
でした。
しかし最近のカーネルの変更により、PostgreSQLは代わりにopen_datasync
を選択するようになりました。
この選択は性能向上をまったくもたらさず、特定のシステム、特にdata=journal
マウントオプションを使用したext4
では、完全に失敗してしまいます。
GINインデックスに対するWAL再生ロジックにおける分類不具合を修正しました。(Tom Lane)
これは「bad buffer id: 0」という失敗、あるいはレプリケーション中のインデックス内容の破損という結果になり得ました。
開始チェックポイントWALレコードが再実行時点と同じWALセグメント内に存在しない場合のベースバックアップからのリカバリを修正しました。(Jeff Davis)
複数のワーカが有効なまま長時間残った場合の自動バキュームの永続的な速度低下を修正しました。(Tom Lane)
多くのテーブルを処理している場合、自動バキュームワーカのvacuum_cost_limit
の効果は、極端な速度低下をもたらすほぼゼロまで落ちることがあり得ました。
IA64
においてレジスタスタックのオーバーラン検知サポートを追加しました。(Tom Lane)
IA64
アーキテクチャには2つのハードウェアスタックがあります。
スタックオーバーラン失敗を完全に防ぐには両方を検査しなければなりません。
copyObject()
におけるスタックオーバーフロー検査を追加しました。(Tom Lane)
非常に複雑な問い合わせが与えられた場合のスタックオーバーフローのため、特定のコードパスがクラッシュする可能性がありました。
一時GiSTインデックスにおけるページ分割検知を修正しました。(Heikki Linnakangas)
例えば挿入が行われた時に一時インデックスをスキャンする開いているカーソルがあると、そのインデックスで「同時実行」ページ分割を持つことができます。 GiSTではこの状況の検知に失敗していました。 このためGiSTはそのカーソルの実行が続く間、間違った結果をもたらすことがありました。
接続処理の初期段階における検査エラーを修正しました。(Tom Lane)
子プロセスがあまりに多くある場合のこの検査が一部の状況で飛ばされていました。 このため固定長配列に新しい子プロセスを追加しようとする時にpostmasterのクラッシュする可能性がありました。
ウィンドウ関数の効率を向上しました。(Tom Lane)
多数のタプルを前もって読み取る必要があるが、work_mem
がそれらすべてをメモリ内に保持できるほど大きいという、特定の状況では予期ないほど低速になりました。
特にpercent_rank()
、cume_dist()
、ntile()
ではこの問題が当てはまります。
複雑なインデックス式をANALYZE
する時のメモリリークを防ぎます。(Tom Lane)
行全体のVarを使用するインデックスがそのテーブルに依存し続けることを確実にしました。(Tom Lane)
create index i on t (foo(t.*))
のように宣言されたインデックスはそのテーブルが削除された時に自動的に削除されませんでした。
複数のOUT
パラメータを持つSQL関数を「インライン」化しません。(Tom Lane)
結果の想定行型に関する情報が存在しないためにクラッシュする可能性を防ぎます。
ORDER BY
、LIMIT
、FOR UPDATE
、WITH
がINSERT ... VALUES
のVALUES
部に付いた場合の動作を正しくしました。(Tom Lane)
COALESCE()
式の定数折りたたみを修正しました。(Tom Lane)
プランナは時々、実際には決して達しない副式の評価を行い、想定外のエラーをもたらす可能性がありました。
GSSAPIサポート付きでコンパイルされたpostmasterで、接続受け入れ(accept()
またはその後すぐになされる呼び出しのいずれか)が失敗した時のpostmasterのクラッシュを修正しました。(Alexander Chernikov)
log_temp_files
が有効である時の一時ファイルの削除失敗を修正しました。(Tom Lane)
ログメッセージ出力試行時にエラーが起きた場合、削除が行われませんでした。 このため一時ファイルが累積してしまいました。
InhRelation
ノードに関する機能性出力を追加しました。(Tom Lane)
これによりdebug_print_parse
が有効な場合に特定種類の問い合わせが行われた場合の失敗を防止します。
点から水平線分への距離計算を正しく修正しました。(Tom Lane)
この不具合は様々な複数の幾何距離測定演算子に影響します。
ecpgにおけるトランザクション状態の計算を正しく修正しました。(Itagaki Takahiro)
再帰もしくはエラー修復状態にならない「単純な」式についてのPL/pgSQLの扱いを修正しました。(Tom Lane)
PL/Pythonの集合を返す関数の扱いを修正しました。(Jan Urbanski)
集合結果を生成するイテレータ内でSPI関数呼び出しが失敗しました。
contrib/cube
のGiST picksplitアルゴリズムの不具合を修正しました。(Alexander Korotkov)
cube
列上のGiSTインデックスにおいて、実際に不正確な結果になることはありませんが、このため相当効率性が劣化する可能性がありました。
こうしたインデックスがある場合、この更新をインストールした後にREINDEX
することを検討してください。
contrib/dblink
内で、新しい接続を作成する時を除き、「identifier will be truncated」注意を出力しないようにしました。(Itagaki Takahiro)
contrib/pgcrypto
において公開キーがない場合にコアダンプする可能性を修正しました。(Marti Raudsepp)
contrib/xml2
のXPath問い合わせ関数におけるメモリリークを修正しました。(Tom Lane)
タイムゾーンデータファイルをtzdata release 2010oに更新しました。 フィジー、サモアにおける夏時間規則の変更、香港の歴史的な修正が含まれています。