2026-04-30 PostgreSQL ニュースダイジェスト

コミット

今日は 16件 のコミットがあり、そのうち 8件 がオンラインチェックサム機能の安定化に集中しています。


⭐ オンラインチェックサム機能の大規模安定化(Daniel Gustafsson)

Discussion: 9197F930@yesql.se

PostgreSQL の次期バージョンに向けて開発中の「クラスター再起動なしでデータチェックサムをオンライン有効化/無効化する機能」について、1日で8件のコミットが積み上げられました。pg_enable_data_checksums() / pg_disable_data_checksums() 関数によって、従来は initdb --data-checksums でしか設定できなかったチェックサムをオンライン切り替えできます。

コミット 内容
75152c5d data_checksum GUC の show_hook が誤って省略されていたのを修正。
1df361e3 datachecksumsworker でデータベースが部分的にドロップされた場合の検出ロジックを改善。
bf25e557 同一クラスターで pg_enable/disable_data_checksums() を並行呼び出しした際の複雑なランチャー再起動ロジックを整理し、新しいコスト設定の動的反映にも対応。
381d19da コードコメントのスペリング・句読点を修正(ポストコミットレビュー対応)。
25b922ec XLOG_CHECKPOINT レコードへの不要なチェックサム状態遷移を削除し、ProcSignalInitInitLocalDataChecksumState 間の割り込みウィンドウを閉じる安全策を追加。
8fb8ded8 ランチャー異常終了時に "inprogress" 状態のまま残らないよう、ステートマシンの欠落していた遷移パスを追加。
a0d8f4c1 テストスコープの修正・PITRテストの停止モード変更などテスト安定化。
b120358c ホットスタンバイで pg_enable/disable_data_checksums() を呼び出せてしまうバグを修正。スタンバイのみでチェックサム状態を変更すると、クラスター間で状態が乖離してレプリケーション再生が失敗する危険があった。

REPACK CONCURRENTLY: toastedタプルの処理を修正

Álvaro HerreraDiscussion: CAHg+QDe@mail.gmail.com

REPACK CONCURRENTLY 実行中に挿入・更新されたタプルをディスクへ書き出して後で復元する処理で、一部の toasted タプル形式が正しく処理されていなかった。テストカバレッジも拡充。


generateClonedExtStatsStmt() の attnum 再マッピングを修正

Andrew Dunstan

CREATE TABLE ... LIKE ... INCLUDING STATISTICS で拡張統計情報をコピーする際、get_attname() に親テーブルの attnum を子テーブルの OID で渡していたバグ。親に削除済みカラムがあると子の attnum がずれており、サイレントな統計情報の破壊またはエラーが発生していた。


pg_get_database_ddl() での NULL テーブルスペースによる SIGSEGV を回避

Andrew Dunstan

ALTER DATABASE ... SET TABLESPACEDROP TABLESPACE が競合した際にシステムカタログのスキャン中に NULL 参照が発生しクラッシュする可能性があった。競合を検出した場合はエラーを出力するように変更。


copy_sequences() の sequence_rel 二重クローズを修正

Amit Kapila

copy_sequences() でバッチスコープで宣言していた sequence_rel を、行をスキップした際に前の行の古いポインタで table_close() を呼び出していた。変数をループ内に移動することで修正。


pg_flush_data() の EINTR チェックのバグを修正(PG16〜バックパッチ)

Michael Paquier

sync_file_range() 失敗時に EINTR を戻り値(-1)で判定していたため、チェックが常に偽となりリトライが機能していなかった。正しく errno で判定するよう修正。PostgreSQL 16 以降に全バックパッチ。


不正な *GetDatum() マクロの修正

Michael Paquier

commit 6dcfac9696cb で導入された *GetDatum() マクロが、SQL 関数の出力型ではなく C 型に合わせて誤って選択されていた箇所を部分的に差し戻し。


pg_stat_reset_shared() のエラーメッセージを修正

Michael Paquier

"lock" が有効な引数として追加されたにもかかわらず、不正な値を指定した際のエラーメッセージにその旨が含まれていなかった。


失敗すべきテストが通過していた問題を修正

Álvaro HerreraPer complaint from Tom Lane

commit 832e220d99af で期待出力の確認が不十分で、失敗するはずのテストが通過していた。Tom Lane の指摘を受けて修正。


HN ニュース

Does Postgres Scale?

スコア: 179 / コメント: 86

DBOS によるベンチマーク記事。ワークフロー実行エンジンの PostgreSQL 上でのスケーラビリティを検証し、「PostgreSQL はスケールしない」という通説に真っ向から反論。86件のコメントで活発な議論が展開され、アーキテクチャの工夫次第で大規模処理にも対応できることが示された。


PostgreSQL 19 で楽しみな機能

スコア: 37 / コメント: 1

Bytebase による PostgreSQL 19 の注目機能プレビュー記事。開発進行中の新機能を開発者・DBA 視点で解説しており、リリース前から高い関心を集めている。


PostgreSQL は遅くない。あなたのクエリが遅いのだ

スコア: 9 / コメント: 0

PostgreSQL のパフォーマンスに関するよくある誤解を取り上げ、クエリ設計やインデックス戦略の重要性を解説した実践的な記事。


PostgreSQL と OOM Killer:Strict Memory Overcommit を使う理由

スコア: 3 / コメント: 0

Ubicloud が本番環境で vm.overcommit_memory=2(strict モード)を採用した経緯と、PostgreSQL ワークロードにおける OOM Killer の挙動を詳しく解説。


CDC パイプライン構築 Part 1:PostgreSQL WAL の内部構造

スコア: 2 / コメント: 0

Change Data Capture(CDC)パイプラインを構築するための連載第1回。PostgreSQL の WAL(Write-Ahead Log)の仕組みを基礎から解説しており、レプリケーションや監査ログ実装の入門として有用。


まとめ

2026年4月30日は、オンラインチェックサム機能の安定化が最大のテーマで、1日に8件ものコミットが集中投下されました。スタンバイでの誤操作防止・並行リクエスト処理の改善・チェックポイント時の状態遷移修正など、本機能の本番投入に向けた品質向上が着実に進んでいます。また pg_flush_data() の EINTR バグ(PG16〜バックパッチ)や CREATE TABLE LIKE INCLUDING STATISTICS の静かな統計破壊バグなど、実運用に影響しうる重要な修正も複数含まれる一日でした。HN では「PostgreSQL はスケールするか?」という問いへの真剣な検証記事が大きな話題を集め、コミュニティの高い関心を示しています。


本ダイジェストはHacker News・GitHub・PostgreSQLメーリングリストの情報を元にClaude AIが生成しました。