Impact Score: 5/10
DuckDB 1.3.0 "Ossivalis"
Source available β automated, not human-reviewed
Component: duckdb Β· Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
β‘ Executive Summary (TL;DR)
DuckDB v1.3.0. Source highlight: This release of DuckDB is named "Ossivalis" after Bucephala Ossivalis, an ancestor of the Goldeneye duck that lived Millions of years ago.
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)
- Benchmark runner: catch and log errors + add support for `retry load N` syntax
- [no-op] Add documentation for filesystem read behavior
- Feature #16044: TimeZone Offset Seconds
- [Julia] Add support for named params in prepared statements
- Add uniq_ptr_cast for interpreted benchmark.
- Add StackTraces to FatalExceptions
β‘ Performance & Enhancements (6)
- Improve performance of `UNNEST/UNPIVOT` by using selection vectors to unnest multiple lists at once
- Improve Parquet writer performance
- Some more Parquet writer performance improvements
- Parquet reader performance
- Issue #16250: Window Range Performance
- Improve error message on failure to install local extension
π§ Bug Fixes & Patches (6)
- Fix #15466 Transform LIMIT or OFFSET first based on order specified in prepared statement
- [Dev] Fix output (long lines > 333 characters) getting truncated in shell
- [Dev] Fix issue related to unpacked columns and the NOT operator
- Fix #16163: COLUMNS should not treat identifiers as strings
- [fix] Use bigobj when building with MSVC
- Fix Python 3 executable name on Windows
π View Raw Release Notes (Original Developer Log)
This release of DuckDB is named "Ossivalis" after Bucephala Ossivalis, an ancestor of the [Goldeneye duck](https://en.wikipedia.org/wiki/Common_goldeneye) that lived Millions of years ago.
Please also refer to the announcement blog post: https://duckdb.org/2025/05/21/announcing-duckdb-130
## What's Changed
* V1.2 histrionicus by @Mytherin in https://github.com/duckdb/duckdb/pull/16070
* V1.2 histrionicus by @Mytherin in https://github.com/duckdb/duckdb/pull/16072
* unittests: clear test directory after every test by @Mytherin in https://github.com/duckdb/duckdb/pull/16053
* Benchmark runner: catch and log errors + add support for `retry load N` syntax by @Mytherin in https://github.com/duckdb/duckdb/pull/16054
* Throw an error when unsupported commands are used in concurrentloop by @Mytherin in https://github.com/duckdb/duckdb/pull/16009
* Remove extension definitions to prevent re-compilation of the entire system on commit by @Mytherin in https://github.com/duckdb/duckdb/pull/15955
* Display schema information of currently selected database only by @ashwaniYDV in https://github.com/duckdb/duckdb/pull/15815
* Issue #14366: Average Intervals by @hawkfish in https://github.com/duckdb/duckdb/pull/15864
* Internal #2176: Temporal AVG by @hawkfish in https://github.com/duckdb/duckdb/pull/15661
* discussions #15981: remove confusing comment in "duckdb/tools/shell/shell.cpp" by @komainu8 in https://github.com/duckdb/duckdb/pull/15984
* Fix #15466 Transform LIMIT or OFFSET first based on order specified in prepared statement by @ashwaniYDV in https://github.com/duckdb/duckdb/pull/15484
* Bitpacking mode info by @arjenpdevries in https://github.com/duckdb/duckdb/pull/15623
* Sniff Timestamp_TZ from CSV FIles by @pdet in https://github.com/duckdb/duckdb/pull/15730
* [no-op] Add documentation for filesystem read behavior by @dentiny in https://github.com/duckdb/duckdb/pull/15937
* Accept "Auto" as date/timestamp format by @pdet in https://github.com/duckdb/duckdb/pull/15808
* Parquet Reader Cleanup: Move ColumnReaders to separate files by @Mytherin in https://github.com/duckdb/duckdb/pull/16092
* Parquet Reader: Move decoding logic into separate Decoder classes by @Mytherin in https://github.com/duckdb/duckdb/pull/16100
* BundleStaticLibs to be also triggered by InvokeCI by @carlopi in https://github.com/duckdb/duckdb/pull/16107
* Parquet Reader: Split DeltaLengthByteArray decoder from DeltaByteArray, and read the strings in a streaming manner by @Mytherin in https://github.com/duckdb/duckdb/pull/16105
* Parquet Dictionary reader: set NULL values as the last value in the dictionary by @Mytherin in https://github.com/duckdb/duckdb/pull/16106
* Parquet Reader: Share ResizeableBuffers across decoders, and unify Plain/PlainReference by @Mytherin in https://github.com/duckdb/duckdb/pull/16113
* Using GitHub ARM runners for Linux CLI builds by @hannes in https://github.com/duckdb/duckdb/pull/16119
* Parquet Reader: Implement dedicated Skip method by @Mytherin in https://github.com/duckdb/duckdb/pull/16117
* Use ColumnSegment::FilterSelection and SelectionVector for filtering in Parquet scans by @Mytherin in https://github.com/duckdb/duckdb/pull/16126
* [Dev] Fix output (long lines > 333 characters) getting truncated in shell by @Tishj in https://github.com/duckdb/duckdb/pull/16128
* Adaptive table filter: initialize filter order based on heuristics by @Mytherin in https://github.com/duckdb/duckdb/pull/16127
* Feature #16044: TimeZone Offset Seconds by @hawkfish in https://github.com/duckdb/duckdb/pull/16048
* ATTACH OR REPLACE database to allow swapping of new data. by @xevix in https://github.com/duckdb/duckdb/pull/15355
* [Dev] Remove `upsert_conflict_in_different_chunk.test` by @Tishj in https://github.com/duckdb/duckdb/pull/15980
* [Dev] Fix issue related to unpacked columns and the NOT operator by @Tishj in https://github.com/duckdb/duckdb/pull/15534
* [Julia] Add support for named params in prepared statements by @tqml in https://github.com/duckdb/duckdb/pull/15621
* Use Adaptive Filters in the Parquet reader by @Mytherin in https://github.com/duckdb/duckdb/pull/16133
* Parquet reader: push table filters directly into dictionaries by @Mytherin in https://github.com/duckdb/duckdb/pull/16136
* Parquet reader: Plain templates - make CHECKED a template parameter, and use memcpy/bulk skip when reading/skipping without defines by @Mytherin in https://github.com/duckdb/duckdb/pull/16141
* Parquet reader: only set invalid entry in the dictionary when the column has defines by @Mytherin in https://github.com/duckdb/duckdb/pull/16144
* Add uniq_ptr_cast for interpreted benchmark. by @Tmonster in https://github.com/duckdb/duckdb/pull/16151
* Hopefully fixing ci runs by @hannes in https://github.com/duckdb/duckdb/pull/16150
* Removed the last CI job that used the Ubuntu 18 setup by @hannes in https://github.com/duckdb/duckdb/pull/16155
* Parquet Reader: Split `CreateReader` into two separate stages - `ParseSchema` and `CreateReader` by @Mytherin in https://github.com/duckdb/duckdb/pull/16161
* Have CSV Parellel tests on CI again by @pdet in https://github.com/duckdb/duckdb/pull/16164
* [Python][Dev] Bump the minimum pybind11 version from `2.6` to `2.9` by @Tishj in https://github.com/duckdb/duckdb/pull/16159
* Add StackTraces to FatalExceptions by @NiclasHaderer in https://github.com/duckdb/duckdb/pull/16158
* Rework invoke by @carlopi in https://github.com/duckdb/duckdb/pull/16108
* Adds pre-optimization hooks for DuckDB by @NiclasHaderer in https://github.com/duckdb/duckdb/pull/16115
* Unify behavior of `range`/`generate_series` with PostgreSQL by @kryonix in https://github.com/duckdb/duckdb/pull/15935
* [CI] Avoid Linux CLI jobs to fail-fast by @carlopi in https://github.com/duckdb/duckdb/pull/16173
* Parquet: Add dedicated Select method that can be used to push selection vectors into the read by @Mytherin in https://github.com/duckdb/duckdb/pull/16174
* Unvendor ICU by @m-kuhn in https://github.com/duckdb/duckdb/pull/16176
* Parquet reader: batch check if buffer is available in RLEBpDecoder by @Mytherin in https://github.com/duckdb/duckdb/pull/16185
* Parquet Reader: for DeltaLengthByteArray encoding, directly refer to strings from the block without copying by @Mytherin in https://github.com/duckdb/duckdb/pull/16186
* unified names for duckdb-extensions by @hmeriann in https://github.com/duckdb/duckdb/pull/16179
* Only delete test directory when `--test-temp-dir` is not specified by @Mytherin in https://github.com/duckdb/duckdb/pull/16192
* Fix #16163: COLUMNS should not treat identifiers as strings by @Mytherin in https://github.com/duckdb/duckdb/pull/16193
* Parquet reader: Avoid applying bloom filters if we are casting columns by @Mytherin in https://github.com/duckdb/duckdb/pull/16194
* Pretty print sniffer values by @pdet in https://github.com/duckdb/duckdb/pull/16182
* V1.2 histrionicus by @Mytherin in https://github.com/duckdb/duckdb/pull/16191
* Bump Julia by @Mytherin in https://github.com/duckdb/duckdb/pull/16199
* Ensure that dependent targets are present after find_package. by @BillyONeal in https://github.com/duckdb/duckdb/pull/16197
* Concurrency groups for R and Wasm by @hmeriann in https://github.com/duckdb/duckdb/pull/16201
* Parquet Writer Cleanup: Move ColumnWriters to separate files by @Mytherin in https://github.com/duckdb/duckdb/pull/16202
* [fix] Use bigobj when building with MSVC by @m-kuhn in https://github.com/duckdb/duckdb/pull/16200
* Improve performance of `UNNEST/UNPIVOT` by using selection vectors to unnest multiple lists at once by @Mytherin in https://github.com/duckdb/duckdb/pull/16210
* Add the `TRY` expression by @Tishj in https://github.com/duckdb/duckdb/pull/15939
* [Python][Dev] Replace the default connection when it's closed by @Tishj in https://github.com/duckdb/duckdb/pull/16160
* Use steady clock for profiler by @dentiny in https://github.com/duckdb/duckdb/pull/16198
* Add parallel memset when building hash join table by @hehezhou in https://github.com/duckdb/duckdb/pull/16172
* Avoid unnecessarily projecting the input columns of the UNPIVOT operator in the UNNEST by @Mytherin in https://github.com/duckdb/duckdb/pull/16221
* Left join push down optimization by @Damon07 in https://github.com/duckdb/duckdb/pull/15881
* Do In-Filter pushdown in PyArrow by @pdet in https://github.com/duckdb/duckdb/pull/16224
* Use _win32 with MSVC by @cfis in https://github.com/duckdb/duckdb/pull/16235
* Fix Python 3 executable name on Windows by @cfis in https://github.com/duckdb/duckdb/pull/16236
* Fix -std=c++11 by @cfis in https://github.com/duckdb/duckdb/pull/16237
* Issue #8265: AsOf Nested Loop by @hawkfish in https://github.com/duckdb/duckdb/pull/16218
* Include extension_util.hpp in libduckdb by @mlafeldt in https://github.com/duckdb/duckdb/pull/16255
* Generalize `rowid` into the concept of virtual columns, and make `filename` a virtual column in the Parquet/CSV/JSON readers by @Mytherin in https://github.com/duckdb/duckdb/pull/16248
* Modify histogram test to more fuzzily check boundaries since the test can be inconsistent on different platforms by @Mytherin in https://github.com/duckdb/duckdb/pull/16261
* [Dev] Fix issue in `TRY` expression with `dictionary_expression` Vector verification by @Tishj in https://github.com/duckdb/duckdb/pull/16262
* [Python Dev] Add the correct variant of the `-std=c++11` flag based on the compiler (MSVC or not) by @Tishj in https://github.com/duckdb/duckdb/pull/16267
* Fix extension install mode null by @samansmink in https://github.com/duckdb/duckdb/pull/16268
* A little cleanup. by @JasonPunyon in https://github.com/duckdb/duckdb/pull/16028
* Improve Parquet writer performance by @lnkuiper in https://github.com/duckdb/duckdb/pull/16243
* Merge v1.2-histrionicus into main by @Mytherin in https://github.com/duckdb/duckdb/pull/16284
* Many reclaim storage fixes by @taniabogatsch in https://github.com/duckdb/duckdb/pull/15825
* Arena allocator for `MinMaxN` and skip `NULL`s when creating enum by @lnkuiper in https://github.com/duckdb/duckdb/pull/16246
* Add pragma to truncate duckdb log storage by @samansmink in https://github.com/duckdb/duckdb/pull/16274
* Some more Parquet writer performance improvements by @lnkuiper in https://github.com/duckdb/duckdb/pull/16287
* Do duckdb_extract_statements to be able to execute pivot in ADBC by @pdet in https://github.com/duckdb/duckdb/pull/16162
* [Dev] Improve/Add handling of escapes in VARCHAR -> list/struct/map and align behavior by @Tishj in https://github.com/duckdb/duckdb/pull/15944
* make ValidityMask::RowIsValidUnsafe really unsafe by @xuke-hat in https://github.com/duckdb/duckdb/pull/16302
* Multi File Reader Rework: Add `MultiFileReaderFunction` that is used to wrap a single-file reader, and use it for the Parquet reader by @Mytherin in https://github.com/duckdb/duckdb/pull/16299
* [Python Dev] Add support for fully qualified references in `.table(...)` method by @Tishj in https://github.com/duckdb/duckdb/pull/16291
* [Dev] MultiFileReader - Add to the `column_indexes` for `file_row_number` by @Tishj in https://github.com/duckdb/duckdb/pull/16311
* Parquet reader performance by @lnkuiper in https://github.com/duckdb/duckdb/pull/16315
* Bump Julia FixedPointDecimals dependency version by @mbarbar in https://github.com/duckdb/duckdb/pull/16323
* Merge V1.2 histrionicus into main by @Mytherin in https://github.com/duckdb/duckdb/pull/16324
* Add new recursive semantics (`USING KEY`) by @cryoEncryp in https://github.com/duckdb/duckdb/pull/12430
* fix: add StringStats::SetMaxStringLength by @rustyconover in https://github.com/duckdb/duckdb/pull/16326
* Fix decorrelation of WITH USING KEY by @kryonix in https://github.com/duckdb/duckdb/pull/16330
* Issue #16250: Window Range Performance by @hawkfish in https://github.com/duckdb/duckdb/pull/16320
* Verify UTF-8 in `DeltaLengthByteArrayDecoder` and speed it up by @lnkuiper in https://github.com/duckdb/duckdb/pull/16328
* Add missing include by @Mytherin in https://github.com/duckdb/duckdb/pull/16342
* [chore] No ccache for OSX Python by @carlopi in https://github.com/duckdb/duckdb/pull/16348
* Linux CLI: override platform for ARM manylinux by @carlopi in https://github.com/duckdb/duckdb/pull/16347
* docs: tweak explanation of median for even cardinality inputs by @NickCrews in https://github.com/duckdb/duckdb/pull/13726
* [parquet] Fix implicit idx_t to int64_t conversion flagged by clang-tidy by @carlopi in https://github.com/duckdb/duckdb/pull/16368
* Improve error message on failure to install local extension by @carlopi in https://github.com/duckdb/duckdb/pull/16371
* MAIN_BRANCH_VERSIONING: main branch to get descriptors like v1.3.0-dev1234 instead of v1.2.1-dev1234 by @carlopi in https://github.com/duckdb/duckdb/pull/16366
* Parallel HT Zeroing: Set entries_per_task so that there are 4x more tasks than threads by @gropaul in https://github.com/duckdb/duckdb/pull/16301
* Internal #2176: SUMMARIZE Temporal Types by @hawkfish in https://github.com/duckdb/duckdb/pull/16095
* [SwiftRelease CI] fetch tags before checking there is already a tag with the same name by @hmeriann in https://github.com/duckdb/duckdb/pull/16376
* Push Select into ArrayColumnData to avoid scanning arrays that are not required for the query by @Mytherin in https://github.com/duckdb/duckdb/pull/16356
* Revert "Linux CLI: override platform for ARM manylinux" by @carlopi in https://github.com/duckdb/duckdb/pull/16374
* Rework CSV Reader: use the new MultiFileReaderFunction interface by @Mytherin in https://github.com/duckdb/duckdb/pull/16349
* Add connection and transaction identifiers by @samansmink in https://github.com/duckdb/duckdb/pull/16296
* Add parquet 'unknown' logical type by @hannes in https://github.com/duckdb/duckdb/pull/16378
* Internal #4287: INTERVAL Times DOUBLE by @hawkfish in https://github.com/duckdb/duckdb/pull/16386
* pb/compressed vector serialization by @peterboncz in https://github.com/duckdb/duckdb/pull/16066
* Fix issue #16377 by @kryonix in https://github.com/duckdb/duckdb/pull/16391
* Read support for Parquet Float16 by @hannes in https://github.com/duckdb/duckdb/pull/16395
* MAIN_BRANCH_VERSIONING: Adopt also for Python build and amalgamation by @carlopi in https://github.com/duckdb/duckdb/pull/16400
* Fuzzer Fix: Fix Avg for NULL cast to TIMESTAMP by @Tmonster in https://github.com/duckdb/duckdb/pull/16394
* [FriendlySQL] Expand functionality of the Unpacked COLUMNS expression by @Tishj in https://github.com/duckdb/duckdb/pull/16290
* Python Client: Faster Python Object Conversion by @Mytherin in https://github.com/duckdb/duckdb/pull/16431
* Fixup #16400 by correctly passing down SETUPTOOLS_SCM_PRETEND_VERSION by @carlopi in https://github.com/duckdb/duckdb/pull/16435
* Issue #16250: Window Range Performance by @hawkfish in https://github.com/duckdb/duckdb/pull/16438
* Merge v1.2-histrionicus into main by @Mytherin in https://github.com/duckdb/duckdb/pull/16439
* MAIN_BRANCH_VERSIONING: Add also prefix_version by @carlopi in https://github.com/duckdb/duckdb/pull/16441
* [no-op] Remove unused function `GetValueRefUnsafe` by @dentiny in https://github.com/duckdb/duckdb/pull/16440
* Filter Combiner Clean-up: move filter pushdown to separate functions, remove old commented out code by @Mytherin in https://github.com/duckdb/duckdb/pull/16443
* [Python] Add the SQLExpression method to the Expression API by @Tishj in https://github.com/duckdb/duckdb/pull/16424
* [Dev] Mention the problematic type in UNNEST BinderException by @Tishj in https://github.com/duckdb/duckdb/pull/16429
* Merge v1.2 into main again by @Mytherin in https://github.com/duckdb/duckdb/pull/16447
* Filter Combiner: Allow rowid pushdown for IN/OR filters and pushdown for temporal types by @Mytherin in https://github.com/duckdb/duckdb/pull/16450
* Parquet: always launch max threads if we are scanning multiple files by @Mytherin in https://github.com/duckdb/duckdb/pull/16457
* fix documents of C functions by @yiyuanliu in https://github.com/duckdb/duckdb/pull/16357
* Add a TableFilterState for execution of table filters by @Mytherin in https://github.com/duckdb/duckdb/pull/16461
* Mirror discussions to the internal repository by @szarnyasg in https://github.com/duckdb/duckdb/pull/16464
* Rework JSON Reader: use the new MultiFileReaderFunction interface by @Mytherin in https://github.com/duckdb/duckdb/pull/16477
* Speed-up contains by using `memchr` on every iteration by @Mytherin in https://github.com/duckdb/duckdb/pull/16484
* Fix error cases by @Y-- in https://github.com/duckdb/duckdb/pull/16494
* Prevent external joins (if possible) by @lnkuiper in https://github.com/duckdb/duckdb/pull/16430
* Merge v1.2 into main by @Mytherin in https://github.com/duckdb/duckdb/pull/16517
* Optimize FSST decoding by @lnkuiper in https://github.com/duckdb/duckdb/pull/16508
* Extract subsystem by name by @dentiny in https://github.com/duckdb/duckdb/pull/16226
* Avoid throwing an exception (that is then swallowed) when computing compressed materialization over stats that are not set by @Mytherin in https://github.com/duckdb/duckdb/pull/16532
* Checksum backward compatibility by @lnkuiper in https://github.com/duckdb/duckdb/pull/16505
* Prefetch Parquet page header by @lnkuiper in https://github.com/duckdb/duckdb/pull/16507
* Let GitHub render *.test files as SQL by @mlafeldt in https://github.com/duckdb/duckdb/pull/16534
* Fix ADBC to properly quote table and schema names by @CurtHagenlocher in https://github.com/duckdb/duckdb/pull/16526
* Pass `ClientContext` to catalog initialize, and postpone index binding when replaying the WAL by @Mytherin in https://github.com/duckdb/duckdb/pull/16536
* Allow UNITTEST_ROOT_DIRECTORY to be configured through CMake by @Mytherin in https://github.com/duckdb/duckdb/pull/16540
* Internal #4347: ISO Year Week by @hawkfish in https://github.com/duckdb/duckdb/pull/16567
* throw() -> noexcept in skiplist by @r-barnes in https://github.com/duckdb/duckdb/pull/16548
* Fix `test/sql/aggregate/aggregates/histogram_table_function.test` to pass the Linux CLI (arm64) CI by @hmeriann in https://github.com/duckdb/duckdb/pull/16538
* feat: move GRANT from reserved to unreserved keyword by @stephaniewang526 in https://github.com/duckdb/duckdb/pull/16546
* Python test runner: Avoid enabling profiling when executing restart command by @Flogex in https://github.com/duckdb/duckdb/pull/16547
* Add `duckdb_prepared_statements` by @Tishj in https://github.com/duckdb/duckdb/pull/16541
* [minor] Keep bit type sanity check consistent by @dentiny in https://github.com/duckdb/duckdb/pull/16575
* Support CREATE TABLE AS ... WITH NO DATA by @hannes in https://github.com/duckdb/duckdb/pull/16586
* Parquet FLOAT16 - fix cast by @hannes in https://github.com/duckdb/duckdb/pull/16580
* remove invalid tokens from nanosecond example by @hamilton in https://github.com/duckdb/duckdb/pull/16577
* CrossVersion.yml: Add v1.2.1, v1.2-histrionicus and main by @carlopi in https://github.com/duckdb/duckdb/pull/16576
* Fix #16524: DEPENDENT_JOIN may not flatten by @flashmouse in https://github.com/duckdb/duckdb/pull/16537
* [Julia] Add support for appending duckdb List types by @era127 in https://github.com/duckdb/duckdb/pull/16512
* [PySpark] - Add `expr` function by @mariotaddeucci in https://github.com/duckdb/duckdb/pull/16468
* regex_replace no longer swallows regex errors by @hannes in https://github.com/duckdb/duckdb/pull/16380
* Parquet Writer Clean-up: Split `CreateWriterRecursive` into two methods, and use `ParquetColumnData` for writer as well by @Mytherin in https://github.com/duckdb/duckdb/pull/16592
* Bump Julia to 1.2.1 by @Mytherin in https://github.com/duckdb/duckdb/pull/16593
* Improved appender error message by @NiclasHaderer in https://github.com/duckdb/duckdb/pull/16599
* Change static variables to be on the stack instead by @Y-- in https://github.com/duckdb/duckdb/pull/16597
* Add support for `RETURN_STATS` to `COPY` by @Mytherin in https://github.com/duckdb/duckdb/pull/16595
* Better error messages for the CSV Scanner by @pdet in https://github.com/duckdb/duckdb/pull/16585
* Support Enum types in read_csv - Python by @pdet in https://github.com/duckdb/duckdb/pull/15710
* Fix CI Tidy by @pdet in https://github.com/duckdb/duckdb/pull/16610
* Add some minor helper functions (`QueryResultIterator::IsNull` and casts to MultiFileList/Reader by @Mytherin in https://github.com/duckdb/duckdb/pull/16611
* Add support for `ALTER TABLE tbl SET PARTITIONED BY (key1, key2, ...)` in the grammar by @Mytherin in https://github.com/duckdb/duckdb/pull/16612
* Issue template: direct UI issues to the UI repository by @szarnyasg in https://github.com/duckdb/duckdb/pull/16619
* [Dev] Make the various mappings in `MultiFileReaderData` typesafe by @Tishj in https://github.com/duckdb/duckdb/pull/16596
* Bump mbedtls to 3.6.2 and re-apply patches by @hannes in https://github.com/duckdb/duckdb/pull/16485
* Read and Write Complex Json from Arrow Types by @pdet in https://github.com/duckdb/duckdb/pull/16385
* Add Docker support for RISC-V CI with appropriate build commands by @mocusez in https://github.com/duckdb/duckdb/pull/16549
* Fix missing **kwargs in adbc_driver_duckdb.dbapi.connect() by @davlee1972 in https://github.com/duckdb/duckdb/pull/16637
* [Dev] Clean up and fix the CGroup memory/cpu limit discovery logic by @Tishj in https://github.com/duckdb/duckdb/pull/16608
* Expose `Value::ToSQLString()` in C API by @mt-caret in https://github.com/duckdb/duckdb/pull/16471
* Add the missing binding for json_serialize_sql by @liznear in https://github.com/duckdb/duckdb/pull/16666
* Do not create validity mask for non-null const vector by @xuke-hat in https://github.com/duckdb/duckdb/pull/16669
* Fix #16665: fix parquet multi_reader bloom_probe logic error by @flashmouse in https://github.com/duckdb/duckdb/pull/16677
* Add alias to catalog by @c-herrewijn in https://github.com/duckdb/duckdb/pull/16600
* Decouple physical operator ownership from operators by @taniabogatsch in https://github.com/duckdb/duckdb/pull/16545
* cmake: fix external icu by @autoantwort in https://github.com/duckdb/duckdb/pull/16676
* Character length and date functions by @hannes in https://github.com/duckdb/duckdb/pull/16653
* [Dev] Don't try to include `third_party/mbedtls/VERSION` with `package_build.py` by @Tishj in https://github.com/duckdb/duckdb/pull/16683
* Add `-ui` to CLI help text by @akx in https://github.com/duckdb/duckdb/pull/16626
* Fix alias of column reference lost in ReplaceProjectionBindings by @Damon07 in https://github.com/duckdb/duckdb/pull/16686
* Merge v1.2-histrionicus into main by @Mytherin in https://github.com/duckdb/duckdb/pull/16687
* Fix for GCC-4.8 by @Mytherin in https://github.com/duckdb/duckdb/pull/16690
* JSON Reader: make read_position atomic so this can be read by the progress bar while processing the JSON file by @Mytherin in https://github.com/duckdb/duckdb/pull/16692
* [Julia] support binding for vectors by @slwu89 in https://github.com/duckdb/duckdb/pull/16701
* Make CSV Parser strict_mode=True fail on a mix of new line delimiters. by @pdet in https://github.com/duckdb/duckdb/pull/15959
* [pypi] Fix cleanup logic for multiple branches by @hmeriann in https://github.com/duckdb/duckdb/pull/16634
* Add support for `ALTER TABLE tbl SET SORTED BY (key1 DESC, key2, ...)` in the grammar by @Mytherin in https://github.com/duckdb/duckdb/pull/16714
* RETURN_STATS: remove footer_offset, and emit written partition keys by @Mytherin in https://github.com/duckdb/duckdb/pull/16715
* In case all rows of a CSV batch are errors, we continue processing by @pdet in https://github.com/duckdb/duckdb/pull/16713
* add workaround for patching httpfs ext by @samansmink in https://github.com/duckdb/duckdb/pull/16722
* Implement UUID v7 by @dentiny in https://github.com/duckdb/duckdb/pull/15819
* Fix roundtripping of stringified nested types by @Tishj in https://github.com/duckdb/duckdb/pull/16304
* Add Notify External Repositories Workflow by @maiadegraaf in https://github.com/duckdb/duckdb/pull/16730
* Expose a selection vector and the Slice method to the C API by @joseph-isaacs in https://github.com/duckdb/duckdb/pull/16696
* Add support for tracking `column_size_bytes` and `contains_nan` in RETURN_STATS by @Mytherin in https://github.com/duckdb/duckdb/pull/16731
* Add support for `WRITE_EMPTY_FILE` option to `COPY` - which allows skipping of writing empty files by @Mytherin in https://github.com/duckdb/duckdb/pull/16737
* Parquet Writer: Truncate string stats for large strings, instead of bailing on writing stats by @Mytherin in https://github.com/duckdb/duckdb/pull/16736
* RLE compression - memset alignment bytes to zero when aligning the counts by @Mytherin in https://github.com/duckdb/duckdb/pull/16735
* Write UUID stats to Parquet files and support reading uuid stats by @Mytherin in https://github.com/duckdb/duckdb/pull/16744
* Add an initial value to `list_reduce` by @maiadegraaf in https://github.com/duckdb/duckdb/pull/16602
* shell: make -bail work for more errors by @mlafeldt in https://github.com/duckdb/duckdb/pull/16594
* Call Notify External Repositories from Invoke CI by @maiadegraaf in https://github.com/duckdb/duckdb/pull/16747
* JSON bugfixes by @lnkuiper in https://github.com/duckdb/duckdb/pull/16729
* Add support for dynamically providing extra info post-execution in table functions, and use this to emit the total number of files read by the MultiFileReader by @Mytherin in https://github.com/duckdb/duckdb/pull/16749
* [Python Dev] Fix the versioning of the nightly python builds by @Tishj in https://github.com/duckdb/duckdb/pull/16739
* shell: fix sometimes-uninitialized error by @mlafeldt in https://github.com/duckdb/duckdb/pull/16761
* Issue #16250: Window Range Performance by @hawkfish in https://github.com/duckdb/duckdb/pull/16765
* Avoid building Python 3.7 wheels also for Linux by @carlopi in https://github.com/duckdb/duckdb/pull/16769
* Pyodide 0.27.2: conditionally skip tests by @carlopi in https://github.com/duckdb/duckdb/pull/16772
* Push catalog lookups through an extensible EntryLookupInfo struct by @Mytherin in https://github.com/duckdb/duckdb/pull/16764
* Fix two minor problems with NotifyExternalRepositories / odbc by @carlopi in https://github.com/duckdb/duckdb/pull/16776
* update expected results reflecting the changes brought ups with `Fix roundtripping of stringified nested types` PR by @hmeriann in https://github.com/duckdb/duckdb/pull/16775
* Merge V1.2 -> Main by @pdet in https://github.com/duckdb/duckdb/pull/16751
* Add support for time travel syntax in the `FROM` clause by @Mytherin in https://github.com/duckdb/duckdb/pull/16774
* Python docs: List all join types by @szarnyasg in https://github.com/duckdb/duckdb/pull/16789
* [chore] NotifyExternalRepositories.yml: Fix endpoint to be pinged by @carlopi in https://github.com/duckdb/duckdb/pull/16793
* Remove delta from extensions built on a nightly basis (vs main branch) by @carlopi in https://github.com/duckdb/duckdb/pull/16795
* OSX.yml & Windows.yml: remove repository_dispatch, already handled by InvokeCI by @carlopi in https://github.com/duckdb/duckdb/pull/16796
* Make extensions be linked privitally into duckdb by @JAicewizard in https://github.com/duckdb/duckdb/pull/16726
* Add additional iterations to avoid assertion failure in `TemporaryMemoryManager` by @lnkuiper in https://github.com/duckdb/duckdb/pull/16801
* Change the STANDARD_MASK_SIZE calculation to use size of template type. by @sebastiaan-dev in https://github.com/duckdb/duckdb/pull/16807
* Fix nightly table sample error by @Tmonster in https://github.com/duckdb/duckdb/pull/16811
* Fix tidy by @pdet in https://github.com/duckdb/duckdb/pull/16805
* support 'categories' label in function catalog by @c-herrewijn in https://github.com/duckdb/duckdb/pull/15654
* regenerate function headers by @c-herrewijn in https://github.com/duckdb/duckdb/pull/16822
* Internal #4490: Window Jump Reset by @hawkfish in https://github.com/duckdb/duckdb/pull/16816
* Regression.yml: Actually checkout proper base.sha commit by @carlopi in https://github.com/duckdb/duckdb/pull/16824
* fix: drop useless python import by @yihong0618 in https://github.com/duckdb/duckdb/pull/16808
* NightlyTests.yml: Inline env variables into build command by @carlopi in https://github.com/duckdb/duckdb/pull/16817
* Benchmark runner summary by @hmeriann in https://github.com/duckdb/duckdb/pull/16759
* Add storage_version 66 for version 1.3.0 by @carlopi in https://github.com/duckdb/duckdb/pull/16800
* Revert "fix: drop useless python import" by @Mytherin in https://github.com/duckdb/duckdb/pull/16834
* [MultiFileReader] Rework `MultiFileReader::FinalizeChunk` to use Expressions by @Tishj in https://github.com/duckdb/duckdb/pull/16630
* Merge v1.2 into main by @Mytherin in https://github.com/duckdb/duckdb/pull/16832
* Fix NULL key handling in mark join by @xuke-hat in https://github.com/duckdb/duckdb/pull/16825
* compressed vector serialization fixes by @peterboncz in https://github.com/duckdb/duckdb/pull/16648
* really sorry about this by @peterboncz in https://github.com/duckdb/duckdb/pull/16840
* Fix Python docstrings for unique by @szarnyasg in https://github.com/duckdb/duckdb/pull/16845
* [MultiFileReader] Create "local" filters to hand to underlying readers by @Tishj in https://github.com/duckdb/duckdb/pull/16838
* Revert "Regression.yml: Actually checkout proper base.sha commit" by @Mytherin in https://github.com/duckdb/duckdb/pull/16860
* [ART] Immediately erase empty fixed-size buffers by @taniabogatsch in https://github.com/duckdb/duckdb/pull/16727
* Resolve defaults and column index map by pushing a Projection (instead of executing in the insert itself) by @Mytherin in https://github.com/duckdb/duckdb/pull/16867
* Fix issue with sorting dev versions in pypi_cleanup.py script to keep on PyPi the most recent dev versions by @hmeriann in https://github.com/duckdb/duckdb/pull/16873
* Allow filters to be pushed through joins if there are projection maps by @lnkuiper in https://github.com/duckdb/duckdb/pull/16871
* Expressions in create secret by @samansmink in https://github.com/duckdb/duckdb/pull/15801
* Python - Arrow IPC support in from_arrow by @pdet in https://github.com/duckdb/duckdb/pull/16821
* [ART] Introduce a new ARTScanner and make InitMerge and Vacuum iterative by @taniabogatsch in https://github.com/duckdb/duckdb/pull/16861
* Do not pushdown filters which bindings only match the right side of the left join by @Damon07 in https://github.com/duckdb/duckdb/pull/16880
* MultiFileReader Rework (part 17) - remove `MultiFileReaderData` - and move as much as possible out of the file readers by @Mytherin in https://github.com/duckdb/duckdb/pull/16882
* ICU: Unify TimeZone accessing code by @Mytherin in https://github.com/duckdb/duckdb/pull/16887
* Rework ICU age computation to convert to a timestamp and use the regular interval age computation by @Mytherin in https://github.com/duckdb/duckdb/pull/16889
* Reduce allocations during aggregations by @lnkuiper in https://github.com/duckdb/duckdb/pull/16849
* CI: Prevent marking issues as 'stale' if they have the 'no stale' label by @szarnyasg in https://github.com/duckdb/duckdb/pull/16903
* Add field name to log line which fails Parquet spec by @jsbali in https://github.com/duckdb/duckdb/pull/16862
* Internal #4490: Window Threading Cleanup by @hawkfish in https://github.com/duckdb/duckdb/pull/16879
* Adding gzip version of shell for linux/osx install script by @hannes in https://github.com/duckdb/duckdb/pull/16116
* Fix USING KEY reference error by @kryonix in https://github.com/duckdb/duckdb/pull/16906
* [Nested] Enable Varargs in `LIST_CONCAT` by @maiadegraaf in https://github.com/duckdb/duckdb/pull/16870
* Fix several issues with vsize=2, and move vsize=2 tests to `Main.yml` by @Mytherin in https://github.com/duckdb/duckdb/pull/16918
* C API comments: Fix a/an typos by @szarnyasg in https://github.com/duckdb/duckdb/pull/16925
* Reduce locking with `FILE_SIZE_BYTES`/`ROW_GROUPS_PER_FILE` in Parquet writer by @lnkuiper in https://github.com/duckdb/duckdb/pull/16928
* [Python] Fix annotation of `condition` argument in `join` so it accepts `Expression` by @MarcoGorelli in https://github.com/duckdb/duckdb/pull/16933
* Fix GCC 4.8 and add it back to `Main` workflow by @Mytherin in https://github.com/duckdb/duckdb/pull/16937
* Merge v1.2 into main again by @Mytherin in https://github.com/duckdb/duckdb/pull/16939
* MultiFileReader - Perform nested remapping of field indexes instead of relying on casts by @Mytherin in https://github.com/duckdb/duckdb/pull/16941
* Internal #4552: Short Circuit CSE by @hawkfish in https://github.com/duckdb/duckdb/pull/16931
* Add back manylinux extensions by @carlopi in https://github.com/duckdb/duckdb/pull/16944
* Run CI on merge group by @Mytherin in https://github.com/duckdb/duckdb/pull/16945
* Internal #4516: Interval BIGINT Variants by @hawkfish in https://github.com/duckdb/duckdb/pull/16904
* Split query string for multi-statement queries by @Mytherin in https://github.com/duckdb/duckdb/pull/16955
* Vector Verification: Rework to run based on env variable `DUCKDB_DEBUG_VERIFY_VECTOR` and move to `Main.yml` by @Mytherin in https://github.com/duckdb/duckdb/pull/16957
* Move the no string inline/alternative verify workflow to Main.yml by @Mytherin in https://github.com/duckdb/duckdb/pull/16958
* [Python] Tighten type annotations on ``shape`` and ``columns`` by @MarcoGorelli in https://github.com/duckdb/duckdb/pull/16948
* Pass down CMAKE_POLICY_VERSION_MINIMUM and fix for local development by @carlopi in https://github.com/duckdb/duckdb/pull/16953
* [ART] Use the ARTScanner for VerifyAllocations (make it iterative) by @taniabogatsch in https://github.com/duckdb/duckdb/pull/16946
* Move ThreadSanitizer test from nightly test to Main, and fix locking issue by @Mytherin in https://github.com/duckdb/duckdb/pull/16960
* Re-enable workflows to run on PRs by @Mytherin in https://github.com/duckdb/duckdb/pull/16961
* Fix for selecting NaN values from Parquet files by @Mytherin in https://github.com/duckdb/duckdb/pull/16962
* Move LatestStorage tests to NightlyRelease - and fix issue with overflow string blocks not being cleaned up correctly by @Mytherin in https://github.com/duckdb/duckdb/pull/16972
* Arena-allocate physical operators by @taniabogatsch in https://github.com/duckdb/duckdb/pull/16911
* Make `file_row_number` a virtual column, and support per-file virtual columns in the MultiFileReader by @Mytherin in https://github.com/duckdb/duckdb/pull/16979
* Add a setting `scheduler_process_partial` that allows partial scheduling of tasks in the background threads by @Mytherin in https://github.com/duckdb/duckdb/pull/16973
* Clean up format script, gather all files then run concurrently instead of running concurrently per directory by @Mytherin in https://github.com/duckdb/duckdb/pull/16988
* Add support for altering struct columns (adding fields, dropping fields, renaming fields) by @Mytherin in https://github.com/duckdb/duckdb/pull/17003
* Fix CSV fuzzer tests by @pdet in https://github.com/duckdb/duckdb/pull/16994
* [Fix] Keep original expression for macro + lambda's with subqueries by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17020
* Detect when tables have been dropped or altered, and prevent deletes in this scenario by @Mytherin in https://github.com/duckdb/duckdb/pull/17018
* Update links pointing to duckdb.org by @szarnyasg in https://github.com/duckdb/duckdb/pull/16999
* Fix for joining on floating columns #16901 by @nickzoic in https://github.com/duckdb/duckdb/pull/16965
* fix: remove ununsed stream struct member from ArrowScanLocalState by @rustyconover in https://github.com/duckdb/duckdb/pull/17023
* [Dev] Use `UnifiedVectorFormat` instead of a flattened `Vector` in `UpdateSegment::Update` by @Tishj in https://github.com/duckdb/duckdb/pull/16974
* Remove Arrow Extenson from core extensions by @pdet in https://github.com/duckdb/duckdb/pull/17027
* Correctly propagate ClientContext to TaskExecutor by @ywelsch in https://github.com/duckdb/duckdb/pull/17026
* Issue #17001: AsOf memory Management by @hawkfish in https://github.com/duckdb/duckdb/pull/17028
* [MultiFileReader] Make it possible for the multi file reader to add a `DeleteFilter` to the `BaseFileReader` by @Tishj in https://github.com/duckdb/duckdb/pull/17032
* Add optional `OVERRIDE_NEW_DELETE` build parameter by @lnkuiper in https://github.com/duckdb/duckdb/pull/17035
* Clean-up virtual columns and make MultiFileReader::InitializeReader virtual by @Mytherin in https://github.com/duckdb/duckdb/pull/17038
* Allow a table to define their own row-id columns for delete/update, instead of assuming it is always COLUMN_IDENTIFIER_ROW_ID by @Mytherin in https://github.com/duckdb/duckdb/pull/17039
* Handle Parquet with compressed empty DataPage v2 by @EnricoMi in https://github.com/duckdb/duckdb/pull/17031
* Combine small row groups in Parquet writer by @lnkuiper in https://github.com/duckdb/duckdb/pull/17036
* Merge v1.2.2 into main by @carlopi in https://github.com/duckdb/duckdb/pull/17037
* implement function so I can send a patch to httpfs by @lnkuiper in https://github.com/duckdb/duckdb/pull/17048
* FORCE_ASYNC_SINK_SOURCE: pass also to unittester by @carlopi in https://github.com/duckdb/duckdb/pull/17053
* If a Max Line Size Error happens on all CSV dialect candidates, throw a max line size error. by @pdet in https://github.com/duckdb/duckdb/pull/16935
* Expose BindExtraColumns as a public function by @Mytherin in https://github.com/duckdb/duckdb/pull/17060
* trigger .github/workflows/NightlyBuildsCheck.yml from external repo by @hmeriann in https://github.com/duckdb/duckdb/pull/16949
* Minor parquet crypto clean-up: allow footer key to be passed in directly, and avoid constantly re-reading the key from the config by @Mytherin in https://github.com/duckdb/duckdb/pull/17070
* update julia to v1.2.2 by @Maxxen in https://github.com/duckdb/duckdb/pull/17074
* MultiFileReader Rework (part 18): Replace file path with `OpenFileInfo` struct by @Mytherin in https://github.com/duckdb/duckdb/pull/17071
* Fix httpfs patches: avoid `git log` since might contain unsanitised `error` word by @carlopi in https://github.com/duckdb/duckdb/pull/17075
* Re-enable Avro on core by @Tishj in https://github.com/duckdb/duckdb/pull/17072
* [Nested] Optimize List Type in `list_value` by @maiadegraaf in https://github.com/duckdb/duckdb/pull/17063
* Grow string dictionary dynamically in Parquet writer by @lnkuiper in https://github.com/duckdb/duckdb/pull/17061
* Add extended file info to OpenFileInfo, and use this to pass encryption keys and footer size to Parquet reader by @Mytherin in https://github.com/duckdb/duckdb/pull/17085
* [Dev] Automatically re-execute when calling `__arrow_c_stream__` on an already-consumed-result by @Tishj in https://github.com/duckdb/duckdb/pull/17087
* fsst: Avoid to propagate alignment information in FSST_UNALIGNED_STORE by @carlopi in https://github.com/duckdb/duckdb/pull/17094
* Fix sqlite3 api wrapper link + remove R-CMD-check + add more nightly tests by @carlopi in https://github.com/duckdb/duckdb/pull/17095
* support large dictionary value and constant vector creation in the C API by @joseph-isaacs in https://github.com/duckdb/duckdb/pull/17064
* Add missing lock to UpdateSegment::FetchRow, and cleanup API to require the lock by @Mytherin in https://github.com/duckdb/duckdb/pull/17100
* Valgrind requires tpch by @carlopi in https://github.com/duckdb/duckdb/pull/17101
* Switch to manylinux_2_28 by @hannes in https://github.com/duckdb/duckdb/pull/16956
* Changing mbedtls encryption API by @ccfelius in https://github.com/duckdb/duckdb/pull/16196
* Pull OpenFileExtended through the opener and virtual file system layers by @Mytherin in https://github.com/duckdb/duckdb/pull/17102
* Fix an issue in upserts where the local append state was not correctly flushed by @Mytherin in https://github.com/duckdb/duckdb/pull/17109
* Always parallelize `read_json` schema detection by @lnkuiper in https://github.com/duckdb/duckdb/pull/17106
* Move transaction cleanup outside of the transaction lock by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17034
* Remove R_CMD_CHECK.yml, now handled by duckdb/duckdb-r repo by @carlopi in https://github.com/duckdb/duckdb/pull/17127
* JSON Bugfixes by @lnkuiper in https://github.com/duckdb/duckdb/pull/17119
* Refactor relassert runs, adding some variations in compiler / statically linked extensions by @carlopi in https://github.com/duckdb/duckdb/pull/17104
* extension-upload-from-nightly.sh: Add --region by @carlopi in https://github.com/duckdb/duckdb/pull/17120
* MultiFileReader: several fixes for virtual column handling and make virtual column handling extensible by @Mytherin in https://github.com/duckdb/duckdb/pull/17123
* Remove misleading lock comment in data table by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17125
* [Dev] Add "registries" to `vcpkg.json`, add script to list the packages of the registry. by @Tishj in https://github.com/duckdb/duckdb/pull/17124
* External File Cache by @lnkuiper in https://github.com/duckdb/duckdb/pull/16463
* Notify nightly build status by @hmeriann in https://github.com/duckdb/duckdb/pull/17108
* Strict UUID cast by @lnkuiper in https://github.com/duckdb/duckdb/pull/17138
* Copy To File: avoid calling Combine for threads that have not written any rows by @Mytherin in https://github.com/duckdb/duckdb/pull/17142
* Add file_index virtual column to the multi file reader that returns the file index of the read file by @Mytherin in https://github.com/duckdb/duckdb/pull/17144
* MultiFileReader: simplify constant handling, and allow virtual columns returned by the multi file reader to be constant by @Mytherin in https://github.com/duckdb/duckdb/pull/17149
* Changes to encodings to make them more flexible to replacement maps. by @pdet in https://github.com/duckdb/duckdb/pull/17146
* Optimize large Top N queries by @lnkuiper in https://github.com/duckdb/duckdb/pull/17141
* Only trigger TopN rewrite relatively small limits compared to the table size. by @Tmonster in https://github.com/duckdb/duckdb/pull/17140
* platform.hpp: Propagate DUCKDB_EXPLICIT_PLATFORM, avoid early return by @carlopi in https://github.com/duckdb/duckdb/pull/17137
* Keeping the filters which do not remove NULL values by @Damon07 in https://github.com/duckdb/duckdb/pull/17045
* Improve `FileSync` call on unix platform by @dentiny in https://github.com/duckdb/duckdb/pull/16893
* README: Fix to building link by @szarnyasg in https://github.com/duckdb/duckdb/pull/17161
* [InvokeCI] Add missing pipe to run instruction by @hmeriann in https://github.com/duckdb/duckdb/pull/17163
* Internal #4667: 2025b TimeZone Data by @hawkfish in https://github.com/duckdb/duckdb/pull/17160
* Unify function list by @c-herrewijn in https://github.com/duckdb/duckdb/pull/17168
* [Dev] Generate the `EXTENSION_SECRET_TYPES` instead of hardcoding them by @Tishj in https://github.com/duckdb/duckdb/pull/17183
* Fix grouping feature with interval type by @handstuyennn in https://github.com/duckdb/duckdb/pull/17181
* Add filename to GZIP stream error by @marcoslot in https://github.com/duckdb/duckdb/pull/17166
* Issue #17115: TimeTZ Approximate Quantile by @hawkfish in https://github.com/duckdb/duckdb/pull/17162
* Issue #17046: AsOf Left Predicates by @hawkfish in https://github.com/duckdb/duckdb/pull/17159
* [Fix] Pass delete indexes when committing updates by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17176
* Python.yml: Add back logic to perform fast-fail on Python 3.10 by @carlopi in https://github.com/duckdb/duckdb/pull/17107
* Notify JDBC repo to run Vendor.yml workflow by @staticlibs in https://github.com/duckdb/duckdb/pull/17099
* Issue #17049: ICU Date Cast by @hawkfish in https://github.com/duckdb/duckdb/pull/17067
* Add bind_operator callback to TableFunction - allowing table functions to directly emit a LogicalOperator by @Mytherin in https://github.com/duckdb/duckdb/pull/17196
* [ENCRYPTION] Make block header size adaptive by @ccfelius in https://github.com/duckdb/duckdb/pull/17118
* Issue #16839: Disable TIMESTAMP Casts by @hawkfish in https://github.com/duckdb/duckdb/pull/16899
* Add support for an explicit PRESERVE_ORDER flag for copy to file by @Mytherin in https://github.com/duckdb/duckdb/pull/17199
* Add `SYSTEM_PEAK_BUFFER_MANAGER_MEMORY` and `SYSTEM_PEAK_TEMP_DIRECTORY_SIZE` to profiler by @lnkuiper in https://github.com/duckdb/duckdb/pull/17164
* Fix [InvokeCI / NotifyExternalRepository] Unexpected value 'true' by @hmeriann in https://github.com/duckdb/duckdb/pull/17212
* Add support for the cast_to_type function, that allows generating a cast from an expression to the type of another column by @Mytherin in https://github.com/duckdb/duckdb/pull/17209
* Better cardinality estimates for inequality joins/grouped aggregations by @lnkuiper in https://github.com/duckdb/duckdb/pull/17139
* Add `ExternalFileCache` validation as option for `ExtendedOpenFileInfo` by @lnkuiper in https://github.com/duckdb/duckdb/pull/17205
* Explicitly flush the thread-local optimistic writer in `PhysicalBatchInsert` when finalizing by @Mytherin in https://github.com/duckdb/duckdb/pull/17214
* Pushdown arbitrary expressions into scans by @Mytherin in https://github.com/duckdb/duckdb/pull/17213
* Fix #17170: sort selection result in OR expression by @flashmouse in https://github.com/duckdb/duckdb/pull/17180
* [Dev] Re-enable Iceberg, Bump Avro, fix `generate_extension_functions.py` for dependencies between extensions by @Tishj in https://github.com/duckdb/duckdb/pull/17204
* Change Invalid Unicode Error to Invalid Encoding by @pdet in https://github.com/duckdb/duckdb/pull/17208
* Direct IO for temp files by @lnkuiper in https://github.com/duckdb/duckdb/pull/17219
* Fix [InvokeCI / NotifyExternalRepository] GitHub Actions has encountered an internal error when running your job. by @hmeriann in https://github.com/duckdb/duckdb/pull/17218
* Add "thousands" option to CSV Reader by @pdet in https://github.com/duckdb/duckdb/pull/17220
* add capi functions to create map and union values by @jraymakers in https://github.com/duckdb/duckdb/pull/17227
* Only notify JDBC when all runs are successful by @staticlibs in https://github.com/duckdb/duckdb/pull/17233
* Update Friendlier SQL link.md by @hfrifkin in https://github.com/duckdb/duckdb/pull/17248
* Implement reading concatenated GZIP members by @lnkuiper in https://github.com/duckdb/duckdb/pull/17255
* Return invalid `BufferHandle` upon loading a destroyed `BlockHandle` by @lnkuiper in https://github.com/duckdb/duckdb/pull/17249
* Internal #4772: Timestamp Error Parameter by @hawkfish in https://github.com/duckdb/duckdb/pull/17283
* BUGFIX: do not perform unused columns optimization in presence of multiple grouping sets by @Tmonster in https://github.com/duckdb/duckdb/pull/17259
* Internal #4532: 13 Month Intervals by @hawkfish in https://github.com/duckdb/duckdb/pull/17303
* Dont try to load extension if storage type is already registered by @Maxxen in https://github.com/duckdb/duckdb/pull/17241
* Adapt size of hash table during aggregation using HyperLogLog by @lnkuiper in https://github.com/duckdb/duckdb/pull/17236
* Switch to always using list identifier instead of array by @J-Meyers in https://github.com/duckdb/duckdb/pull/17242
* Add root's query_location also to TransformInterval by @carlopi in https://github.com/duckdb/duckdb/pull/17271
* Histogram table function test by @hmeriann in https://github.com/duckdb/duckdb/pull/17276
* Guess Parquet footer size by @lnkuiper in https://github.com/duckdb/duckdb/pull/17300
* Issue #16563: FLOAT to DECIMAL by @hawkfish in https://github.com/duckdb/duckdb/pull/17302
* Feature #15873: Windowed ORDER BYs by @hawkfish in https://github.com/duckdb/duckdb/pull/17304
* Switch from Bottom-Up to Top-Down Decorrelation Strategy by @kryonix in https://github.com/duckdb/duckdb/pull/17294
* Generating random data for mbedtls without key by @ccfelius in https://github.com/duckdb/duckdb/pull/17309
* Fix CI by @Mytherin in https://github.com/duckdb/duckdb/pull/17319
* [Arrow] Implement support to consuming and producing Decimal 32 and 64. by @pdet in https://github.com/duckdb/duckdb/pull/17314
* take the column ids from the logical get, don't require a LogicalGet β¦ by @Tishj in https://github.com/duckdb/duckdb/pull/17315
* Allow installing extensions with external access allowlist by @samansmink in https://github.com/duckdb/duckdb/pull/17316
* Implement ARTMerger replacing the recursive ART merge algorithm by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17243
* Share null mask with constant null arg vector by @iceTTTT in https://github.com/duckdb/duckdb/pull/17234
* Fix #17311: correctly check for presence of recursive keys in transformer by @Mytherin in https://github.com/duckdb/duckdb/pull/17320
* [CSV Reader] Simplify Quote/Escape detection code, make it more robust and decouple comment and skip_rows option. by @pdet in https://github.com/duckdb/duckdb/pull/17284
* Fix `try_cast` from NaN `double` to `decimal` by @lnkuiper in https://github.com/duckdb/duckdb/pull/17322
* Add serialization for new TableColumn type by @Mytherin in https://github.com/duckdb/duckdb/pull/17321
* Extract expressions from nested conjunction AND for index scan by @lnkuiper in https://github.com/duckdb/duckdb/pull/17297
* Support late materialization in the Parquet reader, and handle `COUNT(*)` directly in the multi file reader by @Mytherin in https://github.com/duckdb/duckdb/pull/17325
* Implement ARTOperator replacing Lookup and the recursive Insert by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17327
* Internal #4723: Inequality Condition Pushdown by @hawkfish in https://github.com/duckdb/duckdb/pull/17317
* Properly format strings when throw JSON errors by @lnkuiper in https://github.com/duckdb/duckdb/pull/17331
* Fix potential vulnerable cloned function by @npt-1707 in https://github.com/duckdb/duckdb/pull/17340
* Fix potential vulnerable cloned function by @npt-1707 in https://github.com/duckdb/duckdb/pull/17339
* Revert "Skip MinGW, currently failing on main" by @carlopi in https://github.com/duckdb/duckdb/pull/17342
* Unify Parquet Metadata cache invalidation logic with Cached File System cache invalidation by @Mytherin in https://github.com/duckdb/duckdb/pull/17334
* Fix issue with empty ranges by @kryonix in https://github.com/duckdb/duckdb/pull/17332
* Internal #4797: Timestamp Range Cardinality by @hawkfish in https://github.com/duckdb/duckdb/pull/17330
* Some nitpicking fixes by @szarnyasg in https://github.com/duckdb/duckdb/pull/17337
* Issue #17299: Integer Rounding by @hawkfish in https://github.com/duckdb/duckdb/pull/17328
* Parquet Reader: emit partition stats for any files that have cached metadata, and implement `ListFilesExtended` that adds extra info to files globbed by @Mytherin in https://github.com/duckdb/duckdb/pull/17344
* Add support for UUID v7 to Filename Pattern - and clean it up so that it correctly supports composite patterns by @Mytherin in https://github.com/duckdb/duckdb/pull/17345
* Add support for the HIVE_FILE_PATTERN option - that allows partitioned files to be written without writing them to a hive-style directory structure by @Mytherin in https://github.com/duckdb/duckdb/pull/17346
* Add an OnDetach callback to the catalog that is triggered when the user detaches a catalog by @Mytherin in https://github.com/duckdb/duckdb/pull/17347
* Pass commit ID to NotifyExternalRepositories.yml by @staticlibs in https://github.com/duckdb/duckdb/pull/17333
* Add support for BENCHMARK_ROOT_DIRECTORY cmake option to change benchmark runner root directory, and add support for cache_file and reload options to enable better caching for non-DuckDB databases by @Mytherin in https://github.com/duckdb/duckdb/pull/17355
* Support --directories option in format.py by @Mytherin in https://github.com/duckdb/duckdb/pull/17354
* Handle both ENCRYPTION_KEY and STORAGE_VERSION passed as options by @carlopi in https://github.com/duckdb/duckdb/pull/17357
* Fix internal exception from assigning invalid index to `optional_idx query_id;` by @Tishj in https://github.com/duckdb/duckdb/pull/17359
* Fixup amalgamation: reqlen is only used with assert enabled by @carlopi in https://github.com/duckdb/duckdb/pull/17361
* md5_number: return UHUGEINT by @szarnyasg in https://github.com/duckdb/duckdb/pull/17336
* Skip emitting partition stats if "has_deletes" is set in the file info by @Mytherin in https://github.com/duckdb/duckdb/pull/17365
* Benchmark runner: add `argument`, `include` and `load_only` options - and make ClickBench run the original benchmark instead of a subset by @Mytherin in https://github.com/duckdb/duckdb/pull/17367
* Fix two off-by-one errors in row estimate of range and generate_series by @JelteF in https://github.com/duckdb/duckdb/pull/17373
* [Nested] Fix: 16489 - Find `NULL`s in lists using `list_position` by @maiadegraaf in https://github.com/duckdb/duckdb/pull/17080
* fix #17258: Allow to open database in readonly mode within cli by @jjballano in https://github.com/duckdb/duckdb/pull/17375
* Join Hash Table Probing Optimization: Optional Probing Selection Vector by @gropaul in https://github.com/duckdb/duckdb/pull/17062
* Remove bundled TPCH & TPCDS in Python wheels by @carlopi in https://github.com/duckdb/duckdb/pull/15923
* [Compression] Introduce `DICT_FSST` compression method by @Tishj in https://github.com/duckdb/duckdb/pull/15637
* Deprecate lambda arrow (->) and replace it with LAMBDA x : x + 1 by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17235
* fix not setting nested validity when map_extract returns null by @Maxxen in https://github.com/duckdb/duckdb/pull/17379
* Function chaining: report missing column instead of missing function if function exists by @Mytherin in https://github.com/duckdb/duckdb/pull/17383
* Improve error messages in UPDATE ... SET by @Mytherin in https://github.com/duckdb/duckdb/pull/17384
* Add candidates suggestion when COLUMNS regex does not match any columns by @Mytherin in https://github.com/duckdb/duckdb/pull/17385
* add step to clean up the disc space to fix `No space left on device` by @hmeriann in https://github.com/duckdb/duckdb/pull/17390
* Fix issue in string -> hugeint conversion with decimals and exponents by @Mytherin in https://github.com/duckdb/duckdb/pull/17388
* Improve error message reporting for cast failures by @Mytherin in https://github.com/duckdb/duckdb/pull/17382
* Fix Python CI: pin virtualenv to previous version by @Mytherin in https://github.com/duckdb/duckdb/pull/17386
* Improve error reporting for missing qualified columns by @Mytherin in https://github.com/duckdb/duckdb/pull/17397
* Issue #17266: Lead Lag Nulls by @hawkfish in https://github.com/duckdb/duckdb/pull/17391
* Fix #17266οΌthe result of lad/lead when the offset is null by @ditdb in https://github.com/duckdb/duckdb/pull/17268
* VirtualFileSystem to take an input, allowing to customize behaviour by @carlopi in https://github.com/duckdb/duckdb/pull/17393
* [Dev] Add `QualifiedName::ParseComponents`, add input to the error messages by @Tishj in https://github.com/duckdb/duckdb/pull/17403
* Provide suggestions and a link to the documentation for OOM errors by @Mytherin in https://github.com/duckdb/duckdb/pull/17402
* [Dev] Flatten any deeper children vectors, when the top level is a FLAT vector by @Tishj in https://github.com/duckdb/duckdb/pull/17387
* Minor fixes for the CLI by @Mytherin in https://github.com/duckdb/duckdb/pull/17405
* Add support for CREATE OR REPLACE TYPE, CREATE TYPE IF NOT EXISTS and CREATE TEMPORARY TYPE by @Mytherin in https://github.com/duckdb/duckdb/pull/17404
* Use an insertion order preserving map in Value::MAP by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17389
* Implement `json_each`/`json_tree` by @lnkuiper in https://github.com/duckdb/duckdb/pull/17406
* Fix #16552: adjust join condition sequence by @flashmouse in https://github.com/duckdb/duckdb/pull/16943
* WAL replay index fixes by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17409
* ZSTD: use a high penalty when min size is exceeded instead of disabling compression to allow force compression to work by @Mytherin in https://github.com/duckdb/duckdb/pull/17412
* Internal #4723: PWMJ Inequality Pushdown by @hawkfish in https://github.com/duckdb/duckdb/pull/17400
* Move all httplib code to HTTPUtil class by @Mytherin in https://github.com/duckdb/duckdb/pull/17420
* Avoid generating default views and macros in the temporary catalog by @Mytherin in https://github.com/duckdb/duckdb/pull/17408
* unittest: improve detection of whether or not we can run `--force-restart` tests by @Mytherin in https://github.com/duckdb/duckdb/pull/17419
* Give tasks a `TaskType` with a name by @Mytherin in https://github.com/duckdb/duckdb/pull/17421
* Use argparse in scripts/format.py by @adsharma in https://github.com/duckdb/duckdb/pull/17360
* Add missing commas by @szarnyasg in https://github.com/duckdb/duckdb/pull/17424
* Internal #4830: IEJoin Inequality Pushdown by @hawkfish in https://github.com/duckdb/duckdb/pull/17422
* Add conn.query_progress() method by @nickzoic in https://github.com/duckdb/duckdb/pull/16927
* Fixes filter pruning use the statistics updated by the same filter by @Damon07 in https://github.com/duckdb/duckdb/pull/17425
* Fix JSON extension compilation on Ubuntu 22.04 by @staticlibs in https://github.com/duckdb/duckdb/pull/17434
* Use pytest in SQLLogic Python test runner by @Flogex in https://github.com/duckdb/duckdb/pull/16685
* On COPY TO/FROM check the format during binding. by @pdet in https://github.com/duckdb/duckdb/pull/17381
* BUGFIX: DELIM_JOINS should reflect functionality of NULL filtering conditions in joins with DELIM_GETS by @Tmonster in https://github.com/duckdb/duckdb/pull/16910
* Allow directly attaching of Parquet/CSV/JSON files by @Mytherin in https://github.com/duckdb/duckdb/pull/17415
* Force errors when trying lines as early as possible by @pdet in https://github.com/duckdb/duckdb/pull/17427
* Enable `SYSTEM_PEAK_BUFFER_MEMORY` and `SYSTEM_PEAK_TEMP_DIR_SIZE` profiling by default by @lnkuiper in https://github.com/duckdb/duckdb/pull/17407
* [C API] Expose the client context, connection id and scalar function bind data by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17449
* [CSV Sniffer] Proper type replacement in header only files by @pdet in https://github.com/duckdb/duckdb/pull/17447
* Recurse into `MAP` and `LIST` with the `remap_struct` and the MFR ColumnMapper by @Tishj in https://github.com/duckdb/duckdb/pull/17448
* Fix: pyproject.toml does not contain a tool.setuptools_scm section by @YUKI2eN3e in https://github.com/duckdb/duckdb/pull/17443
* [Fix] Macro binding with unknown parameters in list_has_all and some other code tidying by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17450
* Generalize HTTP interface and use the new HTTP interface in `httpfs` by @Mytherin in https://github.com/duckdb/duckdb/pull/17464
* [Fix] Switch between constant and flat vector in C API by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17465
* Fix TIMETZ cast in example by @szarnyasg in https://github.com/duckdb/duckdb/pull/17468
* Remove duplicated arrow fetch test by @emmanuel-ferdman in https://github.com/duckdb/duckdb/pull/17476
* Multi File Reader Rework (Part 19): Make `MultiFileReaderInterface` virtual, and move reading methods to the `BaseFileReader` by @Mytherin in https://github.com/duckdb/duckdb/pull/17475
* [Serializer] Lambda Compatibilty Fix by @maiadegraaf in https://github.com/duckdb/duckdb/pull/17428
* fix parsing bool values in JSON by @ccfelius in https://github.com/duckdb/duckdb/pull/17460
* Emit dictionary vectors with unaligned start index by @OmidAfroozeh in https://github.com/duckdb/duckdb/pull/17471
* Add release version by @hannes in https://github.com/duckdb/duckdb/pull/17479
* Expose qualified table names in GetTableNames and add duckdb_get_table_names to C API by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17472
* Bump avro, httpfs, mysql, postgres and sqlite by @Mytherin in https://github.com/duckdb/duckdb/pull/17482
* Fix GeoParquet ExpressionColumnReader schema by @Maxxen in https://github.com/duckdb/duckdb/pull/17481
* add regression_threshold_seconds argument to `regression/test_runner.py` by @hmeriann in https://github.com/duckdb/duckdb/pull/17485
* DROP of missing entry should fail in binding by @jeewonhh in https://github.com/duckdb/duckdb/pull/17474
* HTTPFS Parameters fix by @Mytherin in https://github.com/duckdb/duckdb/pull/17486
* HTTPUtil Fix: correctly pass in on_retry by @Mytherin in https://github.com/duckdb/duckdb/pull/17494
* Bump spatial & vss by @Maxxen in https://github.com/duckdb/duckdb/pull/17492
* Add support for altering structs (drop, add, rename field) inside `LIST` and `MAP` columns. by @Tishj in https://github.com/duckdb/duckdb/pull/17462
* [Python Dev] Guard against python exceptions when interacting with the `currentframe` object by @Tishj in https://github.com/duckdb/duckdb/pull/17490
* If distinct count from stats is 0, do not use it in Join Order Optimizer by @Tmonster in https://github.com/duckdb/duckdb/pull/17466
* Make the encodings extension a core extension, and make it auto-loadable. by @pdet in https://github.com/duckdb/duckdb/pull/17206
* Allow passing down rc-style version also via OVERRIDE_GIT_DESCRIBE by @carlopi in https://github.com/duckdb/duckdb/pull/17501
* Allow DUCKDB_EXPLICIT_VERSION to be propagated by @carlopi in https://github.com/duckdb/duckdb/pull/17498
* Minor nightly fixes by @Mytherin in https://github.com/duckdb/duckdb/pull/17500
* Add FileSystem::TryRemoveFile - that only removes a file if it exists by @Mytherin in https://github.com/duckdb/duckdb/pull/17502
* Add OperatorFinalize callback to operators - which is called after a pipeline is finished by @Mytherin in https://github.com/duckdb/duckdb/pull/17503
* Apply dynamic filter pushdown of TopN optimizer also to existing TopN nodes by @Mytherin in https://github.com/duckdb/duckdb/pull/17504
* Fix: Optional Probe Selection by @gropaul in https://github.com/duckdb/duckdb/pull/17505
* FileHandle Logging by @samansmink in https://github.com/duckdb/duckdb/pull/16758
* Fix typos by @szarnyasg in https://github.com/duckdb/duckdb/pull/17478
* Remove spatial from OSX Relassert by @carlopi in https://github.com/duckdb/duckdb/pull/17509
* Update more extensions by @Maxxen in https://github.com/duckdb/duckdb/pull/17510
* Bump HTTPFS again by @Mytherin in https://github.com/duckdb/duckdb/pull/17511
* feat: include catalog and schema names in function serialization by @rustyconover in https://github.com/duckdb/duckdb/pull/17512
* Fix encodings by @carlopi in https://github.com/duckdb/duckdb/pull/17514
* Fix python nightly build by @Tishj in https://github.com/duckdb/duckdb/pull/17515
* Use Catalog::TryAutoLoad for encodings extension by @pdet in https://github.com/duckdb/duckdb/pull/17520
* [Python Dev] Using `reinterpret_steal` breaks the refcount of the passed-in object by @Tishj in https://github.com/duckdb/duckdb/pull/17525
* Fix update extensions by @carlopi in https://github.com/duckdb/duckdb/pull/17527
* Minor fixes to exception error messages by @carlopi in https://github.com/duckdb/duckdb/pull/17528
* [Python Dev] Fix failing tests for the Python SQLLogicTester by @Tishj in https://github.com/duckdb/duckdb/pull/17529
* Resolve GitHub workflow `set-output` deprecation warnings by @kurtmckee in https://github.com/duckdb/duckdb/pull/17516
* [CSV Reader] Detect SQLNULL types for schema merging, use schema merging in csv relations, add files_to_sniff option. by @pdet in https://github.com/duckdb/duckdb/pull/17467
* Fix extension test by @carlopi in https://github.com/duckdb/duckdb/pull/17536
* [Dev] Fix crash when describing a table with a virtual column by @Tishj in https://github.com/duckdb/duckdb/pull/17544
* [HTTPUtil] Let requests made through the `HTTPUtil` interface accept URI's without a scheme. by @Tishj in https://github.com/duckdb/duckdb/pull/17545
* Attach after setting database type by @Mytherin in https://github.com/duckdb/duckdb/pull/17546
* Pass MultiFileGlobalState to InitializeReader, and pass file list to CreateMapping instead of eagerly getting the first file by @Mytherin in https://github.com/duckdb/duckdb/pull/17553
* [Dev] Fix `allowed_directories` crash by @Tishj in https://github.com/duckdb/duckdb/pull/17548
* [Fix] duplicate filters during index scans by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17547
* Generate data for tpch sf100 in steps by @Tmonster in https://github.com/duckdb/duckdb/pull/17539
* Issue #17537: Fractional Second Padding by @hawkfish in https://github.com/duckdb/duckdb/pull/17556
* Make MultiFileList::Copy a virtual method by @Mytherin in https://github.com/duckdb/duckdb/pull/17566
* [Dev] Can't use `USING COMPRESSION` with a deprecated compression type by @Tishj in https://github.com/duckdb/duckdb/pull/17542
* Add (de)serialization for ExtraOperatorInfo by @NiclasHaderer in https://github.com/duckdb/duckdb/pull/17563
* Fix issue with `ExternalFileCache` when data is evicted by @lnkuiper in https://github.com/duckdb/duckdb/pull/17567
* Remote Reads: allocate correct buffer size for prefetch by @Mytherin in https://github.com/duckdb/duckdb/pull/17557
* Remove patch and bump httpfs by @carlopi in https://github.com/duckdb/duckdb/pull/17558
* [Dev] Fix Arrow fixed size binary reading by @Tishj in https://github.com/duckdb/duckdb/pull/17573
* Fix setup.py to correctly handle OVERRIDE_GIT_DESCRIBE by @carlopi in https://github.com/duckdb/duckdb/pull/17580
**Full Changelog**: https://github.com/duckdb/duckdb/compare/v1.2.2...v1.3.0