DuckDB v1.5.4stable Released Jun 17, 2026
Impact Score: 5/10

DuckDB v1.5.4 Bugfix Release

Source available β€” automated, not human-reviewed

Component: duckdb Β· Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified β€” check source notes
πŸ“„ .MD
⚑ Executive Summary (TL;DR)

DuckDB v1.5.4. Source highlight: This is a bug fix release for various issues discovered after we released v1.5.3.

Who Does This Impact? (Role-Based Analysis)

πŸ’» Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

πŸ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

βš™οΈ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

✨ New Features & Capabilities (6)

  • Add vacuum_rebuild_indexes as an (experimental) ATTACH option
  • Add avro and unity_catalog to extension list
  • Add v1.4.5 to storage version map
  • Merge v1.4-andium into v1.5-variegata, and add storage versions v1.4.5 and v1.5.4
  • Add hardening to many DuckDB/Parquet decompression/deserializing paths
  • [Dev] Add missing `ORDER BY ALL` or `rowsort` to merge into tests

⚑ Performance & Enhancements (1)

  • backport GetLocalFileSystem improvements to andium

πŸ”§ Bug Fixes & Patches (6)

  • Backport revert append fix to v1.4
  • Backport windows-32bit test fix to 1.4
  • Fix `TemporaryFileManager` reported size to reflect live blocks
  • Fix double free and memory leak in Arrow GeoArrow CRS serialization
  • Fix `WindowSelfJoinOptimizer` ignore exception
  • fix progress bar output and crash when piping SQL
πŸ“„ View Raw Release Notes (Original Developer Log)
This is a bug fix release for various issues discovered after we released v1.5.3. Please also refer to the announcement blog post: https://duckdb.org/2026/06/17/announcing-duckdb-154.html ## What's Changed * backport 22094 by @artjomPlaunov in https://github.com/duckdb/duckdb/pull/22136 * backport 21815 & 21427 by @artjomPlaunov in https://github.com/duckdb/duckdb/pull/22137 * remove CleanupState destructor and remove noexcept on DuckCleanupInfo… by @artjomPlaunov in https://github.com/duckdb/duckdb/pull/22186 * Backport revert append fix to v1.4 by @Mytherin in https://github.com/duckdb/duckdb/pull/22414 * Backport windows-32bit test fix to 1.4 by @staticlibs in https://github.com/duckdb/duckdb/pull/22639 * Fix `TemporaryFileManager` reported size to reflect live blocks by @DinosL in https://github.com/duckdb/duckdb/pull/22767 * Set query text on PIVOT MultiStatement sub-statements at construction by @bleskes in https://github.com/duckdb/duckdb/pull/22769 * Fix double free and memory leak in Arrow GeoArrow CRS serialization by @rustyconover in https://github.com/duckdb/duckdb/pull/21854 * Render MAP values as valid SQL in Value::ToSQLString() by @carlopi in https://github.com/duckdb/duckdb/pull/22815 * Remove time-out waiting for terminal background color by @Mytherin in https://github.com/duckdb/duckdb/pull/22838 * Fix `WindowSelfJoinOptimizer` ignore exception by @qsliu2017 in https://github.com/duckdb/duckdb/pull/22800 * fix progress bar output and crash when piping SQL by @DinosL in https://github.com/duckdb/duckdb/pull/22836 * Internal #9438: TopN Window Projections by @hawkfish in https://github.com/duckdb/duckdb/pull/22851 * Fix: check if `ParseFormatSpecifier` returns unrecognized format by @DinosL in https://github.com/duckdb/duckdb/pull/22850 * Issue #22791: Window Self-Join Limits by @hawkfish in https://github.com/duckdb/duckdb/pull/22844 * [Backport] Column-level metadata loading and serialization by @ywelsch in https://github.com/duckdb/duckdb/pull/22768 * Fix json_keys with wildcard paths by @feichai0017 in https://github.com/duckdb/duckdb/pull/22855 * Fix: JSON add list type check by @DinosL in https://github.com/duckdb/duckdb/pull/22862 * Use committed row count in `RowGroupReorderer` by @lnkuiper in https://github.com/duckdb/duckdb/pull/22884 * Fix geometry stats checkpointing when no changes are detected by @Maxxen in https://github.com/duckdb/duckdb/pull/22882 * Check for `nullptr` expressions in deserialized JSON by @lnkuiper in https://github.com/duckdb/duckdb/pull/22906 * Add vacuum_rebuild_indexes as an (experimental) ATTACH option by @evertlammerts in https://github.com/duckdb/duckdb/pull/22690 * Use non-deleted row count in `RowGroupReorderer` by @lnkuiper in https://github.com/duckdb/duckdb/pull/22911 * Validate width/scale in duckdb_create_decimal_type and duckdb_create_decimal by @mlafeldt in https://github.com/duckdb/duckdb/pull/22905 * Bump httpfs to fix CI by @sebastiaan-dev in https://github.com/duckdb/duckdb/pull/22817 * Update vortex extension by @samansmink in https://github.com/duckdb/duckdb/pull/22930 * Fix alias propagation when replacement scan is wrapped in SubqueryRef by @truffle-dev in https://github.com/duckdb/duckdb/pull/22852 * Rowgroup index append by @artjomPlaunov in https://github.com/duckdb/duckdb/pull/22940 * Bump Julia to v1.5.3 by @carlopi in https://github.com/duckdb/duckdb/pull/22804 * Make url a value, not a const ref by @NiclasHaderer in https://github.com/duckdb/duckdb/pull/22953 * fix(adbc): support `StatementExecuteSchema` of ADBC 1.1.0 by @eitsupi in https://github.com/duckdb/duckdb/pull/22965 * Fix partial column metadata reuse bug by @ywelsch in https://github.com/duckdb/duckdb/pull/22994 * bump avro hash for 1.4.5 by @djouallah in https://github.com/duckdb/duckdb/pull/22952 * Add avro and unity_catalog to extension list by @d-justen in https://github.com/duckdb/duckdb/pull/22948 * Fix case-insensitive column match in INSERT ... SELECT ON CONFLICT by @remsky in https://github.com/duckdb/duckdb/pull/22825 * Normalize db_type to lowercase on ATTACH, apply extension aliases on compare by @carlopi in https://github.com/duckdb/duckdb/pull/22758 * MERGE INTO: only consider target table when binding `WHEN NOT MATCHED` and source table when binding `WHEN NOT MATCHED BY TARGET` by @Mytherin in https://github.com/duckdb/duckdb/pull/23014 * In the optimistic writer always start a new row group after merging by @Mytherin in https://github.com/duckdb/duckdb/pull/22997 * Merge Into: Avoid recursively binding in the ProjectionBinder by @Mytherin in https://github.com/duckdb/duckdb/pull/23022 * Rename emscripten action in v1.5 by @smvv in https://github.com/duckdb/duckdb/pull/23044 * Rename emscripten action in v1.4 by @smvv in https://github.com/duckdb/duckdb/pull/23045 * Fix VARIANT cast reading wrong rows under a filter by @mlafeldt in https://github.com/duckdb/duckdb/pull/23031 * fix(adbc): implement ADBC 1.1.0 Rich Error Metadata API by @eitsupi in https://github.com/duckdb/duckdb/pull/23073 * Add v1.4.5 to storage version map by @carlopi in https://github.com/duckdb/duckdb/pull/23081 * Merge v1.4-andium into v1.5-variegata, and add storage versions v1.4.5 and v1.5.4 by @carlopi in https://github.com/duckdb/duckdb/pull/23082 * Backport PR #22348 to andium by @carlopi in https://github.com/duckdb/duckdb/pull/23084 * Backport variegata bugfixes into andium by @carlopi in https://github.com/duckdb/duckdb/pull/23085 * Bump vortex in andium by @carlopi in https://github.com/duckdb/duckdb/pull/23091 * Bump lance in variegata by @carlopi in https://github.com/duckdb/duckdb/pull/23094 * Bump vortex in variegata by @carlopi in https://github.com/duckdb/duckdb/pull/23096 * Bump extensions to v1.4-andium by @carlopi in https://github.com/duckdb/duckdb/pull/23090 * v1.5-variegata: bump extensions by @carlopi in https://github.com/duckdb/duckdb/pull/23089 * Fix Parquet thrift byte order on windows + relax geometry stats pruning by @Maxxen in https://github.com/duckdb/duckdb/pull/23095 * fix(adbc): fill metadata of GetObjects by @eitsupi in https://github.com/duckdb/duckdb/pull/23110 * backport GetLocalFileSystem improvements to andium by @ccfelius in https://github.com/duckdb/duckdb/pull/23130 * Reject NULL json key by @dentiny in https://github.com/duckdb/duckdb/pull/23116 * Fix windows last modification timestamp by @dentiny in https://github.com/duckdb/duckdb/pull/23136 * Fix: ignore_errors silently accepting invalid json by @DinosL in https://github.com/duckdb/duckdb/pull/23137 * [v1.5] Backport external file cache fix by @dentiny in https://github.com/duckdb/duckdb/pull/23132 * Internal #9375: PRAGMA enum NULL by @hawkfish in https://github.com/duckdb/duckdb/pull/23146 * Clarify BIGNUM C API data is big endian by @mlafeldt in https://github.com/duckdb/duckdb/pull/23127 * Allow array type for array_to_json by @dentiny in https://github.com/duckdb/duckdb/pull/23129 * Fix json argument order affecting result by @DinosL in https://github.com/duckdb/duckdb/pull/23144 * Fix #21931: avoid trying to bind an expression that doesn't exist in `UNPIVOT` by @Mytherin in https://github.com/duckdb/duckdb/pull/23156 * Fix RowGroup assertion by @ywelsch in https://github.com/duckdb/duckdb/pull/23155 * Upgrade ducklake for release by @pdet in https://github.com/duckdb/duckdb/pull/23182 * Update Postgres, SQLite and ODBC in 1.5 by @staticlibs in https://github.com/duckdb/duckdb/pull/23172 * Fix native geometry parquet stats pruning and add `OPERATOR_ROW_GROUPS_SCANNED` to parquet reader by @Maxxen in https://github.com/duckdb/duckdb/pull/23140 * Expose bytes to parquet variant function by @Tmonster in https://github.com/duckdb/duckdb/pull/23057 * Minor fixes by @DinosL in https://github.com/duckdb/duckdb/pull/23162 * Bump aws extension by @ccfelius in https://github.com/duckdb/duckdb/pull/23170 * Merge v1.4-andium into v1.5-variegata by @carlopi in https://github.com/duckdb/duckdb/pull/23171 * Backport to variegata some isolated fixes by @carlopi in https://github.com/duckdb/duckdb/pull/23175 * Fix: guard againt null row group reorder stats by @DinosL in https://github.com/duckdb/duckdb/pull/23189 * bump iceberg by @Tmonster in https://github.com/duckdb/duckdb/pull/23192 * Replace ARTConflictType::TRANSACTION with fatal exception by @artjomPlaunov in https://github.com/duckdb/duckdb/pull/23193 * [Dev] Fix variant shredding analysis logic discrepancy with shredded writing by @Tishj in https://github.com/duckdb/duckdb/pull/23194 * Initialize all `BaseStatistics` members and zero `stats_union` by @krlmlr in https://github.com/duckdb/duckdb/pull/23202 * Initialize `TransactionContext::invalidation_policy` and `auto_rollback` by @krlmlr in https://github.com/duckdb/duckdb/pull/23203 * Fix selection vector use in Arrow extension callbacks by @evertlammerts in https://github.com/duckdb/duckdb/pull/23190 * Add hardening to many DuckDB/Parquet decompression/deserializing paths by @Tishj in https://github.com/duckdb/duckdb/pull/23100 * Out-of-line `SelectionData` destructor to silence g++-16 `-Warray-bounds` by @krlmlr in https://github.com/duckdb/duckdb/pull/23204 * Bump quack to 9ac6521f712812cc6f2e58815ef0a6c85c5e06e0 by @carlopi in https://github.com/duckdb/duckdb/pull/23178 * Fix crash when storage path is not set by @guillesd in https://github.com/duckdb/duckdb/pull/23174 * Zero the inlined buffer in string_t's length-only constructor by @krlmlr in https://github.com/duckdb/duckdb/pull/23201 * [Dev] Fix "environment variable already defined" error in sqllogictest when `test_env` is used by @Tishj in https://github.com/duckdb/duckdb/pull/21305 * parquet: initialize `ParquetReader::rows_read` by @krlmlr in https://github.com/duckdb/duckdb/pull/23205 * Bump quack no patches by @carlopi in https://github.com/duckdb/duckdb/pull/23210 * bump delta & unity for 1.5.4 by @benfleis in https://github.com/duckdb/duckdb/pull/23212 * Bump DuckLake by @pdet in https://github.com/duckdb/duckdb/pull/23226 * Bump httpfs for variegata by @carlopi in https://github.com/duckdb/duckdb/pull/23215 * Hopefully fix timeouts on `v1.5-variegata` by @lnkuiper in https://github.com/duckdb/duckdb/pull/23224 * Variant fixes by @DinosL in https://github.com/duckdb/duckdb/pull/23195 * Fix VARIANT shredding, avoid including empty object keys by @Tishj in https://github.com/duckdb/duckdb/pull/23213 * Remove checked_array_iterator from fmt dep (1.5) by @staticlibs in https://github.com/duckdb/duckdb/pull/23238 * [Dev] Add missing `ORDER BY ALL` or `rowsort` to merge into tests by @Tishj in https://github.com/duckdb/duckdb/pull/23258 * Cherry picks on variegata by @carlopi in https://github.com/duckdb/duckdb/pull/23262 * Bump vortex to 275ac230e1d9afd08926b6989ec2467f92fae6e3 by @carlopi in https://github.com/duckdb/duckdb/pull/23263 * Add explicit `-dark-mode` and `-light-mode` options to the CLI, and improve terminal background color detection by @Mytherin in https://github.com/duckdb/duckdb/pull/23246 * Fix gzip compression write overflow by @dentiny in https://github.com/duckdb/duckdb/pull/23232 * Bump iceberg for v1.5.4 by @Tmonster in https://github.com/duckdb/duckdb/pull/23225 * Trim the system heap in the allocator flush path on jemalloc builds by @JelteF in https://github.com/duckdb/duckdb/pull/23253 * Backport loop in sleep_ms by @DinosL in https://github.com/duckdb/duckdb/pull/23245 * Fix NULL propagation for date parts of infinite dates by @DinosL in https://github.com/duckdb/duckdb/pull/23254 * [Dev][Parquet][VARIANT] Fix problem with re-use of cached transform data for differently shredded files by @Tishj in https://github.com/duckdb/duckdb/pull/23234 * bump iceberg by @Tmonster in https://github.com/duckdb/duckdb/pull/23277 * Fix more geom stats by @Maxxen in https://github.com/duckdb/duckdb/pull/23295 **Full Changelog**: https://github.com/duckdb/duckdb/compare/v1.5.3...v1.5.4