Skip to content

DuckDB 2.0 LTS adds server mode, triggers and VARIANT

DuckDB 2.0.0, a long-term support release out October 21, adds a server mode, triggers and VARIANT. Versions before 2.0 cannot read its files.

By Tech AI Wire Team

4 min read

XLinkedIn
DuckDB's artwork for the 2.0 release: a duck in flight drawn in dotted lines on a yellow background.
Photo: DuckDB

By the numbers

commits since DuckDB 1.5, per the DuckDB team
~20,000
earliest end of support for DuckDB 2.0
Oct 2027
extended end of support for DuckDB 1.5
March 2027

DuckDB released version 2.0.0 on October 21, 2026, as a long-term support (LTS) release that the project will support until at least October 2027. It adds a built-in server mode, SQL triggers and a new parser. It also makes a one-way change: database files written by 2.0 cannot be opened by any earlier version, so upgrades need a plan.

DuckDB is an open-source SQL database for analytics. Like SQLite, it runs inside your program rather than as a separate server. Unlike SQLite, it is built for big analytical queries over large tables and files such as Parquet and CSV.

What DuckDB 2.0 adds

The DuckDB announcement calls 2.0 the team's largest feature release so far, built from close to 20,000 commits since version 1.5. "DuckDB 2.0 is above all a feature release," the DuckDB team writes. The release is codenamed "Cinnamon Teal," after the duck species Spatula cyanoptera. The GitHub release uses the name "Cyanoptera."

FeatureWhat it does
Quack server modeRuns DuckDB as a server that other clients connect to
TriggersCREATE TRIGGER runs SQL automatically, before or after a change to a table
VARIANT typeStores semi-structured data, such as JSON, and splits out its common structure for better compression and speed
Async I/OReads Parquet and CSV files while queries run, with several requests in flight, mainly to speed up cloud storage like Amazon S3
New SQL parserA PEG-based parser is now the default; extensions can add their own SQL syntax, and errors show where the problem is
Native time zonesTime zones, calendars and collations no longer need the ICU library

A trigger is a rule stored in the database: when a row changes, run this SQL too. DuckDB 2.0 supports BEFORE and AFTER triggers, at row or statement level. Some combinations are not supported yet, such as a BEFORE ... FOR EACH ROW trigger on UPDATE.

Quack turns DuckDB into a server

Until now, DuckDB served one program at a time. With Quack, CALL quack_serve(...) starts a server, and a client connects with ATTACH 'quack:...'. A new CONNECT statement switches a whole session to a remote database. The command-line tool gains matching -serve and -connect flags.

The server listens only on the local machine by default. For remote access, the DuckDB team recommends putting it behind a reverse proxy that handles TLS encryption. InfoWorld reported in August that Quack also makes it easier to query PostgreSQL and MySQL databases remotely.

Breaking changes to check before upgrading

According to the release post and the GitHub release notes, these changes can break existing code or builds:

  • Files are one-way. DuckDB 2.0 reads and writes existing database files. "DuckDB versions before 2.0 cannot read database files created by DuckDB 2.0," the team warns.
  • New parser by default. SET enable_legacy_parser = true; brings back the old one.
  • Single-arrow lambdas are off. Syntax like x -> x + 1 is disabled. SET lambda_syntax = 'enable_single_arrow'; turns it back on until version 2.1 removes it.
  • Integer division by zero now raises an error instead of returning NULL.
  • Builds need C++17, up from C++11, and release builds now use the Clang compiler. Amalgamation builds are deprecated.
  • Intel Macs are being phased out. Community extensions are no longer built for macOS on x86_64, and DuckDB 2.1 drops support.

The sources disagree on one detail. InfoWorld's preview described a stable C API for extensions. The release post says the revamped C API v2 is "not yet marked as stable," because the team wants to test it in the field first.

Support windows

VersionSupported until
DuckDB 2.0 (LTS)At least October 2027
DuckDB 1.5March 2027 (extended)
DuckDB 1.4Late November 2026

What this means for developers

Treat this as a planned migration, not a routine bump.

  • Copy your database files before the first open. Once DuckDB 2.0 writes to a file, an older tool or teammate on 1.5 can no longer read it. Upgrade every reader of a shared file together.
  • Test on a copy of production. The DuckDB team recommends a shadow system first. For mission-critical work, it suggests waiting for the first patch release, due in November.
  • Check your client. The command-line tool and Python client are ready now. Go, R and Java clients, and some extensions, "may take a few days," the team says.
  • Search your SQL for two patterns. Look for single-arrow lambdas and any integer division that could hit zero. Both behave differently now.
  • Do not expose a Quack server directly. Keep it on localhost, or put a TLS reverse proxy in front, as the team advises.
  • Teams on 1.4 should move first. Its support ends in late November 2026, so upgrade to 2.0, or to 1.5 for a smaller step.

Sources

  1. Announcing DuckDB 2.0.0 - DuckDB
  2. DuckDB v2.0.0 release notes - GitHub
  3. DuckDB 2.0 coming this fall with client-server mode - InfoWorld

Related articles

The weekly digest

One email every Friday with the week's top stories from all six desks: AI, dev tools, coding, the tech industry, startups and what's next. Free, no spam.

Unsubscribe anytime with one click.