リリース8.3.4

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

# E.31. リリース8.3.4

> リリース日: 2008-09-22

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

## E.31.1. バージョン8.3.4への移行

8.3.Xからの移行ではダンプ/リストアは不要です。 しかし、8.3.1より前のバージョンからアップグレードする場合は、8.3.1のリリースノートを参照してください。

## E.31.2. 変更点

- B-tree WALリカバリコード内の不具合を修正しました。(Heikki)

  ページ分割操作中にWALが途中で止まった場合にリカバリが失敗しました。

- HOTページの切り詰めの際に間違ったカットオフXIDを使用する可能性を修正しました。(Alvaro)

  このエラーにより、`VACUUM`によって生じるシステムカタログの破壊の危険性が生まれました。 不要タプルの削除が早すぎる可能性です。 カタログの検証中にシステムがMVCC規則に従わないため、実行中のデータベース捜査における影響は最小です。 しかし、pg_dumpや他のクライアントプログラムからの出力が過渡的に間違ったものになるかもしれません。

- `datfrozenxid`の誤計算の可能性を修正しました。(Alvaro)

  このエラーにより古い`pg_clog`データの削除に失敗するというここ最近の報告が説明できます。

- `pg_class`が再インデックス付けされた後不正確なHOT更新を修正しました。(Tom)

  `REINDEX TABLE pg_class`が`ALTER TABLE RENAME`または`ALTER TABLE SET SCHEMA`コマンドによるセッションと同じセッションで続けられた場合`pg_class`の破損が発生する可能性がありました。

- 失った"コンボ cid"状況を修正しました。(Karl Schnaitter)

  複数の副トランザクションで削除されたが、すべての副トランザクションがアボートされた場合、このエラーによりトランザクションから不正に不可視の行が生じました。

- 自動バキュームにより検査中のテーブルが運悪く削除された場合に自動バキュームがクラッシュしないようにしました。(Alvaro)

- 局所ロックのカウンタを32ビットから64ビットに広げました。(Tom)

  これは、かなり長いトランザクションでカウンタがオーバーフローし、想定外の"すでに保持済のロックである"というエラーになるという報告に対応したものです。

- GiSTインデックススキャン中に出力タプルが重複する可能性を修正しました。(Teodor)

- どちらかのテーブルが変更された場合の外部キー検査問い合わせを初めから作り直しました。(Tom)

  これまで8.3は問い合わせの計画を再作成しようとしていましたが、これまでに生成された問い合わせテキストから作業していました。 これは、テーブルや列の名前が変わった場合に失敗することになります。

- ビューが単純な`UNION ALL`式を含む場合、行われなかった権限検査を修正しました。(Heikki)

  被参照テーブルの権限は正しく検査されていましたが、ビュー事態の権限はそうでありませんでした。

- `INSERT`または`UPDATE`で生成されるタプルが対象のテーブルの現在の行型に一致するか確認するために、エグゼキュータ起動の際の検査を追加しました。(Tom)

  このような状況は8.3では起こりえないと考えていますが、過去のリリースでは発生することがあります。 ですので、この検査は用心深いものといえます。

- `DROP OWNED`中の削除が繰り返される可能性を修正しました。(Tom)

  これによりよく"リレーションNNNのキャッシュ検索に失敗した"などのおかしなエラーが発生しました。

- XML操作における複数のメモリリークを修正しました。(Kris Jurka, Tom)

- 対象のデータ型で受け入れられない場合、正しくエラーになるように`xmlserialize()`を修正しました。(Tom)

- テキスト検索設定ファイルの解析においてマルチバイト文字を間違って扱う数か所を修正しました。(Tom)

  設定ファイル内に存在する特定の文字により常に"符号化方式において無効なバイトシーケンス"という失敗が発生しました。

- テキスト検索設定ファイル内で報告されるすべてのエラーに対してファイル名と行番号を含めました。(Tom)

- まず時間帯引数を時間帯省略形として解釈し、これまでのように他の方法を取らずに、それが失敗した場合にのみ完全な時間帯名称として解釈するように`AT TIME ZONE`を修正しました。(Tom)

  タイムスタンプ入力関数は常にこの順序であいまいな時間帯名の解決を行っていました。 `AT TIME ZONE`も同様にすることで一貫性が向上し、そして、8.1で混入された互換性に関する不具合を修正します。 過去のバージョンの`AT TIME ZONE`では省略形のみを受け付けていましたので、あいまいな場合に8.0以前と同様な動作をするようになりました。

- 64ビットプラットフォームで稼働している場合、日付時刻入力関数が正しく整数オーバーフローを検知できるよう修正しました。(Tom)

- 単位指定がある設定パラメータを表示する際に、単位変換による整数オーバーフローを防ぎます。(Tom)

- 非常に長いログメッセージをsyslogに書き出す際の性能を向上しました。(Tom)

- `pg_hba.conf`内のLDAP URLの接尾辞部分に空白文字を許します。(Tom)

- `SELECT DISTINCT ON`問い合わせに対するカーソルの後方スキャンにおける不具合を修正しました。(Tom)

- 間違って外部結合の下に`IS NULL`検査を押し下げるというプランナの不具合を修正しました。

  これは、上位の`OR`句のすべての辺において同一のリレーションに対する`IS NULL`検査が存在する場合に発生しました。

- 入れ子状の副問い合わせ式がある場合のプランナの不具合を修正しました。(Tom)

  外側の副問い合わせが親問い合わせに直接の依存性がなく、内側の副問い合わせが依存性がある場合、外側の値が新しい親問い合わせの行に対して再計算されなくなる可能性がありました。

- プランナが論理型の結果を生成する`GROUP BY`式を、式の内容に関係なく、常に2つのグループになると推定することを修正しました。(Tom)

  これにより、`col` `IS NULL`などの特定の論理試験に対して、通常の`GROUP BY`推定より非常により良く精度が上がります。

- `FOR`ループの対象値が複合型のフィールドを含むレコードである場合に失敗しないようにPL/pgSQLを修正しました。(Tom)

- Tcl 8.5で正しく動作するようPL/Tclを修正しました。 また、Tcl間でやりとりされるデータの符号化方式についてより注意を払うように修正しました。(Tom)

- `PQescapeBytea()`の性能を向上しました。(Rudolf Leitgeb)

- Windowsにおいて、libpqがシステムコール当たり64kBを超えて送信しないようにすることで、Microsoftの不具合を回避しました。(Magnus)

- `SET`コマンドで変数を正しく扱うようecpgを修正しました。(Michael)

- pg_dumpおよびpg_restoreがSQLコマンドの送信に失敗した後に報告するエラーを改良しました。(Tom)

- pg_ctlが`restart`の間正しくpostmasterのコマンドライン引数を保持するように修正しました。(Bruce)

- pg_standbyの間違ったWALファイルのカットオフポイント計算を修正しました。(Simon)

- 時間帯データファイルをtzdataリリース2008f（アルゼンチン、バハマ、ブラジル、モーリシャス、モロッコ、パキスタン、パレスチナ、パラグアイにおける夏時間規則の変更）まで更新しました。

前のページ | ホーム | 次のページ
リリース8.3.5 | 上に戻る | リリース8.3.3