他のバージョンの文書 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

E.35. リリース9.3.16

リリース日: 2017-02-09

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

E.35.1. バージョン9.3.16への移行

9.3.Xからの移行ではダンプ/リストアは不要です。

しかしながら、インストレーションが下記変更点の最初の項目に書かれたバグの影響を受けている場合には、アップデート後に壊れたインデックスを修復する作業が必要になるでしょう。

また、9.3.15よりも前のバージョンからアップグレードする場合には、E.36. リリース9.3.15を参照してください。

E.35.2. 変更点

  • CREATE INDEX CONCURRENTLYで作られたインデックスの破損をもたらす競合状態を修正しました。 (Pavan Deolasee, Tom Lane)

    CREATE INDEX CONCURRENTLYが前もってインデックスされていない列に依存するインデックスの作成に使われていたなら、CREATE INDEXコマンドと同時実行するトランザクションにより更新された行が誤ったインデックスエントリを受け入れるおそれがありました。 この現象が生じた疑いがあるなら、最も確実な対応はアップデート実施後に影響をうけたインデックスを再作成することです。

  • ログをとらないテーブルに対するinit fork生成を無条件にWAL出力するようにしました。 (Michael Paquier)

    これまでwal_level = minimalのときには省略されていましたが、ログをとらないテーブルがクラッシュ後に適切に空に初期化されることを保証するために、実際にはその場合でも必要でした。

  • 統計情報コレクタがホットスタンバイ動作中に落ちたときに、それを再起動するようにしました。 (Takayuki Tsunakawa)

  • ホットスタンバイフィードバックがスタンバイサーバ開始時に有効にされた場合に正しく動作するようにしました。 (Ants Aasma, Craig Ringer)

  • ホットスタンバイが衝突する問い合わせを待機している間、割り込みを検査するようにしました。 (Simon Riggs)

  • 稀な場合に絶えず自動バキュームランチャーが再生成されるのを回避しました。 (Amit Khandekar)

    この修正は自動バキュームが名目上offでいくつか凍結を要するテーブルがあるけれども全てのそのようなテーブルは既に自動バキュームワーカにより処理中である場合の問題を回避します。

  • 拡張のメンバオブジェクトが削除できるときのチェックを修正しました。 (Tom Lane)

    拡張のアップグレードスクリプトはメンバオブジェクトを削除できなければいけませんが、serial列のシーケンスについてできませんでした。また、他の場合でもそうなる可能性がありました。

  • インデックス再作成のときにALTER TABLEがインデックスのテーブル空間の割り当てを確実に維持するようにしました。 (Tom Lane, Michael Paquier)

    これまではdefault_tablespaceのデフォルト以外の設定によりインデックス破壊をもたらす可能性がありました。

  • 参照先リレーションに対する待機中トリガイベントがあるときに外部キー制約を削除しないようにしました。 (Tom Lane)

    これによりcould not find trigger NNN(トリガNNNが見つかりません)またはrelation NNN has no triggers(リレーションNNNにトリガがありません)というエラーを回避します。

  • OIDを持つテーブルがOIDを持つ親テーブルとALTER TABLE ... INHERITを通して関連づけられているときのOID列の処理を修正しました。 (Amit Langote)

    この場合、OID列は通常のユーザ列と同様に扱われるべきでしたが、そうなっておらず、後の継承の変更で奇妙な振る舞いをひき起こしていました。

  • ALTER TEXT SEARCH CONFIGURATIONのとき、正しいオブジェクト識別を報告するようにしました。 (Artur Zakirov)

    ロジカルデコーディングなどの拡張に誤ったカタログOIDが報告されていました。

  • 直列化可能かを、制約違反エラーを報告する前に検査するようにしました。 (Thomas Munro)

    シリアライザブルトランザクション隔離を使っているとき、同時トランザクションを原因とするいかなるエラーも直列化の失敗として表明するのが望ましく、それによりアプリケーションにリトライが成功するかもしれないという手がかりを与えます。 残念ながら、キー重複の失敗が同時挿入で引き起こされた場合には、これは確実には生じません。 本変更は、アプリケーションがトランザクションのより早くに明示的に競合するキーの存在をチェックした(そして見つからなかった)なら、このようなエラーが直列化のエラーとして報告されることを保証します。

  • UPDATEのソース式でのfoo.*の複数列の展開を防止しました。 (Tom Lane)

    これはUPDATE target count mismatch --- internal error(UPDATE対象数が不一致です --- 内部エラー)をもたらしました。 これからは、この構文は他のコンテキストと同様に行全体の変数として解釈されます。

  • 複数行のVALUESコンストラクトに対して列のtypemodが精密に決定されるようにしました。 (Tom Lane)

    これは、列の最初の値が決定可能なtypmod(例えばvarcharの長さ)を持つけれど続く値は同じ制限を共有しないときに発生する問題を修正します。

  • ユニコード文字列の末尾における完結しないユニコードのサロゲートペアにエラーを出すようにしました。 (Tom Lane)

    通常、ユニコードのサロゲート先頭文字にはユニコードのサロゲート末尾文字が続かなければなりませんが、先頭文字がユニコード文字列リテラル(U&'...')またはユニコード識別子(U&"...")の最後の文字である場合に、これについての検査が見逃されていました。

  • !fooのような純粋な否定のテキスト検索問い合わせが空のtsvectorにマッチするようにしました。 (Tom Dunstan)

    このようなマッチはGINインデックス検索では見つかりましたが、シーケンシャルスキャンやGiSTインデックススキャンでは見つかりませんでした。

  • ts_rewrite()が非トップレベルのサブツリーを空クエリで置き換えるときのクラッシュを、防止しました。 (Artur Zakirov)

  • ts_rewrite()での性能問題を修正しました。 (Tom Lane)

  • ts_rewrite()の入れ子NOT演算子の扱いを修正しました。 (Tom Lane)

  • 空配列を適切に扱うようにarray_fill()を修正しました。 (Tom Lane)

  • quote_literal_cstr()で1バイトのバッファオーバランを修正しました。 (Heikki Linnakangas)

    このオーバランは入力全体がシングルクォートおよび/またはバックスラッシュで構成される場合でのみ発生します。

  • pg_start_backup()pg_stop_backup()の複数回の呼び出しが同時に実行されないようにしました。 (Michael Paquier)

    誰かがこれらの関数を並列に実行しようとしたときの、アサート失敗あるいはもっと悪い事態を回避します。

  • 実際にはノーオペレーションではないintervalからintervalへのキャストを捨てないようにしました。 (Tom Lane)

    一部の場合に下位のintervalフィールドのゼロ埋めした結果になるべきキャストが誤って何もしない処理と認識され、捨てられていました。 一例はINTERVAL MONTHからINTERVAL YEARへのキャストが月フィールドをクリアしないことです。

  • キャッシュされたプランが外部テーブルオプションの変更により確実に無効化されるようにしました。 (Amit Langote, Etsuro Fujita, Ashutosh Bapat)

  • 組み込み関数を使うユーザ定義キャストと変換をダンプするようにpg_dumpを修正しました。 (Stephen Frost)

  • WALファイルを含めたときスタンバイサーバで起こりうるpg_basebackupの失敗を修正しました。 (Amit Kapila, Robert Haas)

  • PL/Pythonむけに作成したPython例外オブジェクトが確実に適切にリファレンスカウントされるようにしました。 (Rafa de la Torre, Tom Lane)

    これはPythonのガーベージコレクションのサイクルが起きた後にオブジェクトが使われた場合の失敗を回避します。

  • 列名として.tupnoを持つテーブルのトリガに対応するようにPL/Tclを修正しました。 (Tom Lane)

    これは(以前の文書化されていない)PL/Tclのspi_execおよびspi_execpコマンドの振る舞いと調和させます。 すなわち、.tupnoマジック列はその名前の真の列が無い場合だけ挿入されます。

  • Unix上であってもDOS形式の改行文字が~/.pgpassファイルで許されるようにしました。 (Vik Fearing)

    この変更は同じパスワードファイルをUnixマシンとWindowsマシンとで使うのを簡単にします。

  • ecpgにドットで終わるファイル名が与えられた際の1バイトのバッファオーバランを修正しました。 (Takayuki Tsunakawa)

  • ALTER DEFAULT PRIVILEGESに対するpsqlのタブ補完を修正しました。 (Gilles Darold, Stephen Frost)

  • psqlで、空または全てブランクのPAGER環境変数設定をページャ無しという意味で扱うようにしました。 (Tom Lane)

    これまでは、このような設定はページャにむけようとした出力を全く見えなくしていました。

  • contrib/dblinkのメモリ不足などの低レベルlibpqエラーの報告を改善しました。 (Joe Conway)

  • 接続オプションのソースとしてcontrib/postgres_fdw外部サーバを使うとき、contrib/dblinkに無関係なサーバオプションを無視させました。 (Corey Huinker)

    これまでは、外部サーバオブジェクトがlibpq接続オプションでは無いオプションを持っているなら、エラーが生じました。

  • Windowsで環境変数の変更がデバッグオプションを有効にしてビルドされたDLLに確実に伝播するようにしました。 (Christian Ullrich)

  • タイムゾーンライブラリをIANA release tzcode2016jに同期しました。 (Tom Lane)

    多数の問題が修正されており、最も重要なものとしては対象ディレクトリがハードリンクをサポートしない場合はタイムゾーンデータ導入に失敗していたことがあります。

  • タイムゾーンデータをtzdata release 2016jに更新しました。 北キプロス(新タイムゾーン Asia/Famagusta 追加)、ロシア(新タイムゾーン Europe/Saratov 追加)、トンガ、Antarctica/Casey における夏時間法の変更と、イタリア、カザフスタン、マルタ、パレスチナにおける歴史的修正、トンガにおける数値によるゾーン略記法を選択する変更が含まれます。