[11/15開催: PostgreSQL Conference Japan 2019 参加受付中] 
他のバージョンの文書 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

E.159. リリース8.3.12

リリース日: 2010-10-04

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

E.159.1. バージョン8.3.12への移行

8.3.Xからの移行ではダンプ/リストアは不要です。 しかし、8.3.8以前のバージョンからアップデートする場合は、E.163. リリース8.3.8を参照してください。

E.159.2. 変更点

  • PL/PerlおよびPL/Tclにおいて、呼び出し元のSQLユーザIDごとに別のインタプリタを使用します。(Tom Lane)

    この変更は、同じセッション内でその後に異なるSQLユーザIDにより実行されるPerlまたはTclコード(例えばSECURITY DEFINERの内部)を破壊することで発生する可能性があるというセキュリティ問題を防止するものです。 ほとんどのスクリプト用言語は、対象とする関数で呼び出される標準関数や演算子の再定義など、これを行うことができる多くの方法を提供します。 この変更がないと、PerlまたはTcl言語の使用権限を持つ任意のSQLユーザは基本的に、対象の関数の所有者が持つSQL権限でできることを何でもできるようになります。

    この変更の欠点はPerlおよびTcl関数間の内部通信がより難しくなるという点です。 逃げ道を提供するために、PL/PerlUおよびPL/TclU関数ではまだセッション当たり1つのインタプリタのみを使用します。 これらのすべての関数は従来よりデータベーススーパーユーザの信頼レベルで実行されますので、これはセキュリティ問題とはみなされません。

    信頼された実行を提供することを主張するサードパーティ製の手続き言語は似たようなセキュリティ問題を持つ可能性が大きくあります。 セキュリティが非常に重要な目的のために依存している手続き言語があれば、その作者に連絡を取ることを勧めます。

    この問題を指摘いただいたTim Bunceに感謝します(CVE-2010-3433)。

  • pg_get_expr()の用途として意図されたシステムカタログ列の一つではない引数で呼び出されることを拒絶することでpg_get_expr()内のクラッシュする可能性を防止します。(Heikki Linnakangas, Tom Lane)

  • Windowsにおいて終了コード128(ERROR_WAIT_NO_CHILDREN)を致命的でないものと扱います。(Magnus Hagander)

    高負荷状況下で、Windowsプロセスはこのエラーコードで起動に失敗することが時々あります。 以前はpostmasterはパニック状態としてこれを扱い、データベース全体を再起動しました。 しかしこれは過度の反応のように思われます。

  • 追加のインデックススキャンにおける厳密ではないOR結合句の不正な使用を修正しました。(Tom Lane)

    これは8.3系列にはなかった8.4の修正を過去にパッチ適用したものです。 これは8.3.8で持ち込まれた、内側のリレーションが継承ツリーまたはUNION ALL副問い合わせの場合に不正な外部結合結果となるというエラーを修正するものです。

  • UNION ALLのメンバーリレーションの二重スキャンの可能性を修正しました。(Tom Lane)

  • cannot handle unplanned sub-selectエラーを修正しました。(Tom Lane)

    これは、副選択が他の副選択を含む式に展開される結合の別名参照を含む場合に発生しました。

  • キャッシュされた計画を一時的なものと印付けする失敗を修正しました。(Tom Lane)

    CREATE INDEX CONCURRENTLYが参照されるテーブルの1つに対して進行している時に計画が準備された場合、インデックスの使用準備ができた後に再度計画を作成するものと仮定されています。 これが確実に起こりませんでした。

  • まれに報告されたB-tree失敗状況の一部をPANICからERRORを減らしました。 また出力されるエラーメッセージに追加の詳細を加えました。(Tom Lane)

    これにより、破損したインデックスに対するシステムの堅牢性が向上したはずです。

  • 自動バキューム処理中のクラッシュからshow_session_authorization()を防止します。(Tom Lane)

  • 返される行のすべてが実際に同一の行型でない、レコードの集合を返す関数を防御します。(Tom Lane)

  • 参照渡し関数の結果をハッシュ化する時に失敗する可能性を修正しました。(Tao Ma, Tom Lane)

  • マージ結合における、結合列内のNULLの処理を改良しました。(Tom Lane)

    NULLがソートで先になるようなソート順の場合、最初のNULLに達した時にマージ結合が完全に停止することができるようになりました。

  • ロックファイル(postmaster.pidおよびソケット用のロックファイル)を書き出す時に、注意してその内容のfsyncします。(Tom Lane)

    これがないと、postmasterの起動後しばらくしてマシンがクラッシュした場合に、ロックファイルの内容が破損することがあり得ました。 これが起きると、このロックファイルを手作業で削除するまで、その後のpostmasterの起動試行が成功できなくなります。

  • 過度に入れ子になった副トランザクションに対してXIDを割り当てる際の再帰を防止します。(Andres Freund, Robert Haas)

    元々のコードでは、制限されたスタック領域であった場合にクラッシュすることがあり得ました。

  • walwriterプロセス内で古いWALセグメントを開いたまま保持しないようにしました。(Magnus Hagander, Heikki Linnakangas)

    これまでのコードでは、不要となったセグメントの削除が妨げられていました。

  • バックエンド起動の初期にゴミを生成することがあったlog_line_prefix%iエスケープを修正しました。(Tom Lane)

  • アーカイブ処理が有効な場合、ALTER TABLE ... SET TABLESPACEにおけるデータ破損の可能性を修正しました。(Jeff Davis)

  • CREATE DATABASEALTER DATABASE ... SET TABLESPACEを問い合わせキャンセルにより中断させることができます。(Guillaume Lelarge)

  • 演算子クラスと演算子族を扱うREASSIGN OWNEDを修正しました。(Asko Tiidumaa)

  • 2つの空のtsquery値を比較する際にコアダンプする可能性を修正しました。(Tom Lane)

  • %に続く_を持つパターンに対するLIKEの処理を修正しました。(Tom Lane)

    以前にもこれを修正しましたが、正しく処理されない場所が一部残っていました。

  • PL/Pythonにおいて、PyCObject_AsVoidPtrおよびPyCObject_FromVoidPtrからのヌルポインタ結果を防止します。(Peter Eisentraut)

  • 自動コミットモードが無効な場合、DISCARD ALLをトランザクションブロック内に包むべきものではないコマンドとしてpsqlが認識するようにしました。(Itagaki Takahiro)

  • RETURNING句からのデータを正しく処理するようにecpgを修正しました。(Michael Meskes)

  • 削除された列を含むテーブルに対するcontrib/dblinkの処理を改良しました。(Tom Lane)

  • contrib/dblinkにおいてduplicate connection nameエラー後の接続リークを修正しました。(Itagaki Takahiro)

  • 62バイトより長い接続名に関するcontrib/dblinkの処理を正しく修正しました。(Itagaki Takahiro)

  • hstore(text, text)関数をcontrib/hstoreに追加しました。(Robert Haas)

    この関数は、廃止予定となった=>演算子に対する推奨の代替です。 将来を見据えたコードが古めのバージョンのサーバでも使用できるようにするために過去にもパッチが適用されました。 このパッチは、contrib/hstoreのインストール後もしくは特定のデータベースに再インストールされた後にのみ効果を持つことに注意してください。 代わりに手作業でCREATE FUNCTIONコマンドを実行することを選ぶユーザがいるかもしれません。

  • 構築手順や文書を更新して、ソースコードリポジトリがCVSからGitに変更されたことを反映しました。(Magnus Hagander他)

  • 時間帯データファイルをtzdata release 2010lに更新しました。 エジプト、パレスチナにおける夏時間規則の変更、フィンランドの歴史的な修正が含まれています。

    またこの変更では、2つのミクロネシアの時間帯を追加しています。 Pacific/ChuukはPacific/Trukより好まれるようになり(好まれる省略形はTRUTではなくCHUT)、Pacific/PohnpeiはPacific/Ponapeより好まれるようになります。

  • WindowsのN. Central Asia Standard Time時間帯をAsia/AlmatyではなくAsia/Novosibirskに対応付けるようにしました。

    MicrosoftはKB976098の時間帯更新からこの時間帯の夏時間の振舞いを変更しました。 Asia/Novosibirskはこの新しい振舞いにより合致しています。