リリース日: 2012-09-24
このリリースは9.1.5に対し、各種不具合を修正したものです。 9.1メジャーリリースにおける新機能についてはE.100. リリース9.1を参照してください。
9.1.Xからの移行ではダンプ/リストアは不要です。
しかし、以下の変更履歴の最初に記述されているデータ破損の不具合の影響から復旧させるために、REINDEX
の操作を実行する必要があるかもしれません。
また9.1.4より前のバージョンからアップグレードする場合は、E.96. リリース9.1.4を参照してください。
WAL再生時の共有バッファの永続性の印付けを修正しました。(Jeff Davis)
この間違いにより、チェックポイント時にバッファが書き出されないことがありました。 その結果、その後もそのバッファを書き出すことなくサーバがクラッシュすると、データ破損が発生することになります。 データ破損は、クラッシュからの復旧の後はどのサーバでも発生する可能性がありますが、特にスタンバイのスレーブサーバではWAL再生を実行する回数がずっと多いですから、この問題が発生する可能性もずっと高くなります。 btreeおよびGINインデックスが破損する可能性は低いです。 テーブルの「可視性マップ」が破損する可能性はずっと高いです。 幸いにして、9.1では可視性マップは重要なデータではなく、9.1のインストール環境でこの破損が引き起こす最悪の結果はバキューム処理が一時的に非効率になることです。 テーブルデータの内容がこの不具合によって破損することはありません。
この不具合のためにインデックスが破損したという既知の事例はありませんが、念のため、稼働用のインストレーションでは、9.1.6にアップグレードした後、都合の良い時に、すべてのbtreeおよびGINインデックスについてREINDEX
を実行することを勧めます。
また9.2.Xへのその場でのアップグレードを実施する予定なら、その前にvacuum_freeze_table_age
を0に設定して、すべてのテーブルについてVACUUM
を実行することを勧めます。
これにより、可視性マップに残っている誤ったデータについて、9.2.Xがそれを参照するより前に修正されることが確実になります。
vacuum_cost_delay
を調整して、バキュームがパフォーマンスに与える影響を小さくすることができます。
ただし、それによりバキュームが終了するまでの時間は長くなります。
プランナによるエグゼキュータのパラメータの代入について修正しました。 また、CTEプランノードについてエグゼキュータの再スキャンの条件を修正しました。(Tom Lane)
これらの間違いにより、同じWITH
の副問い合わせを複数回スキャンする問い合わせについて、間違った結果を返すことがありました。
default_transaction_isolation
がserializable
に設定されているときの誤った動作について修正しました。(Kevin Grittner、Tom Lane、Heikki Linnakangas)
Windowsでのプロセス起動時のクラッシュや、ホットスタンバイの動作でのクラッシュなどの現象が含まれます。
接頭辞、つまりword
:*
のパターンを含むテキスト検索の問い合わせについて、選択性の推定を改善しました。(Tom Lane)
GiSTインデックスにおけるページ分割の決定を改善しました。(Alexander Korotkov、Robert Haas、Tom Lane)
複数列のGiSTインデックスで、この間違いにより、予期しない膨張が起きることがありました。
権限が取り消されても、その権限を引き続き保持している場合は、取り消しが連鎖しないようにしました。(Tom Lane)
あるロールX
からグラントオプションを取り消したが、X
が他の誰かから付与されたことによってそのオプションを引き続き保持している、という場合は、ロールY
がX
によって付与されたその権限を再帰的に取り消すべきではありません。
拡張が、自分が割り当てられたスキーマを含むことを禁止しました。(Thom Brown)
これにより循環的な依存関係が作られ、pg_dumpなどが混乱することがありました。 人間もこれによって混乱させられるので禁止しました。
ホットスタンバイ構成に誤りがあるときのエラーメッセージを改善しました。(Gurjeet Singh)
configureがmbstowcs_l
を探すようにしました。(Tom Lane)
これにより、AIXの一部のバージョンでのビルドエラーが解決します。
PL/Perlが使われている時のSIGFPE
の処理について修正しました。(Andres Freund)
PerlはプロセスのSIGFPE
ハンドラをSIG_IGN
にリセットするため、後になってクラッシュが起きる場合があります。
PL/Perlを初期化した後で、Postgresの通常のシグナルハンドラをリストアするようにしました。
PL/Perlの再帰関数が実行時に再定義される場合に、PL/Perlがクラッシュしないようにしました。(Tom Lane)
PL/Perlで正しく最適化されない場合があるのを回避しました。(Tom Lane)
一部のLinuxディストリビューションでは、誤ったバージョンのpthread.h
がインストールされており、PL/Perlのコンパイルされたコードが誤ったものになります。
この結果、PL/Perlの関数がエラーを発生させる他の関数を呼び出すと、クラッシュすることがありました。
contrib/pg_trgm
のLIKE
パターンの分析のプログラムの不具合を修正しました。(Fujii Masao)
トライグラムインデックスを使ったLIKE
の問い合わせで、パターンがLIKE
のエスケープ文字を含む場合に誤った結果が生成されることがありました。
pg_upgradeのWindowsにおける行末の処理を修正しました。(Andrew Dunstan)
以前は、pg_upgradeは関数の実体などの場所で、復帰文字(CR)を追加あるいは削除することがありました。
Windows上でpg_upgradeが生成するスクリプトで、パス名の区切り文字にバックスラッシュを使うようにしました。(Andrew Dunstan)
pg_upgradeのpg_configへの依存は、不要なので取り除きました。(Peter Eisentraut)
時間帯データファイルをtzdataリリース2012fに更新しました。 フィジーでの夏時間の変更が含まれます。