DuckDB 1.5.3: Not an Ordinary Patch Release
TL;DR: We are releasing DuckDB version v1.5.3. Despite being a “patch release”, it ships a ton of features through its extensions, starting with Quack, which is now available as a core extension, support for Quack in DuckLake, and several new features for Iceberg, AWS and HTTPS.
In this blog post, we highlight a few important features shipped in DuckDB v1.5.3, the third patch release in DuckDB's v1.5 line. You can find the complete release notes on GitHub.
To install the new version, please visit the installation page.
What's New
Quack as a Core Extension
On May 12, we introduced Quack, our new remote protocol that turns DuckDB into a client-server database. If you are new to Quack and don't know where to start, check out the following resources:
- For a high-level overview, see the Quack explainer page.
- For the rationale and history behind Quack, along with an introduction of the protocol and its features, see the announcement blog post.
- For the reference manual and setup guide, check out the Quack documentation.
Starting from DuckDB v1.5.3, we ship Quack as a core extension. This means that you can now start using Quack right away from any client running DuckDB: it will be transparently autoinstalled and autoloaded on first use.
DuckDB Server
CALL quack_serve(
'quack:localhost',
token = 'super_secret'
);
CREATE TABLE hello AS
FROM VALUES ('world') v(s);
DuckDB Client
CREATE SECRET (
TYPE quack,
TOKEN 'super_secret'
);
ATTACH 'quack:localhost' AS remote;
FROM remote.hello;
Please note that Quack is still in beta state and breaking changes may happen in the protocol, in function names, etc. We plan to release the production-ready version of Quack together with DuckDB v2.0 in fall 2026.
DuckLake with Quack
DuckLake now supports DuckDB with Quack as its catalog database (ducklake#1151). Let the example speak for itself!
DuckDB Server
CALL quack_serve(
'quack:localhost',
token => 'oogieboogie'
);
DuckDB Client
INSTALL ducklake;
CREATE SECRET (
TYPE quack, TOKEN 'oogieboogie'
);
ATTACH 'ducklake:quack:localhost'
AS lake (DATA_PATH 'data');
USE lake;
CREATE TABLE pond (
id INT,
species VARCHAR,
weight DOUBLE
);
INSERT INTO pond VALUES
(1, 'mallard', 1.2),
(2, 'pintail', 0.9);
INSERT INTO pond VALUES
(3, 'wood duck', 0.7);
SELECT * FROM pond ORDER BY id;
AWS Extension Features
The AWS extension now supports the web_identity chain type for IAM Roles for Service Accounts (IRSA) support.
This was made possible through a contribution by community member Marcel Steinbach (@mst).
The AWS extension now also supports IAM authentication for managed PostgreSQL databases running on RDS/Aurora. For more details, see the AWS RDS IAM Authentication section in the documentation.
HTTP_PROXY Variable for the HTTPS Extension
Setting the HTTP_PROXY environment variable now sets the http_proxy DuckDB configuration option (duckdb#22541).
This option makes sure that extensions installs are also passing through the proxy, which may come in handy in e.g. environments that use firewalls.
Note that since the introduction of curl into DuckDB's network stack, curl automatically uses HTTP_PROXY and HTTPS_PROXY, so now implicitly also DuckDB handles those parameters when the httpfs extension is loaded with the default curl backend.
Iceberg
The DuckDB-Iceberg extension has shipped a number of features between DuckDB v1.5.2 and v1.5.3. Most notably:
MERGE INTOis now supported for Iceberg tables (iceberg#788)- The
INSERTandUPDATEstatements are now supported on partitioned Iceberg tables with atruncateorbuckettransform (iceberg#879) - CTAS statements in DuckDB-Iceberg using ADBC are now possible (iceberg#974)
- We added the
iceberg_schema_properties,set_iceberg_schema_properties, andremove_iceberg_schema_propertiesfunctions to allow getting, setting, and removing Iceberg schema properties (iceberg#960) ALTER TABLEsupport has been added for Iceberg tables (iceberg#932, iceberg#928, iceberg#924, iceberg#912, iceberg#904, iceberg#853, iceberg#985, iceberg#981)- Support for the
GEOMETRYtype has been added for Iceberg tables (iceberg#968, iceberg#902)
Development and Internals
Shipping jemalloc as a Statically Linked Library
The jemalloc allocator is now part of core DuckDB (duckdb#22603) as a static third-party library which is included and linked by default on Linux. Previously jemalloc was a statically-linked extension – the new packaging is cleaner since other DuckDB extensions can be loaded dynamically.
DISABLE_EXTENSION_LOAD Flag
The DISABLE_EXTENSION_LOAD compile-time flag was fixed in duckdb#22019.
When compiling DuckDB with this flag, loading extensions is disabled.
Coming Up
We have two events coming up in the next few weeks:
DuckCon #7. On June 24, we'll host our next user conference, DuckCon #7, in Amsterdam's beautiful Royal Tropical Institute.
Ubuntu Summit Talk. Next week, Gábor Szárnyas of DuckDB Labs will give a talk titled “DuckDB: Not Quack Science” at the Ubuntu Summit. Yes, his talk will include the new Quack protocol.
Conclusion
This post is a short summary of the changes in v1.5.3. As usual, you can find the full release notes on GitHub.