リリース日: 2013-04-04
このリリースは9.1.8に対し、各種不具合を修正したものです。 9.1メジャーリリースにおける新機能については、E.127を参照してください。
9.1.Xからの移行ではダンプ/リストアは不要です。
しかしながら、このリリースではGiSTインデックスの管理についていくつかの不具合を修正しています。
このアップデートをインストールした後、以下に記述する条件の1つ以上に該当するGiSTインデックスすべてについて、REINDEX
を実行することを推奨します。
また、9.1.6よりも前のバージョンからアップグレードする場合は、E.121を参照してください。
サーバのコマンド行スイッチについての安全でない解析を修正しました。(Mitsumasa Kondo、Kyotaro Horiguchi)
「-
」で始まるデータベース名を含む接続要求に細工をすることで、例えその要求が最終的に拒絶された場合でも、サーバのデータディレクトリ内のファイルを損傷させる、あるいは破壊することが可能でした。(CVE-2013-1899)
OpenSSLの乱数の状態を、postmasterのそれぞれの子プロセスでリセットするようにしました。(Marko Kreen)
contrib/pgcrypto
関数によって生成された乱数が、他のデータベースユーザによって比較的推定しやすいという問題が、これにより回避されます。
この危険はpostmasterがssl
= on
で構成されている時にのみ問題となりますが、ほとんどの接続ではSSL暗号化を利用していません。(CVE-2013-1900)
REPLICATION権限の検査で、認証されたユーザでなく、現在のユーザについて調べるようにしました。(Noah Misch)
この誤りを利用すると、権限のないデータベースユーザがpg_start_backup()
やpg_stop_backup()
を呼び出し、それにより定期的なバックアップの作成を妨害することが可能でした。(CVE-2013-1901)
GiSTインデックスで、「fuzzy」な幾何比較を使うのが適切でないときは、使わないようにしました。(Alexander Korotkov)
幾何データ型のコアでは「fuzzy」な同値性を利用して比較を行ないますが、gist_box_same
では正確な比較を行う必要があり、そうしなければ、それを利用するGiSTインデックスは一貫しないものになります。
このアップデートをインストールした後、box
、polygon
、circle
、point
型の列のすべてのGiSTインデックスについてREINDEX
を実行してください。
これらはいずれもgist_box_same
を使っています。
可変長のデータ型、つまりtext
、bytea
、bit
、numeric
型の列でcontrib/btree_gist
を使うGiSTインデックスについて誤った範囲の結合と不正なロジックを修正しました。(Tom Lane)
この誤りにより、存在するキーが検索で見つからないような一貫性のないインデックスが作成されたり、インデックスが無駄に大きくなることがありました。
このアップデートをインストールした後、そのようなインデックスについてREINDEX
を実行することを推奨します。
複数列についてのインデックスで、GiSTページを分割するコードの不具合を修正しました。(Tom Lane)
この誤りにより、存在するキーが検索で見つからないような一貫性のないインデックスが作られることや、検索が非常に非効率になるインデックスが作られることがありました。
このアップデートをインストールした後、複数列についてのGiSTインデックスについてREINDEX
を実行することを推奨します。
gist_point_consistent
で曖昧さを一貫性のある方法で処理するようにしました。(Alexander Korotkov)
point
型の列のGiSTインデックスについてのインデックススキャンは、シーケンシャルスキャンとは異なる結果になる場合がありました。
これは、gist_point_consistent
と演算子のコードで、厳密な比較をするか、曖昧な比較をするかについて不一致があったからです。
WAL再生におけるバッファのリークを修正しました。(Heikki Linnakangas)
この不具合により、再生中に「incorrect local pin count」のエラーが発生し、リカバリができなくなる場合がありました。
DELETE RETURNING
での競合条件を修正しました。(Tom Lane)
特定の条件下で、DELETE RETURNING
は現在のプロセスがもはや確保していない共有バッファからデータをフェッチすることがありました。
その間に他のプロセスがそのバッファを変更した場合、ゴミの値がRETURNING
の出力となったり、あるいはクラッシュすることもありました。
正規表現のコンパイルで無限ループになる可能性があるのを修正しました。(Tom Lane、Don Porter)
正規表現のコンパイル時にNULLポインタから参照先を取得する可能性があるのを修正しました。(Tom Lane)
to_char()
で、それが適切な場合、ASCIIのみの大文字変換規則を利用するように修正しました。(Tom Lane)
これにより、ロケールに依存すべきでないいくつかのテンプレートのパターンにおける誤った動作が修正されます。
トルコ語のロケールで「I
」と「i
」が正しく処理されていませんでした。
1999-12-31 24:00:00
というタイムスタンプが理由もなく拒絶されていたのを修正しました。(Tom Lane)
単一のトランザクションがUNLISTEN
を実行し、その後LISTEN
を実行した場合のロジックの誤りを修正しました。(Tom Lane)
この場合、セッションは通知イベントを監視すべきですが、実際には全く監視しない状態になっていました。
他のビューから参照されているビューに列が追加された後、プランナがクラッシュする可能性があるのを修正しました。(Tom Lane)
「picksplit doesn't support secondary split」という不必要なログメッセージを削除しました。(Josh Hansen、Tom Lane)
このメッセージは何らかのコードを期待して追加されたように思われますが、そのコードは書かれませんでした。 また、GiSTによる二次的分割のデフォルト処理は実際には非常に良いので、そのコードは今後も書かれないでしょう。 そのため、エンドユーザにブツブツ言うのをやめることにしました。
セッションの最後のいくつかのコミットとアボートの件数を統計情報コレクタに送信するのに失敗する可能性があるのを修正しました。(Tom Lane)
PL/Perlのspi_prepare()
関数のメモリリークを修正しました。(Alex Hunsaker、Tom Lane)
pg_dumpallでデータベース名に「=
」が含まれるものを正しく処理できるよう修正しました。(Heikki Linnakangas)
pg_dumpが不正な接続文字列が渡された時にクラッシュしないようにしました。(Heikki Linnakangas)
pg_dumpとpg_upgradeで不正なインデックスを無視するようにしました。(Michael Paquier、Bruce Momjian)
不正なインデックスをダンプするとリストア時に問題が発生する可能性があります。 例えば、ユニーク条件を満たさないテーブルのデータに対してユニーク条件を強制したためにインデックス作成に失敗したような場合です。 また、インデックスの作成が実際にはまだ進行中の場合もありますが、このときはDDLによる更新がまだコミットされていないと考えるのが適当でしょうから、pg_dumpがダンプする必要はありません。 pg_upgradeは不正なインデックスでエラーを起こす代わりに、それをスキップするようになります。
pg_basebackupでテーブル空間をバックアップするとき、現在のサーババージョンのサブディレクトリだけを含めるようにしました。(Heikki Linnakangas)
pg_basebackupおよびpg_receivexlogでサーバのバージョン確認をするようにしました。 これにより動作しないバージョンの組み合わせに対して、正しく失敗するようになります。(Heikki Linnakangas)
contrib/pg_trgm
のsimilarity()
関数が、トライグラムのない文字列について0を返すよう修正しました。(Tom Lane)
以前は内部でのゼロ割りによりNaN
を返していました。
時間帯データファイルをtzdataリリース2013bに更新しました。 チリ、ハイチ、モロッコ、パラグアイ、およびロシアのいくつかの地域での夏時間の変更が含まれます。 また、数多くの場所での歴史的な地域データの修正が含まれます。
また、時間帯の略称について、ロシアおよび他の地域での以下の最近の変更を反映しました。
CHOT
、GET
、IRKT
、KGT
、KRAT
、MAGT
、MAWT
、MSK
、NOVT
、OMST
、TKT
、VLAT
、WST
、YAKT
、YEKT
については、それらの現在の意味に従います。
VOLT
(Europe/Volgograd (ヨーロッパ/ヴォルゴグラード))および MIST
(Antarctica/Macquarie (南極/マッコーリー島))をデフォルトの短縮名リストに追加しました。