Skip to content

Releases: duckdb/duckdb

DuckDB v1.5.5 Bugfix Release

Choose a tag to compare

@lnkuiper lnkuiper released this 22 Jul 10:51
d8cdaa3

This is a bug fix release for various issues discovered after we released v1.5.4.

What's Changed

Full Changelog: v1.5.4...v1.5.5

DuckDB v1.5.4 Bugfix Release

Choose a tag to compare

@lnkuiper lnkuiper released this 17 Jun 10:45
08e34c4

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

Read more

DuckDB v1.4.5 Bugfix Release

Choose a tag to compare

@lnkuiper lnkuiper released this 17 Jun 10:42
f31be57

This is a bug fix release for various issues discovered after we released v1.4.4.

Please also refer to the announcement blog post: https://duckdb.org/2026/06/17/announcing-duckdb-145.html

What's Changed

Full Changelog: v1.4.4...v1.4.5

DuckDB v1.5.3 Bugfix Release

Choose a tag to compare

@lnkuiper lnkuiper released this 20 May 11:50
14eca11

This is a bugfix release for various issues discovered after we released v1.5.2.

Please also refer to the announcement blog post: https://duckdb.org/2026/05/20/announcing-duckdb-153

What's Changed

Read more

DuckDB v1.5.2 Bugfix Release

Choose a tag to compare

@pdet pdet released this 13 Apr 10:46
8a58519

This is a bug fix release for various issues discovered after we released v1.5.1

What's Changed

Read more

DuckDB v1.5.1 Bugfix Release

Choose a tag to compare

@lnkuiper lnkuiper released this 23 Mar 12:10
7dbb2e6

This is a bug fix release for various issues discovered after we released v1.5.0.

Please also refer to the announcement blog post: https://duckdb.org/2026/03/23/announcing-duckdb-151

What's Changed

Read more

DuckDB v1.5.0 "Variegata"

Choose a tag to compare

@lnkuiper lnkuiper released this 09 Mar 12:40
3a3967a

This release of DuckDB is named "Variegata" after the paradise shelduck Tadorna Variegata, also known as the paradise duck, a species of Shelduck (a group of goose-like ducks), endemic to New Zealand.

Please also refer to the announcement blog post: https://duckdb.org/2026/03/09/announcing-duckdb-150.html

What's Changed

  • Optimize LAST aggregate to iterate backward within batches by @xe-nvdk
  • Allow user type with schema defined to have array bounds by @Dtenwolde in #18342
  • Remove case-insensitive character from grammar files by @Dtenwolde in #18948
  • Fix query() function error message for PIVOT statements without explicit IN clauses by @shivampr in #18900
  • Merge v1.4-andium into main by @c-herrewijn in #18952
  • [Dev] Some light code cleanup in RemoveUnusedColumns::VisitOperator by @Tishj in #18964
  • Support renaming a database - ALTER DATABASE <> RENAME TO <> by @abramk in #18970
  • V1.4 andium by @Mytherin in #18982
  • Fix field id uniqueness for alter database by @abramk in #18988
  • Fix unused variable warnings by @mlafeldt in #18913
  • Avoid adding a TupleDataChunkPart with only one row. by @lance5401 in #18904
  • Tiny fix for ColumnDataAllocator::ColumnDataAllocator by @baolinhuang in #18990
  • Fixes for ALTER DATABASE - use serialization framework, and fix stringification of identifiers by @Mytherin in #18994
  • Expected errors 2053 by @hmeriann in #18960
  • Fix union semantics in recursive CTEs by @cryoEncryp in #19017
  • Multifile parquet_metadata and friends parallelism by @J-Meyers in #18854
  • [Optimize] use StorageLock for CompressionFunction by @baolinhuang in #19028
  • PEG grammar updates by @Dtenwolde in #19031
  • Rework Compression Function registration to avoid grabbing locks by @Mytherin in #19045
  • Merge v1.4 into main by @Mytherin in #19048
  • [C-API] default to adding overload on conflict when registering functions by @Maxxen in #19036
  • Destroy row groups in parallel by @Mytherin in #19053
  • Switching core extension upload to dedicated credentials by @hannes in #19060
  • CI: Increase stale bot timeout to 1 year by @szarnyasg in #19000
  • Revert "set default value of MAIN_BRANCH_VERSIONING to false" by @c-herrewijn in #19057
  • Fix extension load by @dentiny in #19079
  • Change core extensions bucket name by @hannes in #19082
  • Merge v1.4 into main by @Mytherin in #19098
  • Allow directory override for extension build by @Mytherin in #19110
  • Skip serialization of row_start in DataPointer when targeting latest storage by @Mytherin in #19111
  • [C-API] Initial support for accessing file system by @Maxxen in #19086
  • Rework UNION (ALL) operators (SetOperationNode/LogicalSetOperation/PhysicalUnion) to have multiple children by @Mytherin in #19109
  • pushdown filter when doing cross or lateral join with unnest by @DinosL in #19085
  • Fix unholy interaction between CREATE VIEW and CTE definitions by @kryonix in #19116
  • Add support for read_duckdb - a function that allows reading / globbing DuckDB database files by @Mytherin in #19108
  • Fix typo by @szarnyasg in #19130
  • fix: check tree depth and flatten dep join for custom operator extension by @Wal8800 in #19094
  • During optimistic writing, gather N row groups and write them at the same time column-at-a-time by @Mytherin in #19118
  • Remove unused code by @szarnyasg in #19134
  • Add support for late materialization and filter pushdown to read_duckdb by @Mytherin in #19145
  • Move storage block prefetching to an option instead of baking in testing during ALTERNATIVE_VERIFY + add a test config for this option by @Mytherin in #19146
  • Introduce parser_override_function_t by @Dtenwolde in #19126
  • Perform deduplication based on join_keys when building ht by @tianjq16 in #19097
  • Print help to stdout by @staticlibs in #19170
  • Validate filesystem registration by @dentiny in #19168
  • Fix missing replacement scan code for CTEs by @kryonix in #19159
  • Correctly set row start in WAL replay by @Mytherin in #19192
  • Use a PartialBlockManager per column, instead of sharing one over the entire row group by @Mytherin in #19194
  • Internal #5380: AsOf Join Pipeline by @hawkfish in #19169
  • Cross and lateral join pushdown with unnest or json - update by @DinosL in #19152
  • Missing error messages for test cases by @hmeriann in #19129
  • [Profiling] Move EXTRA_INFO into the metrics map by @maiadegraaf in #19124
  • Common Subplan Elimination by @lnkuiper in #19080
  • GEOMETRY Rework: Part 1 - Logical Type by @Maxxen in #19136
  • [Parquet] Implement (unshredded) VARIANT support for COPY TO parquet by @Tishj in #19125
  • Add more missing error messages to test cases by @hmeriann in #19210
  • [CI] - Fix failing Extension updating test NightlyTests job by cleaning up some space on the runner by @hmeriann in #19214
  • Inconsistent semicolon handling by @Dtenwolde in #19199
  • Internal #5383: Range Join Sorting by @hawkfish in #19174
  • [Profiling] Add QueryContext to more functions, for Reads by @maiadegraaf in #18726
  • Merge v1.4-andium into main by @Maxxen in #19225
  • [shell] Fix tilde parsing for .once statement by @dentiny in #19254
  • Partially remove BoundQueryNode - have Bind directly emit a BoundStatement by @Mytherin in #19289
  • Binder clean-up by @Mytherin in #19293
  • test: add test for CREATE TABLE with my_schema.my_enum[] by @NickCrews in #19296
  • Fix uncaught exception in test_empty_profiling_settings.test by @maiadegraaf in #19286
  • GEOMETRY Rework: Part 2 - Statistics by @Maxxen in #19203
  • Internal #5380: AsOf Sorting Conversion by @hawkfish in #19278
  • Add option for opt-in to parser override by @Dtenwolde in #19181
  • Remove BoundTableRef and make binding a TableRef directly return a BoundStatement by @Mytherin in #19294
  • Rewrite Grouped Top-N Window Functions To Aggregations by @d-justen in #19280
  • Perform optimistic reads while filling gaps in CachingFileSystem by @carlopi in #19122
  • Issue #19027: AsOf Join Predicates by @hawkfish in #19316
  • Enable experimental metadata re-use by default by @Mytherin in #19317
  • Binder: BoundQueryNode cleanup by @Mytherin in #19322
  • Remove old sort code by @lnkuiper in #19321
  • [Parquet] Implement shredded VARIANT support for COPY TO parquet by @Tishj in #19219
  • Merge andium into main by @Tishj in #19325
  • [C API] Expose column count and type for table description by @taniabogatsch in #19334
  • Relocate the python sqllogic code to the dedicated repository by @Tishj in #19340
  • Binder: Rework the way set operations work so that we can use the standard binding flow by @Mytherin in #19342
  • Rework CTE binding: remove CTENode, and bind CommonTableExpressionMap directly instead by @Mytherin in #19351
  • Avoid keeping shared ptr to ClientContext in QueryContext by @Mytherin in #19353
  • Internal #6190: AsOf Threading by @hawkfish in #19328
  • [Indexes] Buffer Managed Indexes Part 4: Segment Handles f...
Read more

v1.4.4 Bugfix Release

Choose a tag to compare

@lnkuiper lnkuiper released this 26 Jan 12:08
6ddac80

This is a bug fix release for various issues discovered after we released 1.4.3. Please excuse the erroneous release earlier.

What's Changed

New Contributors

Full Changelog: v1.4.3...v1.4.4

v1.4.3 Bugfix Release

Choose a tag to compare

@lnkuiper lnkuiper released this 09 Dec 10:20
d1dc88f

This is a bug fix release for various issues discovered after we released 1.4.2.

What's Changed

Full Changelog: v1.4.2...v1.4.3

v1.4.2 Bugfix Release

Choose a tag to compare

@hannes hannes released this 12 Nov 13:04
68d7555

This is a bug fix release for various issues discovered after we released 1.4.1. PR #19716 addresses the issues raised in CVE-2025-64429. Users of the DuckDB encryption feature are encouraged to update.

What's Changed

Read more