Announcing DuckDB 1.5.6

2026-09-28 4 min read
The DuckDB team

TL;DR: Today we are releasing DuckDB 1.5.6 with bugfixes and performance improvements.

In this blog post, we highlight a few important fixes in DuckDB v1.5.6, the sixth patch release in DuckDB's 1.5 (Variegata) line. The release ships bugfixes, performance improvements and security patches. You can find the full release notes on GitHub.

To install the new version, please visit the installation page.

Fixes

Here are the most important fixes from the DuckDB v1.5.6 release, organized by category:

Correctness

  • #24240 – Fix LIMIT pushdown through a volatile projection with an OFFSET
  • #24239 – Don't push filters on volatile groups through aggregates
  • #24119 – Fix UNNEST pushdown
  • #24399 – Preserve NULLs in Top-N window elimination when the ORDER BY expression has no column references
  • #24551 – Fix Top-N window elimination for nullable ordering expressions
  • #25831 – Fix wrong results from common subplan elimination with UNION ALL arms sharing a join subtree
  • #25714 – Fix silent truncation of very long integer literals into HUGEINT
  • #25766 – Fix max on Hive partition column after file pruning
  • #24438 – Fix ICU strptime leaking time zone state between rows
  • #24845 – Fix GEOMETRY row group pruning with NULLs and empty geometries
  • #25728 – Fix reading and writing TIME_NS values in Parquet
  • #26027 – Fix Parquet v2 value count mismatch for NULLs in a list that fills a page
  • #26162 – Fix Parquet VARIANT shredding for REQUIRED fields and element groups

Crashes and Internal Errors

  • #25103 – Fix crash in Top-N with LIMIT 0
  • #24427 – Fix segfault in url_decode with TRY() on dictionary-encoded columns
  • #24447 – Fix failed checkpoint marker recovery
  • #25490 – Close the main WAL handle before renaming over it during WAL recovery

Generic Bugfixes

  • #24065 – Automatically roll back failed implicitly wrapped multi-statements on all paths
  • #25693 – Fix dead node counting in ART indexes
  • #25573 – Report the real storage version when opening a DuckDB v2.0+ database file
  • #25808 – Reject invalid UTF-8 produced by printf's %c conversion

Miscellaneous

  • #26102 – Add enable_optimistic_write setting
  • #25283 – Harden temporary file reads
  • #24362 – Unify C API symbol versioning for clients and extensions, stabilize all v1 APIs
  • #25214 – Always quote identifiers in error messages

Looking Ahead: DuckDB v2.0 on Windows

If you have read this far, don't miss out on a sneak peek at DuckDB v2.0.0-dev for Windows. First, extensions are now available for these clients. Second, we recently ran a benchmark to measure the performance improvement that the new clients bring, and the results blew our minds!

We used Windows 11 25H2 on a laptop with 128 GB RAM and 12 AMD Ryzen AI 300 CPU cores with simultaneous multithreading (yielding 24 threads). We used the TPC-H SF300 dataset and ran each query twice on both DuckDB v1.5.6 and v2.0.0-dev (alpha43586). For each query, we took the runtime of the second (hot) run. The total runtime for DuckDB v1.5.6 was 822 seconds, while for v2.0.0-dev it was 129 seconds. That's more than 6× faster!

Windows performance on v1.5.6 vs. v2.0.0-dev

The detailed results are as follows:

Query v1.5.6 (s) v2.0.0-dev (s)
1 17.590 19.954
2 1.065 1.972
3 4.282 8.787
4 5.310 8.386
5 4.562 6.097
6 1.167 1.057
7 5.091 3.405
8 4.986 5.359
9 16.662 17.505
10 60.919 7.619
11 6.797 0.674
12 3.350 2.579
13 174.847 13.256
14 20.044 2.001
15 22.836 1.807
16 43.019 1.953
17 4.958 2.805
18 230.175 11.453
19 23.013 2.416
20 24.303 2.391
21 67.344 5.766
22 79.726 1.533

This improvement is thanks to several optimizations, including a switch to the clang-cl compiler and a new allocator. That said, you can observe that there are some regressions for the time being (we are working on them!) and the 6× speedup may not generalize to all workloads – but rest assured that you should see significant improvements for most workloads on Windows once you upgrade to DuckDB v2.0.

Conclusion

This post was a short summary of the changes in v1.5.6. As usual, you can find the full release notes on GitHub. We would like to thank our contributors for providing detailed issue reports and patches. Stay tuned for future DuckDB releases, including v2.0.0 in October!