What DuckDB 2.0 Means for Shaper
Have you seen the DuckDB 2.0 release two weeks ago and wondered what that means for Shaper?
Shaper allows you to build analytics dashboards all in SQL. And that SQL runs directly in DuckDB.
So what does the DuckDB 2.0 release mean for Shaper? What’s new? Will this break your setup? And when will Shaper switch to DuckDB 2.0?
What’s in the Update?
Section titled “What’s in the Update?”Some of the biggest changes are technical internals:
DuckDB 2.0 has a new SQL parser and new extension APIs which allow for more flexible extensions. This is exciting news for anyone building DuckDB extensions, and I am looking forward to seeing what people will do with this in the coming months.
There are also new features:
- A
VARIANTtype, which is similar to storing unstructured JSON but faster. - SQL triggers, which are relevant if you are actively updating data in DuckDB, though less so if you only query data.
Read the announcement post for all the details.
What’s Relevant for Shaper Users?
Section titled “What’s Relevant for Shaper Users?”The biggest thing is likely raw performance:
DuckDB 2.0 has been rewritten to use async I/O and can be much faster now when querying files from S3 or similar object storage.
Apart from that, there are some nice syntax improvements.
The most relevant for Shaper users is the new variable syntax. Instead of writing:
WHERE org = getvariable('org_id')You can now write:
WHERE org = $org_idI am definitely looking forward to this one.
When Will Shaper Switch to DuckDB 2.0?
Section titled “When Will Shaper Switch to DuckDB 2.0?”Short: Not anytime soon.
The biggest reason is that we take backward compatibility seriously. DuckDB 2.0 is clearly a breaking change.
We also think it’s best to wait for the first bug fix release and to ensure all major extensions have caught up.
Our current plan is to switch once we release Shaper 1.0, which in itself will be a release that we use to make a few breaking changes to clean up Shaper.
Shaper 1.0 is unlikely to come before Q2 2027.
We are tracking the progress for that on GitHub here.

