DuckDB 2.0.0 LTS "Cinnamon Teal": the biggest release yet
Translated by a model; the original is in Russian.
The DuckDB team has announced version 2.0.0 with long-term support (LTS), codenamed "Cinnamon Teal" after Spatula cyanoptera, a reddish-brown duck of the western Americas. Where 1.0 was about stability and backward compatibility, 2.0 is billed above all as a feature release — backed by close to 20,000 commits accumulated since DuckDB 1.5.
DuckDB as a server
DuckDB has been an in-process database since day one. Version 1.5.3 introduced the Quack protocol, letting it run in a traditional client-server setup. Quack now gains substantial performance and stability improvements, and the new CONNECT statement attaches and switches to a remote database in a single command. It works not only with Quack but with PostgreSQL and MySQL too, with a pushdown optimizer that ships queries to the remote server instead of pulling tables over the wire.
Speed and data
Asynchronous I/O arrives for reading Parquet and CSV files: the I/O layer now scales independently from query processing and keeps multiple reads in flight, which especially speeds up object stores such as s3://. The VARIANT type becomes first-class — a kind of "JSON on steroids": it stores schema-less data, yet the engine detects the common structure and "shreds" it for good compression and fast execution.
Agent mode
Because coding agents like Claude Code, Codex and Cursor increasingly drive the CLI, DuckDB 2.0 detects such runs and switches to agent mode: it prints compact Markdown tables instead of padded boxes, says plainly when a result was truncated, reports the expected cost of long queries up front, and returns errors as JSON. On TPC-H benchmarks this cut the amount of output the model had to read by 59%.
Extensibility and SQL
A new PEG-based SQL parser is now the default, replacing the old descendant of PostgreSQL's parser; extensions can hook straight into the grammar. The release adds triggers (CREATE TRIGGER), a revamped C API v2, and the ability to host your own signed extension repositories. The SQL dialect grows too: a $variable shorthand, NEAREST joins for vector search, nested schemas and JSON mutation functions.
Migrating to 2.0
There are only a few breaking changes, but the storage format is the main risk: versions before 2.0 cannot read files created by 2.0, though 2.0 still reads older files. The ICU library is gone entirely — timezones, calendars and collations are now implemented by DuckDB itself, with IANA data compressed to around 45 kB. A C++17 compiler is required, and Clang is now the default. For mission-critical workloads, the developers suggest waiting for the first patch in November.
Source: Hacker News
Comments
Sign in, to comment.