リリース8.3.2

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

# E.9. リリース8.3.2

> リリース日: リリースされませんでした

このリリースには8.3.1からの各種修正が含まれています。 8.3メジャーリリースにおける新機能については項E.11を参照してください。

## E.9.1. バージョン8.3.2への移行

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

## E.9.2. 変更点

- WindowsでUTF-8データベース符号化方式と異なるクライアント符号化方式が使用された場合に発生する`ERRORDATA_STACK_SIZE exceeded`のクラッシュを修正しました。(Tom)

- `recovery_command`パラメータの`%r`マクロにおける間違ったアーカイブ消去ポイント計算を修正しました。(Simon)

  ウォームスタンバイスクリプトがいつWALセグメントファイルを捨てるかを`%r`に基づいて決める場合にデータ損失が発生する可能性がありました。

- 新しい列がすべて非NULLに初期化されていることが正しく検査されるように`ALTER TABLE ADD COLUMN ... PRIMARY KEY`を修正しました。(Brendan Jurd)

  これまでのバージョンでは、この必要条件の検査をまったく行っていませんでした。

- 手続き言語にも動作できるように`REASSIGN OWNED`を修正しました。(Alvaro)

- `SELECT`以外の最上位操作を行う問い合わせの副問い合わせとして`SELECT FOR UPDATE/SHARE`が存在した場合の問題を修正しました。(Tom)

- "同じ"制約を、共通の祖先からその制約を継承する複数の親リレーションから継承する場合に、`CREATE TABLE`が失敗する可能性を修正しました。(Tom)

- `UPDATE`または`DELETE`の対象テーブルに別名が付与されていたならば、`pg_get_ruledef()`がその別名を表示するように修正しました。(Tom)

- TidScan計画で使用されるTID内の範囲外ブロック番号が警告なく行にまったく一致しないという結果になる、8.3以前の動作に戻しました。

  8.3.0と8.3.1では代わりにエラーになりました。

- `too many LWLocks taken`という結果をもたらす、GINの不具合を修正しました。(Teodor)

- `tsquery`における壊れたGiST比較関数を修正しました。(Teodor)

- 動作することが見込まれる型についてのドメインを受け付けるように`tsvector_update_trigger()`と`ts_stat()`を修正しました。(Tom)

- 列挙データ型を外部キーとしてサポートするエラーを修正しました。(Tom)

- 破損したデータを伸長する時に潜在するクラッシュを防止します。(Zdenek Kotala)

- 遅延削除と`DROP DATABASE`間の競合条件を修正しました。(Heikki)

  最悪の場合、新しいデータベースに新しく作成したテーブルが最近削除されたテーブルと同じOIDを持つことが起こったら、そのテーブルを削除する結果になりました。 しかし、もちろんこれは非常に可能性が低いシナリオです。

- バックエンドが共有メモリを破損したままSIGTERMによる終了する2か所を修正しました。(Tom)

  SIGTERMがデータベースクラスタ全体を停止するために使用された場合、どちらも非常に重要ではありません。 しかし、個々のバックエンドにSIGTERMを送信することを試みる場合が問題でした。

- `x`と`y`が異なるデータ型を取る場合に``x` IN (SELECT `y` FROM ...)`句に対して生成される不正確な計画による潜在するクラッシュを修正しました。 そして、`y`型から`x`型への変換に損失がある場合に、意味的な正確に動作することを確認しました。(Tom)

- プランナが既知のParam値が定数であった場合にそれを代用しないという見落としを修正しました。(Tom)

  8.3.0と8.3.1では、このミスは部分的に無名の拡張問い合わせ文の最適化を無効にしました。 特に、LIKEパターンがパラメータとして渡される場合、LIKE対インデックススキャン最適化は決して適用されませんでした。 また、パラメータ値に依存した制約による除外も動作しませんでした。

- インデックス可能な`MIN`または`MAX`集約が`DISTINCT`または`ORDER BY`で使用された場合のプランナの失敗を修正しました。(Tom)

- プランナがSortノードを生み出す計画ノードで"physical tlist"を使用しないことを確実にしました。(Tom)

  これによりソートされたデータ内に未使用の列値が含まれるため、本来必要なデータより多くのデータをソートで処理しなければなりませんでした。

- 不要な問い合わせ文字列の複製をやめました。(Tom)

  この修正は、8.3.0でもたらされた、多数のコマンドが単一問い合わせ文字列として受け付けた時の性能問題を修正します。

- 子トランザクションのXIDを検査する際に、`TransactionIdIsCurrentTransactionId()`がリニア検索ではなく二分検索を使用するようにしました。(Heikki)

  これは、8.3.0が以前のリリースに比べ非常に低速になる一部の状況を修正します。

- キリル語の"Yo"文字（2つのドットを持つ`e`と`E`）を扱うISO-8859-5と他の符号化方式との間の変換を修正しました。(Sergey Burladyan)

- 複数のデータ型入力関数、特に、結果に初期化されず予測できない値を含む未使用のバイトを許す`array_in()`を修正しました。(Tom)

  これは、2つの明らかに同じリテラル値が等しいとみなされず、結果パーサは一致しない`ORDER BY`および`DISTINCT`式に関して不平をいうといったエラーをもたらします。

- 正規表現副文字列一致（`substring(`string` from `pattern`)`）における境界状態を修正しました。(Tom)

  この問題は、パターン全体は一致するが、ユーザが括弧付きの副式を指定し、その副式が一致しなかった時に発生します。 例えば、`substring('foo' from 'foo(bar)?')`です。 `(bar)`は一致しませんので、これはNULLを返すべきです。 しかし、間違ってパターン全体が一致（つまり`foo`）という結果を返していました。

- XID周回を防ぐために起動された自動バキュームのキャンセルを防ぎます。(Alvaro)

- 統計情報コレクタに報告する数がより正確になるように、`ANALYZE`の疑わしいタプル（まだコミットされていないトランザクションにより挿入または削除されたタプル）の扱いを改良しました。(Pavan Deolasee)

- `--xlogdir` (`-X`)オプションにおける相対パスを拒絶するようにinitdbを修正しました。(Tom)

- psqlがタブ文字を、8.3.0と8.3.1で使用された`\x09`ではなく、適切な数の空白文字で表示するようにしました。(Bruce)

- 時間帯データファイルをtzdataリリース2008c（モナコ、イラク、チョイバルサン、パキスタン、シリア、キューバ、アルゼンチン/サンルイスにおける昼時間規則の変更）まで更新しました。

- ecpglibに`ECPGget_PGconn()`関数を追加しました。(Michael)

- ecpgの`PGTYPEStimestamp_sub()`関数からの不正確な結果を修正しました。(Michael)

- ecpgにおける継続行印の扱いを修正しました。(Michael)

- `contrib/cube`関数に潜在したクラッシュを修正しました。(Tom)

- 入力問い合わせがNULL値を返す場合の`contrib/xml2`の`xpath_table()`関数のコアダンプを修正しました。(Tom)

- `contrib/xml2`のmakefileが`CFLAGS`を上書きしないように修正しました。 また、libxsltの存在を適切に自動検出するようにしました。(Tom)

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