2005-04-07
このリリースは、8.0.1の各種不具合を修正したものです。 8.0メジャーリリースにおける新機能についてはE.219. リリース8.0を参照してください。
8.0.*からの移行ではダンプ/リストアは不要です。 このリリースではPostgreSQLライブラリの主バージョン番号が更新されました。 従って、ユーザアプリケーションが適切な番号の共有ライブラリを検出できなかった場合、再リンクしなければならないかもしれません。
すべてのインタフェースライブラリの主バージョン番号を増加させました(Bruce)
これは8.0.0の時に行われるはずでした。 psqlなどの7.4.x版のPostgreSQLクライアントアプリケーションを8.0.xアプリケーションと同じマシンで使用できるようにするために要求されました。 こうしたライブラリを使用するユーザアプリケーションの再リンクが必要になるかもしれません。
Windows専用のwal_sync_method
の設定fsync_writethrough
を追加しました(Magnus, Bruce)
この設定により、PostgreSQLはWALへの書き出し時にディスクドライブのライトキャッシュを経由して書き出すようになります。
この振舞いは以前はfsync
と呼ばれていましたが、他のプラットフォームにおけるfsync
とかなり異なる動作であるため別の名前にしました。
Windows上でwal_sync_method
の設定open_datasync
を有効にし、このプラットフォームにおけるデフォルトにしました(Magnus, Bruce)
デフォルトがfsync_writethrough
ではありませんので、ディスクドライブのライトキャッシュが有効な場合、電源障害時にデータ損失の可能性があります。
Windows上でライトキャッシュを無効にするためには、デバイスマネージャからドライブのプロパティを選択し、そしてポリシー
を選択してください。
新しいキャッシュ管理アルゴリズム2QでARCを置き換えました(Tom)
これはARCに関する審査待ちの米国特許を避けるために実施しました。 2Qコードは、ある種の作業状態ではARCより数パーセント速度が落ちる可能性があります。 より優れたキャッシュアルゴリズムが8.1で導入される予定です。
新規に作成されたテーブルに対する動作を改良するためのプランナの調整 (Tom)
plpgsqlにて初期値がNULL
の配列要素に代入できるようにしました(Tom)
これまではこうした配列はNULL
のままでしたが、現在では単一要素の配列になりました。
8.0にてNULL配列値のUPDATE
の主SQLエンジンにおける扱いがこの方法に変更されましたが、plpgsqlにおける同じ状況が見落とされていました。
plpythonの関数本体において\r\n
と\r
を\n
に変換しました(Michael Fuhr)
これにより、plpythonのコードがWindowsクライアントやMacクライアントで作成された場合の構文エラーを防止できます。
SPIカーソルでEXPLAIN
などの行を返すユーティリティコマンドを扱えるようにしました (Tom)
ALTER TABLE SET WITHOUT OIDS
後のCLUSTER
の障害を修正しました (Tom)
ALTER TABLE ADD COLUMN
のメモリ消費量を減少させました(Neil)
ALTER LANGUAGE RENAME
を修正しました (Tom)
pg_ctlのWindows独自のregister
オプションとunregister
オプションを文書化しました(Magnus)
バックエンドシャットダウン中に行われた操作が統計情報コレクタで確実に集計されるようにしました。
これは、システムカタログのバキューム処理が十分な間隔で行われていないというpg_autovacuumの報告を解消するためのものです。 バックエンド終了時の一時テーブル削除が原因のカタログの削除に関するものではありません。
log_destination
設定パラメータのWindowsのデフォルトをeventlog
に変更しました (Magnus)
デフォルトでは、Windowsで稼動しているサーバはログ出力を標準エラーではなく、Windowsイベントロガーに送信します。
Kerberos認証をWindowsで動作できるようにしました(Magnus)
ALTER DATABASE RENAME
を、CREATEDB権限を持たないスーパーユーザで実行できるようにしました(Tom)
CREATE
およびDROP DATABASE
のWALログ項目を絶対パスを指定しないように変更しました(Tom)
これにより、ポイントインタイムリカバリをデータベースの格納場所が異なる可能性がある別のマシンで実行できるようになりました。
こうした状況はまだCREATE TABLESPACE
では危険であることに注意してください。
テーブルを作成し、そのテーブルへのカーソルを開いているトランザクションが実行中に、そのバックエンドが終了した場合のクラッシュを修正しました。(Tom)
array_map()
を修正し、PL関数からそれを呼び出すことができるようにしました(Tom)
contrib/tsearch2
およびcontrib/btree_gist
に関する複数の修正 (Teodor)
あるプラットフォームにおけるcontrib/pgcrypto
関数のクラッシュを修正しました
(Marko Kreen)
64ビットプラットフォーム用にcontrib/intagg
を修正しました
(Tom)
CREATE
文の解析におけるECPGの不具合を修正しました
(Michael)
ECPGの問題の原因となる、powerpcおよびamd64におけるgccの不具合を回避しました (Christof Petig)
ロケールがC
の場合に、ロケールを考慮したupper()
、lower()
、initcap()
を使用しないようにしました
(Bruce)
これにより、ロケールがC
の場合に非7ビットデータに対してエラーを生成するプラットフォームで、こうした関数が動作するようになります。
quote_ident()
がキーワードに一致する名前を引用符で括るように修正しました
(Tom)
to_date()
がCC
フィールドとYY
フィールドの両方が使用された場合に合理的に振舞うように修正しました
(Karel)
to_char(interval)
が月の間隔として0が指定された場合に失敗することを防止しました
(Tom)
date_trunc('week')
が間違った週を返さないように修正しました
(Bruce)
date_trunc('week')
は、ある年の1月の初めの数日に対して間違った年を返しました。
INET
データ型において、クラスD
アドレスのデフォルトのマスク長を正しく使用するようにしました
(Tom)