リリース8.4.8

PostgreSQL 9.1.1文書
前のページ | 巻戻し | 付録 E. リリースノート | 早送り | 次のページ

# E.10. リリース8.4.8

> リリース日: 2011-04-18

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

## E.10.1. バージョン8.4.8への移行

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

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

また8.4.2以前のバージョンから更新する場合は8.4.2のリリースノートを参照してください。

## E.10.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`が時々実際のところ有効な場合でもこの警告を発していました。

- 複合型自身を複合型に含めることを許可しません。(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"エラーをもたらしました。

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

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

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

- 削除された列を持つ行型を扱うPL/pgSQLの機能を改良しました。(Pavel Stehule)

  これは以前9.0でなされた修正を過去のバージョンに反映したものです。

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

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

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

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

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

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

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

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

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

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

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

前のページ | ホーム | 次のページ
リリース8.4.9 | 上に戻る | リリース8.4.7