リリース日: 2022-06-16
このリリースは14.3に対し、様々な不具合を修正したものです。 14メジャーリリースにおける新機能については、E.6を参照してください。
14.Xからの移行ではダンプ/リストアは不要です。
ただし、14.XでCONCURRENTLY
オプションを使用して作成したインデックスがある場合は、アップデート後にインデックスを再作成する必要があります。
以下の1番目の変更点を参照してください。
また、14.3より前のバージョンからアップグレードする場合には、E.3を参照してください。
CONCURRENTLY
オプションを付与したインデックス作成または再作成で、インデックス破損の可能性があり、防止されました。
(Álvaro Herrera)
バージョン14で追加された最適化のため、CREATE INDEX ... CONCURRENTLY
とREINDEX ... CONCURRENTLY
が時々インデックスエントリ作成に失敗していました。
その結果、誤った問い合わせ結果が生じる可能性があります。
本修正でこの最適化が取り消されました。
CONCURRENTLY
オプションを付与して作成された全てのインデックスをバージョンアップ後に再作成することが推奨されています。
(または、CONCURRENTLY
なしで再構築してください。)
非決定的な等価関数に対してMemoizeプランノードが堅牢になりました。 (David Rowley)
データ型の等価関数またはハッシュ関数が各呼び出しで一貫性に欠ける結果を返す場合に、Memoizeがクラッシュを起こす可能性がありました。 代わりにランタイムエラーが出るようになりました。
Memoizeプランの誤ったコスト見積もりが修正されました。 (David Rowley)
この誤りにより、それが最善でない場合でも Memoizeが使われたり、Memoizeノードにおける巨大なハッシュ表の初期化のためにエグゼキュータの起動時間が非常に長くなったりしました。
複合型に対するドメインを返す関数の結果を「行全体の変数」で参照する問い合わせ処理が修正されました。 (Tom Lane)
プランナでGROUPING
関数で参照されているsub-SELECT
をプルアップする(上位の問い合わせに統合する)ときに、「variable not found in subplan target list」が生じる問題が修正されました。
(Richard Guo)
pg_stat_get_subscription()
関数がゴミデータを含んだ追加の行を返す可能性があり、防止されました。
(Kuntal Ghosh)
クライアント文字エンコーディングがマルチバイト文字エンコーディングで、データベースの文字エンコーディングがSQL_ASCII
の場合における、COPY FROM
のエラー検査が修正されました。
(Heikki Linnakangas)
このバグにより、正しいデータに対しても入力データが不正にエンコードされているという偽性のエラーが生じる可能性がありました。
XMLTABLE
やJSON_TABLE
に多すぎる列別名を付加した場合のクラッシュが回避されました。
(Álvaro Herrera)
ビューやルールを(ダンプ出力やpsqlでの表示のため)逆コンパイルする際、それが他で参照されうる場合には、SELECT
出力列のAS "?column?"
別名句を見せるようになりました。
(Tom Lane)
これまでは、自動生成されたこの別名は常に隠されていましたが、結果としてビューやルールがリストア不能になる稀なケースがありました。
暗黙的に作成された演算子族がイベントトリガに通知されるようになりました。 (Masahiko Sawada)
以前は、CREATE OPERATOR CLASS
によって演算子族が暗黙的に作成された場合、イベントトリガに通知されませんでした。
スタンバイサーバの昇格中にリスタートポイントが実行されている時に行われるコントロールファイルの更新が、修正されました。 (Kyotaro Horiguchi)
以前は、リスタートポイント完了時にコントロールファイルの最終チェックポイントのフィールドが誤って更新される可能性があり、次の通常チェックポイント完了前にサーバがクラッシュした場合、PANICが発生して再起動に失敗する可能性がありました。
大規模トランザクションの論理レプリケーション中に、スタンバイのwal_receiver_timeout
を発動させないようになりました。
(Wang Wei, Amit Kapila)
以前は、プライマリサーバ上の大規模トランザクションが(おそらく変更されたテーブルがパブリッシュされていないために)スタンバイにデータを送信しない場合、スタンバイがタイムアウトする可能性がありました。 このような状況でも確実にキープアライブメッセージを定期的に送信することで修正されました。
無効なタイムゾーン省略形ファイルを読み取る際のファイルクローズ漏れが防止されました。 (Kyotaro Horiguchi)
このような場合には無害な警告メッセージが生じることがありました。
カスタムサーバパラメータの短い説明にNULLを指定できるようになりました。 (Steve Chavez)
拡張はそのような設定を選ぶことができましたが、以前は、それらを扱う際にコードパスによってはクラッシュしていました。
libpqでSSL秘密鍵の誤った所有者チェックが削除されました。 (Tom Lane)
以前のマイナーリリースで、サーバでのSSL秘密鍵のアクセス権チェック方式をlibpqにも適用しましたが、所有者チェックまで同様に行うべきではありませんでした。 鍵ファイルにアクセス可能であるけれども所有者と異なるユーザでクライアントを実行するときに、予期せぬエラーが生じることがありました。
ecpgでサーバ接続が失われた場合のエラーを適切に報告するようになりました。 (Tom Lane)
接続が失われた場合などに、libpqで生成されたエラー結果を誤って処理していたため、有用なエラーメッセージではなく「(null)」と出力されていました。 また、古いリリースではクラッシュする可能性がありました(本修正は 10.x 以降に適用されています)。
pg_amcheckでサーバ接続が失われた場合のクラッシュが修正されました。 (Tom Lane)
接続が失われた場合などに、libpqで生成されたエラー結果を誤って処理していたため、クラッシュが生じていました。
PL/PerlのテストケースがPerl 5.36で動作するように調整されました。 (Dagfinn Ilmari Mannsåker)
PostgreSQLビルド中に複数のOpenLDAPがインストールされている場合に、古いlibldap_rライブラリを誤って使用しないよう修正されました。 (Tom Lane)