リリース日: 2017-08-31
このリリースは9.6.4に対し、少数の不具合を修正したものです。 9.6メジャーリリースにおける新機能については、E.6. リリース9.6 を参照してください。
9.6.Xからの移行ではダンプ/リストアは不要です。
しかしながら、9.6.4よりも前のバージョンからアップグレードする場合は、E.2. リリース 9.6.4を参照して下さい。
information_schema.table_privilegesビューで外部テーブルを表示するようになりました。
(Peter Eisentraut)
全ての他の関連するinformation_schemaビューは外部テーブルを含んでいますが、このビューは外部テーブルを無視していました。
このビュー定義はinitdbで導入されるため、アップグレードするだけでは問題は修正されません。 既存のインストレーションで修正する必要がある場合、スーパーユーザーとしてpsqlで以下を実行してください。
BEGIN;
DROP SCHEMA information_schema CASCADE;
\i SHAREDIR/information_schema.sql
COMMIT;
(SHAREDIRがどこににあるか確証がもてない場合、pg_config --sharedirを実行してください。)
これは修正すべき各データベースで繰り返さなくてはなりません。
失敗したトランザクションのROLLBACK実行を試みている間に生じた、致命的な(例えばSIGTERMを受けとったことによる)終了の処理を整理しました。
(Tom Lane)
この状況はアサート失敗に至るかもしれません。 実運用ビルドでもこのような終了は起きますが、この場合は「cannot drop active portal(アクティブポータルを削除できません)」といった予期せぬメッセージがログ出力されます。
致命的な終了の間に駆動するかもしれないアサートを削除しました。 (Tom Lane)
検索されている、複合型またはドメイン型の上の、範囲型またはドメイン型の列を正確に識別するようにしました。 (Tom Lane)
複合型またはドメイン型の定義を変更する、ある種のALTERコマンドはデータベース中にその型の格納された値が1つでもあるときはエラーになるはずでした。なぜなら、そのような値を更新または検査するのに必要な基盤が欠けているためです。
これまでは、これらの検査は範囲型またはドメイン型の内側にラップされた関連する値を見過ごすかもしれず、データベースが不整合になるのを許すおそれがありました。
固定長の参照渡しのデータ型をパラレルワーカプロセスに渡すときのクラッシュを防止しました。 (Tom Lane)
pg_restoreにおける、パラレルモードを使っていてリストアする部分要素を選択するのにリストファイルを使っているときのクラッシュを修正しました。 (Fabrízio de Royes Mello)
ecpgのパーサを、C変数の割り当て無しのRETURNING句が使えるように変更しました。
(Michael Meskes)
これによりRETURNINGをクライアントに返される値を定義するためではなく内部的に(例えばCTE内に)使ったSQL構文をecpgプログラムに含むことができます。
Cプリプロセッサコマンド行のバックスラッシュ継続を認識するようにecpgのパーサを変更しました。 (Michael Meskes)
Windows上のPL/Perlに対するコンパイラフラグの選択を改善しました。 (Tom Lane)
本修正はtime_t値の幅についての一貫性のない仮定のために起こりうるPL/Perlのクラッシュを回避します。
拡張の開発者に見えるかもしれない副作用は、_USE_32BIT_TIME_TがPostgreSQLのWindowsビルドではもはやグローバルに定義されないことです。
time_tはいかなるPostgreSQL API定義でも使われないため、これは問題をひき起こさないと予想されます。
非GNUのmakeプログラムから起動されたときに正しく動作するようにmake checkを修正しました。
(Thomas Munro)