{
  "id": 15902298,
  "title": "DuckDB 2.0.0 LTS \"Cinnamon Teal\"",
  "url": "https://urgent.news/2026/10/21/duckdb-2-0-0-lts-cinnamon-teal",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-21T14:01:22.000Z",
  "source": {
    "name": "Hacker News",
    "slug": "hacker-news",
    "url": "https://duckdb.org/2026/10/21/announcing-duckdb-200"
  },
  "original_language": "en",
  "account": "The DuckDB team is pleased to announce the release of version 2.0.0 LTS of DuckDB, dubbed \"Cinnamon Teal\" (Spatula cyanoptera). This significant upgrade encompasses numerous enhancements and features, stemming from nearly 20,000 commits following DuckDB 1.5. Notably, DuckDB 2.0.0 focuses heavily on introducing new functionalities rather than maintaining backward compatibility.\n\nAmong the major additions is the polished Quack protocol, which has undergone substantial performance and stability improvements. This version also introduces asynchronous I/O for reading Parquet and CSV files, enabling independent scaling of I/O and query processing layers. This results in enhanced parallelism for remote reads and significantly faster queries on object storage platforms like S3.\n\nA new VARIANT type has been integrated, which can store semi-structured, schema-less data like JSON while maintaining columnar execution performance. DuckDB 2.0.0 fully supports this type, automatically detecting common structures in data for efficient shredding and execution. Additionally, the CLI now detects when being used by coding agents like Claude Code or Codex, switching to agent mode for compact output, early error reporting, and truncated result handling.\n\nThe parser in DuckDB 2.0.0 has been replaced with a modern, extensible PEG-based parser, which becomes the default option. Extensions can now integrate with the grammar itself, potentially introducing new SQL syntax. Moreover, error messages now include precise source locations.\n\nImportant changes include the ability to run DuckDB in a client-server setup using the Quack protocol, and the CONNECT statement, which allows attaching and switching to a remote database in a single command. Asynchronous I/O and the VARIANT type are also available in the Python client library. However, some client libraries such as Go, R, and Java may require additional time to update due to the extensive changes involved.",
  "summary": null,
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}