リリース日: 2008-03-17
このリリースは8.3.0の各種不具合を修正したものです。 8.3メジャーリリースにおける新機能についてはE.198を参照してください。
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')\
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)