他のバージョンの文書 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.147. リリース9.0.4

リリース日: 2011-04-18

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

E.147.1. バージョン9.0.4への移行

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

しかしながら、使用しているインストレーションが以前のバージョンからpg_upgradeを用いてアップグレードしたものであれば、 pg_upgradeにおいて今回修正された不具合のためにデータを失う可能性を防止するための操作を行わなければなりません。 推奨する解消方法はすべてのTOASTテーブルに対してVACUUM FREEZEを行うことです。 詳しくはhttp://wiki.postgresql.org/wiki/20110408pg_upgrade_fixを参照してください。

E.147.2. 変更点

  • pg_upgradeのTOASTテーブルの取り扱いを修正しました。(Bruce Momjian)

    pg_upgradeの間、TOASTテーブルに対するpg_class.relfrozenxid値が正しく新しいインストレーションにコピーされていませんでした。 このため実行後、TOASTテーブル内のタプルを有効にするために必要であるのに、pg_clogファイルが破棄されてしまう結果となり、そのためcould not access status of transactionエラーをもたらすことがあり得ました。

    このエラーは、pg_upgradeを用いてアップグレードしたインストレーションにおいて、データ損失という重大な危険を引き起こします。 このパッチは、今後pg_upgradeの利用した場合で問題が起こらないようにするものです。 不具合のあるバージョンのpg_upgradeで処理されたインストレーションにおける問題を治すものではありません。

  • 間違ったPD_ALL_VISIBLE flag was incorrectly setという警告を抑制します。(Heikki Linnakangas)

    VACUUMが時々実際のところ有効な場合でもこの警告を発していました。

  • ホットスタンバイの競合状態に対してより良いSQLSTATEエラーコードを使用します。(Tatsuo Ishii、 Simon Riggs)

    再試行可能な競合エラーはすべて、再試行が可能であることを示すエラーコードを持つようになりました。 また、マスタ側でデータベースが削除されたことが原因でセッションが閉じた場合、接続プール処理が正しくこの状況を扱うことができるように、ERRCODE_ADMIN_SHUTDOWNではなくERRCODE_DATABASE_DROPPEDとして報告されるようになりました。

  • 起動処理とbgwriter処理との相互作用において断続的なハングを防止します。(Simon Riggs)

    これはホットスタンバイ以外の場合のリカバリに影響しました。

  • 複合型自身を複合型に含めることを許可しません。(Tom Lane)

    これは、複合型を処理する際にサーバが無限再帰をしてしまう状況を防止します。 こうした構造の使い道は一部ありますが、常に安全に動作することを確実にするために必要な作業量を正当化するほどの説得力はないと思われます。

  • カタログキャッシュの初期化中のデッドロックの可能性を取り除きました。(Nikhil Sontakke)

    一部のキャッシュを読み取るコードが、インデックスのカタログをロックする前にシステムインデックスに対して共有ロックを獲得する場合がありました。 これは他でより標準的な順序で排他ロックを獲得しようとする処理とデッドロックする可能性がありました。

  • 対象タプルに対する同時更新があった時のBEFORE ROW UPDATEトリガ処理における、不正な領域を指し示すポインタ問題を修正しました。(Tom Lane)

    この不具合は、UPDATE RETURNING ctidを実行しようとした時に、断続的にcannot extract system attribute from virtual tupleで失敗するという結果で気付きました。 更新したタプルに対して不正なインデックス項目が生成されてしまうなど、より深刻なエラーとなる可能性がごくわずかながら存在します。

  • 遅延トリガイベントを待たせているテーブルに対するDROP TABLEを許可しません。(Tom Lane)

    以前はDROPが進み、トリガが最終的に発行された時にcould not open relation with OID nnnエラーをもたらしました。

  • pg_hba.conf内でreplicationをユーザ名として許可します。(Andrew Dunstan)

    replicationはデータベース名の列では特別なものですが、ユーザ名の列でも間違って同様に特別扱いされていました。

  • GEQO最適化中、常に偽のWHERE条件によって引き起こるクラッシュを防止します。(Tom Lane)

  • 半結合とアンチ結合の場合のプランナの取り扱いを改良しました。(Tom Lane)

  • 副問い合わせ内のSELECT FOR UPDATEの扱いを修正しました。(Tom Lane)

    この不具合はよくcannot extract system attribute from virtual tupleエラーを引き起こしました。

  • 全文検索の選択性推定においてNULLを考慮するように修正しました。(Jesper Krogh)

  • インデックスアドバイザプラグインによって注入された仮想インデックスをサポートするようにget_actual_variable_range()を修正しました。(Gurjeet Singh)

  • PL/Pythonの部分配列化に関するメモリリークを修正しました。(Daniel Popowich)

  • ユーザのホームディレクトリが利用できない場合でもlibpqのSSL初期化ができるようになりました。 (Tom Lane)

    SSLモードがルート証明書ファイルを必要としない場合、失敗させる必要はありません。 この変更により9.0より前のリリースの振舞いに戻りました。

  • conninfo_array_parseでエラーを検知した時に有益なエラーメッセージを返すようにlibpqを修正しました。(Joseph Adams)

    タイポによりライブラリがエラーメッセージを含むPGconn構造体ではなくヌルをアプリケーションに返していました。

  • ecpgプリプロセッサの浮動小数点定数の扱いを修正しました。(Heikki Linnakangas)

  • 並列pg_restoreがPOST_DATA項目上のコメントを正しく扱うように修正しました。(Arnd Hannemann)

  • TOCファイル内の(1KB以上の)長い行に対処するようにpg_restoreを修正しました。(Tom Lane)

  • コンパイラの過度に積極的な最適化によるゼロ除算が原因のクラッシュに対して、より多くの対策を取りました。(Aurelien Jarno)

  • MIPS上のFreeBSDとOpenBSDでdlopen()の使用をサポートしました。(Tom Lane)

    これらのシステムではこのシステム関数はMIPSハードウェアで利用できないという仮定を直接書き込んだコードがありました。 より最近のバージョンでは利用できますので、コンパイル時の試験を使用するように変更しました。

  • HP-UXにおけるコンパイル失敗を修正しました。(Heikki Linnakangas)

  • プロセスの起動時Windowsコンソールへの書き出しを非常に早い段階で試行する時にクラッシュしないようにしました。(Rushabh Lathia)

  • WindowsにおいてMinGW 64ビットコンパイラによる構築をサポートしました。(Andrew Dunstan)

  • Windowsにおけるlibintlのバージョン非互換問題を修正しました。(Hiroshi Inoue)

  • Windowsのビルドスクリプト内のxcopyの使用がWindows 7で正しく動作するように修正しました。(Andrew Dunstan)

    ビルドスクリプトのみに影響し、インストールや使用には影響しません。

  • Cygwinにおいてpg_regressで使用されるパス区切り文字を修正しました。(Andrew Dunstan)

  • 時間帯データファイルをtzdata release 2011fに更新しました。 チリ、キューバ、フォークランド諸島、モロッコ、サモア、トルコにおける夏時間規則の変更、南オーストラリア、アラスカ、ハワイの歴史的な修正が含まれています。