PostgreSQL 8.2.12 に関する技術情報

このリリースは 8.2.11 からの修正リリース(2009/02/02リリース)です。
本ドキュメントは PostgreSQL のリリースノートを基に作成しています。
8.2.x からのアップデートではダンプ、リストアは不要です。

しかし、8.2.11 より前のバージョンからアップグレードする場合は、8.2.11 に関する技術情報を参照してください。

PostgreSQL 8.2.11 から 8.2.12 への変更点


  1. URL をよりうまく操作できるように、headline() 関数を改良しました。(Teodor)
  2. 長すぎる headline をよりうまく扱えるように、headline() 関数を改良しました。(Teodor)
  3. 特定の組み合わせのエンコードを変換する関数が誤っているために、Assert での失敗や変換間違いが起こる可能性がありましたが、これを防ぐようになりました。(Tom, Heikki)
  4. PL/pgSQL で実行されたステートメントが他の種類のステートメントで書き換えされたときに、Assert での失敗が発生する可能性がありましたが、これが修正されました。たとえば INSERT が UPDARE に書き換えられるようなケースです。(Heikki)
  5. データ型を入力する関数で、スナップショットを利用できるようになりました。(Tom)

    この変更が影響するのは主に、CHECK 制約に stable / immutable なユーザ定義関数を含んでいる DOMAIN です。この種の関数はおしなべて、スナップショットが取得されていないと失敗してしまうためです。

  6. SPI を利用した関数が、データ型の入出力、特に DOMAIN の CHECK 制約で使われるときに、安全に使われるようになりました。(Tom)
  7. 小さいテーブルに対しての VACUUM で、余計なロックを取得しないようになりました。(Heikki)
  8. UPDATE RETURNING が、tableoid に正しい OID ではなく 0 を返す問題が修正されました。(Tom)
  9. 推移的等値性が OUTER JOIN 節に適用される際に、プランナが選択率の見積を誤る問題を修正しました。(Tom)

    これまで、〜 FROM a LEFT JOIN b ON a.a1 = b.b1 WHERE a.a1 = 42 〜 のような問い合わせで、効率の悪いプランを選択していました。

  10. IN 句に長いものが指定されたときも効率よく扱えるように、オプティマイザを改良しました。(Tom)

    制約の除外を有効にしたときに、長い IN 句に対して時間を膨大に費やさないようになりました。

  11. WITH HOLD のカーソルの内容が、TOAST 圧縮されたテーブルの内容に依存しないようになりました。(Tom)

    これまでは、カーソルの結果にある大きな行データ値が、TOAST 圧縮された値を示すポインタとして再発行される可能性がありました。このとき、カーソルが読み取る前に参照しているテーブルが削除されたり、大きなデータ値が VACUUM で削除されたりして、カーソルが使用できないことがありました。この問題は、通常のカーソルであれば発生しませんが、そのカーソルを作成したトランザクションが終わったあとも保持されるようなカーソルでは発生します。

  12. 集合を返す関数が結果すべてを読み取る前に停止されたときに、メモリリークが発生しないように修正されました。(Tom)
  13. contrib/dblink の dblink_get_result(text,bool) 関数が修正されました。(Joe)
  14. contrib/sslinfo 関数の余計な出力を修正しました。(Tom)
  15. PL/Perl のリンカ情報を取得できないときに適切にレポートするように、configure スクリプトが修正されました。(Andrew)
  16. pgsql-ports, pgsql-patches というメーリングリストが閉鎖されたので、ドキュメントではこれらの代わりに pgsql-bugs や pgsql-hackers を参照するようになりました。(Tom)
  17. タイムゾーンのデータファイルが tzdata 2009a に対応しました。(カトマンズ、スイスの歴史的な夏時間、キューバ に対応)