【ITニュース解説】PostgreSQL 19: What's Actually Shipping, What Got Cut
2026年09月30日に「Dev.to」が公開したITニュース「PostgreSQL 19: What's Actually Shipping, What Got Cut」について初心者にもわかりやすく解説しています。
ITニュース概要
PostgreSQL 19はリリースが10月に延期された。安定性のためSQL/PGQやGROUP BY ALLなど主要機能が削除された一方、REPACKや並列autovacuumは搭載される。AIによるバグ発見が増え、機能削除や遅延の背景となった。プロダクション環境では18を使い、19は検証環境での利用を推奨する。
ITニュース解説
PostgreSQL 19のリリースは通常よりも遅れ気味に進行している。通常は9月下旬に新しいメジャーバージョンが公開されるが、今回はベータ4版が9月下旬にリリースされ、最終的な一般提供(GA)は10月になる見込みだ。この遅れの主な理由は、開発コミュニティが安定性と信頼性を最優先し、当初予定されていたいくつかの目玉機能を今回のバージョンから見送るという判断を下したためである。
今回のリリースで取り下げられた主な機能はいくつかある。特に注目されていたのは、SQL/PGQと呼ばれるプロパティグラフクエリ機能で、データ間の関係性をグラフとして効率的に扱うことを可能にするものだったが、PostgreSQL 19では見送られ、今後のバージョンでの実装が検討されている。 また、GROUP BY ALLという集計機能も、特定のソート順と組み合わせた場合に不具合が見つかったため導入が見送られた。これは、特定の条件でデータをグループ化する際に、すべての選択された項目を自動的にグループ化対象とする機能だった。 さらに、大規模なテーブルを分割して管理する際に、運用中にパーティションの結合(MERGE PARTITIONS)や分割(SPLIT PARTITIONS)を簡単に行えるようにする機能も、PostgreSQL 20での実装が検討されている。 その他にも、オンラインでデータ整合性チェック(チェックサム)の有効・無効を切り替える機能や、過去の特定の時点のデータを操作するTemporal UPDATE/DELETE機能、データベースのスキーマ情報を取得する新しい関数群(pg_get_role_ddlなど)も、安定性確保のため見送られた。
一方で、PostgreSQL 19には予定通り導入される重要な機能も多数ある。その一つがREPACKだ。これは、データベースのディスク領域を効率的に再利用し、テーブルの物理的な配置を最適化する機能で、データベースを停止せずに実行できるオプションもあり、運用中のシステムへの影響を最小限に抑えつつパフォーマンス維持やディスク使用量削減に役立つ。 次に、pg_plan_adviceという新しい拡張機能も注目される。これは、PostgreSQLがSQLクエリを実行する際に最適な処理計画を立てる働きを助け、クエリの実行速度が予期せず変動するのを防ぎ、より安定したパフォーマンスを実現するための制御を提供する。 さらに、自動でデータベースのメンテナンスを行うautovacuum処理の並列化(Parallel autovacuum)も導入される。これにより、大規模なデータベースではメンテナンス作業がより高速に効率的に行われ、データベースの応答性向上に貢献する。 INSERT ... ON CONFLICT DO SELECT ... RETURNINGというSQL文も新しく追加され、データの挿入時に重複が発生した場合、競合した既存の行の情報を取得して返すことができる。また、ウィンドウ関数においてNULL値を無視するかどうか(IGNORE NULLS / RESPECT NULLS)を指定できるようになる。
今回のリリースの遅延は、開発コミュニティがより徹底的な品質チェックを行った結果とも言える。特に、AIツールがバグの発見や再現可能なテストケースの作成に活用されたことが挙げられており、これにより未完成な機能がリリースに含まれることを防げた。これは、製品の品質と信頼性を高める上で非常に重要なことであり、安定したPostgreSQLを提供するための健全な進化の証拠と言えるだろう。
システムエンジニアを目指す皆さんにとって、PostgreSQLのような基盤技術の安定性は非常に重要だ。現在のところ、本番環境でPostgreSQL 19を利用するのは時期尚早であり、引き続きPostgreSQL 18を使うことが推奨される。 PostgreSQL 19に期待していた機能が今回見送られた場合は、自分の開発コードやシステム設計に影響がないかを確認することも大切だ。特にGROUP BY ALL、SQL/PGQのグラフ構文、パーティション結合・分割に関する記述がないか、コードをチェックすることをお勧めする。 新機能を試してみたい場合は、ベータ版を自身の開発環境でテストし、その動作やパフォーマンスを自身のワークロードで検証することが非常に有効だ。 最終的なリリースが行われる際には、公式のリリースノートを必ず確認し、情報が錯綜している点(例えばlz4圧縮のデフォルト化など)について、最終的な仕様を確認することが大切である。これらの注意点を踏まえることで、新しいバージョンへのスムーズな移行や、自身のスキルアップに繋げることができるだろう。