DuckDB 2.0.0 LTS「シナモン・テール」

2026/10/21 23:01

DuckDB 2.0.0 LTS「シナモン・テール」

RSS: https://news.ycombinator.com/rss

要約▶

Japanese Translation:

DuckDB チームは、約 20,000 コミットにわたる開発を経て重大なアーキテクチャ上の改善と新たな機能をもたらすバージョン 2.0.0 LTS(「Cinnamon Teal」)をリリースしました。この Long-Term Support リリースにより、少なくとも 2027 年 10 月まで安定性が保証され、先行する LTS バージョン(1.4 と新たに延長された 1.5)はそれぞれ 2026 年末から 2027 年 3 月までサポートが継続されます。

主な強化点には、リモート接続向けのアップグレードされた Quack プロトコルと、PostgreSQL や MySQL などのリモートデータベースを単一のコマンドで接続し、組み込みのリモートプッシュダウン最適化を実現する新しい CONNECT ステートメントの追加が含まれます。Parquet、CSV、ネイティブ形式に対して非同期 I/O が導入され、I/O レイヤーが独立してスケール可能となり、S3 などのオブジェクトストレージシステムにおけるパフォーマンス向上を達成しています。

VARIANT タイプは現在完全に統合されており、DuckDB が一般的な構造を自動的に検出し、「shreds」処理を施すことで圧縮率と速度を改善し、variant_*関数を用いたエンドツーエンドの読み書きを提供します。CLI のエージェントモードは、AI コーディングアシスタント(例:Claude Code や Cursor)下で動作する際に自動的に有効になり、コンパクトな Markdown 表、截断警告、早期クエリ終了、JSON エラー報告を出力し、TPC-H 実験においてモデルからの出力量を 59% 削減しました。

モダンで拡張可能な PEG ベースの SQL パーサーが、従来の YACC/Bison システムに代わってデフォルトとして採用され、拡張子が文法へフックできるようになり、エラーメッセージ内で正確なソース位置情報を提供します。改められた C API v2 では、ファイルシステムやテーブル関数などのコンポーネントを拡張子に公開し、組織は RSA 鍵検証付きの独自信頼済み拡張子リポジトリの登録とホスティングが可能になりました。

コア拡張機能には、DuckLake 1.1(新仕様の導入)、REST カタログ対応の Iceberg 拡張機能、およびタイムトラベルと VARIANT 処理の改善が Delta 拡張機能に含まれます。新しい SQL 機能は、CREATE TRIGGER ステートメント(BEFORE/AFTER、FOR EACH ROW/STATEMENT)、REFERENCING OLD/NEW TABLE、イベントあたりの複数のトリガー、表現式の簡潔表記として$variable をサポートしています。

しかし、互換性を壊す変更があるため組織側には慎重な計画が必要です:移行については、 upcoming の 11 月パッチリリースを待ってから行うことを推奨します。ユーザーは環境を更新し、C++17 をサポートするようする必要があります(Linux/macOS ではデフォルトで Clang を使用)。単一アローラムダ構文をデフォルトで無効にし、ICU ライブラリに代わるネイティブ時ゾーン実装を採用することで、時ゾーンデータサイズを約 45 kB に削減しますが、レガシー互換オプションは廃止されます。さらに、アメガレーションビルドは過度なサイズのため非推奨となり、macOS x86_64(osx_amd64)のコミュニティ拡張機能サポートはバージョン 2.1 時点で終了します。

本文

DuckDB 2.0.0 LTS(コードネーム「シナモン・テール」)リリース発表

DuckDB チームからのお知らせです。バージョン 2.0.0 LTSが正式にリリースされました。

  • コードネーム: シナモン・テール [Spatula cyanoptera](西部アメリカの赤褐色の鴨に由来します)。
  • 重要性: これまでの最大の機能リリースであり、安定性と機能の両面を向上させました。
  • 開発期間: バージョン 1.5 リリース以来の約 20,000 コミットに基づいて構築されています。

📢 概要とサポート体制

レリースの性質

  • バージョン 1.0: 安定性と後方互換性が主眼でした。
  • バージョン 2.0: 機能リリースが主眼です(不変化の変更点への移行も必要)。
  • 詳細情報: 「DuckDB v2.0 のプレビュー」記事や GitHub リリースノートで確認可能です。

📅 サポートスケジュール

今回のリリースに伴い、以下の 3 つのブランチが利用可能です。

バージョンタイプサポート期間
2.0LTS (長期サポート)2027 年 10 月まで
1.4LTS2026 年 11 月下旬まで
1.5サポート延長2027 年 3 月まで (事実上の LTS)

💡 ヒント: インストールは インストールページ を確認してください。CLI や Python クライアントは既に利用可能です(Go, R, Java など一部のライブラリや拡張機能の更新には数日かかる場合があります)。


🚀 主要新機能

サーバーとしての DuckDB & クアック (Quack)

DuckDB は従来、インプロセスデータベースでしたが、2.0 ではクライアント・サーバー構成への完全対応を実現しました。

  • クアックプロトコル:
    quack
    拡張機能によるネイティブプロトコル実装により、どのプロセスからでも DB サーバー化が可能に。
  • パフォーマンス向上: クライアントとサーバーが分離し、リソース管理が容易になりました。

🌐 CONNECT 文の導入(シンプル接続)

単一の命令でリモートデータベースへの接続・切り替えが可能です。

サーバー側の設定:

CALL quack_serve(token = 'my_token');

CREATE TABLE events (date DATE, name VARCHAR);
INSERT INTO events VALUES ('2027-04-07', 'DuckCon #8');

クライアント側の接続:

ATTACH 'quack:localhost' AS qk (TOKEN 'my_token');
CONNECT qk;
SELECT * FROM events;

※ デフォルトは

localhost
へのみリッスンします。他のマシンからのアクセスにはリバースプロキシ(TLS ターミネーション)を挟む必要があります。

🖥️ CLI でのクアック対応

コマンドラインでも

-serve
と
-connect
引数で簡便な接続が可能です。

  • リモートプッシュダウン: PostgreSQL や MySQL などのサポートされた DB に対して、クエリを直接送信する最適化機能を実装。

⚡ パフォーマンス:非同期 I/O

ファイル読み込みに非同期 I/Oが導入されました。

  • 対応フォーマット: Parquet, CSV, 及び DuckDB ネイティブストレージ形式。
  • メリット:
    • I/O レイヤーとクエリ処理レイヤーの独立によるスケーリング。
    • バックグラウンドでの同時読み込みによる並列化。
    • 特に**オブジェクトストレージ (S3 など)**での実行速度が劇的に向上します。

🧬 VARIANT タイプが一等公民に

JSON などのスキーマレスデータを、列形式実行のパフォーマンスを維持して格納できるようになりました。

  • 「ステロイド入りの JSON」: テキストではなく、構造体を保持した高性能な形式。
  • 自動最適化 (Shredding): データ内の共通構造を検出し、圧縮効率と実行速度を向上。
  • 関数ファミリー:
    variant_type()
    ,
    variant_keys()
    などによる詳細な操作が可能。
CREATE TABLE events (payload VARIANT);
INSERT INTO events VALUES 
    ('{"user": {"id": 42, "tags": ["a", "b"]}}'::JSON::VARIANT),
    ('{"event": "click", "x": 10, "y": 20}'::JSON::VARIANT);

SELECT variant_type(payload), variant_keys(payload) FROM events;

🤖 エージェントモード (CLI)

Claude Code や Codex などの AI エージェントが CLI を駆動する際、自動的に「エージェントモード」に切り替わります。

  • 特性:
    • 緊密な Markdown テーブル出力(パディングなし)。
    • 結果の切り捨て通知、暴走クエリの早期停止。
    • エラーを JSON 形式で報告。
    • 長期実行クエリのコスト予測表示により、待機判断を支援。
  • 効果: TPC-H 実験において、モデルの出力量が59% 削減されました。

🔧 拡張可能性:新しい SQL パーサー

PEG ベースの独自パーサーがデフォルトになりました。

  • 利点:
    • 構文追加時に既存ルールとの衝突リスクを回避(Python と同様、バージョン 3.9 で切り替え)。
    • エラーメッセージに正確なソース位置を含める。
  • 互換性: 旧パーサーとの完全互換性を確保しつつ、将来的な拡張が容易に。

必要に応じて旧パーサーに戻す方法:

SET enable_legacy_parser = true;
INSTALL 'legacy_parser';

📦 拡張機能リポジトリ & C API v2

  • C API v2: ファイルシステムやテーブル関数へのアクセスがより強力。
  • 独自の信頼できるリポジトリ: 組織自らの拡張機能をホスト・署名し、ビルトインと同様にインストール可能に。
SET allow_extension_repositories = 'allowed';
CREATE EXTENSION REPOSITORY my_repo 
    WITH PREFIX 'https://extensions.example.org';

INSTALL AND LOAD my_ext FROM my_repo;

💾 コア拡張機能の更新

  • DuckLake 1.1: 新しい仕様のリリース。
  • Iceberg: REST カタログ連携やメタデータ読み込み機能の完全対応へ。
  • Delta Lake:
    CREATE TABLE
    で Delta テーブル作成が可能になり、タイムトラベル・VARIANT 支援を強化。

🛠️ SQL 機能拡張

トリガー (Triggers)

テーブルイベントに応じて自動処理を行うトリガーが導入されました。

  • 特徴:
    BEFORE
    /
    AFTER
    ,
    FOR EACH ROW
    /
    STATEMENT
    ,
    OLD
    /
    NEW
    テーブル参照。
  • 活用用途: 監査ログの記録、マテリアライズドビュー(集計テーブル)の自動維持など。

💡 マテリアライズドビューを逐次維持する例

-- 挿入時の処理:統計値を更新・追加
CREATE TRIGGER people_insert
    AFTER INSERT ON people
    REFERENCING NEW TABLE AS n
    FOR EACH STATEMENT
        MERGE INTO age_statistics s
        USING ( ... ) d
        ...;

-- 削除時の処理:統計値を減算(空なら国籍削除)
CREATE TRIGGER people_delete
    AFTER DELETE ON people
    REFERENCING OLD TABLE AS o
    FOR EACH STATEMENT
        MERGE INTO age_statistics s
        ...;

SQL 方言への追加

  • 変数ショートカット:
    $x
    の使用が可能(
    getvariable('x')
    より簡潔)。
  • データ修飾 CTE:
    INSERT
    ,
    UPDATE
    ,
    DELETE
    ,
    COPY
    をパイプラインとして利用可能。
  • NEAREST JOIN: ベクトル・埋め込み検索への最適化。
  • ネストされたスキーマ:
    finance.reports
    のように階層構造を定義可能。
  • JSON 変異関数:
    json_set
    ,
    json_insert
    などによるパッチ適用機能強化。

SQL 標準準拠対応:

  • FETCH FIRST
    サポート。
  • GROUP BY
    内の
    UNNEST
    許可。
  • MERGE
    と
    UPDATE ... FROM
    のセマンティクス明確化。

⚠️ 移行と廃止事項

🔄 2.0 への移行について

  • 互換性: DuckDB 2.0 は既存の DB ファイルを読み書き可能ですが、2.0 以前のファイルは 2.0 で開けません。
  • 推奨手順:
    1. シャドウシステムでテスト実施。
    2. ミッションクリティカルな場合は、初期パッチリリース(11 月頃)まで待つことを検討。

🚫 廃止事項とコンパイラ要件変更

カテゴリ変更内容代替案 / 備考
コンパイラC++17 が必須 (旧 C++11)リリースビルドのデフォルトは Clang に。
タイムゾーンICU ライブラリ廃止
icu
拡張機能で IANA データを圧縮して実装化(高速化)。
ラムダ構文単一矢印 (
x -> x + 1
) 無効化
Python 風構法 (
lambda x: x + 1
) に変更。旧構文は
SET lambda_syntax
で一時有効可。v2.1 で完全削除。
アマルゲメートビルド機能廃止ソースの巨大化による維持困難を回避。
macOS x86_64段階的廃止中DuckDB 自体はサポート継続(コミュニティ拡張機能は非対応)。v2.1 で正式停止予定。

📝 詳細な移行ガイド: 移行ガイドページ を参照してください。


まとめ

DuckDB 2.0.0 は、クアックプロトコルの完成、非同期 I/O、VARIANT タイプの完全統合、そしてAI エージェント対応など、飛躍的な進化を遂げました。約 20,000 コミットの努力が結実した、安定かつ高性能な新しいバージョンです。

コミュニティからのフィードバックやコントリビューターに心より感謝申し上げます!

同じ日のほかのニュース

一覧に戻る →

2026/10/22 6:58

鉄道セキュリティ開示

## Japanese Translation: レイルウェイは、本日早些に暗号化された顧客の環境変数への未許可のサードパーティアクセスを検知した直後、すべてのデプロイを一時停止しました。証拠によれば、攻撃者は一部の変数の復号化された内容を取得しており、これには API キー、データベース認証情報、プライベートレジストリ認証情報といったシークレットが含まれている可能性があります。影響範囲は現在ユーザーの一部に限られていますが、深刻度のためレイルウェイは上流プロバイダーに対し鍵の取り消しを能動的に行っています。本件のインシデントは、AI 推論サービスへの侵害を狙うプラットフォーム企業を標的とする攻撃の広範な傾向と一致します。影響を受けたアカウントは、調査の詳細が確認されると、直接的にメールで連絡されます。範囲およびステータスに関するさらなる更新は、公式アナウンスメントおよび status.railway.com を通じて共有されます。ユーザーは強く推奨されるのは、直ちにレイルウェイ(API キーおよびレジストリ認証情報を含む)に格納されているすべての環境変数をローテートし、サービスのログで不審な活動を審査することです。ビルドが完全に復元されるまで、新しいバージョンのロールアウトは行えません。

2026/10/22 0:48

本日の PHP セキュリティリリースとセキュリティ強化の取り組み

## Japanese Translation: PHP は、無認証リモートコード実行 (RCE) を可能にする 2 つの深刻な脆弱性情報である CVE-2026-109618 および CVE-2026-109619 を解消するため、緊急に重要なセキュリティアップデート (バージョン 8.2.35 から 8.5.12) をリリースしました。これらの不備はメモリ管理およびエラー処理の核心的な問題に起因し、ほぼ全てのサーバーリクエストに影響を与えています。脆弱性は当初、2024 年の Quarkslab による監査の際に特定されましたが、互換性維持上のリスクとサードパーティ製拡張機能全体での合意形成が必要だったため、修正は遅延されていました。OpenAI や Wiz などの企業から 2026 年後半に追加の攻撃ベクトルの報告があり、PHP ファウンデーションは AI セキュリティエンジニアの Volker Dusch を補強した専用の「エコシステムセキュリティチーム」を設立し、高度な AI モデルを用いた主要テクノロジー企業と連携して複雑なエクスプロイトレポートを検証するパートナーシップを結んでいます。パッチの詳細が意図せずリークされたことに伴い(具体的には 10 月 20 日に誤った CVE ID が示された)、リリース日は 10 月 22 日から 10 月 21 日に前倒しされ、迅速な対応と安定性の維持の両立を図っています。以降、プロジェクトは 15 の CVE を公表し、100 以上のレポートを処理しており、AI を用いて検証を行いながら人間がパッチを最終調整しています。この強化されたセキュリティ態勢を持続させるため、PHP ファウンデーションは政府、ホスティングプロバイダー、ドイツ主権技術庁(German Sovereign Tech Agency)などの企業から資金支援を募り、サードパーティからの継続的な脅威への対応のために深層コードベースの専門家を採用しています。

2026/10/22 4:01

GitLab 重大パッチリリース

## Japanese Translation: 2026年10月21日、GitLab はコミュニティ版およびエンタープライズ版(バージョン 19.5.1、19.4.3、19.3.6 などを含む)の重大なセキュリティパッチをリリースし、自己管理ユーザーに対し即座にアップグレードを行うよう要請しました。これは、CVSS 10.0 の整数オーバーフローにより任意の実行コードが可能になる脆弱性 (CVE-2026-110264)、アカウント乗っ取りを可能にする認証上の欠陥 (CVE-2026-15723) および機密メタデータを晒す各種キャッシュ poisoning や権限回避などを是正するためです。GitLab.com と特定の専用テナントは既に安全ですが、アップグレードを遅らせるとシステムが攻撃に対して脆弱になります。管理者は未認証の実行コード実行やデータ漏洩を防ぐためにアップグレードの優先度を高める必要があります。特に、シングルノードのホスト型インスタンス(バージョン 19.4.3 および 19.3.6)は複雑なデータベースマイグレーションにより必須のダウンタイムを要しますが、マルチノード設定ではゼロダウンタイムで更新を進めることができます。これらのリスクはパッチ展開前にハッカーワン (HackerOne) の研究者によって特定されていました。 ## Text to translate: The summary is of high quality but could be slightly improved by explicitly mentioning the existence of multiple specific CVEs rather than just grouping them, and perhaps acknowledging the release of several version numbers beyond just the ones requiring downtime to be fully faithful to the list. However, given the constraints of a single paragraph, the current version is acceptable. **Improved Summary:** On October 21, 2026, GitLab released critical security patches for its Community and Enterprise editions (including versions 19.5.1, 19.4.3, 19.3.6, etc.), urging immediate upgrades for self-managed users to address severe vulnerabilities like CVSS 10.0 integer overflow enabling arbitrary code execution (CVE-2026-110264), authentication flaws allowing account takeover (CVE-2026-15723), and various cache poisoning and authorization bypasses that expose confidential metadata. While GitLab.com and specific dedicated tenants are already secure, delaying updates leaves systems open to exploitation. Administrators must prioritize upgrading to prevent unauthenticated code execution and data leaks. Notably, single-node self-hosted instances (specifically versions 19.4.3 and 19.3.6) will face mandatory downtime due to complex database migrations, whereas multi-node setups can proceed with zero downtime. These risks were previously identified by researchers on HackerOne before the patch deployment.

DuckDB 2.0.0 LTS「シナモン・テール」 | そっか~ニュース