リリース8.4.1

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

# E.17. リリース8.4.1

> リリース日: 2009-09-09

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

## E.17.1. バージョン8.4.1への移行

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

## E.17.2. 変更点

- アーカイブリカバリの最後におけるWALページヘッダの初期化を修正しました。 (Heikki)

  その後に行うアーカイブリカバリにおいてWAL処理が失敗する可能性がありました。

- "cannot make new WAL entries during recovery（リカバリ中に新しいWAL項目を作成できません）"というエラーを修正しました。(Tom)

- クラッシュ後に無効になった行が参照可能になる問題を修正しました。(Tom)

  この不具合には、サーバクラッシュ後にページステータスビットが正しく設定されない可能性が含まれていました。

- security-definer関数内部の`RESET ROLE`および`RESET SESSION AUTHORIZATION`を不許可としました。(Tom, Heikki)

  これは、security-definer関数内部における`SET ROLE`と`SET SESSION AUTHORIZATION`を不許可にする過去のパッチ（CVE-2007-6600参照）で抜けていたものを補うものです。

- 既にロードされたロード可能モジュールに対する`LOAD`を何も行わないようにしました。(Tom)

  これまでは、`LOAD`はそのモジュールをアンロードし、再ロードしようとしました。 ですが、これは安全ではなく、かつ、まったく意味がないものでした。

- ウィンドウ関数`PARTITION BY`および`ORDER BY`の項目を、常に単純な式として扱うようにしました。(Tom)

  8.4.0では、これらのリストは最上位の`GROUP BY`と`ORDER BY`リストで使用される規則にしたがって解析されました。 しかし標準SQLに対して正しくなく、また、巡回する可能性をもたらすものでした。

- セミ結合の計画作成における複数のエラーを修正しました。(Tom)

  これは`IN`または`EXISTS`が他の結合といっしょに使用される一部の状況において、間違った検索結果を導きました。

- 外部結合内の副問い合わせに対する行全体参照の扱いを修正しました。(Tom)

  例えば`SELECT COUNT(ss.*) FROM ... LEFT JOIN (SELECT ...) ss ON ...`です。 ここで`ss.*`は、NULL拡張された結合行では`ROW(NULL,NULL,...)`として扱われました。 これは単純なNULLと同じではありません。 これを単純なNULLとして扱うようにしました。

- Windowsの共有メモリ割り当てコードを修正しました。(Tsutomu Yamada, Magnus)

  この不具合がよく報告される"could not reattach to shared memory（共有メモリに再接続できませんでした）"というエラーメッセージを導いていました。

- plperlにおけるロケール処理を修正しました。(Heikki)

  この不具合により、plperl関数が呼び出された時にサーバのロケール設定が変更され、データ破損が発生してしまうことがありえました。

- reloptions処理を修正し、確実に、あるオプション設定により他のオプションがデフォルト値に強制されないようにしました。(Itagaki Takahiro)

- たとえ"スマートシャットダウン"が進行中であったとしても、"高速シャットダウン"要求が実行中のセッションを強制的に終了させることを確実にしました。(Fujii Masao)

- `GROUP BY`問い合わせにおける`array_agg()`のメモリリークを防止します。(Tom)

- `to_char(..., 'TH')`を`'HH'`/`'HH12'`の大文字の序数表現と扱います。(Heikki)

  以前は`'th'`（小文字）として扱われました。

- `time`および`time with time zone`入力に対して、`EXTRACT(second)`および`EXTRACT(milliseconds)`の結果に端数部分を含めました。(Tom)

  これは常に浮動小数点型の日付時刻設定では行われていました。 しかし整数型の日付時刻に関するコードは壊れていました。

- `INTERVAL '`x` ms'`において`x`が200万を超え、かつ、整数型の日付時刻が使用された場合のオーバーフローを修正しました。(Alex Hunsaker)

- インデックススキャンにおけるトースト化された値の処理性能を改良しました。(Tom)

  これは特にPostGISで有用です。

- `commit_delay`を無効にする際の打ち間違いを修正しました。(Jeff Janes)

- サーバがサイレントモードで起動した場合、起動初期のメッセージを`postmaster.log`に出力します。(Tom)

  これまではこうしたエラーメッセージは破棄され、デバッグが困難になりました。

- FAQの翻訳版を削除しました。(Peter)

  現在これはwikiに存在します。 英語版のFAQはすでにwikiに移動していました。

- `postgresql.conf`が空の場合に、pg_ctlが無限ループに陥らないように修正しました。(Jeff Davis)

- pg_dumpの`--binary-upgrade`モードにおける複数のエラーを修正しました。(Bruce, Tom)

  `pg_dump --binary-upgrade`はpg_migratorで使用されます。

- `contrib/xml2`の`xslt_process()`がパラメータの最大値(20)を正しく扱うように修正しました。(Tom)

- `COPY FROM STDIN`中のエラーからの復旧するためのlibpqのコードについて、堅牢性を高めました。(Tom)

- readlineとeditlineライブラリの両方がインストールされている場合、それらの競合するヘッダファイルがincludeされないようにしました。(Zdenek Kotala)

- 一部のプラットフォームにおける、"division by zero（0除算）"ではなく"floating-point exception（浮動小数点例外）"を引き起こすgccの不具合を回避しました。(Tom)

- バングラデシュ、エジプト、モーリシャスにおける夏時間規則の変更のため、時間帯データファイルをtzdataリリース2009lに更新しました。

前のページ | ホーム | 次のページ
リリース 8.4.2 | 上に戻る | リリース8.4