他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

E.92. リリース9.1.8

リリース日: 2013-02-07

このリリースは9.1.7に対し、各種不具合を修正したものです。 9.1メジャーリリースにおける新機能については、E.100. リリース9.1を参照してください。

E.92.1. バージョン9.1.8への移行

9.1.Xからの移行ではダンプ/リストアは不要です。

しかし、9.1.6よりも前のバージョンからアップグレードする場合は、E.94. リリース9.1.6を参照してください。

E.92.2. 変更点

  • SQLからenum_recvを実行できないようにしました。(Tom Lane)

    この関数は誤った宣言をされており、単純なSQLコマンドでサーバをクラッシュさせることが可能でした。 実際のところ、サーバのメモリの内容を検査するために攻撃者がこれを利用することが可能になっていました。 この問題を(Secunia SVCRP経由で)報告してくれたSumit Soniに感謝します。(CVE-2013-0255)

  • WALの再生時にデータベースが一貫性のある状態に到達したことを検知するときの複数の問題を修正しました。(Fujii Masao、Heikki Linnakangas, Simon Riggs、Andres Freund)

  • リレーションのファイルを切り詰めるときに、最小復旧地点を更新するようにしました。(Heikki Linnakangas)

    データが捨てられた後は、タイムライン上のそれより前の地点で復旧を止めることは、もはや安全ではありません。

  • 復旧対象のタイムラインを変更した後のWALセグメントの再利用について修正しました。(Heikki Linnakangas)

  • ホットスタンバイモードで問い合わせの取り消しに失敗するのを修正しました。(Noah Misch、Simon Riggs)

    ホットスタンバイでの競合する問い合わせを取り消す要求が失敗することがあり、これらの問い合わせで一貫性のないデータを見ることがありました。

  • 復旧停止機能について、ユーザが接続できるようになる前には停止しないようにしました。(Tom Lane)

  • 副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)

  • サーバがクラッシュした後、残されていた一時テーブルを無視しないという問題を修正しました。(Tom Lane)

  • to_date()が範囲外の日付を拒絶するようにしました。(Hitoshi Harada)

  • pg_extension_config_dump()が拡張のアップデートについて適切に処理するよう修正しました。(Tom Lane)

    この関数は、対象のテーブルのすべての既存のエントリを置換するようになりました。 これにより、拡張をアップデートするスクリプトから利用可能になります。

  • 関数が複数のテーブルのトリガーとして使われる場合について、PL/Pythonの処理を修正しました。(Andres Freund)

  • Windowsで非ASCIIのプロンプト文字列が、確実に正しいコードページに変換されるようにしました。(Alexander Law、Noah Misch)

    このバグはpsqlおよび他のいくつかのクライアントプログラムに影響がありました。

  • データベースに接続していないとき、psql\?コマンドがクラッシュする可能性があったのを修正しました。(Meng Qingzhong)

  • pg_basebackupの実行中にリレーションのファイルが削除された時にエラーが起きる可能性があるのを修正しました。(Heikki Linnakangas)

  • pg_dumpをホットスタンバイのサーバで実行するとき、ログを取らないテーブルのデータを除外するようにしました。(Magnus Hagander)

    スタンバイのサーバにはログを取らないテーブルのデータがありませんから、これはいずれにせよ失敗します。 従って、自動的に--no-unlogged-table-dataと見なすのが最も良い方法であると思われます。

  • pg_upgradeが不正なインデックスを安全に扱うよう修正しました。(Bruce Momjian)

  • libpqPQprintTuplesでバッファを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)

    これは一部の東ヨーロッパの時間帯で使われています。