PostgreSQL 9.4.5文書 | |||
---|---|---|---|
前のページ | 上に戻る | 付録 E. リリースノート | 次のページ |
リリース日: 2012-12-06
このリリースは8.4.14に対し、各種不具合を修正したものです。 8.4メジャーリリースにおける新機能については、項E.99を参照してください。
8.4.Xからの移行ではダンプ/リストアは不要です。
However, if you are upgrading from a version earlier than 8.4.10, see 項E.89. --> しかし8.4.10より前のバージョンからアップグレードする場合は、項E.89を参照してください。
CREATE INDEX CONCURRENTLYに関連する複数の不具合を修正しました。(Andres Freund、Tom Lane)
CREATE INDEX CONCURRENTLYがインデックスのpg_indexの行の状態を変更するときに、その場にある更新を使うように修正しました。 これにより、同時実行中のセッションが対象のインデックスを更新できず、それによりCONCURRENTLYで作成されるインデックスを破損させることになる競合条件を防ぐことができます。
また、CREATE INDEX CONCURRENTLYコマンドのエラーの結果として作られる不正なインデックスについて、他の様々な操作が確実に無視するように修正しました。 この中で最も重要なのはVACUUMです。 なぜなら、この不正なインデックスを修正あるいは削除するための修正の処理が実行される前に、自動バキュームが実行されることがあり得るからです。
メモリが不足した時でも、内部ハッシュテーブルが破損しないようにしました。(Hitoshi Harada)
外部結合上の厳格でない等価な句についての計画作成を修正しました。(Tom Lane)
厳格でない構造を他のものと等号で結ぶ句について、プランナが誤った制約を導出する場合がありました。 例えば、WHERE COALESCE(foo, 0) = 0でfooが外部結合のNULLになるかもしれない側のもののときです。
プランナについて、等価なクラスから排他制約を証明する能力を向上しました。(Tom Lane)
ハッシュされた副計画の部分行のマッチングについて、型をまたがる場合を正しく処理できるよう修正しました。(Tom Lane)
これはWHERE (a, b) NOT IN (SELECT x, y FROM ...)のような複数の列についてのNOT INの副計画で、例えばbとyがそれぞれint4型とint8型である、というような場合に影響します。 この処理の誤りにより、そこで使われているデータ型によって、誤った結果が得られたり、あるいはクラッシュする、ということが起きていました。
AFTER ROW UPDATE/DELETEトリガーで古いタプルを再フェッチする時、バッファロックを取得するようにしました。(Andres Freund)
この誤りにより、非常に特異な状況において、外部キーを強制するトリガーの事前チェックのロジックに対して誤ったデータを渡すことがありました。 その結果として、クラッシュを起こしたり、あるいはトリガーを実行するかどうかについて誤った判断をすることがありました。
ALTER COLUMN TYPEについて、継承されたチェック制約を正しく処理できるように修正しました。(Pavan Deolasee)
これは8.4より前のリリースでは正しく動作していました。 この修正により8.4およびそれ以降のリリースでも正しく動作するようになりました。
REASSIGN OWNEDについて、表領域のGRANTが正しく処理できるように修正しました。(Álvaro Herrera)
ビューのシステム列についてのpg_attributeの誤ったエントリを無視するようにしました。(Tom Lane)
ビューにはシステム列はありません。 しかし、表をビューに変換するとき、そのようなエントリを取り除くことを忘れていました。 これは9.3およびそれ以降のリリースでは適切に修正されますが、それ以前のブランチにおいても、誤って変換されたビューが存在しないようにする必要があります。
ルールの出力について、INSERT INTO table DEFAULT VALUESを正しくダンプできるよう修正しました。(Tom Lane)
問い合わせが非常に多くのUNION/INTERSECT/EXCEPTを含むときでもスタックオーバーフローが発生しないようにしました。(Tom Lane)
もっとも小さな整数値を-1で割り算した時に、プラットフォームによってはエラーとなるのを修正しました。(Xi Wang、Tom Lane)
日付文字列の解析で、文字列の終わりを越えてアクセスすることがあるのを修正しました。(Hitoshi Harada)
Unixドメインソケットのパス名がプラットフォーム依存の最大長を超えていた場合に、理解可能なエラーメッセージを生成するようにしました。(Tom Lane、Andrew Dunstan)
以前は"Non-recoverable failure in name resolution"(名前解決で解決不能なエラーが発生しました)といった非常に不親切なエラーを起こしていました。
複合列の値をクライアントに送るときのメモリリークを修正しました。(Tom Lane)
postmaster.pidファイルの読み込みについて、pg_ctlをより堅牢にしました。(Heikki Linnakangas)
競合条件、およびファイルデスクリプタのリークを解決しました。
psqlにおいて、不正にエンコードされたデータが入力され、かつclient_encodingの設定がSJISのようにクライアントでしか利用できない文字セットである場合にクラッシュする場合があるのを修正しました。(Jiang Guiqing)
pg_dumpがtar出力形式で生成するrestore.sqlスクリプトの不具合を修正しました。(Tom Lane)
このスクリプトはテーブル名が大文字を含む場合に全く動作しませんでした。 また、このスクリプトで通常のCOPYモードだけでなく--insertsモードの場合もデータをリストアできるようにしました。
pg_restoreでPOSIX準拠のtarファイルを処理できるよう修正しました。(Brian Weaver、Tom Lane)
pg_dumpのtar出力モードの元々のプログラムは、POSIX標準に完全には準拠していないファイルを生成していました。 この問題はバージョン9.3で修正されます。 このパッチは9.3より前のブランチを修正するもので、正しくないフォーマットと正しいフォーマットの両方を処理できるようにします。 これにより、9.3がリリースされた時に互換性の問題を防ぐことができます。
pg_resetxlogについて、データディレクトリへの相対パスが与えられた時に、postmaster.pidの場所を正しく特定できるよう修正しました。(Tom Lane)
この誤りにより、データディレクトリを使用している動作中のpostmasterがあることにpg_resetxlogが気が付かないことがありました。
libpqのlo_import()
関数およびlo_export()
関数が、ファイルI/Oのエラーを適切に報告するよう修正しました。(Tom Lane)
ecpgについて、ネストした構造体のポインタ変数の処理を修正しました。(Muhammad Usama)
contrib/pageinspectのBツリーページ検査関数で、ページの検査中はバッファロックを取得するようにしました。(Tom Lane)
AIX上でのロードモジュールのビルドについてpgxsのサポートを修正しました。(Tom Lane)
元々のソースツリーの外側でモジュールをビルドしてもAIXでは正しく動作しませんでした。
タイムゾーンデータファイルをtzdataリリース2012jに更新しました。 キューバ、イスラエル、ヨルダン、リビア、パレスチナ、西サモア、およびブラジルの一部での夏時間の変更が含まれます。