2026-05-01 PostgreSQL ニュースダイジェスト
コミット
この日は 8件 のコミットがあり、クエリ正確性・セキュリティ・堅牢性にまたがる重要な修正が含まれます。
⭐ HAVING-to-WHERE プッシュダウンの非決定的コレーション対応修正
Richard Guo
GROUP BY に非決定的コレーション(nondeterministic collation)が使用されている場合、プランナが HAVING 句を WHERE 句へ最適化プッシュダウンする際に誤ったクエリ結果を生成する可能性があったバグを修正。グループ化前に行が不当に除外され集計結果が変わるという深刻な正確性の問題であり、flatten_group_exprs 前にコレーション競合を検出することで対処した。
⭐ JSON_ARRAY(query) の空セット処理とビューのデパース修正
Richard Guo
SQL/JSON 標準では JSON_ARRAY(query) はサブクエリが0行を返す際に空の JSON 配列 ([]) を返すべきところ、従来の実装では NULL を返してしまう規格違反が存在した。また、早期のパーサー書き換えによりビューのデパース(ruleutils.c による元の構文の復元)も妨げられていたため、あわせて修正された。
ECPG における接続検証の欠落修正
Andrew Dunstan
ECPGdeallocate_all() や ECPGprepared_statement() など複数の ECPG 関数が、接続が確立されていない状態で呼び出された際に SIGSEGV でクラッシュする問題を修正。ecpg_get_connection() の戻り値を NULL チェックせずに参照していた各箇所を周辺コードのスタイルに合わせて修正し、新たなテストも追加された。
シグナル送信者の PID/UID 詳細をサーバーログのみに限定
Andrew Dunstan
以前のコミット(55890a91945)で追加された errdetail() が、終了シグナルを送信した側の OS PID と UID をクライアントに直接返してしまうセキュリティ上の懸念を修正。この情報は管理者が診断に使えるようサーバーログにのみ記録し、クライアントには送信しない形に改められた。
⭐ walsender シャットダウン完了時の無制限ブロック回避
Fujii Masao
walsender がシャットダウン中に最終の CommandComplete メッセージを送信する際、pq_flush() がソケットの書き込み可能状態を無制限に待機する可能性があり、wal_sender_shutdown_timeout の設定が機能しない問題を修正。新たに EndCommandEx を導入することでタイムアウトの強制を可能にした。
ALTER INDEX .. ATTACH PARTITION 時のバリデーション動作をドキュメントに追記
Michael Paquier
コミット 9d3e094f12 以降、ALTER INDEX .. ATTACH PARTITION コマンドは対象インデックスの親インデックスが無効であった場合に検証を試みる動作が追加されていたが、ドキュメントにその記載がなく混乱を招く恐れがあったため追記。PostgreSQL 14 以降にバックパッチ済み。
TM_Deleted ケースのシリアライゼーションエラーメッセージ修正
Amit Langote
ExecLockRows() および ri_LockPKTuple() で、タプルが削除(deleted)された場合の TM_Deleted コードパスが「concurrent update」というメッセージを誤って使用していた問題を修正。実態に即した「concurrent delete」に変更され、アイソレーションテストの期待値ファイルとテストケースも合わせて更新された。
シーケンスサブスクリプションテストの buildfarm 失敗修正
Amit Kapila
コミット 2bf6c9ff71 で導入されたシーケンスサブスクリプションテストが、UNIX ソケットを使用しない Windows 環境でのみ pg_hba.conf の設定が不足していたために buildfarm で失敗していた問題を修正。Windows 環境専用の特別なセットアップを追加することで解消された。
HN ニュース
本日(2026-05-01)は Hacker News 上での PostgreSQL 関連ストーリーは確認されませんでした。
まとめ
2026年5月1日は、クエリ最適化における HAVING 句の非決定的コレーション対応バグ修正と SQL/JSON 標準への準拠修正(JSON_ARRAY の空セット問題)という2件の重要な正確性修正が際立つ一日となった。また、セキュリティ面では walsender シャットダウンのタイムアウト強制やシグナル送信者情報の露出制限といった堅牢性向上のコミットも加わり、全体的に品質改善に注力したリリースサイクルが続いている。
本ダイジェストはHacker News・GitHub・PostgreSQLメーリングリストの情報を元にClaude AIが生成しました。