DuckDB 2.0.0 LTS Ships Triggers, a Default PEG Parser and Asynchronous I/O, and Older Versions Cannot Read Its Database Files
DuckDB 2.0.0 LTS, released October 21, adds triggers, the Quack CONNECT statement, a PEG parser and async I/O; versions before 2.0 cannot read files it creates.
Overview
The DuckDB team released DuckDB 2.0.0 LTS on October 21, 2026, according to its announcement post. The release is codenamed “Cinnamon Teal” and, in the team’s words, is “our biggest feature release so far,” built from close to 20,000 commits since DuckDB 1.5. The v2.0.0 release page on GitHub is timestamped 12:49 UTC on the same day. The post states that “DuckDB 1.0 was all about stability and backward compatibility, DuckDB 2.0 is above all a feature release.”
Support Windows
According to the announcement, DuckDB 2.0 is a long-term support release with support until at least October 2027. The previous LTS release, version 1.4, remains supported until November 17, 2026. The team also extended support for DuckDB 1.5 until March 2027, which the post says effectively turns it into an LTS release as well.
What Is New
The announcement groups the changes into several areas.
- Server mode. The release ships a polished version of the Quack protocol, which lets DuckDB run in a client-server setup, with what the post calls substantial performance and stability improvements. A new
CONNECTstatement attaches and switches to a remote database in one command, and the post says it works with remote databases that support it, including PostgreSQL and MySQL. For those, a new remote pushdown optimizer ships queries to the remote server instead of pulling tables over the wire. By default the Quack server listens only on localhost. - Asynchronous I/O. DuckDB 2.0 reads Parquet and CSV files, as well as its native storage format, with asynchronous I/O. The post says the I/O layer now scales independently from query processing, which means “dramatically faster queries on object storage such as s3://.”
- VARIANT. The
VARIANTtype, introduced in DuckDB 1.5, is now fully integrated. The post says DuckDB 2.0 detects the common structure in data and shreds it so it compresses well and executes fast, including shredded reading and writing for Parquet. - Parser. A PEG-based parser, which debuted as an opt-in feature in DuckDB 1.5, becomes the default, replacing a parser derived from PostgreSQL’s. Extensions can hook into the grammar. Users can switch back with
SET enable_legacy_parser = true;via thelegacy_parserextension. - Triggers. DuckDB adds
CREATE TRIGGERwithBEFOREandAFTERtriggers, row-level and statement-level variants, and transition tables. The post says some combinations, such asBEFORE ... FOR EACH ROWandUPDATE ... FOR EACH ROWtriggers, are not yet supported. - SQL additions. The post lists a
$variableshorthand, data-modifying CTEs,NEARESTjoins for top-k similarity search, nested schemas and JSON mutation functions such asjson_set. - Agent mode. The CLI detects when an agent is running it and prints compact Markdown tables and JSON errors. The team says that on TPC-H, agent mode cut the amount of DuckDB output the model had to read by 59%. The Herald previously reported on the feature in the unreleased CLI.
Migration and Breaking Changes
The post says the release “comes with a small set of breaking changes.” The storage format is described as the most likely source of problems: “DuckDB versions before 2.0 cannot read database files created by DuckDB 2.0.” DuckDB 2.0 can still read and write existing database files, and these remain readable by older versions. The team recommends testing on a shadow system before switching production over, and says users with mission-critical workloads may want to wait for the first patch release, “coming in November.”
Other changes listed in the announcement include:
- DuckDB now requires a C++17 compiler.
- The ICU library is removed, and the
icuextension implements timezones, calendars and collations itself, with timezone data compressed to around 45 kB. - The old single-arrow lambda syntax (
x -> x + 1) is disabled by default and is to be removed in v2.1. - The amalgamation build is deprecated.
- DuckDB 2.1 will stop supporting
osx_amd64; community extensions are already no longer built for that platform.
Context
The release follows several DuckDB items the Herald has covered. In August it reported on the v2.0 preview and its PEG grammar and on AWS signing an agreement to acquire DuckLabs. In October it covered a Vera benchmark of the v2.0 preview and Amazon Aurora PostgreSQL embedding DuckDB.
What We Don’t Know
Both cited sources are first-party DuckDB material, and neither includes independent benchmarks of the released 2.0.0 build. The announcement says the full release notes are on GitHub and that the migration guide holds the full details of breaking changes; this article does not cover them beyond what the announcement lists. The post also describes the extension repository feature as a work in progress whose syntax may change in future releases.