リリース日: 2026-02-26
このリリースは18.2に対し、少数の不具合を修正したものです。 18メジャーリリースにおける新機能については、E.4を参照してください。
以前のマイナーバージョンで生成されたWALからマルチトランザクションID切り捨てレコードを再生した際に発生するエラーが修正されました。 (Heikki Linnakangas) §
以前のバージョンにおけるマルチトランザクションID周回の処理方法に誤ったロジックが組み込まれていたため、再生エラーが発生し、「could not access status of transaction」といったメッセージが表示されていました。 この問題が発生する典型的なシナリオは、最新マイナーバージョンのスタンバイサーバが、旧バージョンのプライマリサーバからのWALを処理する場合です。
「TOASTされた」データに対してsubstring()を適用した際に、エンコーディングが無効であるという誤ったエラーの発生が回避されました。
(Noah Misch)
§
§
§
CVE-2026-2006の修正は過度に積極的であったため、実際に有効な場合であっても不完全な文字に関するエラーが発生する可能性がありました。
CVE-2026-2007の修正における見落としが修正されました。 (Zsolt Parragi) §
入力に含まれるトライグラムが初期推定値よりも多かったために、「境界」配列を拡張する必要が生じた場合、generate_trgm_onlyは変更後の配列ポインタを呼び出し元に返していませんでした。
これにより、strict_word_similarity()および関連する関数から誤った出力が生成されたり、まれにクラッシュが発生したりしていました。
この不具合のあるコードは、入力文字列を小文字に変換した際に文字列が長くなった場合に実行されます。
この問題が発生するのは、特定のシングルバイトエンコーディングでICUロケールが使用されている場合のみです。
json_strip_nulls()とjsonb_strip_nulls()の変動性マークが修正されました。
(Andrew Dunstan)
§
これらの関数はこれまでIMMUTABLEとみなされていましたが、バージョン18のリファクタリングで誤ってSTABLEとマークされました。 これにより、インデックス式での使用が妨げられ、問い合わせで不要な再評価が発生する可能性がありました。 この修正により、新しく初期化されたデータベースクラスタ(pg_upgradeで18.3以降にアップグレードされたクラスタを含む)のマーキングが修正されます。 ただし、18.0から18.2を使用して作成された既存のクラスタには適用されません。
この誤りによりこれらの関数の使用に影響が出ている場合、既存のクラスタに対して推奨される修正は、カタログの手動更新です。 スーパーユーザとして、影響を受ける各データベースで
UPDATE pg_catalog.pg_proc SET provolatile = 'i' WHERE oid IN ('3261','3262');
を実行してください。
今後作成されるデータベースに対しても修正が適用されるように、template0とtemplate1も更新してください。
LATERAL UNION ALL副問い合わせの出力における、NULL値を含む可能性がある外部結合の計算方法が修正されました。
(Richard Guo)
§
このエラーにより、NOT NULLチェックが不要であると誤って判断され、その結果、問い合わせの出力が不正になる可能性がありました。
ユーザ定義の制約と自動的に名前が付けられるNOT NULL制約との間での名前の競合が回避されました。
(Laurenz Albe)
§
バージョン18では、NOT NULL制約は完全なpg_constraintエントリを持つため、名前が必要です。
名前のないNOT NULL制約の名前を選択するロジックでは、同じCREATE TABLE文内の他の場所に存在するユーザ定義の制約との名前の競合を回避できませんでした。
補助プロセスに関する値を出力するようpg_stat_get_backend_wait_event()およびpg_stat_get_backend_wait_event_type()が修正されました。
(Heikki Linnakangas)
§
以前は、これらの関数は補助プロセスに対してNULLを返していましたが、これはpg_stat_activityビューとの整合性が取れていませんでした。
PL/pgSQL関数から値を返す際、複合型変数をドメイン型にキャストする処理が修正されました。 (Tom Lane) §
変数の値がNULLの場合、「cache lookup failed for type 0」というエラーが発生していました。
contrib/hstoreのバイナリ入力関数における、潜在的なヌルポインタ参照の可能性が修正されました。
(Michael Paquier)
§
hstoreの受信関数は、重複キーを含む入力でクラッシュしていました。
Postgresによって生成されるhstoreの値には重複キーが含まれないため、この不具合は見過ごされていました。
クラッシュは、悪意のあるデータまたは破損したデータによって引き起こされた可能性がありました。