リリース8.2.7

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

# E.29. リリース8.2.7

> リリース日: 2008-03-17

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

## E.29.1. バージョン8.2.7への移行

8.2.Xからの移行ではダンプ/リストアは不要です。 しかし、後述のWindowsロケール問題の影響がある場合、移行後にテキスト型の列上のインデックスに対し`REINDEX`を行わなければならないかもしれません。

## E.29.2. 変更点

- 異なる文字の組み合わせを等価とみなすWindowsロケールにおける文字列比較を修正しました。(Tom)

  この修正はWindowsのみ、かつ、UTF-8データベース符号化方式を使用している場合にのみ当てはまります。 他の状況に対する同じ修正が2年前になされましたが、UTF-8を使用するWindowsでは変更されなかった経路のコードを使用しました。 同一ではない一部の文字列を等価とみなすロケールを使用している場合、既存のテキスト型列上のインデックスを修正するために`REINDEX`を行う必要があるかもしれません。

- 異なるシステムカタログに対する同時実行`VACUUM FULL`の間でのデッドロックの可能性を修正しました。(Tom)

- 長く存在した`LISTEN`/`NOTIFY`競合条件を修正しました。(Tom)

  まれな場合ですが、`NOTIFY`を実行した同時実行中のトランザクションが後でコミットされたことが確認できたため、受け取ることが期待できる場合であっても、`LISTEN`を実行したばかりのセッションが注意を受け取らない可能性がありました。

  この修正の副作用として、 まだコミットされていない`LISTEN`コマンドを実行したトランザクションが、`LISTEN`で検索するために選ばなければならない`pg_listener`内の行にまったく現れなくなりました。 これまでは現れていました。 この動作についてはどちらの方式も文書化されていませんでしたが、過去の動作に依存するアプリケーションがあるかもしれません。

- 準備されたトランザクションでは`LISTEN`と`UNLISTEN`は使用できません。(Tom)

  これまでは許されていましたが、これを行うと様々な悪影響が発生しました。 特に構成したバックエンドは`UNLISTEN`が未コミットである間終了することができませんでした。

- 準備されたトランザクションでは一時テーブルの削除を行うことはできません。(Heikki)

  これは正確には8.1で禁止されていたのですが、8.2と8.3では不注意にこの検査が壊れていました。

- ハッシュインデックスを使用する問い合わせの間にエラーが発生した場合のまれなクラッシュを修正しました。 (Heikki)

- ある方法で集合を返す関数を使用した場合のメモリリークを修正しました。(Neil)

- 紀元前の2月29日に関する日付時刻値の入力を修正しました。(Tom)

  これまでのコードでは、うるう年の判定に間違いがありました。

- `ALTER OWNER`の一部の構文で発生した"未知のノード型"エラーを修正しました。(Tom)

- ロック待ちが中断した時に`pg_stat_activity`.`waiting`フラグを確実に初期化します。(Tom)

- Windows Vistaにおいてプロセス処理の取扱いを修正しました。(Dave, Magnus)

  具体的には、この修正により管理者ユーザとしてサーバを起動できるようになります。

- 時間帯データファイルをtzdataリリース2008aに更新しました（具体的には、最近のチリの変更です）。 時間帯省略形`VET` (ベネズエラ)がUTC-4:00ではなくUTC-4:30を意味するように調整しました。(Tom)

- pg_ctlが正しくコマンドラインオプションからpostmasterのポート番号を取り出すように修正しました。(Itagaki Takahiro, Tom)

  これまでは、`pg_ctl start -w`は間違ったポート上のpostmasterに接続しようとし、おかしな起動失敗の報告をもたらしていました。

- 最近のバージョンのgccにおける、最適化ミスの可能性を防止するために`-fwrapv`を使用します。(Tom)

  これはgcc 4.3以降でPostgreSQLを構築する場合に必須であることは分かっていました。

- `INT_MAX`マイクロ秒（約35分）より大きい`statement_timeout`値を正しく強制します。(Tom)

  この不具合は`--enable-integer-datetimes`で構築した場合にのみ影響します。

- 一定の折りたたみが副問い合わせを単純化する時の"想定外のPARAM_SUBLINK ID"というプランナエラーを修正しました。(Tom)

- `IS NULL`および`NOT`式の、制約による除外の取扱いにおける論理エラーを修正しました。(Tom)

  プランナは時々、NULL結果の可能性のために除外すべきでないパーティションを除外しました。

- "failed to build any N-way joins"というプランナエラーの別の原因を修正しました。(Tom)

  これは、結合句が見つかる前に句のない結合を強制しなければならない場合に発生しました。

- 外部結合の計画作成における間違った定数の伝搬を修正しました。(Tom)

  プランナは時々、間違った問い合わせ結果をもたらす、変数が定数と同じであると制約されていると間違った判断を行いました。

- `ORDER BY`および`GROUP BY`における定数式の表示を修正しました。(Tom)

  明示的にキャストされた定数が間違って表示されていました。 これは例えば、ダンプ/再ロード時のビュー定義の破壊をもたらします。

- COPY OUT時にNOTICEメッセージを正しく扱うようにlibpqを修正しました。(Tom)

  この失敗は、ユーザ定義データ型の出力関数がNOTICEを発行する時にのみ発生することが観察されました。 しかし、他の原因により発生しないことは保証しません。

前のページ | ホーム | 次のページ
リリース8.2.8 | 上に戻る | リリース8.2.6