リリース日: 2008-03-17
このリリースは8.3.0の各種不具合を修正したものです。 8.3メジャーリリースにおける新機能については項E.7を参照してください。
8.3.Xからの移行ではダンプ/リストアは不要です。 しかし、後述のWindowsロケール問題の影響がある場合、移行後にテキスト型の列上のインデックスに対しREINDEXを行わなければならないかもしれません。
異なる文字の組み合わせを等価とみなす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')
がすべての上位ビット群を\nnn8進エスケープ列に変換するようにしました。(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)