Announcing DuckDB 1.4.1 LTS
TL;DR: Today we are releasing DuckDB 1.4.1, the first bugfix release of our LTS edition.
In this blog post, we highlight a few important fixes and convenience improvements in DuckDB v1.4.1 LTS. You can find the complete release notes on GitHub.
To install the new version, please visit the installation page.
Iceberg Improvements
The DuckDB iceberg
extension received a number of patches:
-
You can now attach to an Iceberg REST Catalog and specify an access delegation mode. This fixes a bug when using catalogs that did not vend credentials. The
ATTACH
statement will now look like this:ATTACH 'warehouse_name' AS my_datalake ( TYPE iceberg, ENDPOINT 'endpoint', ACCESS_DELEGATION_MODE 'delegation_mode_option', SECRET 'my_secret' );
The current
ACCESS_DELEGATION_MODE
options arevended_credentials
(default) andnone
. - When attaching to AWS-managed REST Catalogs, the
http_timeout
setting is now respected. - Attempting to rename or replace a table within a transaction now throws a clear error message.
- AWS Athena can now read Iceberg tables written by DuckDB.
AWS Improvements
The aws
extension received a number of changes, which makes it easier to configure and troubleshoot.
See the aws
documentation page for more details.
Secret Validation
Since DuckDB v1.4.0, the AWS credential_chain
provider looks for any required credentials during CREATE SECRET
time, failing if absent/unavailable. Since v1.4.1 this behavior can also be configured via the VALIDATION
option as follows:
CREATE OR REPLACE SECRET secret (
TYPE s3,
PROVIDER credential_chain,
VALIDATION 'exists'
);
Two validation modes are supported:
exists
(default) requires present credentials.none
allowsCREATE SECRET
to succeed forcredential_chains
with no available credentials.
S3 Default Region
Previously, setting the S3 region incorrectly could result in difficult-to-debug situations (Unknown error for HTTP HEAD to ...
).
DuckDB v1.4.1 removes us-east-1
as the default S3 region and returns a 301 error code if an incorrect region is used.
Fixes for Missing Data
Users reported two cases where DuckDB omitted some data:
- The Parquet reader had a regression which caused it to omit some rows when using predicate pushdown on certain string columns.
- In certain edge cases, DuckDB’s ART index could omit rows rows non-deterministically when running on multiple threads. Note that this index is only used when you manually specify an index with
CREATE INDEX
.
DuckDB v1.4.1 fixes both of these issues.
Autoloading
In DuckDB v1.4.0, the httpfs
extension was not always autoloaded. For example, running:
COPY (SELECT 42 AS answer) TO 's3://my_bucket/my_file.parquet';
without loading httpfs
manually returned the following error:
Cannot open file "s3://my_bucket/my_file.parquet": No such file or directory
With v1.4.1, autoloading works and DuckDB can write to the bucket right away.
Docker Image
We now officially distribute a Docker image, making it easy to run DuckDB in a containerized environment:
docker run --rm -it -v "$(pwd):/workspace" -w /workspace duckdb/duckdb
DuckDB v1.4.1 (Andium) b390a7c376
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
D
For more details including operational considerations and using the UI, read the Docker image page.