<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/a-preview-of-duckdb-v2-0-lqkw9rssy" -->

---
title: A Preview of DuckDB v2.0 | daily.dev
description: DuckDB v2.0, codenamed "Cyanoptera," is coming this fall with over 10,000 commits since v1.5. Headline additions include a client/server mode via the Quack...
canonical: https://daily.dev/posts/a-preview-of-duckdb-v2-0-lqkw9rssy
copyright: © 2026 Daily Dev Ltd.
terms: https://daily.dev/tos/
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: A Preview of DuckDB v2.0 | daily.dev
og:description: DuckDB v2.0, codenamed "Cyanoptera," is coming this fall with over 10,000 commits since v1.5. Headline additions include a client/server mode via the Quack...
og:url: https://daily.dev/posts/a-preview-of-duckdb-v2-0-lqkw9rssy
og:image: https://api.daily.dev/og/posts/LQkw9rSsy.png
og:image:alt: A Preview of DuckDB v2.0
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# A Preview of DuckDB v2.0

**[DuckDB](https://daily.dev/sources/duckdb)** · 15 min read · 46 upvotes · 5 comments

## Summary

DuckDB v2.0, codenamed "Cyanoptera," is coming this fall with over 10,000 commits since v1.5. Headline additions include a client/server mode via the Quack extension and new CONNECT statement (with remote pushdown to PostgreSQL/MySQL), a first-class VARIANT type for shredded semi-structured data, full trigger support, several SQL dialect additions (NEAREST joins, DML inside CTEs, nested schemas, variable syntax, JSON mutation functions, recursive CTEs with USING KEY), asynchronous I/O throughout the engine for much faster remote reads, broad query performance improvements (up to 40x faster on a recursive CTE benchmark), a new default storage format v2.0.0 with buffer-managed ART indexes, a brand-new PEG-based SQL parser replacing the Postgres-derived one, removal of the ICU dependency in favor of a native, smaller, faster timezone/collation implementation, and a broadened stable C API letting extensions be built once and run across versions, plus support for custom signed extension repositories. The release will also include a small set of breaking changes, detailed in the eventual release announcement.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://duckdb.org/2026/08/17/duckdb-20-highlights.html>

## Questions this post answers

### How does client/server mode work in DuckDB v2.0 and what is the quack extension?

DuckDB v2.0 graduates the quack extension to stable, giving DuckDB a native client/server protocol. A server process runs CALL quack_serve(token='...') and a client attaches with ATTACH 'quack:server.example.com' AS qk, then issues CONNECT qk to route subsequent queries to the server, with results streaming back, followed by DISCONNECT.

_Teams evaluating DuckDB for multi-tenant or long-running deployments can follow release coverage like this on daily.dev._

### Can DuckDB v2.0 push SQL queries directly to PostgreSQL or MySQL instead of pulling data over the wire?

Yes, the new CONNECT statement combined with a remote pushdown optimizer lets a DuckDB session point at a remote PostgreSQL or MySQL database, for example CONNECT 'postgres://localhost/mydb', so subsequent queries like SELECT count(*) FROM orders execute on the remote server rather than transferring the tables locally first.

_Developers comparing federated query approaches across databases can track this kind of engine change via daily.dev._

### How much faster is a recursive CTE query in DuckDB v2.0 compared to v1.5.4?

A single-source reachability query over a one-million-edge graph, written as a plain recursive CTE, runs about 40 times faster in DuckDB v2.0 preview builds (0.12 seconds) compared to DuckDB v1.5.4 (4.90 seconds), thanks to a rewritten recursive CTE engine among other query execution improvements.

_Anyone benchmarking database upgrades before committing engineering time can keep an eye on numbers like these through daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@bigjpg** · 7 upvotes

> Not enough Data Engineers and Analysts paying attention to DuckDB.

**@agustinbarrientos** · 3 upvotes

> Which side owns the rollback if Postgres drops halfway through a pushed-down query?

## Similar posts on daily.dev

- [Why DuckDB 2.0 is faster](https://daily.dev/posts/why-duckdb-2-0-is-faster-miuefalpu) · MotherDuck · 99 upvotes · 6 comments
- [Announcing DuckDB 1.5.0](https://daily.dev/posts/announcing-duckdb-1-5-0-3oljixkez) · DuckDB · 54 upvotes · 1 comments

---

Tags: [#backend](https://daily.dev/tags/backend), [#sql](https://daily.dev/tags/sql), [#duckdb](https://daily.dev/tags/duckdb)

[View this post on daily.dev](https://daily.dev/posts/a-preview-of-duckdb-v2-0-lqkw9rssy)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"A Preview of DuckDB v2.0","url":"https://daily.dev/posts/a-preview-of-duckdb-v2-0-lqkw9rssy","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/a-preview-of-duckdb-v2-0-lqkw9rssy"},"datePublished":"2026-08-17T12:48:23.740Z","dateModified":"2026-09-14T08:49:55.186Z","description":"DuckDB v2.0, codenamed \"Cyanoptera,\" is coming this fall with over 10,000 commits since v1.5. Headline additions include a client/server mode via the Quack...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ea7e16f8f61f0ff702a547574aa36322?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ea7e16f8f61f0ff702a547574aa36322?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"DuckDB","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"DuckDB","logo":"https://media.daily.dev/image/upload/s--3luD3Wei--/f_auto/v1714800008/logos/duckdb","url":"https://daily.dev/sources/duckdb"},"commentCount":5,"discussionUrl":"https://daily.dev/posts/a-preview-of-duckdb-v2-0-lqkw9rssy","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":46},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":5}],"keywords":"backend,sql,duckdb","timeRequired":"PT15M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"DuckDB","item":"https://daily.dev/sources/duckdb"},{"@type":"ListItem","position":3,"name":"A Preview of DuckDB v2.0"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/a-preview-of-duckdb-v2-0-lqkw9rssy","comment":[{"@type":"Comment","text":"Not enough Data Engineers and Analysts paying attention to DuckDB.","datePublished":"2026-08-17T13:05:26.913Z","url":"https://daily.dev/posts/LQkw9rSsy#c-7uDGl1r5Q","author":{"@type":"Person","name":"Ross Farrell","url":"https://daily.dev/bigjpg","image":"https://avatars.githubusercontent.com/u/56429528?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":7}},{"@type":"Comment","text":"Which side owns the rollback if Postgres drops halfway through a pushed-down query?","datePublished":"2026-08-18T00:01:53.288Z","url":"https://daily.dev/posts/LQkw9rSsy#c-B1S84LZLn","author":{"@type":"Person","name":"Agustin Barrientos","url":"https://daily.dev/agustinbarrientos","image":"https://media.daily.dev/image/upload/s--5ayxQnqn--/f_auto/v1788281802/avatars/avatar_wQYYVe5Tbj0NJ7C7qPoa8?_a=BAMAMicg0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/a-preview-of-duckdb-v2-0-lqkw9rssy#faq","mainEntity":[{"@type":"Question","name":"How does client/server mode work in DuckDB v2.0 and what is the quack extension?","acceptedAnswer":{"@type":"Answer","text":"DuckDB v2.0 graduates the quack extension to stable, giving DuckDB a native client/server protocol. A server process runs CALL quack_serve(token='...') and a client attaches with ATTACH 'quack:server.example.com' AS qk, then issues CONNECT qk to route subsequent queries to the server, with results streaming back, followed by DISCONNECT. Teams evaluating DuckDB for multi-tenant or long-running deployments can follow release coverage like this on daily.dev."}},{"@type":"Question","name":"Can DuckDB v2.0 push SQL queries directly to PostgreSQL or MySQL instead of pulling data over the wire?","acceptedAnswer":{"@type":"Answer","text":"Yes, the new CONNECT statement combined with a remote pushdown optimizer lets a DuckDB session point at a remote PostgreSQL or MySQL database, for example CONNECT 'postgres://localhost/mydb', so subsequent queries like SELECT count(*) FROM orders execute on the remote server rather than transferring the tables locally first. Developers comparing federated query approaches across databases can track this kind of engine change via daily.dev."}},{"@type":"Question","name":"How much faster is a recursive CTE query in DuckDB v2.0 compared to v1.5.4?","acceptedAnswer":{"@type":"Answer","text":"A single-source reachability query over a one-million-edge graph, written as a plain recursive CTE, runs about 40 times faster in DuckDB v2.0 preview builds (0.12 seconds) compared to DuckDB v1.5.4 (4.90 seconds), thanks to a rewritten recursive CTE engine among other query execution improvements. Anyone benchmarking database upgrades before committing engineering time can keep an eye on numbers like these through daily.dev."}}]}
```

