Skip to content

Releases: duckdb/duckdb

DuckDB v1.5.2 Bugfix Release

13 Apr 10:46
8a58519

Choose a tag to compare

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

23 Mar 12:10
7dbb2e6

Choose a tag to compare

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"

09 Mar 12:40
3a3967a

Choose a tag to compare

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

26 Jan 12:08
6ddac80

Choose a tag to compare

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

09 Dec 10:20
d1dc88f

Choose a tag to compare

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

12 Nov 13:04
68d7555

Choose a tag to compare

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

v1.4.1 Bugfix Release

07 Oct 10:29
b390a7c

Choose a tag to compare

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

What's Changed

Full Changelog: v1.4.0...v1.4.1

DuckDB 1.4.0 "Andium"

16 Sep 10:17
b8a06e4

Choose a tag to compare

This release of DuckDB is named "Andium" after Anas Andium, a species of duck that lives in the Andes mountains in South America.

Please also refer to the announcement blog post: https://duckdb.org/2025/09/16/announcing-duckdb-140.html

What's Changed

Read more

v1.3.2 Bugfix Release

08 Jul 10:39
0b83e5d

Choose a tag to compare

This is a bug fix release for various issues discovered after we released 1.3.1. There are no new major features, just bug fixes. Database files created by DuckDB versions all the way back to v0.9 can be read by this version.

What's Changed

Full Changelog: v1.3.1...v1.3.2

v1.3.1 Bugfix Release

16 Jun 13:54
2063dda

Choose a tag to compare

This is a bug fix release for various issues discovered after we released 1.3.0 "Ossivalis". There are no new major features, just bug fixes. Database files created by DuckDB versions all the way back to v0.9 can be read by this version.

What's Changed

Read more