リリース日: 2016-10-27
このリリースは9.2.18に対し、各種不具合を修正したものです。 9.2メジャーリリースにおける新機能については、E.109を参照してください。
9.2.Xからの移行ではダンプ/リストアは不要です。
しかしながら、9.2.11よりも前のリリースからアップグレードする場合は、E.98を参照して下さい。
CTEスキャンを伴うEvalPlanQualの再検査を修正しました。(Tom Lane)
再検査はCTEを行を返さないものと常にみなしており、これは典型的には最近更新された行の更新の失敗に繋がっていました。
副問い合わせにおけるハッシュ集約の以前の結果の不適切な繰り返しを修正しました。(Andrew Gierth)
以前に計算された集約状態値のハッシュテーブルを再利用可能か確認するテストは集約引数式に外部の問い合わせ参照が現れる可能性を無視していました。 そのような参照の値の変化により、ハッシュテーブルが再計算されることになるはずですが、そうなっていませんでした。
track_io_timingがonのとき、有効なXMLを出力するようにEXPLAIN
を修正しました。
(Markus Winand)
これまでXML出力形式オプションは<I/O-Read-Time>
のような文法的に無効なタグを生成していました。
これは<I-O-Read-Time>
となります。
EXPLAIN
において計測されなかった時間に0を表示するのを抑制しました。(Maksim Milyutin)
特定のオプションの組み合わせでは、その組み合わせでは実際には決して計測されない時間に対して0を表示していました。
EXPLAIN
での私たちの一般的な方針は、そのようなフィールドは全く表示しないことですので、すべての場合で首尾一貫してそのようにします。
VACUUM
がテーブルを切り捨てられるよう排他テーブルロックを待っている時のタイムアウト長を修正しました。(Simon Riggs)
タイムアウトは50ミリ秒とされていましたが、実際にはたったの50マイクロ秒でした。そのためVACUUM
は意図したよりもずっと簡単に切り捨てを諦めていました。
意図していた値に設定しました。
テーブルの作成または定義変更における、継承したCHECK
制約のマージでのバグを修正しました。
(Tom Lane, Amit Langote)
同一のCHECK
制約を親テーブルと子テーブルにどの順でも加えることを可能にします。
親テーブルからの有効な制約と子テーブルのNOT VALID
な制約とのマージを防止します。
そのうえ、NO INHERIT
な子の制約と継承された制約とのマージを防止します。
numeric_in()
とnumeric_recv()
が受け付ける値に関する人為的な制限を取り除きました。
(Tom Lane)
格納書式の制限(1e100000
以上)までの数値を許していますので、numeric_in()
が科学的表記法で1000より大きな指数を拒否するのはかなり意味のないことと思われます。
同様にnumeric_recv()
が入力値として1000桁より大きなものを拒否するのも馬鹿げたことでした。
バッファロックの保持なしにタプル可視性をテストすることによる、とても低い確率のデータ破損を回避しました。 (Thomas Munro, Peter Geoghegan, Tom Lane)
1GBよりも大きな一時リレーションを切り捨てる時のファイルディスクリプタのリークを修正しました。(Andres Freund)
スタンドアローンのバックエンドをstandby_mode
をオンにして開始できないようにしました。(Michael Paquier)
WALデータを取得して処理するWALレシーバがありませんので、これは全く有用ではありません。この状況を考慮して設計されていないコードで誤った動作をする可能性がありました。
libpqで複数接続を横断してSSLコンテキストを共有をしようとしなくしました。 (Heikki Linnakangas)
特に異なる接続に異なるSSLパラメータを使おうとするとき、これは稀な場合で起きる様々なバグをもたらしました。
libpqで稀な場合のメモリリークを回避しました。 (Tom Lane)
報告された問題はPQreset()
でエラー報告がメモリリークするものですが、関連したケースがいくつかあると思われます。
ecpgの--help
と--version
オプションが他の実行ファイルと首尾一貫して動作するようにしました(Haribabu Kommi)
pg_dumpでは、範囲コンストラクタ関数を決してダンプしません。 (Tom Lane)
この見過ごしにより、pg_upgradeはコンストラクタ関数を重複して生成していたため範囲型を含む拡張で失敗していました。
-e
オプションが指定された場合にcontrib/intarray/bench/bench.pl
がEXPLAIN
の結果を表示するよう修正しました。
(Daniel Gustafsson)
最近のWindowsのバージョンで追加されたタイムゾーン名を認識するようWindowsのタイムゾーンのマッピングを更新しました。(Michael Paquier)
廃止された動的タイムゾーン省略形での失敗を防止します。(Tom Lane)
参照されるタイムゾーンに動的タイムゾーン省略形が一致するものがない場合に、タイムゾーン名と同じであると扱います。
これは、IANAがタイムゾーンデータベースから省略形を削除した場合に発生する予期せぬ失敗を回避します。削除はtzdata release 2016fで行なわれましたし、また、将来再び行なわれる可能性が高いです。
結果は個々の省略形の分別だけに限定されません。ミスマッチによりpg_timezone_abbrevs
ビューが完全に失敗します。
タイムゾーンデータファイルをtzdata release 2016hに更新しました。 パレスチナとトルコの夏時間法の変更、トルコとロシアのいくつかの地域の歴史的修正が含まれます。 南極大陸、旧ソ連、スリランカのいくつかのタイムゾーンでは数値による省略形に切り替えました。
IANAタイムゾーンデータベースはこれまで全てのタイムゾーンについて文字による省略形を提供しましたが、地元の人々の間でほとんど、あるいは全く通用していない省略形をしばしば作成していました。
IANAは英語の省略形が現実に使われている形跡がないゾーンにおいてはUTCオフセット数値を使うことを選ぶという方針に転換しようとしてるところです。
少なくともしばらくの間、PostgreSQLはタイムスタンプの入力に、このような削除された省略形を引き続き受け入れます。
しかし、それらはpg_timezone_names
ビューには現れず、出力にも使用されなくなります。
本更新ではAMT
はもはやアルメニア時間の意味で使われるものとしては現れません。
それゆえに、これをアマゾン時間すなわちUTC+4ではなくUTC-4と解釈するようにDefault
省略形セットを変更しました。