概要
PostgreSQLプロジェクトは9月24日、次期メジャーバージョンとなるPostgreSQL 19の4回目のベータ版「Beta 4」を公開した。今回のベータでは、テーブルの再編成と再クラスタ化を統合的に行う新しいREPACKコマンドの不具合修正や、autovacuumの優先順位付けを見直す新しいスコアリング方式の改善が加えられている。一方で、開発当初にPostgreSQL 19向けとして予定されていたSQL/PGQ(プロパティグラフクエリ)対応など複数の新機能は、信頼性と予測可能なリリーススケジュールを優先する方針のもと、今回のリリースからは撤回された。次の節目となるリリース候補版(RC)は10月上旬に予定されており、正式版(GA)は10月中の公開が見込まれている。
REPACKコマンドとautovacuumの改善
REPACKはPostgreSQL 19で新たに導入される予定のメンテナンスコマンドで、従来VACUUM FULLやCLUSTERに分かれていたテーブルの物理的な再編成・再クラスタ化を統合的に扱えるようにするものだ。Beta 4では、クラッシュの修正に加え、無効なインデックスやマテリアライズドビューを対象にした際の不正な動作、パーミッション関連の不具合、エラー報告の不備などが修正されている。ストレージ効率とクエリ性能の向上を狙う機能であるだけに、正式リリースに向けて安定性を高める重要な修正といえる。
もう一つの注目点は、autovacuumの新しいスコアリングシステムだ。これはバキューム処理の優先順位をより適切に決定する仕組みで、TOASTテーブルに関する複数の修正が今回のベータに含まれている。大規模なテーブル群を運用する環境では、autovacuumの実行順序が性能に直結するため、スコアリング方式の精度向上は実運用上のメリットが大きい。
撤回された機能と今後のスケジュール
一方で、PostgreSQL 19に向けて開発が進められていたいくつかの新機能は、今回のリリースから撤回されることが明らかになった。プロパティグラフに対するクエリを可能にするSQL/PGQ、データチェックサムのオンライン有効化・無効化、期間指定での更新・削除を行うFOR PORTION OF句、ALTER TABLE ... MERGE/SPLIT PARTITIONS、およびpg_get_role_ddl()など複数のDDL取得関数がその対象だ。プロジェクトは信頼性の確保と予測可能なリリーススケジュールの維持を優先する姿勢を示しており、これらの機能はコミュニティによる十分な検証時間を確保した上で、将来のメジャーバージョンでの再実装が目指される。
その他にも、WAIT FORコマンドにおけるデッドロックの修正や分離レベルエラー報告の改善、外部キー制約チェックの性能改善に関する複数の修正、旧バージョンからPostgreSQL 19への論理レプリケーション初期同期の修正、コンフリクト検出やレプリケーション時のCREATE PUBLICATION ... EXCEPTに関する修正、COPY FROMのSIMD最適化に関するバグ修正、パーティションの同時デタッチ完了時のクラッシュ修正など、幅広い領域で品質改善が行われている。
今後の展望
プロジェクトは次のリリース候補版を10月上旬に公開する計画を示しており、正式版(GA)も10月中の公開が見込まれる。ベータ版での品質はPostgreSQL 19の最終的な完成度を左右するため、プロジェクトは利用者に対し積極的なテストとバグ報告フォームを通じたフィードバックの提供を呼びかけている。SQL/PGQなど撤回された機能については、今後のメジャーバージョンでの取り込みに向けた議論が続くとみられる。