リリース8.2.18

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

# E.40. リリース8.2.18

> リリース日: 2010-10-04

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

## E.40.1. バージョン8.2.18への移行

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

## E.40.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の共有メモリ割り当てコードを修正しました。(Tsutomu Yamada, Magnus Hagander)

  この不具合により、よく報告された"could not reattach to shared memory"というエラーメッセージがもたらされました。 これは、すこし前により新しいブランチに適用された改修を過去のバージョンに適用したものです。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- 削除された列を含むテーブルに対する`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はこの新しい振舞いにより合致しています。

前のページ | ホーム | 次のページ
リリース8.2.19 | 上に戻る | リリース8.2.17