リリース日: 2009-09-09
このリリースは8.4に対し、各種の不具合を修正したものです。 8.4メジャーリリースにおける新機能についてはE.147. リリース8.4を参照してください。
8.4.Xからの移行ではダンプ/リストアは不要です。
アーカイブリカバリの最後における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に更新しました。