リリース日: 2013-02-07
このリリースは9.0.11に対し、各種不具合を修正したものです。 9.0メジャーリリースにおける新機能については、E.151を参照してください。
9.0.Xからの移行ではダンプ/リストアは不要です。
しかしながら、9.0.6よりも前のバージョンからアップグレードする場合は、E.145を参照してください。
SQLからenum_recv
を実行できないようにしました。(Tom Lane)
この関数は誤った宣言をされており、単純なSQLコマンドでサーバをクラッシュさせることが可能でした。 実際のところ、サーバのメモリの内容を検査するために攻撃者がこれを利用することが可能になっていました。 この問題を(Secunia SVCRP経由で)報告してくれたSumit Soniに感謝します。(CVE-2013-0255)
WALの再生時にデータベースが一貫性のある状態に到達したことを検知するときの複数の問題を修正しました。(Fujii Masao、Heikki Linnakangas、Simon Riggs、Andres Freund)
リレーションのファイルを切り詰めるときに、最小復旧地点を更新するようにしました。(Heikki Linnakangas)
データが捨てられた後は、タイムライン上のそれより前の地点で復旧を止めることは、もはや安全ではありません。
ホットスタンバイモードで問い合わせの取り消しに失敗するのを修正しました。(Noah Misch、Simon Riggs)
ホットスタンバイでの競合する問い合わせを取り消す要求が失敗することがあり、これらの問い合わせで一貫性のないデータを見ることがありました。
副SELECTの結果から添字付けあるいは列選択できるようSQLの文法を修正しました。(Tom Lane)
負荷が大きい時の自動バキュームの切り詰めの性能問題を修正しました。(Jan Wieck)
テーブルの最後にある空のページを切り詰めるときに排他的ロックが必要ですが、競合するロック要求があるとき、自動バキュームのプログラムはそれに失敗してテーブルロックを解放するようになっていました。 負荷が重いと切り詰めが全く起こらず、テーブルが大きくなるということが容易に起こり得ました。 部分的な切り詰めを実行、ロックを解放、その後にロックの再取得と処理の継続を試みるように修正しました。 この修正により、競合するロック要求がある場合に、自動バキュームがロックを解放するまでの平均時間が大きく短縮されます。
pg_tablespace
をスキャンするときに競合問題が発生しないようにしました。(Stephen Frost、Tom Lane)
pg_tablespace
のエントリに複数の同時更新があるとき、CREATE DATABASE
およびDROP DATABASE
が正しく動作しない場合がありました。
DROP OWNED
がデータベース全体あるいはテーブル空間を削除しようとしないようにしました。(Álvaro Herrera)
安全のため、これらのオブジェクトは削除するのでなく、所有権を変更すべきです。
vacuum_freeze_table_age
の実装の誤りを修正しました。(Andres Freund)
vacuum_freeze_min_age
の値よりも多くのトランザクションを実行したインストール環境では、この誤りにより自動バキュームが部分テーブルスキャンを実行できなくなり、その結果、必ずテーブル全体のスキャンが発生します。
RowExpr
あるいはXmlExpr
が2度、解析された時に、誤った動作をしないようにしました。(Andres Freund、Tom Lane)
この誤りはCREATE TABLE LIKE INCLUDING INDEXES
などの状況においてユーザに明らかになることがありました。
ハッシュテーブルのサイズ計算で整数のオーバーフローが起きないようにする仕組みを改善しました。(Jeff Davis)
to_date()
が範囲外の日付を拒絶するようにしました。(Hitoshi Harada)
Windowsで非ASCIIのプロンプト文字列が、確実に正しいコードページに変換されるようにしました。(Alexander Law、Noah Misch)
このバグはpsqlおよび他のいくつかのクライアントプログラムに影響がありました。
データベースに接続していないとき、psqlの\?
コマンドがクラッシュする可能性があったのを修正しました。(Meng Qingzhong)
pg_upgradeが不正なインデックスを安全に扱うよう修正しました。(Bruce Momjian)
libpqのPQprintTuples
でバッファを1バイト行き過ぎてしまう問題を修正しました。(Xi Wang)
この古い関数はPostgreSQL本体によっては使われていませんが、クライアントのプログラムでは今でも使われているかもしれません。
ecpglibで翻訳されたメッセージを適切に使うようにしました。(Chen Huajun)
MSVC上でecpg_compatおよびpgtypesのライブラリを適切にインストールするようにしました。(Jiang Guiqing)
isinf()
をシステムが提供していなければ、我々のバージョンをlibecpgに含めるようにしました。(Jiang Guiqing)
libedit/libreadlineからの誤ったエクスポートに騙されないよう、configureによる提供関数の確認の順序を調整しました。(Christoph Berg)
Windowsのビルド番号が時とともに確実に大きくなるようにしました。(Magnus Hagander)
Windows用にクロスコンパイルしたときに、pgxsが正しく.exe
の拡張子の付いた実行プログラムを生成するようにしました。(Zoltan Boszormenyi)
新しい時間帯の略号FET
を追加しました。(Tom Lane)
これは一部の東ヨーロッパの時間帯で使われています。