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
- Use DB serialization compatibility for json_serialize_sql by @kryonix in https://github.com/duckdb/duckdb/pull/22004
- DuckLake Bump by @pdet in https://github.com/duckdb/duckdb/pull/22014
- fix: resolve current catalog in ADBC Ingest to avoid temp table shadowing by @eitsupi in https://github.com/duckdb/duckdb/pull/22020
- Fix TIMESTAMPFORMAT being ignored for TIMESTAMPTZ columns in copy to json by @DinosL in https://github.com/duckdb/duckdb/pull/21992
- Provide BWC support for join filter pushdowns by @ywelsch in https://github.com/duckdb/duckdb/pull/22029
- Add iceberg copy function autoload by @NiclasHaderer in https://github.com/duckdb/duckdb/pull/22037
- Fix DISABLE_EXTENSION_LOAD by @mlafeldt in https://github.com/duckdb/duckdb/pull/22019
- Fix
INSERT OR REPLACE BY NAMEregression by excluding conflict columns fromSETlist by @DinosL in https://github.com/duckdb/duckdb/pull/22049 - Git-ignore generated extension loader by @mlafeldt in https://github.com/duckdb/duckdb/pull/22056
- Fix constant struct args in lateral table in-out functions by @AlfieJones in https://github.com/duckdb/duckdb/pull/21827
- Avoid handling Ctrl+C during shutdown (state might be already gone) by @carlopi in https://github.com/duckdb/duckdb/pull/22059
- Add
DISABLE_BUILTIN_HTTPLIBoption by @carlopi in https://github.com/duckdb/duckdb/pull/22054 - Set
queryfield for statements inALTER TABLE ... ADD COLUMN ... DEFAULT ...workaround by @yan-alex in https://github.com/duckdb/duckdb/pull/22057 - Coorporative tasks might lead to busy spinning in
TaskExecutor::WorkOnTasksby @NiclasHaderer in https://github.com/duckdb/duckdb/pull/22092 - Row group append by @evertlammerts in https://github.com/duckdb/duckdb/pull/22060
- Fix empty parquet child schema by @dentiny in https://github.com/duckdb/duckdb/pull/22105
- Issue [#22096]: TopN Window Casts by @hawkfish in https://github.com/duckdb/duckdb/pull/22098
- Add support for reading
VARIANTusing C API by @Dtenwolde in https://github.com/duckdb/duckdb/pull/22065 - Bump Julia to v1.5.2 by @taniabogatsch in https://github.com/duckdb/duckdb/pull/22121
- fix commit iteration offset bug + relax RemoveFromIndexes assertion by @artjomPlaunov in https://github.com/duckdb/duckdb/pull/22094
- Internal [#8812]: From TIMESTAMPTZ Casts by @hawkfish in https://github.com/duckdb/duckdb/pull/22000
- Only build plan_serializer when building the main DuckDB library by @rustyconover in https://github.com/duckdb/duckdb/pull/22100
- Fix Row Group Pruner Distinct Bug by @d-justen in https://github.com/duckdb/duckdb/pull/22132
- Correctly skip preprocessing PIVOT MultiStatements by @yan-alex in https://github.com/duckdb/duckdb/pull/22141
- fix(adbc): report the table name if the table doesn't exist when appending by @eitsupi in https://github.com/duckdb/duckdb/pull/22146
- [v1.5 patch] Attempt to fix cache read by @dentiny in https://github.com/duckdb/duckdb/pull/22126
- Also execute auto-rollback on CLI ClientContext::Query() query by @yan-alex in https://github.com/duckdb/duckdb/pull/22159
- Fix window self join optimizer by @kryonix in https://github.com/duckdb/duckdb/pull/22164
- Account for ROW_GROUP_SIZE when deciding whether to append to an existing row group by @evertlammerts in https://github.com/duckdb/duckdb/pull/22109
- Use the latest storage version for temp storage by @Mytherin in https://github.com/duckdb/duckdb/pull/22169
- Fix: Add pg_catalog.pg_collation compatibility view for SQLAlchemy 2.0.45 reflection by @alonfaraj in https://github.com/duckdb/duckdb/pull/22160
- Fix CSV escape by @dentiny in https://github.com/duckdb/duckdb/pull/22176
- Fix union_by_name remap for non-nested parquet columns by @feichai0017 in https://github.com/duckdb/duckdb/pull/22177
- User-facing
enable_caching_operatorssetting by @lnkuiper in https://github.com/duckdb/duckdb/pull/22191 - Fix bignum sum Combine to correctly take over memory ownership of state by @Mytherin in https://github.com/duckdb/duckdb/pull/22209
- CompressedFile::Close -> calls Close on its child_handle by @benfleis in https://github.com/duckdb/duckdb/pull/22149
- ISSUE-22061: Fix JSON shell output: emit BOOLEAN as true/false, not strings by @herbenderbler in https://github.com/duckdb/duckdb/pull/22073
- [Bugfix] Reset pg_err_pos in pg_parser_init to prevent stale error position leaking by @p1p1bear in https://github.com/duckdb/duckdb/pull/22239
- Bump httpfs to 3139e40a by @carlopi in https://github.com/duckdb/duckdb/pull/22248
- Correctly use new row group when checkpointing, and avoid incorrectly re-using metadata when targeting older storage versions and row ids have changed by @Mytherin in https://github.com/duckdb/duckdb/pull/22253
- Fix: release ParquetReader when a file is marked SKIPPED in multi-file scan by @J-Meyers in https://github.com/duckdb/duckdb/pull/22261
- Fix UTC±NN00 cannot be parsed in SQL by @tianjq16 in https://github.com/duckdb/duckdb/pull/22244
- Defer Bloom Filter Pushdown until it's done by @lnkuiper in https://github.com/duckdb/duckdb/pull/22218
- [v1.5] Backport ADBC memleak fix on error path by @dentiny in https://github.com/duckdb/duckdb/pull/22216
- Allow package builds to choose linked extensions by @mlafeldt in https://github.com/duckdb/duckdb/pull/22305
- Fix UTC+HHMM time zone was parsed incorrectly by @tianjq16 in https://github.com/duckdb/duckdb/pull/22297
- Bump httpfs by @carlopi in https://github.com/duckdb/duckdb/pull/22312
- Exception format: accept string literals by @carlopi in https://github.com/duckdb/duckdb/pull/22314
- Skip schema analysis even if no shredding for rowgroup by @rgernhardt in https://github.com/duckdb/duckdb/pull/21937
- Use batch limit for table scans with filters by @Mytherin in https://github.com/duckdb/duckdb/pull/22315
- Also redacting bearer token for HTTP secrets by @hannes in https://github.com/duckdb/duckdb/pull/22323
- First initialize system, then load extensions (to peek at file to be opened) by @carlopi in https://github.com/duckdb/duckdb/pull/22341
- Node Handle Scoping fix by @artjomPlaunov in https://github.com/duckdb/duckdb/pull/22344
- Enable windows_amd64 for lance extension by @carlopi in https://github.com/duckdb/duckdb/pull/22367
- Internal [#9003]: TIMETZ Parsing Limit by @hawkfish in https://github.com/duckdb/duckdb/pull/22378
- Downcasting decimal fix incorrect out of range error by @Dtenwolde in https://github.com/duckdb/duckdb/pull/22386
- GetLocalFileSystem improvements by @carlopi in https://github.com/duckdb/duckdb/pull/21983
- Fix double decrement of evicted_data_per_tag in .block read-back by @krleonid in https://github.com/duckdb/duckdb/pull/22394
- RowGroup Operator metrics: sequentially scanned row groups + total row groups + cumulative counterparts by @artjomPlaunov in https://github.com/duckdb/duckdb/pull/22339
- PostgreSQL compatability: in
pg_catalog.pg_databasesimulate columns datallowconn, datistemplate by @muayyad-alsadi in https://github.com/duckdb/duckdb/pull/22302 - Fix eviction size metrics report by @dentiny in https://github.com/duckdb/duckdb/pull/22452
- Fix enable_logging() silently resetting logging_storage by @guillesd in https://github.com/duckdb/duckdb/pull/22475
- Avoid 3 instances of idx_t - idx_t > 0, and avoid unnecessary check on zLine by @carlopi in https://github.com/duckdb/duckdb/pull/22518
- Fix RESET my_global_extension_setting to actually be GLOBAL by @carlopi in https://github.com/duckdb/duckdb/pull/22520
- Fix BlockAllocator invalid memory access by @dentiny in https://github.com/duckdb/duckdb/pull/22503
- Patch httplib by making ThreadPool constructor more solid on pthread_create failures by @carlopi in https://github.com/duckdb/duckdb/pull/22516
- Fix duck fuzz [#4430] by @dentiny in https://github.com/duckdb/duckdb/pull/22435
- Test runner: avoid running clean-up routine if there is no database to run it in by @Mytherin in https://github.com/duckdb/duckdb/pull/22540
- Fix bare numeric interval parsing at end of string on v1.5 by @M1llerF in https://github.com/duckdb/duckdb/pull/22534
- Fix parquet metadata cache validation by @dentiny in https://github.com/duckdb/duckdb/pull/22547
- ExtensionInstall: Remove use of IsHTTP to IsRemoteFile by @carlopi in https://github.com/duckdb/duckdb/pull/21900
- Fix variant write small decimal by @dentiny in https://github.com/duckdb/duckdb/pull/22544
- Move http_proxy setting to global setting, and use GetEnvVariable('HTTP_PROXY') as default by @carlopi in https://github.com/duckdb/duckdb/pull/22541
- Bump httpfs and remove patches by @carlopi in https://github.com/duckdb/duckdb/pull/22556
- Bump Postgres, MySQL and ODBC by @staticlibs in https://github.com/duckdb/duckdb/pull/22579
- Bump avro, azure, delta, ducklake, spatial, unity_catalog and vortex by @carlopi in https://github.com/duckdb/duckdb/pull/22554
- Fix variant selection vector index by @dentiny in https://github.com/duckdb/duckdb/pull/22573
- Fix for SIGABRT in setting size on zero-capacity vector by @ccfelius in https://github.com/duckdb/duckdb/pull/22571
- Fix incorrect profiling results when using
LIMITby @sebastiaan-dev in https://github.com/duckdb/duckdb/pull/22561 - Move Jemalloc into core by @Maxxen in https://github.com/duckdb/duckdb/pull/22558
- Allow json ts format variation across columns - issue 22103 by @benfleis in https://github.com/duckdb/duckdb/pull/22559
- Limit parallel linker jobs to avoid out-of-memory errors by @smvv in https://github.com/duckdb/duckdb/pull/22588
- ARTOperator::Delete return false if rowid not found in nested ART leaf by @artjomPlaunov in https://github.com/duckdb/duckdb/pull/22591
- Enable/disable jemalloc linking through BUILD/SKIP_EXTENSIONS by @Maxxen in https://github.com/duckdb/duckdb/pull/22594
- Bump AWS extension by @staticlibs in https://github.com/duckdb/duckdb/pull/22600
- bump spatial again by @Maxxen in https://github.com/duckdb/duckdb/pull/22602
- Jemalloc is not an extension anymore by @carlopi in https://github.com/duckdb/duckdb/pull/22603
- bump iceberg by @Tmonster in https://github.com/duckdb/duckdb/pull/22608
- CUMULATIVE_VACUUM_TIME metric by @artjomPlaunov in https://github.com/duckdb/duckdb/pull/22425
- parser_tools is apparently now a dependency for postgres by @carlopi in https://github.com/duckdb/duckdb/pull/22619
- Bump DuckLake for release by @pdet in https://github.com/duckdb/duckdb/pull/22651
- Bump lance to [533e0e] by @carlopi in https://github.com/duckdb/duckdb/pull/22640
- Add storage informations for v1.5.3 by @carlopi in https://github.com/duckdb/duckdb/pull/22638
- Add quack autoloading by @carlopi in https://github.com/duckdb/duckdb/pull/22631
- Add
quackextension by @carlopi in https://github.com/duckdb/duckdb/pull/22614 - bump aws extension by @samansmink in https://github.com/duckdb/duckdb/pull/22623
- bump avro+iceberg+vcpkg-duckdb-ports by @Tishj in https://github.com/duckdb/duckdb/pull/22621
- optimizer: don't return truncated VARCHAR MIN/MAX from statistics by @nahomar in https://github.com/duckdb/duckdb/pull/22538
- Bump excel / remove patch by @carlopi in https://github.com/duckdb/duckdb/pull/22633
- Bump sqlsmith, remove patch by @carlopi in https://github.com/duckdb/duckdb/pull/22622
- Fix free block for temporary file manageer by @dentiny in https://github.com/duckdb/duckdb/pull/22616
- Add dummy cmake target for jemalloc by @evertlammerts in https://github.com/duckdb/duckdb/pull/22632
- Bump quack by @carlopi in https://github.com/duckdb/duckdb/pull/22659
- Fix invalid access for file row number by @dentiny in https://github.com/duckdb/duckdb/pull/22662
- Fix enum type write to parquet by @dentiny in https://github.com/duckdb/duckdb/pull/22677
- Add
write_buffer_row_group_memory_limitsetting which controls when to flush row groups based on memory instead of only based on row group count by @Mytherin in https://github.com/duckdb/duckdb/pull/22666 - Fix max file row number by @dentiny in https://github.com/duckdb/duckdb/pull/22688
- Fix new jemalloc plumbing by @mlafeldt in https://github.com/duckdb/duckdb/pull/22628
- Bump DuckLake by @pdet in https://github.com/duckdb/duckdb/pull/22698
- Fix timer lifetime/timing issues by @taniabogatsch in https://github.com/duckdb/duckdb/pull/22697
- Enable jemalloc heap profiling with the libgcc unwinder by @mlafeldt in https://github.com/duckdb/duckdb/pull/22630
- Fix jemalloc thread flush threshold check by @xuke-hat in https://github.com/duckdb/duckdb/pull/22670
- Make several storage internals public by @samansmink in https://github.com/duckdb/duckdb/pull/22718
- Fix GCC jemalloc symbol leakage CI failure by @lnkuiper in https://github.com/duckdb/duckdb/pull/22729
- Fix iterator invalidation in ConnectionManager::GetConnectionList by @bleskes in https://github.com/duckdb/duckdb/pull/22719
- Bump quack, fixes quack_serve on wasm by @carlopi in https://github.com/duckdb/duckdb/pull/22722
- bump iceberg again by @Tmonster in https://github.com/duckdb/duckdb/pull/22723
- fix: list_zip SEGFAULT with empty / NULL argument by @carlopi in https://github.com/duckdb/duckdb/pull/22726
- Fix .sanitizer-thread-suppressions.txt jemalloc ref by @carlopi in https://github.com/duckdb/duckdb/pull/22736
- Revert "Enable jemalloc heap profiling with the libgcc unwinder" by @carlopi in https://github.com/duckdb/duckdb/pull/22740
- RowGroupPruner: treat UNSET LIMIT as unbounded by @ColtenOuO in https://github.com/duckdb/duckdb/pull/22744
- Return an error if a negative number is passed to the factorial function by @DinosL in https://github.com/duckdb/duckdb/pull/22731
Full Changelog: https://github.com/duckdb/duckdb/compare/v1.5.2...v1.5.3