リリース8.3.1

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

# E.34. リリース8.3.1

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

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

## E.34.1. バージョン8.3.1への移行

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

## E.34.2. 変更点

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

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

- `VACUUM FULL`における境界不具合を修正しました。(Tom)

  異なるシステムカタログに対する同時実行`VACUUM FULL`の間でのデッドロックの可能性が8.2で発生していました。 これを修正しました。 デッドロックが致命的なコード部分で発生し得たため、8.3ではこれが悪化し、ただのERROR条件ではなくPANICとなりました。

  また、システムカタログのバキューム中に途中で失敗した`VACUUM FULL`により、同時実行中のデータベースセッションのキャッシュを破壊する結果になります。

  他にも8.3で発生した`VACUUM FULL`の不具合により、有効なタプルを含まないページの処理中にクラッシュまたはメモリ不足報告が発生する結果になります。

- `character`または`bit`列を含む外部キー検査の誤動作を修正しました。(Tom)

  参照列が異なる型だが型互換がある場合（例えば`varchar`）、制約が間違って強制されました。

- 不要となった外部キー検査における不必要なデッドロック失敗を防ぎます。(Stephan Szabo, Tom)

- 準備済文の再計画時のコアダンプの可能性を修正しました。(Tom)

  この不具合は、SQL `PREPARE`ではなく、プロトコルレベルの準備操作にのみ影響しました。 このため、準備済文を非常に多く使用するJDBC、DBIなどクライアントサイドのドライバでのみ現れる傾向がありました。

- SPIを使用する関数を呼び出す問い合わせの再作成時に可能性がある失敗を修正しました。(Tom)

- 異なるデータ型を含む行全体の比較における失敗を修正しました。(Tom)

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

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

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

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

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

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

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

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

- `tsquery`値の間違った比較を修正しました。(Teodor)

- 単一バイト符号化方式における非ASCII文字の`LIKE`の間違った動作を修正しました。(Rolf Jentsch)

- `xmlvalidate`を無効にしました。(Tom)

  この関数は8.3リリース以前に削除すべきでしたが、不注意にソースコード内に残っていました。 非特権ユーザがサーバでアクセス可能な任意のファイルの先頭数文字を読み取ることができますので、これは小さなセキュリティ上の危険性があります。

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

- `encode(`bytea`, 'escape')`がすべての上位ビット群を`\``nnn`8進エスケープ列に変換するようにしました。(Tom)

  データベース符号化方式がマルチバイトの場合に符号化問題を防ぐために必要です。 `encode`の特定の結果を想定するアプリケーションでは、この変更は互換性に関する問題が発生します。

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

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

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

- `CREATE TABLE LIKE INCLUDING INDEXES`におけるテーブル空間権限エラーを防止しました。(Tom)

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

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

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

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

- 配列に関するecpgの問題を修正しました。(Michael)

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

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

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

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

- MSVCを使用した`contrib/uuid-ossp`の構築が可能になりました。(Hiroshi Saito)

前のページ | ホーム | 次のページ
リリース8.3.2 | 上に戻る | リリース 8.3