PostgreSQL 9.0.21 に関する技術情報

このリリースは 9.0.20 からの修正リリース(2015年6月4日リリース)です。
9.0.x からのアップデートではダンプ、リストアは不要です。

また、9.0.18 より前のバージョンからアップデートを行う場合は 9.0.18 に関する技術情報を参照してください。

PostgreSQL 9.0.20 から 9.0.21 への変更点

9.4.3、9.3.8、9.2.12、9.1.17、9.0.21 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。


  1. クラッシュ後の再起動でデータディレクトリに fsync をかけるときの失敗を回避するようになりました。 (Abhijit Menon-Sen, Tom Lane) (9.4)(9.3)(9.2)(9.1)(9.0)
  2. 一つ前のマイナーリリースで、クラッシュ後にデータディレクトリ内の全てに fsync をかける修正が加わりましたが、これは全ての状況に対応できていませんでした。これにより、無害な問題であってもサーバの起動が妨げられてしまいます。

    具体的には、書き込み不能なファイルが含まれていた場合に一部プラットフォームでは再起動できなくなってしまいます。とはいえ、サーバで SSL証明書ファイルを書き込み不能にするのは一般的です。

    本修正は改定され、全体的にパーミッションによる失敗は無視されるようになりました。また、他の失敗もログ出力されますが、処理の継続は止めないようになりました。

    PostgreSQL 9.4系については、重要度は低いですが同様に振る舞うべきであるため、initdb の --sync-only オプションも同じ規則で動作するようになりました。

  3. pg_get_functiondef() 関数が、設定されているならLEAKPROOF属性を出力するように修正されました。 (Jeevan Chalke) (9.4)(9.3)(9.2)
  4. pg_get_functiondef() 関数は psql の ef コマンドで使われます。

  5. 内部実装用の pushJsonbValue()関数が jbvBinaryオプジェクトを展開するように修正されました。 (Andrew Dunstan) (9.4)
  6. jbvBinary とは JSONBデータ型の内部格納データ区分の一つです。本変更による PostgreSQL本体の振る舞い変更はありませんが、拡張モジュールからの呼び出しにおける例外的な問題ケースを回避します。

  7. configure の OpenBSD におけるスレッド対応したlibpythonへのリンクを禁止する検査が除去されました。 (Tom Lane) (9.4)(9.3)(9.2)(9.1)(9.0)
  8. 最近のテストでは問題なく動作しており、禁止する必要がないと判断されました。

  9. libpq で TLSプロトコルバージョン v1 以上が利用可能になりました。 (Noah Misch) (9.3)(9.2)(9.1)(9.0)
  10. これまで libpq は SSLプロトコルとして TLS v1 のみが使えました。現在ではより新しいバージョンが一般的です。PostgreSQLサーバでは既に対応しており、サーバ側の変更はありません。