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