リリース日: 2013-12-05
このリリースは8.4.18に対し、各種不具合を修正したものです。 8.4メジャーリリースにおける新機能については、E.174を参照してください。
8.4.Xからの移行ではダンプ/リストアは不要です。
しかしながら、本リリースはデータ破損が発生する可能性がある問題を修正しています。下記に示すはじめの変更点を確認し、使用しているインストレーションが影響を受けるか、その場合どのような処置を施すべきか判断してください。
また、8.4.17以前のリリースからアップグレードする場合は、E.157を参照して下さい。
relfrozenxid
の値を更新するかどうか判定するVACUUM
の処理を修正しました。(Andres Freund)
2^31のトランザクションが経過するたびに、VACUUM
(手作業によるものでも、自動バキュームでも)が誤って、
テーブルのrelfrozenxid
値を増加させ、タプルが凍結されず、それらの行が見えなくなってしまう可能性がありました。
実際にデータ損失が発生する前に、複数の誤った値の増加が発生することが前提であるため、データが損失する可能性は、きわめて低いですが、ゼロではありません。
8.4.8もしくは、それ以前のバージョンからアップグレードする場合は、影響を受けません。しかし、それ以後のバージョンはすべて、このバグが存在しています。
この問題は、アップグレード後、vacuum_freeze_table_age
を
ゼロに設定し、全データベースの全テーブルをバキュームすることにより改善できます。
これにより、データ損失が発生する可能性が修正されますが、すでに存在しているすべてのデータエラーは修正できません。
しかしながら、その存続期間内2^31以下の更新トランザクションしか実行されていない場合(これは、SELECT txid_current() < 2^31
を実行することで確認できます。)、
そのインストレーションは、このバキュームを実行することで安全だと言うことができるでしょう。
GINインデックスがツリーページを削除する際の競合条件を修正しました。(Heikki Linnakangas)
これにより、一時的な誤った応答やクエリの失敗が発生する可能性がありました。
副問い合わせのSELECT
内部にラップされた揮発性関数をもつSELECT
の副問い合わせの平坦化を避けるようにしました。(Tom Lane)
これにより、揮発性関数の余計な計算による予期しない結果を避けることができます。
単純な変数以外の副問い合わせ結果が外部結合内でネストしている場合に関するプランナの処理を修正しました。(Tom Lane)
このエラーのせいで、JOIN
の中で、複数のレベルの副問い合わせを含む問い合わせに対して誤ったプランが選ばれる可能性がありました。
一時ファイルの早すぎる削除を修正しました。 (Andres Freund)
ルールの出力時にメモリの最後を超えて読もうとする可能性があることを修正しました。(Peter Eisentraut)
int2vector
とoidvector
の部分配列を修正しました。(Tom Lane)
これらの表現は現在、暗黙的に通常のint2
もしくは、oid
の配列に昇格させます。
SQL標準である単純なGMTオフセットタイムゾーンを使う際の誤った振る舞いを修正しました。(Tom Lane)
単純なオフセットが選ばれる前に優勢になるべき通常のタイムゾーン設定を使うべきときにも、システムが単純なGMTオフセットの値を使う場合がありました。この変更は、timeofday
関数が、単純なGMTオフセットを選ぶ原因にもなっていました。
Windowsエラーコード変換のログ取得時に発生する可能性があった誤った振る舞いを防止しました。(Tom Lane)
pg_ctlにおいて、生成されたコマンドラインを正しく引用するよう修正しました。(Naoya Anzai、Tom Lane)
この修正は、Windows版のみに適用されます
バックアップ元のデータベースがALTER DATABASE SET
経由で、default_transaction_read_only
を設定するときのpg_dumpallの動きを修正しました。(Kevin Grittner)
以前は、生成されたスクリプトがリストア中に失敗していました
ecpgについて、varchar
が宣言された変数のリストに関する処理を修正しました。(Zoltán Böszörményi)
contrib/lo
を誤ったトリガ定義から保護します。(Marc Cousin)
タイムゾーンデータファイルをtzdataリリース2013hに更新しました。 アルゼンチン、ブラジル、ヨルダン、リビア、リヒテンシュタイン、モロッコ、およびパレスチナでの夏時間の変更が含まれます。 インドネシアで使用されている新しい時間帯の略号、WIB, WIT, WITAが追加されました。