2016-03-31
このリリースは9.4.6に対し、各種不具合を修正したものです。 9.4メジャーリリースにおける新機能については、E.15. リリース9.4を参照してください。
9.4.Xからの移行ではダンプ/リストアは不要です。
また、9.4.6よりも前のリリースからアップグレードする場合は、E.9. リリース9.4.6を参照して下さい。
インデックス付けされたROW()
比較におけるNULLインデックス項目の誤った扱いを修正しました。
(Tom Lane)
ROW(a, b) > ROW('x', 'y')
のような行比較を使うインデックス検索は、b
カラムでNULL項目に到達すると、以降のa
の値に付随した非NULLのb
の値があるのを無視して、そこで止まってしまいました。
前後に適切なfsync()
呼び出しを伴わないファイル名変更による、可能性の低いデータ損失のシナリオを回避するようにしました。
(Michael Paquier, Tomas Vondra, Andres Freund)
json_to_record()
において、要求された出力カラム名の一つと一致するフィールド名を持つサブオブジェクトが入力オブジェクトに含まれているときの障害を修正しました。
(Tom Lane)
to_char()
の書式OF
による、負のタイムゾーンオフセットの誤った整形を修正しました。
(Thomas Munro, Tom Lane)
リカバリが一貫性のある状態に達するまでrecovery_min_apply_delayパラメータを無視するようにしました。 (Michael Paquier)
これまでは、データベース状態を有効にするのに必要とされるWALの初期部分を再生する間であっても、recovery_min_apply_delay
に応じてスタンバイサーバはWALレコードの適用を遅らせていました。
スタンバイはそれが一貫性のあるデータベース状態に到達するまで使用できないので、これは用をなさないとみなされました。
サーバのスタートアップ中にpg_subtrans
がXID周回に近い場合を、正しく扱うようになりました。
(Jeff Janes)
ロジカルデコーディングについて様々なバグを修正しました。 (Andres Freund)
問題のある場合には、レプリカ識別子がFULL
のとき1ページより大きいタプル、ディスクにスプールされるほど大きいトランザクション内で主キーを変更するUPDATE
、「subxact logged without previous toplevel record」(サブトランザクションが前のトップレベルレコード無しに記録されました)という誤った報告、および、トランザクションのコミット時刻の誤った報告が含まれます。
入れ子になったセキュリティバリアビューで、外側のビューが相関副問い合わせを含むWHERE
句を持つときの、プランナのエラーを修正しました。
(Dean Rasheed)
localeconv()
の出力文字列を2回以上解放しようとしておきる、稀な場合のクラッシュを修正しました。
(Tom Lane)
ispell
辞書用の接辞ファイルの解析を修正しました。
(Tom Lane)
例えばトルコ語UTF8ロケールのI
など、バイト長が大文字小文字変換で変わる文字が接辞ファイルに何らか含まれていた場合に、動作がおかしくなる可能性がありました。
ispell
辞書ファイルを解析するのにsscanf()
を使わないようにしました。
(Artur Zakirov)
これにより(OS Xを含む)FreeBSD派生のプラットフォームにおける移植性の問題を回避します。
古いバージョンのWindows(7sp1/2008R2sp1より前)上でAVX対応CPUとVisual Studio 2013でビルドされたPostgresでのクラッシュを回避しました。 (Christian Ullrich)
この修正はVisual Studio 2013のランタイムライブラリのバグの回避策ですが、このバグについてマイクロソフトはこのバージョンでは修正しないと宣言しています。
マルチバイト文字を適切に扱えるようにpsqlのタブ補完のロジックを修正しました。 (Kyotaro Horiguchi, Robert Haas)
SECURITY LABEL
についてpsqlのタブ補完を修正しました。
(Tom Lane)
SECURITY LABEL
の後のタブ押下がクラッシュや不適切なキーワード提示を引き起こす可能性がありました。
コマンドラインでの指定が無い場合に、pg_ctlがPGCTLTIMEOUT
環境変数による待機タイムアウトを受け付けるようにしました。
(Noah Misch)
これはpostmasterの起動とシャットダウンに対しグローバルに通常より長いタイムアウトを指定できるようにすることで、遅いビルドファームメンバーのテスト実施を容易にします。
pg_ctlにおけるWindowsサービス状態の誤った検査を修正しました。 (Manuel Mathar)
前のマイナーリリース群では、ログメッセージをWindowsイベントログに送るかどうかを適切に判断するようにpg_ctlを修正しようとしていましたが、逆さに検査していました。
-C
と-M prepared
のオプション組み合わせを適切に扱うようにpgbenchを修正しました。
(Tom Lane)
pg_upgradeで、新データディレクトリが旧データディレクトリ内に在るとき、削除スクリプトの作成を省略するようにしました。
このような場合のスクリプトの盲目的な適用は新データディレクトリが失われる結果になりました。
PL/Perlで、空のPostgres配列を適切に空のPerl配列に変換するようにしました。 (Alex Hunsaker)
PL/Pythonが有効なPython識別子でない関数名をうまく処理できるようにしました。 (Jim Nasby)
contrib/pgstattuple
のpgstatindex()
関数が返す統計の複数の誤りを修正しました。
(Tom Lane)
Perl本体からもはや提供されなくなったため、MSVCビルドでpsed
への依存を除去しました。
(Michael Paquier, Andrew Dunstan)
タイムゾーンデータファイルをtzdata release 2016cに更新しました。 アゼルバイジャン、チリ、ハイチ、パレスチナ、ロシア(アルタイ、アストラハン、キーロフ、サハリン、ウリヤノフスク地域)の夏時間法の変更、加えて、リトアニア、モルドバ、ロシア(カリーニングラード、サマラ、ヴォルゴグラード)の歴史的修正が含まれます。