過去の出来事の日付である2026年8月17日、DuckDBプロジェクトは、インプロセス分析データベースにとって重要な一歩となる、秋にリリース予定のDuckDB v2.0を予告した。プロジェクトによると、新バージョンはシナモンティールにちなんで「Cyanoptera」と呼ばれ、機能の拡充であると同時に、一部で互換性を破る変更を伴うメジャーバージョン変更と位置付けられている。
予告では、DuckDBのサーバー運用、トリガー、VARIANT型、非同期I/O、新しいSQLパーサー、新たなデフォルトのストレージ形式、刷新されたC APIという複数の主要な変更が示された。プロジェクトは、v2.0への移行は単なるブランド変更以上のものだとし、3月にDuckDB v1.5がリリースされて以降、1万件を超えるコミットを経てのリリースになると指摘した。
中心的なテーマはクライアント/サーバーでの利用だ。DuckDBは従来、独立したサービスとしてではなく、ホストプロセス内で動作する組み込みデータベースとして知られてきた。v2.0では、DuckDBインスタンス間の通信に用いるネイティブDuckDBプロトコルを実装するquack拡張機能が安定版になる予定だ。プロジェクトによると、どのDuckDBプロセスでもデータベースをネットワーク経由で提供できるようになり、別のDuckDBインスタンスは新しいCONNECT文を通じてそれにアタッチし、クエリを転送できるようになる。
同じ方向性は、DuckDB同士の接続にとどまらない。予告によると、CONNECTはこれをサポートするリモートデータベースを接続先に指定でき、リモート・プッシュダウン・オプティマイザーは、最初にテーブルをDuckDBへ転送するのではなく、SQLをPostgreSQLとMySQLへ直接送信する。プロジェクトはこれを、長時間稼働するマルチテナント型のDuckDBデプロイへの、より広範な移行の一環と位置付けており、メトリクス、ログ、オブザーバビリティーに関する取り組みがそれを支えるとしている。
DuckDB v2.0では、半構造化データへの対応も拡充される。DuckDB v1.5で導入されたVARIANT型は、異なる構造を持つ行を格納しながら、DuckDBが内部で共通構造を検出できる。予告によると、v2.0では、ストレージからの実行、スキャンレベルでの抽出プッシュダウン、細分化されたVARIANTデータに対応するParquetの読み書き、新たなVARIANT関連関数によって、この処理系がさらに完成に近づく。
トリガーも、予告で示された主要なSQL機能の一つだ。DuckDBによると、v2.0はBEFOREおよびAFTERトリガー、行レベルおよび文レベルのトリガー、OLDおよびNEWのテーブル参照を使う遷移テーブル、イベントごとの複数トリガー、トリガー対象テーブルでのRETURNING、DROP TRIGGERに対応する。プロジェクトは監査テーブルを典型的な用途として挙げ、トリガーは長時間稼働するサービスモデルにも適しているとした。
そのほかのSQL追加機能には、類似性検索向けのNEAREST結合、共通テーブル式内のデータ変更文、ネストされたスキーマ、より短い変数構文、JSON変更関数、USING KEY集約を使う再帰CTE、SQL標準のFETCH FIRST構文、OVERLAY()、GROUP BY内のUNNEST、複数の一致が生じた場合のMERGEおよびUPDATE ... FROMの挙動の明確化が含まれる。
エンジンレベルでは、DuckDB v2.0は非同期I/Oを導入する。プロジェクトによると、この変更は特に、リモート読み込みがクエリ実行のボトルネックになり得るS3などのオブジェクトストアを念頭に置いたものだ。最初にParquetへの対応が挙げられ、続いてCSVとDuckDB独自のファイル形式に対応するほか、非同期のParquet書き込み、新しいMMAPおよびDIRECT_IOモードも導入される。



