リリース日: 2017-02-09
このリリースは9.2.19に対し、各種不具合を修正したものです。 9.2メジャーリリースにおける新機能については、E.75. リリース9.2を参照してください。
9.2.Xからの移行ではダンプ/リストアは不要です。
しかしながら、インストレーションが下記変更点の最初の項目に書かれたバグの影響を受けている場合には、アップデート後に壊れたインデックスを修復する作業が必要になるでしょう。
また、9.2.11よりも前のリリースからアップグレードする場合は、E.64. リリース9.2.11を参照して下さい。
CREATE INDEX CONCURRENTLY
で作られたインデックスの破損をもたらす競合状態を修正しました。
(Pavan Deolasee, Tom Lane)
CREATE INDEX CONCURRENTLY
が前もってインデックスされていない列に依存するインデックスの作成に使われていたなら、CREATE INDEX
コマンドと同時実行するトランザクションにより更新された行が誤ったインデックスエントリを受け入れるおそれがありました。
この現象が生じた疑いがあるなら、最も確実な対応はアップデート実施後に影響をうけたインデックスを再作成することです。
ログをとらないテーブルに対する「init fork」生成を無条件にWAL出力するようにしました。 (Michael Paquier)
これまでwal_level = minimal
のときには省略されていましたが、ログをとらないテーブルがクラッシュ後に適切に空に初期化されることを保証するために、実際にはその場合でも必要でした。
セグメントの再読み込みでのWALページヘッダの検証を修正しました。(Takayuki Tsunakawa, Amit Kapila)
稀に、リカバリ中に誤った「out-of-sequence TLI」エラーが報告される可能性がありました。
統計情報コレクタがホットスタンバイ動作中に落ちたときに、それを再起動するようにしました。 (Takayuki Tsunakawa)
ホットスタンバイが衝突する問い合わせを待機している間、割り込みを検査するようにしました。 (Simon Riggs)
稀な場合に絶えず自動バキュームランチャーが再生成されるのを回避しました。 (Amit Khandekar)
この修正は自動バキュームが名目上offでいくつか凍結を要するテーブルがあるけれども全てのそのようなテーブルは既に自動バキュームワーカにより処理中である場合の問題を回避します。
拡張のメンバオブジェクトが削除できるときのチェックを修正しました。 (Tom Lane)
拡張のアップグレードスクリプトはメンバオブジェクトを削除できなければいけませんが、serial列のシーケンスについてできませんでした。また、他の場合でもそうなる可能性がありました。
インデックス再作成のときにALTER TABLE
がインデックスのテーブル空間の割り当てを確実に維持するようにしました。
(Tom Lane, Michael Paquier)
これまではdefault_tablespaceのデフォルト以外の設定によりインデックス破壊をもたらす可能性がありました。
参照先リレーションに対する待機中トリガイベントがあるときに外部キー制約を削除しないようにしました。 (Tom Lane)
これにより「could not find trigger NNN
」(トリガNNNが見つかりません)または「relation NNN
has no triggers」(リレーションNNNにトリガがありません)というエラーを回避します。
OIDを持つテーブルがOIDを持つ親テーブルとALTER TABLE ... INHERIT
を通して関連づけられているときのOID列の処理を修正しました。
(Amit Langote)
この場合、OID列は通常のユーザ列と同様に扱われるべきでしたが、そうなっておらず、後の継承の変更で奇妙な振る舞いをひき起こしていました。
直列化可能かを、制約違反エラーを報告する前に検査するようにしました。 (Thomas Munro)
シリアライザブルトランザクション隔離を使っているとき、同時トランザクションを原因とするいかなるエラーも直列化の失敗として表明するのが望ましく、それによりアプリケーションにリトライが成功するかもしれないという手がかりを与えます。 残念ながら、キー重複の失敗が同時挿入で引き起こされた場合には、これは確実には生じません。 本変更は、アプリケーションがトランザクションのより早くに明示的に競合するキーの存在をチェックした(そして見つからなかった)なら、このようなエラーが直列化のエラーとして報告されることを保証します。
複数行のVALUES
コンストラクトに対して列のtypemodが精密に決定されるようにしました。
(Tom Lane)
これは、列の最初の値が決定可能なtypmod(例えばvarchar
の長さ)を持つけれど続く値は同じ制限を共有しないときに発生する問題を修正します。
ユニコード文字列の末尾における完結しないユニコードのサロゲートペアにエラーを出すようにしました。 (Tom Lane)
通常、ユニコードのサロゲート先頭文字にはユニコードのサロゲート末尾文字が続かなければなりませんが、先頭文字がユニコード文字列リテラル(U&'...'
)またはユニコード識別子(U&"..."
)の最後の文字である場合に、これについての検査が見逃されていました。
!foo
のような純粋な否定のテキスト検索問い合わせが空のtsvector
にマッチするようにしました。
(Tom Dunstan)
このようなマッチはGINインデックス検索では見つかりましたが、シーケンシャルスキャンやGiSTインデックススキャンでは見つかりませんでした。
ts_rewrite()
が非トップレベルのサブツリーを空クエリで置き換えるときのクラッシュを、防止しました。
(Artur Zakirov)
ts_rewrite()
での性能問題を修正しました。
(Tom Lane)
ts_rewrite()
の入れ子NOT演算子の扱いを修正しました。
(Tom Lane)
空配列を適切に扱うようにarray_fill()
を修正しました。
(Tom Lane)
quote_literal_cstr()
で1バイトのバッファオーバランを修正しました。
(Heikki Linnakangas)
このオーバランは入力全体がシングルクォートおよび/またはバックスラッシュで構成される場合でのみ発生します。
pg_start_backup()
とpg_stop_backup()
の複数回の呼び出しが同時に実行されないようにしました。
(Michael Paquier)
誰かがこれらの関数を並列に実行しようとしたときの、アサート失敗あるいはもっと悪い事態を回避します。
実際にはノーオペレーションではないinterval
からinterval
へのキャストを捨てないようにしました。
(Tom Lane)
一部の場合に下位のinterval
フィールドのゼロ埋めした結果になるべきキャストが誤って何もしない処理と認識され、捨てられていました。
一例はINTERVAL MONTH
からINTERVAL YEAR
へのキャストが月フィールドをクリアしないことです。
組み込み関数を使うユーザ定義キャストと変換をダンプするようにpg_dumpを修正しました。 (Stephen Frost)
WALファイルを含めたときスタンバイサーバで起こりうるpg_basebackupの失敗を修正しました。 (Amit Kapila, Robert Haas)
PL/Pythonむけに作成したPython例外オブジェクトが確実に適切にリファレンスカウントされるようにしました。 (Rafa de la Torre, Tom Lane)
これはPythonのガーベージコレクションのサイクルが起きた後にオブジェクトが使われた場合の失敗を回避します。
列名として.tupno
を持つテーブルのトリガに対応するようにPL/Tclを修正しました。
(Tom Lane)
これは(以前の文書化されていない)PL/Tclのspi_exec
およびspi_execp
コマンドの振る舞いと調和させます。
すなわち、.tupno
マジック列はその名前の真の列が無い場合だけ挿入されます。
Unix上であってもDOS形式の改行文字が~/.pgpass
ファイルで許されるようにしました。
(Vik Fearing)
この変更は同じパスワードファイルをUnixマシンとWindowsマシンとで使うのを簡単にします。
ecpgにドットで終わるファイル名が与えられた際の1バイトのバッファオーバランを修正しました。 (Takayuki Tsunakawa)
ALTER DEFAULT PRIVILEGES
に対するpsqlのタブ補完を修正しました。
(Gilles Darold, Stephen Frost)
psqlで、空または全てブランクのPAGER
環境変数設定を「ページャ無し」という意味で扱うようにしました。
(Tom Lane)
これまでは、このような設定はページャにむけようとした出力を全く見えなくしていました。
contrib/dblink
のメモリ不足などの低レベルlibpqエラーの報告を改善しました。
(Joe Conway)
Windowsで環境変数の変更がデバッグオプションを有効にしてビルドされたDLLに確実に伝播するようにしました。 (Christian Ullrich)
タイムゾーンライブラリをIANA release tzcode2016jに同期しました。 (Tom Lane)
多数の問題が修正されており、最も重要なものとしては対象ディレクトリがハードリンクをサポートしない場合はタイムゾーンデータ導入に失敗していたことがあります。
タイムゾーンデータをtzdata release 2016jに更新しました。 北キプロス(新タイムゾーン Asia/Famagusta 追加)、ロシア(新タイムゾーン Europe/Saratov 追加)、トンガ、Antarctica/Casey における夏時間法の変更と、イタリア、カザフスタン、マルタ、パレスチナにおける歴史的修正、トンガにおける数値によるゾーン略記法を選択する変更が含まれます。