DuckDB v1.4.0stable Released Sep 16, 2025
Impact Score: 5/10

DuckDB 1.4.0 "Andium"

Source available β€” automated, not human-reviewed

Component: duckdb Β· Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified β€” check source notes
πŸ“„ .MD
⚑ Executive Summary (TL;DR)

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

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)

  • Add support for ToSqlString for union types
  • Add rowsort in generate_series test #43
  • [SQLLogicTester] Introduce `reset label <query label>` in the tester
  • Add qualified parameter to Python GetTableNames API
  • Add `duckdb_type` column to parquet_schema
  • julia: add missing methods from C-API

⚑ Performance & Enhancements (6)

  • Python package devexp improvements
  • Aggregation performance
  • [Julia] api docs improvements
  • Improve sort key comparison performance
  • Detect when updates have no effect, and skip performing the actual updates if we encounter these nop updates
  • Improve Parquet reader `NULL` statistics and compress all-`NULL` columns using `CompressedMaterialization`

πŸ”§ Bug Fixes & Patches (6)

  • fix extension troubleshooting link
  • Output hashes in unittest and fix order
  • fix linux extension ci
  • Fix windows-2025 build errors
  • re-add httpfs apply_patches
  • Fix propagatesNullValues for case expr
πŸ“„ View Raw Release Notes (Original Developer Log)
This release of DuckDB is named "Andium" after Anas Andium, a species of duck that lives in the Andes mountains in South America. Please also refer to the announcement blog post: https://duckdb.org/2025/09/16/announcing-duckdb-140.html ## What's Changed * Python package devexp improvements by @evertlammerts in https://github.com/duckdb/duckdb/pull/17483 * change exception type to not be an internal exception by @samansmink in https://github.com/duckdb/duckdb/pull/17551 * Remove redundant code path in the ConflictManager by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17562 * Add support for ToSqlString for union types by @wmTJc9IK0Q in https://github.com/duckdb/duckdb/pull/17513 * Update function descriptions and examples by @c-herrewijn in https://github.com/duckdb/duckdb/pull/17132 * Move query profiler's EndQuery after commit/rollback by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17595 * fix extension troubleshooting link by @simon0191 in https://github.com/duckdb/duckdb/pull/17616 * C API tidying by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17623 * bump DuckDB_jll to v1.3.0 by @c-herrewijn in https://github.com/duckdb/duckdb/pull/17677 * Add rowsort in generate_series test #43 by @jeewonhh in https://github.com/duckdb/duckdb/pull/17675 * [C API] Expose duckdb_scalar_function_bind_get_extra_info by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17666 * Enable profiling output for all operator types by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17665 * Output hashes in unittest and fix order by @niykko in https://github.com/duckdb/duckdb/pull/17664 * New Sorting Implementation by @lnkuiper in https://github.com/duckdb/duckdb/pull/17584 * Merge v1.3-ossivalis into main by @Mytherin in https://github.com/duckdb/duckdb/pull/17690 * Issue #17040: FILL Window Function by @hawkfish in https://github.com/duckdb/duckdb/pull/17686 * ClientBufferManager wrapper to access the client context in the buffer manager by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17699 * Revert "set default for MAIN_BRANCH_VERSIONING to false" by @carlopi in https://github.com/duckdb/duckdb/pull/17708 * Sorting followup by @lnkuiper in https://github.com/duckdb/duckdb/pull/17717 * Correctly setting the delim offset by @Damon07 in https://github.com/duckdb/duckdb/pull/17716 * fix linux extension ci by @samansmink in https://github.com/duckdb/duckdb/pull/17720 * Aggregation performance by @lnkuiper in https://github.com/duckdb/duckdb/pull/17718 * Fix windows-2025 build errors by @adsharma in https://github.com/duckdb/duckdb/pull/17726 * [SQLLogicTester] Introduce `reset label <query label>` in the tester by @Tishj in https://github.com/duckdb/duckdb/pull/17729 * Adding additional authenticated data for encryption by @ccfelius in https://github.com/duckdb/duckdb/pull/17508 * csv_scanner: correct code comment by @Djfe in https://github.com/duckdb/duckdb/pull/17735 * Deprecate windows-2019 runners by @hannes in https://github.com/duckdb/duckdb/pull/17745 * re-add httpfs apply_patches by @samansmink in https://github.com/duckdb/duckdb/pull/17755 * Rename decorator from test_nulls to null_test_parameters by @Mytherin in https://github.com/duckdb/duckdb/pull/17760 * [CAPI] Expose ErrorData by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17722 * Expose file_size_bytes and footer_size in parquet_file_metadata by @gijshendriksen in https://github.com/duckdb/duckdb/pull/17750 * Pass `ExtensionLoader` when loading extensions, change extension entry function by @Maxxen in https://github.com/duckdb/duckdb/pull/17772 * Support glibc 2.28 environments by @James-Gilbert- in https://github.com/duckdb/duckdb/pull/17776 * Mark Upper/LowerComparisonType as const by @JelteF in https://github.com/duckdb/duckdb/pull/17773 * [Indexes] Buffer-managed indexes part 1: segment handles by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17758 * [Julia] api docs improvements by @tqml in https://github.com/duckdb/duckdb/pull/15645 * Ensure we use the same layout in `RadixPartitionedHashTable` and `GroupedAggregateHashTable` by @lnkuiper in https://github.com/duckdb/duckdb/pull/17790 * [Profiling] Propagate the ClientContext into file handle writes by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17754 * Fix propagatesNullValues for case expr by @suibianwanwank in https://github.com/duckdb/duckdb/pull/17796 * Add qualified parameter to Python GetTableNames API by @evertlammerts in https://github.com/duckdb/duckdb/pull/17797 * Merge v1.3 into main by @Mytherin in https://github.com/duckdb/duckdb/pull/17806 * Pushdown pivot filter by @flashmouse in https://github.com/duckdb/duckdb/pull/17801 * Replace string for const data ptr in encryption api by @ccfelius in https://github.com/duckdb/duckdb/pull/17825 * Merge130 by @carlopi in https://github.com/duckdb/duckdb/pull/17833 * fix: escape using_columns on JoinRef::ToString by @akoshchiy in https://github.com/duckdb/duckdb/pull/17839 * Fix ICE with Windows ARM64 by @staticlibs in https://github.com/duckdb/duckdb/pull/17844 * Merge v1.3 into main by @Mytherin in https://github.com/duckdb/duckdb/pull/17851 * Add `duckdb_type` column to parquet_schema by @Mytherin in https://github.com/duckdb/duckdb/pull/17852 * Internal #4991: Remove Epoch_MS(MS) by @hawkfish in https://github.com/duckdb/duckdb/pull/17816 * #17853 Enable flexible page sizes and update Android NDK to r27 in workflow. by @aprock in https://github.com/duckdb/duckdb/pull/17854 * [Indexes] Buffer-managed indexes part 2: segment handle for base nodes by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17828 * Function Serialization: adapt to removal of overloads by explicitly casting if argument types have changed by @Mytherin in https://github.com/duckdb/duckdb/pull/17864 * julia: add missing methods from C-API by @tqml in https://github.com/duckdb/duckdb/pull/17733 * Issue #17153: Window Order Columns by @hawkfish in https://github.com/duckdb/duckdb/pull/17835 * Issue #17040: FILL Secondary Sorts by @hawkfish in https://github.com/duckdb/duckdb/pull/17821 * Add STRUCT to MAP cast function by @evertlammerts in https://github.com/duckdb/duckdb/pull/17799 * Issue #17849: Test FILL Duplicates by @hawkfish in https://github.com/duckdb/duckdb/pull/17869 * Add GenAI policy by @szarnyasg in https://github.com/duckdb/duckdb/pull/17882 * Update function descriptions and examples for list, array, lambda functions by @c-herrewijn in https://github.com/duckdb/duckdb/pull/17886 * Issue #17861: FILL Argument Types by @hawkfish in https://github.com/duckdb/duckdb/pull/17888 * Reword GenAI policy by @szarnyasg in https://github.com/duckdb/duckdb/pull/17895 * Use an arena linked list for the physical operator children by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17748 * Make CTE Materialization the Default Instead of Inlining by @kryonix in https://github.com/duckdb/duckdb/pull/17459 * Merge v1.3 into main by @Mytherin in https://github.com/duckdb/duckdb/pull/17897 * Leverage `VectorType` in `ColumnDataCollection` by @lnkuiper in https://github.com/duckdb/duckdb/pull/17881 * Fix empty BP block when writing parquet by @platypii in https://github.com/duckdb/duckdb/pull/17929 * fix use after free in adbc on invalid stmt by @ruslandoga in https://github.com/duckdb/duckdb/pull/17927 * Do not dispatch JDBC/ODBC jobs in release CI runs by @staticlibs in https://github.com/duckdb/duckdb/pull/17937 * Block based encryption by @ccfelius in https://github.com/duckdb/duckdb/pull/17275 * Unittester failures summary by @hmeriann in https://github.com/duckdb/duckdb/pull/16833 * Add v1.3-ossivalis to Cross version workflow by @hmeriann in https://github.com/duckdb/duckdb/pull/17906 * [CI Nightly Fix] Skip logging test if not standard block size by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17957 * Visual Studio 17 (2022) fixes by @edouarda in https://github.com/duckdb/duckdb/pull/17948 * [Nested] Add `struct_position` and `struct_contains` functions by @maiadegraaf in https://github.com/duckdb/duckdb/pull/17819 * Enable building spatial and encodings extensions by @staticlibs in https://github.com/duckdb/duckdb/pull/17960 * [Nested] Optimize structs in `LIST_VALUE` by @maiadegraaf in https://github.com/duckdb/duckdb/pull/17169 * Unit Tester Configuration by @Mytherin in https://github.com/duckdb/duckdb/pull/17972 * [nested] Allow fixed-size arrays to be unnested by @maiadegraaf in https://github.com/duckdb/duckdb/pull/17968 * Merge v1.3-ossivalis into main by @Mytherin in https://github.com/duckdb/duckdb/pull/17973 * [CI] Skip some workflows when updating out of tree extensions SHA by @hmeriann in https://github.com/duckdb/duckdb/pull/17949 * Issue #5144: AsOf Join Threshold by @hawkfish in https://github.com/duckdb/duckdb/pull/17979 * [Fix] Reset profiling info before preparing a query by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17940 * Flag to disable database invalidation by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17938 * Issue #5123: make_timestamp_ms by @hawkfish in https://github.com/duckdb/duckdb/pull/17908 * Rework extension loading to go through thread-safe ExtensionManager by @Mytherin in https://github.com/duckdb/duckdb/pull/17994 * Implement consumption and production of Arrow Binary View by @pdet in https://github.com/duckdb/duckdb/pull/17975 * Add support to produce Polars Lazy Dataframes by @pdet in https://github.com/duckdb/duckdb/pull/17947 * c-api to copy vector with selection by @abramk in https://github.com/duckdb/duckdb/pull/17870 * Fix #18007: correctly execute expressions with pivot operator by @Mytherin in https://github.com/duckdb/duckdb/pull/18020 * [Chore] Minor conflict manager refactoring by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18015 * Remove Linux (32 Bit) job by @hmeriann in https://github.com/duckdb/duckdb/pull/18012 * [Explain] Add the YAML format for EXPLAIN statements by @qsliu2017 in https://github.com/duckdb/duckdb/pull/17572 * Unittest: Add skip_compiled option that can be used to skip built-in C++ tests by @Mytherin in https://github.com/duckdb/duckdb/pull/18034 * Add ppc64le spin-wait instruction by @mgiessing in https://github.com/duckdb/duckdb/pull/17837 * Merge ossivalis into main by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18036 * Remove match-case statements from polars_io.py by @evertlammerts in https://github.com/duckdb/duckdb/pull/18052 * Avoid adding commands read from a file to the shell history by @Mytherin in https://github.com/duckdb/duckdb/pull/18057 * Adding WAL encryption by @ccfelius in https://github.com/duckdb/duckdb/pull/17955 * Encryption: adding -key for the command line by @ccfelius in https://github.com/duckdb/duckdb/pull/17950 * fix star expr exclude error by @jayhan94 in https://github.com/duckdb/duckdb/pull/18063 * Add support for class-based expression iteration by @Mytherin in https://github.com/duckdb/duckdb/pull/18070 * Use `timestamp_t` instead of `time_t` for file last modified time by @lnkuiper in https://github.com/duckdb/duckdb/pull/18037 * Unittester: add `on_new_connection` + `on_load` + `skip_tests` options by @carlopi in https://github.com/duckdb/duckdb/pull/18042 * Fix some scaling issues by @lnkuiper in https://github.com/duckdb/duckdb/pull/17985 * Issue #18071: Temporal inf -inf by @hawkfish in https://github.com/duckdb/duckdb/pull/18083 * Switch to Optional for type hints in polars lazy dataframe function by @evertlammerts in https://github.com/duckdb/duckdb/pull/18078 * Unittest: Configure skip error messages by @carlopi in https://github.com/duckdb/duckdb/pull/18087 * Avoid running DraftPR.yml until timeout if token is missing by @carlopi in https://github.com/duckdb/duckdb/pull/18090 * Add start/end offset percentage options to Python test runner by @Flogex in https://github.com/duckdb/duckdb/pull/18091 * [CSV Reader] Prohibit options delim and sep in same read_csv call by @ackxolotl in https://github.com/duckdb/duckdb/pull/18096 * Fix correlated subquery unnest fail by @flashmouse in https://github.com/duckdb/duckdb/pull/18092 * [CI] don't run jobs on draft PRs by @hmeriann in https://github.com/duckdb/duckdb/pull/18016 * TPC-DS: Use BIGINT fields by @szarnyasg in https://github.com/duckdb/duckdb/pull/18098 * Don't throw `InternalException` in `Sort::Sink` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18105 * ci: build duckdb against the latest emscripten by @cpcloud in https://github.com/duckdb/duckdb/pull/18110 * [chore] Merge v1.3-ossivalis on main by @carlopi in https://github.com/duckdb/duckdb/pull/18109 * Update description of 'arrow_lossless_conversion' by @szarnyasg in https://github.com/duckdb/duckdb/pull/18046 * Internal #3273: Window Task Generation by @hawkfish in https://github.com/duckdb/duckdb/pull/18113 * set ::error:: annotations for test runners by @hmeriann in https://github.com/duckdb/duckdb/pull/18072 * Improve sort key comparison performance by @lnkuiper in https://github.com/duckdb/duckdb/pull/18131 * Add support for `MERGE INTO` by @Mytherin in https://github.com/duckdb/duckdb/pull/18135 * Detect when updates have no effect, and skip performing the actual updates if we encounter these nop updates by @Mytherin in https://github.com/duckdb/duckdb/pull/18144 * Add support for AdbcConnectionGetObjects(table_type) by @kou in https://github.com/duckdb/duckdb/pull/18066 * Issue #17683: TIME_NS Compilation by @hawkfish in https://github.com/duckdb/duckdb/pull/18053 * Implement `replace_type` function by @lnkuiper in https://github.com/duckdb/duckdb/pull/18077 * Bump spatial again: include re-linking for handling global objects in Wasm by @carlopi in https://github.com/duckdb/duckdb/pull/18170 * Resolve some small build issues by @madscientist in https://github.com/duckdb/duckdb/pull/18162 * fix typo by @felixhummel in https://github.com/duckdb/duckdb/pull/18165 * Avoid `realloc` in CSV writer by @lnkuiper in https://github.com/duckdb/duckdb/pull/18174 * fix bug with allowed_paths by @samansmink in https://github.com/duckdb/duckdb/pull/18176 * Reduce lock contention for the instance cache by @NiclasHaderer in https://github.com/duckdb/duckdb/pull/18079 * Check if `GetLastSegment` is not `nullptr` in `ColumnData::RevertAppend` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18171 * [Profiling] Move the client context into more write functions by @taniabogatsch in https://github.com/duckdb/duckdb/pull/17875 * Bump Julia to v1.3.2 by @hmeriann in https://github.com/duckdb/duckdb/pull/18185 * Merge `v1.3-ossivalis` into `main` by @carlopi in https://github.com/duckdb/duckdb/pull/18188 * Parquet reader logging by @lnkuiper in https://github.com/duckdb/duckdb/pull/18172 * Add VS2019 compat flag to Python wheel build by @staticlibs in https://github.com/duckdb/duckdb/pull/18198 * [Parquet][Dev] Update the vendored `parquet.thrift` to `3ce0760` by @Tishj in https://github.com/duckdb/duckdb/pull/18195 * Two-rowID-leaf support in the conflict manager and general refactoring by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18194 * More internal-linkage by @Maxxen in https://github.com/duckdb/duckdb/pull/18177 * Temporary file encryption by @Mytherin in https://github.com/duckdb/duckdb/pull/18208 * Adding temporary file encryption by @ccfelius in https://github.com/duckdb/duckdb/pull/18013 * Skip logging test for smaller block sizes by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18201 * ci(pyodide): enable WASM exceptions on the latest pyodide build by @cpcloud in https://github.com/duckdb/duckdb/pull/18173 * Allow explicit compression for user types by @lnkuiper in https://github.com/duckdb/duckdb/pull/18219 * Get type of encoded `SortKey` from `TupleDataLayout` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18218 * Improve Parquet reader `NULL` statistics and compress all-`NULL` columns using `CompressedMaterialization` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18217 * Internal #5264: NLJ Not Distinct by @hawkfish in https://github.com/duckdb/duckdb/pull/18216 * Bug#18163 Fix STDDEV_SAMP undeterminism by @minaracic in https://github.com/duckdb/duckdb/pull/18210 * [Parquet] Add read support for the `VARIANT` LogicalType by @Tishj in https://github.com/duckdb/duckdb/pull/18187 * Track `DataChunk` memory usage in various places by @lnkuiper in https://github.com/duckdb/duckdb/pull/18191 * Better `NULL` handling in `TupleDataLayout` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18069 * Dictionary functions by @lnkuiper in https://github.com/duckdb/duckdb/pull/18127 * Add support for geoarrow encoded geometries in geoparquet files. by @cfis in https://github.com/duckdb/duckdb/pull/17942 * Improve descriptions of thresholds vars affecting join algorithm selection by @TheHillBright in https://github.com/duckdb/duckdb/pull/17377 * Connect relations that are not in a subgraph, but are still part of the new relation set by @Tmonster in https://github.com/duckdb/duckdb/pull/18182 * [Fix] Don't write empty (partial) blocks for FSST dictionary compression by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18203 * Slightly higher memory limit for test by @lnkuiper in https://github.com/duckdb/duckdb/pull/18235 * Re-add string -> hugeint compressed materialization function by @lnkuiper in https://github.com/duckdb/duckdb/pull/18234 * [Fix] Database path conflict resolution by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18247 * Remove require block size from a batch of tests by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18242 * Add nightly builds for out-of-tree python extension by @evertlammerts in https://github.com/duckdb/duckdb/pull/18239 * Backport DB invalidation flag to ossivalis by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18244 * Bump vcpkg-duckdb-ports and test extensions on Windows 10 default stdlib by @carlopi in https://github.com/duckdb/duckdb/pull/18205 * Add type safety to `FlatVector::GetData<T>`, `ConstantVector::GetData<T>` and `UnifiedVectorFormat::GetData<T>` by @Mytherin in https://github.com/duckdb/duckdb/pull/18256 * [Fix] Adjust test for smaller block sizes by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18255 * Fix integer overflow in sequence vector by @xuke-hat in https://github.com/duckdb/duckdb/pull/18245 * fixes for some minor llvm 20 complaints by @hannes in https://github.com/duckdb/duckdb/pull/18257 * update run_extension_medata_tests.sh by @hmeriann in https://github.com/duckdb/duckdb/pull/17976 * Bunch of loosely connected test/CI fixes by @carlopi in https://github.com/duckdb/duckdb/pull/18254 * disable WebAssembly duckdb-wasm builds job in NightlyTests triggered by 'workflow_dispatch' event by @hmeriann in https://github.com/duckdb/duckdb/pull/18129 * Allow for static libs from extension dependencies to be bundled by @abramk in https://github.com/duckdb/duckdb/pull/18226 * Fix dictionary-related assertions by @lnkuiper in https://github.com/duckdb/duckdb/pull/18260 * Fixes for gcc 15 by @hannes in https://github.com/duckdb/duckdb/pull/18261 * Reduce copy in Vector::Reinterpret by @xuke-hat in https://github.com/duckdb/duckdb/pull/18264 * [Parquet] Add read support for the `VARIANT` LogicalType (with shredded encoding) by @Tishj in https://github.com/duckdb/duckdb/pull/18224 * Expanded autocomplete suggestions by @Dtenwolde in https://github.com/duckdb/duckdb/pull/18243 * Support HUGEINT in printf and format by @xuke-hat in https://github.com/duckdb/duckdb/pull/13277 * Move aarch64 / arm64 to native github runner by @evertlammerts in https://github.com/duckdb/duckdb/pull/18269 * Bump vcpkg-duckdb-ports to solve OSX linking by @carlopi in https://github.com/duckdb/duckdb/pull/18268 * Add support for RETURNING to MERGE INTO by @Mytherin in https://github.com/duckdb/duckdb/pull/18271 * Use set for row ID scanning during index scans by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18274 * Use DuckDB cast infrastructure in fmt for new uhugeint/hugeint code by @Mytherin in https://github.com/duckdb/duckdb/pull/18275 * [Fix] Adjust test to run with different block sizes by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18277 * Use `FromEpochSeconds` instead of `FromTimeT` in `FileSystem::GetLastModifiedTime` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18281 * Add target for installing Python deps. by @xevix in https://github.com/duckdb/duckdb/pull/18285 * backport 'Unit Tester Configuration' pt2 by @c-herrewijn in https://github.com/duckdb/duckdb/pull/18282 * backport 'Unit Tester Configuration' by @c-herrewijn in https://github.com/duckdb/duckdb/pull/18263 * Fixup Main.yml for v1.3-ossivalis post https://github.com/duckdb/duckdb/pull/18282 by @carlopi in https://github.com/duckdb/duckdb/pull/18289 * SHOW TABLES FROM <qualified_name> by @xevix in https://github.com/duckdb/duckdb/pull/18179 * [Unittester] Add autoloading option by @carlopi in https://github.com/duckdb/duckdb/pull/18290 * Merge ossivalis into main by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18272 * resolve hidden merge conflict with duplicate db name in json configs by @c-herrewijn in https://github.com/duckdb/duckdb/pull/18292 * Bump vcpkg-duckdb-ports, now fixing also mingw by @carlopi in https://github.com/duckdb/duckdb/pull/18300 * [Fix] Missing block when renaming fields by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18293 * [Arrow] Fix unused static function warning by @Tishj in https://github.com/duckdb/duckdb/pull/18278 * feat: Parquet extension add row_group_compressed_size by @mapleFU in https://github.com/duckdb/duckdb/pull/18294 * [Parquet][Write] Fix timestamp sec writes to parquet by @Tishj in https://github.com/duckdb/duckdb/pull/18273 * bump httpfs by @Tmonster in https://github.com/duckdb/duckdb/pull/18258 * [Clang Tidy] Fix missing includes in `patas_scan.hpp` by @Tishj in https://github.com/duckdb/duckdb/pull/18276 * New Arrow C-API by @pdet in https://github.com/duckdb/duckdb/pull/18246 * Skip test/sql/copy/s3/url_encode.test due to httpfs update by @carlopi in https://github.com/duckdb/duckdb/pull/18317 * Make storage-version a test parameter by @Mytherin in https://github.com/duckdb/duckdb/pull/18324 * Backport #18254 by @carlopi in https://github.com/duckdb/duckdb/pull/18306 * feat: making Parquet write RowGroup.total_compressed_size by @mapleFU in https://github.com/duckdb/duckdb/pull/18307 * add the from-table-function as parameter to copy-from-bind by @peterboncz in https://github.com/duckdb/duckdb/pull/18004 * Python external dispatch param fixes by @evertlammerts in https://github.com/duckdb/duckdb/pull/18343 * Aarch64 backport by @evertlammerts in https://github.com/duckdb/duckdb/pull/18345 * Fix debug error in join order optimizer by @Tmonster in https://github.com/duckdb/duckdb/pull/18344 * [Fix] Block verification for add and drop field info by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18302 * download Real Nest data in quiet mode by @hmeriann in https://github.com/duckdb/duckdb/pull/18346 * Fix condition indexes in join filter pushdown by @Damon07 in https://github.com/duckdb/duckdb/pull/18341 * [unittest] - fix doubled error headers on `Unexpected failure` by @hmeriann in https://github.com/duckdb/duckdb/pull/18314 * Extend PEG parser grammar by @Dtenwolde in https://github.com/duckdb/duckdb/pull/18221 * [C API] Expose expressions and use them in scalar function binding by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18142 * Restore OSX tests, moving them to single `--autoloading available` step by @carlopi in https://github.com/duckdb/duckdb/pull/18335 * Add support for checkpointing in-memory tables by @Mytherin in https://github.com/duckdb/duckdb/pull/18348 * Revert "[unittest] - fix doubled error headers on `Unexpected failure`" by @Mytherin in https://github.com/duckdb/duckdb/pull/18355 * Python external dispatch param fixes by @evertlammerts in https://github.com/duckdb/duckdb/pull/18359 * Re-enable url-encode test by @Tmonster in https://github.com/duckdb/duckdb/pull/18360 * Enable stack traces on linux for bundled libraries by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18363 * Split up out-of-tree extensions into separate files, and allow out-of-tree extensions to be built using BUILD_EXTENSIONS={ext_name} by @Mytherin in https://github.com/duckdb/duckdb/pull/18357 * Pass `AttachOptions` to `attach` method, and turn `StorageExtensionInfo` into an `optional_ptr` by @Mytherin in https://github.com/duckdb/duckdb/pull/18368 * Merge `v1.3-ossivalis` into `main` by @carlopi in https://github.com/duckdb/duckdb/pull/18364 * More robustness around deprecated extension settings by @carlopi in https://github.com/duckdb/duckdb/pull/18353 * Add missing ninja to workflow file by @Dtenwolde in https://github.com/duckdb/duckdb/pull/18373 * bump httpfs by @Tmonster in https://github.com/duckdb/duckdb/pull/18380 * Re-enable but deprecate CORE_EXTENSIONS in CMakeLists.txt by @evertlammerts in https://github.com/duckdb/duckdb/pull/18377 * Uncomment skipped decimal REE tests by @amoeba in https://github.com/duckdb/duckdb/pull/18372 * add option 'block_size' to test configs by @c-herrewijn in https://github.com/duckdb/duckdb/pull/18347 * [chore] Fixup side-effects from 8cf9ed43b60 by @carlopi in https://github.com/duckdb/duckdb/pull/18385 * Bump httpfs by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18388 * Re-use table metadata when table is not altered during checkpoint by @Mytherin in https://github.com/duckdb/duckdb/pull/18390 * Approx database count system function by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18392 * Re-use metadata of unaltered row groups when checkpointing a table by @Mytherin in https://github.com/duckdb/duckdb/pull/18395 * Correct and consistent integer arithmetic error messages by @soerenwolfers in https://github.com/duckdb/duckdb/pull/18393 * Record whether or not cross products are implicit or not, and use this for converting queries back to SQL by @Mytherin in https://github.com/duckdb/duckdb/pull/18394 * CI: Fix Discussion mirroring by @szarnyasg in https://github.com/duckdb/duckdb/pull/18397 * Store extra metadata blocks in RowGroupPointer, and only flush dirty Metadata blocks by @Mytherin in https://github.com/duckdb/duckdb/pull/18398 * Internal #3273: Window Hashed Sort by @hawkfish in https://github.com/duckdb/duckdb/pull/18337 * Wrap runner.ExecuteFile, otherwise cleanup is not properly performed by @carlopi in https://github.com/duckdb/duckdb/pull/18400 * [BUGFIX] Update delim offset for RHS of DELIM JOIN when correlated column is in RHS of Cross product by @Tmonster in https://github.com/duckdb/duckdb/pull/18375 * CI: Add separate job for discussion mirroring by @szarnyasg in https://github.com/duckdb/duckdb/pull/18407 * [ Python SQLLogic Tester ] Add `MERGE_INTO` statement to duckdb python by @hmeriann in https://github.com/duckdb/duckdb/pull/18402 * Remove incorrect assertion by @Mytherin in https://github.com/duckdb/duckdb/pull/18404 * Internal #5294: TIME_NS C API by @hawkfish in https://github.com/duckdb/duckdb/pull/18215 * Add DuckLake back in by @Mytherin in https://github.com/duckdb/duckdb/pull/18405 * Add support for table_constraints of AdbcConnectionGetObjects() by @kou in https://github.com/duckdb/duckdb/pull/18181 * Merge `v1.3-ossivalis` in `main` by @carlopi in https://github.com/duckdb/duckdb/pull/18401 * feat: remove anything following `?` in database name by @rustyconover in https://github.com/duckdb/duckdb/pull/18417 * Correctly fetch only base column data in ColumnData::FetchUpdateData by @Mytherin in https://github.com/duckdb/duckdb/pull/18423 * Refactor extension CI to use extension-ci-tools by @samansmink in https://github.com/duckdb/duckdb/pull/18361 * Internal #5367: SortedAggregateFunction Sort Update by @hawkfish in https://github.com/duckdb/duckdb/pull/18408 * Internal #5368: WindowNaiveAggregator Sort Update by @hawkfish in https://github.com/duckdb/duckdb/pull/18409 * [Fix] Block size nightly by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18425 * [Chore] Tidy test configs by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18426 * Include pyodide build configuration by @rgbkrk in https://github.com/duckdb/duckdb/pull/18183 * Parquet: add row-group ordinal during writing encryption by @mapleFU in https://github.com/duckdb/duckdb/pull/18433 * [Fix] Reset segment memory when initialising new Prefix by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18441 * Update pyodide build to 0.28.0 by @rgbkrk in https://github.com/duckdb/duckdb/pull/18446 * Add support for "template" types by @Maxxen in https://github.com/duckdb/duckdb/pull/18410 * Internal #5384: WindowDistinctAggregator Sort Update by @hawkfish in https://github.com/duckdb/duckdb/pull/18442 * [Chore] Improve skipped tests in test config and add verify_fetch_row config by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18436 * Buffer index appends during WAL replay by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18313 * Add support for generic settings, and move many settings over to generic settings by @Mytherin in https://github.com/duckdb/duckdb/pull/18447 * Internal #5385: WindowMergeSortTree Sort Update by @hawkfish in https://github.com/duckdb/duckdb/pull/18461 * Bump postgres to latest main by @Mytherin in https://github.com/duckdb/duckdb/pull/18464 * Merge ossivalis by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18456 * Internal #5366: WindowDeltaScanner by @hawkfish in https://github.com/duckdb/duckdb/pull/18468 * SUM and + Operator for Varints by @pdet in https://github.com/duckdb/duckdb/pull/18424 * [Fix] Rework transaction logic in commit, rollback and checkpoint paths by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18474 * re-nable extensions in invokeci by @samansmink in https://github.com/duckdb/duckdb/pull/18476 * Internal #5384: Window Sorting Polish by @hawkfish in https://github.com/duckdb/duckdb/pull/18484 * Unify `ON CONFLICT` and `MERGE INTO` by @Mytherin in https://github.com/duckdb/duckdb/pull/18480 * More insights around dict_fsst compression failure by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18475 * Change ctrl-a/ctrl-e to move to start/end of line, not buffer by @tpot in https://github.com/duckdb/duckdb/pull/18490 * add delta linux back to ci by @samansmink in https://github.com/duckdb/duckdb/pull/18491 * Fix accidental internal exception in type transformation by @hannes in https://github.com/duckdb/duckdb/pull/18492 * [Profiling] Add client context into read functions by @maiadegraaf in https://github.com/duckdb/duckdb/pull/18438 * julia: config improvements by @aplavin in https://github.com/duckdb/duckdb/pull/17585 * fix: add missing space in AttachInfo::ToString() by @rustyconover in https://github.com/duckdb/duckdb/pull/18500 * Merge ossivalis by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18502 * Change UNICODE to UTF8 by @sheldonrobinson in https://github.com/duckdb/duckdb/pull/17586 * Fix: Remove overly strict assertion on empty string value by @Dtenwolde in https://github.com/duckdb/duckdb/pull/18504 * Fix several bugs/fuzzer issues by @Mytherin in https://github.com/duckdb/duckdb/pull/18503 * Allow expressions to be used in ATTACH / COPY options by @Mytherin in https://github.com/duckdb/duckdb/pull/18515 * Remove `immediate_transaction_mode` from DB config options by @jeewonhh in https://github.com/duckdb/duckdb/pull/18516 * Temporarily excluding `Build Pyodide wheel` for Python 3.11 because it fails to build `WASM` wheels by @hmeriann in https://github.com/duckdb/duckdb/pull/18508 * ParserException for Pragma with named parameters by @Dtenwolde in https://github.com/duckdb/duckdb/pull/18506 * Add verify fetch row config to Main.yml by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18478 * Adding WITH ORDINALITY to DuckDB by @niykko in https://github.com/duckdb/duckdb/pull/16581 * When tracking evicted_data_per_tag, track actual size on disk after temp file compression by @Mytherin in https://github.com/duckdb/duckdb/pull/18521 * Fix: Write the salt together with the HT offset when determining the value for key comparison by @gropaul in https://github.com/duckdb/duckdb/pull/18374 * Fix incorrect character encoding in GetLastErrorAsString on Windows by @soutong in https://github.com/duckdb/duckdb/pull/18431 * Dynamically determine dictionary size limit in Parquet writer (if unset) by @lnkuiper in https://github.com/duckdb/duckdb/pull/18356 * Internal #16560: Numeric TRUNC Precision by @hawkfish in https://github.com/duckdb/duckdb/pull/18511 * Consistently detect JSON schema indepent of number of threads by @lnkuiper in https://github.com/duckdb/duckdb/pull/18522 * ALP test: skip TPC-DS 67 - it is not consistent with floating point numbers by @Mytherin in https://github.com/duckdb/duckdb/pull/18528 * [Varint] Negation, Subtraction and Over/under-flow checking by @pdet in https://github.com/duckdb/duckdb/pull/18477 * fix: support both field orders for variant struct by @samansmink in https://github.com/duckdb/duckdb/pull/18532 * Add CAPI to retrieve client context for table functions by @VGSML in https://github.com/duckdb/duckdb/pull/18520 * Add `StatementVerifier` for `EXPLAIN` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18529 * Use global index, not local id when creating filters in `MultiFileColumnMapper` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18537 * Add support for explicit clean-up routine in test config, and exit multi-statement execution when an error is encountered by @Mytherin in https://github.com/duckdb/duckdb/pull/18539 * fix: improve handling variant nulls and nested types by @samansmink in https://github.com/duckdb/duckdb/pull/18538 * Allow overriding openssl version for FIPS compliance by @abramk in https://github.com/duckdb/duckdb/pull/18499 * Unittester: Add the `--sort-style` parameter that allows a fallback comparison where results are sorted according to a given sort-style by @Mytherin in https://github.com/duckdb/duckdb/pull/18542 * Restore missing `test/configs/small_block_size.json` file by @hmeriann in https://github.com/duckdb/duckdb/pull/18507 * [Fix] Follow-up PR to only delete unique row IDs by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18545 * [ART] Node::Free refactoring by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18544 * Implement special-case `VARCHAR` to `JSON[]` casts and vice versa by @lnkuiper in https://github.com/duckdb/duckdb/pull/18541 * Check if `heap_block_ids` is empty before getting start/end when destroying chunks in `TupleDataCollection` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18556 * optimize/parquet: generate movable types for parquet by @mapleFU in https://github.com/duckdb/duckdb/pull/18510 * [easy] [no-op] Minor optimization on iterator lookup by @dentiny in https://github.com/duckdb/duckdb/pull/15349 * Fixing compilation with -std=cpp23 by @hannes in https://github.com/duckdb/duckdb/pull/18557 * Add compile option standalone-debug for clang by @flashmouse in https://github.com/duckdb/duckdb/pull/17433 * Rename the Varint type to Bignum by @pdet in https://github.com/duckdb/duckdb/pull/18547 * [Indexes] Buffer-managed indexes part 3: segment handle for Node48 and Node256 by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18567 * fix: add formatting to explain row counts by @rustyconover in https://github.com/duckdb/duckdb/pull/18566 * [CSV Sniffer] Fixing bug of not properly setting skipped rows from sniffer by @pdet in https://github.com/duckdb/duckdb/pull/18555 * [Fix] Tidy check ossivalis by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18583 * [Fix] Adjust shrink threshold back to original count > SHRINK_THRESHOLD by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18582 * Flip left/right delim join based on cardinalities by @lnkuiper in https://github.com/duckdb/duckdb/pull/18552 * fix: use thousands separator and decimal for row counts in`duckbox` output format by @rustyconover in https://github.com/duckdb/duckdb/pull/18564 * Force `LIST`/`ARRAY` child vectors on a Parquet single page by @lnkuiper in https://github.com/duckdb/duckdb/pull/18578 * String dictionary hash cache by @lnkuiper in https://github.com/duckdb/duckdb/pull/18580 * fix: libduckdb.so missing soversion by @strophy in https://github.com/duckdb/duckdb/pull/18305 * Pushdown filters on coalesced outer join keys compared for equality under the join condition by @matteobilardi in https://github.com/duckdb/duckdb/pull/18169 * Adds a function for updating and adding values in a struct by @teaguesterling in https://github.com/duckdb/duckdb/pull/15533 * fix hidden merge conflict by @hannes in https://github.com/duckdb/duckdb/pull/18589 * Increment storage version to enable `DICT_FSST` in benchmark file by @lnkuiper in https://github.com/duckdb/duckdb/pull/18588 * [Fix] Hidden test failure in test_struct_update.test by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18598 * correctly setting log transaction id in ThreadContext by @xuke-hat in https://github.com/duckdb/duckdb/pull/18536 * Backport renaming a config name `small_block_size.json` to `block_size_16kB` in NightlyTests by @hmeriann in https://github.com/duckdb/duckdb/pull/18581 * Update README.md by @matthew-wright07 in https://github.com/duckdb/duckdb/pull/18614 * [Test] Fix test case and a benchmark by @hmeriann in https://github.com/duckdb/duckdb/pull/18610 * [CI] Don't zip and upload Code Coverage tests results when Code Coverage got cancelled by @hmeriann in https://github.com/duckdb/duckdb/pull/18607 * [Profiling] Add client context into more read functions by @maiadegraaf in https://github.com/duckdb/duckdb/pull/18514 * bump httpfs by @Tmonster in https://github.com/duckdb/duckdb/pull/18591 * Fix serialization backwards compatability for varargs functions by @Maxxen in https://github.com/duckdb/duckdb/pull/18596 * Issue #18631: Streaming Windowed Quantile by @hawkfish in https://github.com/duckdb/duckdb/pull/18636 * parquet/parquet_multi_file_info.cpp: fix move from stack by @carlopi in https://github.com/duckdb/duckdb/pull/18634 * Adjust filter pushdown to latest polars release by @pdet in https://github.com/duckdb/duckdb/pull/18624 * Re-add `hugeint` to `__internal_compress_string` by @jeewonhh in https://github.com/duckdb/duckdb/pull/18622 * Add Field IDS to multi file reader for positional deletes by @Tmonster in https://github.com/duckdb/duckdb/pull/18617 * [CSV Sniffer] Fix type detection issue with union and empty columns by @pdet in https://github.com/duckdb/duckdb/pull/18606 * [ART] ART::Erase refactoring by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18595 * wrap httplib ::max() call in `WIN_32` check by @Tmonster in https://github.com/duckdb/duckdb/pull/18590 * Add enable verification config run by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18467 * feat: add ETA to progress bar in DuckDB CLI by @rustyconover in https://github.com/duckdb/duckdb/pull/18575 * Add "Hash Zero" verification CI run by @lnkuiper in https://github.com/duckdb/duckdb/pull/18623 * Make more configs into generic settings by @jeewonhh in https://github.com/duckdb/duckdb/pull/18592 * bump avro to v1.4 by @Tmonster in https://github.com/duckdb/duckdb/pull/18434 * bump spatial (on main) by @Maxxen in https://github.com/duckdb/duckdb/pull/18197 * Change arrow() to export record batch reader by @pdet in https://github.com/duckdb/duckdb/pull/18642 * [Fix] Prevent logger deadlock by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18637 * Remove `PRAGMA enable_verification` by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18645 * Add 1.4 release codename by @hannes in https://github.com/duckdb/duckdb/pull/18652 * Python test runner: Fix result check for `COPY ... RETURN_STATS` queries by @Flogex in https://github.com/duckdb/duckdb/pull/18625 * Merge ossivalis into main by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18644 * CLI: Make ETA more of an estimate, and support large_row_rendering for footers by @Mytherin in https://github.com/duckdb/duckdb/pull/18656 * Remove more `PRAGMA enable_verification` by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18664 * [CI] skip building encodings extension in InvokeCI by @hmeriann in https://github.com/duckdb/duckdb/pull/18655 * Python test runner: Fix hash comparison error output by @Flogex in https://github.com/duckdb/duckdb/pull/18626 * [Dev] Add script to create patch from changes in an extension repository by @Tishj in https://github.com/duckdb/duckdb/pull/18620 * Correctly set weights in reservoir sample when switch to slow sampling by @xuke-hat in https://github.com/duckdb/duckdb/pull/18563 * Internal #5366: Window Interrupt Arguments by @hawkfish in https://github.com/duckdb/duckdb/pull/18651 * Remove `PRAGMA enable_verification` in more tests by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18670 * [ Python SQLLogic Tester ] Add `MERGE_INTO` to `statement.type` enum in `result.py` by @hmeriann in https://github.com/duckdb/duckdb/pull/18675 * Load pandas in import cache before binding by @evertlammerts in https://github.com/duckdb/duckdb/pull/18658 * Internal #5662: IEJoin Test Plans by @hawkfish in https://github.com/duckdb/duckdb/pull/18680 * Correctly allocate uncompressed string data in ZSTD for many giant strings by @Mytherin in https://github.com/duckdb/duckdb/pull/18678 * Grab lock and double-check that column is not loaded in MoveToCollection by @Mytherin in https://github.com/duckdb/duckdb/pull/18677 * fix error message related to wrong memory unit by @LiranBri in https://github.com/duckdb/duckdb/pull/18671 * [CI] Temporarily skip triggering `R Package Windows (Extensions)` job by @hmeriann in https://github.com/duckdb/duckdb/pull/18628 * Fix the issue where delta_for isn't used in bitpacking when for is unavailable by @xuke-hat in https://github.com/duckdb/duckdb/pull/18616 * Add `date_trunc()` simplification rules by @rcurtin in https://github.com/duckdb/duckdb/pull/18457 * Expected errors 2053 by @hmeriann in https://github.com/duckdb/duckdb/pull/14213 * Internal #5366: Window State Arguments by @hawkfish in https://github.com/duckdb/duckdb/pull/18676 * Add WAL test config run by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18683 * Using a different workflow to release the python package by @evertlammerts in https://github.com/duckdb/duckdb/pull/18685 * Make sure parse errors are wrapped in ErrorData by @evertlammerts in https://github.com/duckdb/duckdb/pull/18682 * [Python SQLLogicTest] Add `test/sql/pragma/profiling/test_profiling_all.test` to the SKIPPED_TESTS set by @hmeriann in https://github.com/duckdb/duckdb/pull/18689 * Issue #18457: DateTrunc Simplification Warnings by @hawkfish in https://github.com/duckdb/duckdb/pull/18687 * Expected errors 2053 by @hmeriann in https://github.com/duckdb/duckdb/pull/18695 * Hold row group lock for entire call of MoveToCollection by @Mytherin in https://github.com/duckdb/duckdb/pull/18694 * Unplug python (in ossivalis) by @evertlammerts in https://github.com/duckdb/duckdb/pull/18699 * Correctly handle collations for IN (subquery) by @Mytherin in https://github.com/duckdb/duckdb/pull/18698 * Move attached databases from a CatalogSet to a dedicated map of shared pointers by @Mytherin in https://github.com/duckdb/duckdb/pull/18693 * Make ART construction iterative via ARTBuilder by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18702 * [Fix] Correctly handle table and index chunks in WAL replay buffering by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18700 * Python-style positional/named arguments for macro's by @lnkuiper in https://github.com/duckdb/duckdb/pull/18684 * Internal #3273: Hashed Sort States by @hawkfish in https://github.com/duckdb/duckdb/pull/18690 * Add Option to Allocate Using an Arena in `string_t` by @maiadegraaf in https://github.com/duckdb/duckdb/pull/17992 * Fix issue with materialized CTE optimization in flatten_dependent_join by @kryonix in https://github.com/duckdb/duckdb/pull/18714 * [Profiling] Add Profiling to Read Function by @maiadegraaf in https://github.com/duckdb/duckdb/pull/18661 * Correctly throw an error when too few columns are supplied in MERGE INTO INSERT by @Mytherin in https://github.com/duckdb/duckdb/pull/18715 * Improved grammar generation script by @NiclasHaderer in https://github.com/duckdb/duckdb/pull/18716 * #Fix 18558: add row_group scan fast path by @flashmouse in https://github.com/duckdb/duckdb/pull/18686 * Added support for blob<->uuid conversions by @dioptre in https://github.com/duckdb/duckdb/pull/18027 * Minor fixes for other catalogs - mostly checking `IsDuckTable()` for unsupported operations by @Mytherin in https://github.com/duckdb/duckdb/pull/18720 * Fix PIVOT in multiple statements by @evertlammerts in https://github.com/duckdb/duckdb/pull/18729 * Internal #5669: Loop Join Thresholds by @hawkfish in https://github.com/duckdb/duckdb/pull/18733 * feat: enhance .tables command with schema disambiguation and filtering by @shivampr in https://github.com/duckdb/duckdb/pull/18641 * Add (CSV) file logger by @samansmink in https://github.com/duckdb/duckdb/pull/17692 * Use 1-based indexing for SQL-based JSON array extraction by @lnkuiper in https://github.com/duckdb/duckdb/pull/18735 * [unittest] SkipLoggingSameError() to make unittester report one failure per case by @hmeriann in https://github.com/duckdb/duckdb/pull/18270 * fix timetravel for default tables by @samansmink in https://github.com/duckdb/duckdb/pull/18240 * [C API] Function to set a copy callback for bind data by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18739 * Secrets: if serialization_type is not specified, assume it's a key value secret by @Mytherin in https://github.com/duckdb/duckdb/pull/18743 * Merge ossivalis into main by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18719 * Use correct type for pushing collations in subqueries by @Mytherin in https://github.com/duckdb/duckdb/pull/18744 * Add OS X notarization for DuckDB CLI and libduckdb.dylib by @hannes in https://github.com/duckdb/duckdb/pull/18747 * Add missing expected errors to the test cases by @hmeriann in https://github.com/duckdb/duckdb/pull/18746 * removed placeholder client directories for node and jdbc, its been > 1 yr by @hannes in https://github.com/duckdb/duckdb/pull/18757 * Append using a SQL query, instead of directly appending to a base table, and support user-provided queries through the QueryAppender by @Mytherin in https://github.com/duckdb/duckdb/pull/18738 * Backport #18374 to `v1.3-ossivalis` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18752 * Add leak suppressions to nightly runs by @Mytherin in https://github.com/duckdb/duckdb/pull/18748 * Remove separate WAL encryption flag by @Mytherin in https://github.com/duckdb/duckdb/pull/18750 * Fixing lazy polars execution on query result by @pdet in https://github.com/duckdb/duckdb/pull/18749 * [Profiling] Add Profiling to Write Function by @maiadegraaf in https://github.com/duckdb/duckdb/pull/18724 * Extensions.yml should also check converted_to_draft by @carlopi in https://github.com/duckdb/duckdb/pull/18754 * Minor logging fixes and more benchmarking by @samansmink in https://github.com/duckdb/duckdb/pull/18755 * Add missing expected errors to the test cases (next chunk) by @hmeriann in https://github.com/duckdb/duckdb/pull/18753 * Refactor read_blob and read_text to use MultiFileFunction. by @xevix in https://github.com/duckdb/duckdb/pull/18706 * Add support for auto-globbing within a directory: if no matches are found for a specific path, we retry with `/**/*.[ext]` appended by @Mytherin in https://github.com/duckdb/duckdb/pull/18760 * Fix radix partitioning with more than 10 bits by @ctsk in https://github.com/duckdb/duckdb/pull/18761 * Fix index resolution when querying table with index via view by @mach-kernel in https://github.com/duckdb/duckdb/pull/18319 * Fix Path Typo in Extension's CMake Warning Message by @beryllw in https://github.com/duckdb/duckdb/pull/18766 * Make `duckdb_log` return a TIMESTAMP_TZ by @Mytherin in https://github.com/duckdb/duckdb/pull/18768 * Revert "Use 1-based indexing for SQL-based JSON array extraction" by @Mytherin in https://github.com/duckdb/duckdb/pull/18758 * [CI] Adjust test configs post logger PR by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18771 * [Test Fix] Forward output to file by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18772 * Propagate `DUCKDB_*_VERSION` in extensions and tests by @Y-- in https://github.com/duckdb/duckdb/pull/18774 * Add `file_size_bytes` (de-)serialization by @lnkuiper in https://github.com/duckdb/duckdb/pull/18775 * Use microsecond resolution for printing the current timestamp by @Mytherin in https://github.com/duckdb/duckdb/pull/18776 * Improve error messages for merge / vector reference by @Mytherin in https://github.com/duckdb/duckdb/pull/18777 * Move row id logic to separate RowIdColumnData class instead of inlining it into the RowGroup by @Mytherin in https://github.com/duckdb/duckdb/pull/18780 * Treat ENABLE_EXTENSION_AUTOINSTALL as the BOOL that it is by @evertlammerts in https://github.com/duckdb/duckdb/pull/18778 * Add `memory_limit` parameter to `benchmark_runner`/`test_runner.py` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18790 * fix: improve speed of GetValue() for STRUCT type by @rustyconover in https://github.com/duckdb/duckdb/pull/18785 * Internal #3273: Parallel Window Masks by @hawkfish in https://github.com/duckdb/duckdb/pull/18731 * Task Scheduler: track exact task count, and re-signal on dequeue failure if there are tasks left by @Mytherin in https://github.com/duckdb/duckdb/pull/18792 * fix: coalesce query progress updates to reduce terminal writes by @rustyconover in https://github.com/duckdb/duckdb/pull/18672 * Support expressions as COPY file target by @Mytherin in https://github.com/duckdb/duckdb/pull/18795 * Remove everything python-package related by @evertlammerts in https://github.com/duckdb/duckdb/pull/18789 * Improve autocomplete suggestions by @Dtenwolde in https://github.com/duckdb/duckdb/pull/18773 * bump httpfs so it includes curl option by @Tmonster in https://github.com/duckdb/duckdb/pull/18691 * Issue #18767: Ignore Timestamp Offsets by @hawkfish in https://github.com/duckdb/duckdb/pull/18794 * Fixup progress_bar: avoid converting doubles into int32_t unchecked by @carlopi in https://github.com/duckdb/duckdb/pull/18800 * [chore] Fixup tidy-check on src/logging/log_manager.cpp by passing const & by @carlopi in https://github.com/duckdb/duckdb/pull/18801 * Internal #3273: Hashed Sort Callbacks by @hawkfish in https://github.com/duckdb/duckdb/pull/18796 * Typed macro parameters by @lnkuiper in https://github.com/duckdb/duckdb/pull/18786 * Fix some unindented interactions between `EMPTY_RESULT_PULLUP` and `MATERIALIZED` CTEs by @kryonix in https://github.com/duckdb/duckdb/pull/18805 * Add support for non-aggregate window functions by @Maxxen in https://github.com/duckdb/duckdb/pull/18788 * Expected errors 2053 by @hmeriann in https://github.com/duckdb/duckdb/pull/18810 * Test runner: Expand '{UUID}' into a random UUID by @carlopi in https://github.com/duckdb/duckdb/pull/18809 * Provide failing file name in Parquet reader error messages by @Mytherin in https://github.com/duckdb/duckdb/pull/18814 * [CI] install libcurl4-openssl-dev with apt-get by @hmeriann in https://github.com/duckdb/duckdb/pull/18811 * fix: Add COLLATE NOCASE support to strpos function by @shivampr in https://github.com/duckdb/duckdb/pull/18819 * Add callback to get a list of copy options, use this to provide suggestions and to erase options from import that are only used during exporting by @Mytherin in https://github.com/duckdb/duckdb/pull/18812 * For BC reasons - keep VARINT as alias for BIGNUM by @Mytherin in https://github.com/duckdb/duckdb/pull/18821 * [Fix] Bug in fixed-size buffer when throwing out-of-memory by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18769 * Re-add accidentally removed check if copy_from is supported by @Mytherin in https://github.com/duckdb/duckdb/pull/18824 * Fix format-fix runs on Linux by @staticlibs in https://github.com/duckdb/duckdb/pull/18827 * Extensions.yml: Pass down save_cache to inner workflows by @carlopi in https://github.com/duckdb/duckdb/pull/18828 * Fix: Preserve database configuration flags for tab completion in DuckDB shell by @rustyconover in https://github.com/duckdb/duckdb/pull/18482 * Ensure a WAL file matches the DB file and checkpoint iteration by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18823 * fix: sanitize input for enable_logging by @samansmink in https://github.com/duckdb/duckdb/pull/18830 * fix: silence warnings about signed/unsigned conversions. by @rustyconover in https://github.com/duckdb/duckdb/pull/18835 * Avoid expensive checkpoints and write amplification by appending row groups, and limiting vacuum operations for the last number of row groups by @Mytherin in https://github.com/duckdb/duckdb/pull/18829 * Fix/run function in transaction by @Evannnnnnnn in https://github.com/duckdb/duckdb/pull/18741 * add appender to concurrent test by @c-herrewijn in https://github.com/duckdb/duckdb/pull/18721 * Add support for reading/writing native parquet geometry types by @Maxxen in https://github.com/duckdb/duckdb/pull/18832 * Don't notify Py pkg when override git describe is set by @evertlammerts in https://github.com/duckdb/duckdb/pull/18843 * Avoid printing '99 hours', given in most cases that means estimate is… by @carlopi in https://github.com/duckdb/duckdb/pull/18839 * Add the `VARIANT` LogicalType by @Tishj in https://github.com/duckdb/duckdb/pull/18609 * Document storage version flag in CLI + minor rendering fix by @Mytherin in https://github.com/duckdb/duckdb/pull/18841 * Ignore null verification for statistics on structs by @d-justen in https://github.com/duckdb/duckdb/pull/18813 * Add OnBeginExtensionLoad callback by @Mytherin in https://github.com/duckdb/duckdb/pull/18842 * Bump MySQL/Postgres/SQLite by @Mytherin in https://github.com/duckdb/duckdb/pull/18848 * Merge ossivalis into main by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18844 * Add test_env to unit tester by @pdet in https://github.com/duckdb/duckdb/pull/18847 * WAL <> DB File Match Fixes by @Mytherin in https://github.com/duckdb/duckdb/pull/18849 * Make ATTACH OR REPLACE atomic, keep list of used databases in MetaTransaction by @Mytherin in https://github.com/duckdb/duckdb/pull/18850 * Fix `NULL` path for `json_each`/`json_tree` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18852 * No more `wal_encryption` flag by @jeewonhh in https://github.com/duckdb/duckdb/pull/18851 * Bump Ducklake by @pdet in https://github.com/duckdb/duckdb/pull/18825 * Add more encryption modes CTR and CBC by @hannes in https://github.com/duckdb/duckdb/pull/18619 * Centralize attached database paths in a DatabaseFilePathManager which is shared across databases created through the same DBInstanceCache by @Mytherin in https://github.com/duckdb/duckdb/pull/18857 * Hold segment lock during GetColumnSegmentInfo by @Mytherin in https://github.com/duckdb/duckdb/pull/18859 * update duckdb azure extension ref for 1.4.0 by @benfleis in https://github.com/duckdb/duckdb/pull/18868 * Expected errors 2053 by @hmeriann in https://github.com/duckdb/duckdb/pull/18864 * Add a FORCE_DEBUG flag to force `-DDEBUG`, similar to FORCE_ASSERT by @Mytherin in https://github.com/duckdb/duckdb/pull/18872 * Bump & remove patches for delta, avro, excel, encodings, fts by @samansmink in https://github.com/duckdb/duckdb/pull/18869 * [minor] Incompatible DB error message: add newline by @carlopi in https://github.com/duckdb/duckdb/pull/18861 * Bump mbedtls to v3.6.4 by @Mytherin in https://github.com/duckdb/duckdb/pull/18871 * Storage fuzzing + several fixes by @Mytherin in https://github.com/duckdb/duckdb/pull/18876 * Update ducdkb iceberg hash by @Tmonster in https://github.com/duckdb/duckdb/pull/18873 * [Test] Small fixes to concurrent attach/detach test by @taniabogatsch in https://github.com/duckdb/duckdb/pull/18862 * Internal #5796: Window Progress by @hawkfish in https://github.com/duckdb/duckdb/pull/18860 * Add `COPY (...) TO ... (FORMAT BLOB)` by @Maxxen in https://github.com/duckdb/duckdb/pull/18840 * Update spatial+vss+sqlsmith in preparation for v1.4 by @Maxxen in https://github.com/duckdb/duckdb/pull/18882 * Avoid automatically checkpointing if the database instance has been invalidated by @Mytherin in https://github.com/duckdb/duckdb/pull/18881 * Add `COPY (FORMAT BLOB)` to Andium too :^) by @Maxxen in https://github.com/duckdb/duckdb/pull/18884 * [C API] Result schema of prepared statements by @hrl20 in https://github.com/duckdb/duckdb/pull/18779 * Json: no reinterpret<size_t*> by @carlopi in https://github.com/duckdb/duckdb/pull/18886 * [Dev] Fix footgun in `string_t::SetSizeAndFinalize` by @Tishj in https://github.com/duckdb/duckdb/pull/18885 * [chore] Bump config test/configs/compressed_in_memory.json to new format by @carlopi in https://github.com/duckdb/duckdb/pull/18888 * bump aws and iceberg by @Tmonster in https://github.com/duckdb/duckdb/pull/18889 * Add rowsort to upsert_default.test by @jeewonhh in https://github.com/duckdb/duckdb/pull/18890 * fixing auto-specifying ciphers and remove double storage by @hannes in https://github.com/duckdb/duckdb/pull/18891 * Expected errors 2053 by @hmeriann in https://github.com/duckdb/duckdb/pull/18892 * Keep base data scan state alive in ColumnData::Update call by @Mytherin in https://github.com/duckdb/duckdb/pull/18893 * Add callback for when an extension fails to load, and also log this by @Mytherin in https://github.com/duckdb/duckdb/pull/18894 * Encryption now encoded as a bit, centralizing in set/getter by @carlopi in https://github.com/duckdb/duckdb/pull/18897 * Bump httpfs to v1.4-andium branch by @carlopi in https://github.com/duckdb/duckdb/pull/18898 * fix: refine query ETA display and Kalman filter stability by @rustyconover in https://github.com/duckdb/duckdb/pull/18880 * Bump inet & aws by @samansmink in https://github.com/duckdb/duckdb/pull/18899 * [chore] Fix amalgamation build in progress_bar by @carlopi in https://github.com/duckdb/duckdb/pull/18910 * Cannot create table from variant yet by @Mytherin in https://github.com/duckdb/duckdb/pull/18912 * In VerifyZeroReaders, get the header size from the buffer we are replacing instead of from the block manager by @Mytherin in https://github.com/duckdb/duckdb/pull/18909 * Fix #18152: avoid auto-detecting hive partitioning with COPY .. FROM by @Mytherin in https://github.com/duckdb/duckdb/pull/18911 * CLI: Correctly move to start of line by @Mytherin in https://github.com/duckdb/duckdb/pull/18920 * Strip question mark parameters from default temporary directory by @Mytherin in https://github.com/duckdb/duckdb/pull/18915 * Move Hash Zero CI run to nightly by @Mytherin in https://github.com/duckdb/duckdb/pull/18925 * Bump Iceberg by @Tmonster in https://github.com/duckdb/duckdb/pull/18917 * Issue template: Add the Python repository by @szarnyasg in https://github.com/duckdb/duckdb/pull/18928 * fix extension size increase by @samansmink in https://github.com/duckdb/duckdb/pull/18923 * [Dev] Fix reference of uninitialized memory in Variant conversion first pass by @Tishj in https://github.com/duckdb/duckdb/pull/18921 * Bump DuckLake to Latest Main by @pdet in https://github.com/duckdb/duckdb/pull/18926 * Make row-group metadata re-use experimental for now by @Mytherin in https://github.com/duckdb/duckdb/pull/18922 * Fix exception propagation in C API by @mlafeldt in https://github.com/duckdb/duckdb/pull/18924 * Bump httpfs by @carlopi in https://github.com/duckdb/duckdb/pull/18930 * Bump ducklake and don't write empty bbox in geoparquet stats by @Maxxen in https://github.com/duckdb/duckdb/pull/18936 * [PROFILING] Fix EXPLAIN ANALYZE returning empty results when PRAGMA enabled_profiling = 'no_output' by @maiadegraaf in https://github.com/duckdb/duckdb/pull/18935 * Http_util can return success for all [200, 300) responses, as well as redirects by @Tmonster in https://github.com/duckdb/duckdb/pull/18940 * Fix TransformStringToLogicalType for enums arrays by @tdoehmen in https://github.com/duckdb/duckdb/pull/18941 * [unittester] Allow overriding data/ folder to custom location by @carlopi in https://github.com/duckdb/duckdb/pull/18929 * Unpin fixed-size sorting keys by @lnkuiper in https://github.com/duckdb/duckdb/pull/18945 * Add missing parameters to `COPY ... (FORMAT JSON)` by @lnkuiper in https://github.com/duckdb/duckdb/pull/18946 * Fixes for encrypted database, make cross-engine encryption work, and expand testing by @hannes in https://github.com/duckdb/duckdb/pull/18951 * fix windows linking issue ducklake by @samansmink in https://github.com/duckdb/duckdb/pull/18953 * bump iceberg by @Tmonster in https://github.com/duckdb/duckdb/pull/18957 * [SQLLogicTest] Detect errors thrown in `LoadExtension` of the `require` statement by @Tishj in https://github.com/duckdb/duckdb/pull/18950 * Don't use `VectorOperations::Copy` for string dictionary hashes by @lnkuiper in https://github.com/duckdb/duckdb/pull/18949 * Fix error reporting in SSLClient by @staticlibs in https://github.com/duckdb/duckdb/pull/18958 * bump spatial by @Maxxen in https://github.com/duckdb/duckdb/pull/18961 * Allow extensions to customize ATTACH OR REPLACE conflict behavior by @ywelsch in https://github.com/duckdb/duckdb/pull/18962 * Unify test runner keyword replacement, and don't run `LOAD [ext]` by default by @Mytherin in https://github.com/duckdb/duckdb/pull/18963 * [chore] Bump httpfs and remove patches by @carlopi in https://github.com/duckdb/duckdb/pull/18965 * Correctly update row group data pointers and root table pointer after checkpoint by @Mytherin in https://github.com/duckdb/duckdb/pull/18966 * Attach: Cleanup duplicate data path handling, and make IF NOT EXISTS no longer abort if we are adding a path with the same name by @Mytherin in https://github.com/duckdb/duckdb/pull/18974 * Bump DuckLake and HTTPFS by @pdet in https://github.com/duckdb/duckdb/pull/18975 * Issue #18971: Empty Unsorted Windows by @hawkfish in https://github.com/duckdb/duckdb/pull/18976 * Check context.interrupted flag in table scan by @Mytherin in https://github.com/duckdb/duckdb/pull/18981 * Only return cgroup memory limit if it's a sane value by @szarnyasg in https://github.com/duckdb/duckdb/pull/18668 * Macro fixes by @lnkuiper in https://github.com/duckdb/duckdb/pull/18992 * ATTACH IF NOT EXISTS - wait until database is fully attached before returning by @Mytherin in https://github.com/duckdb/duckdb/pull/18993 * WALReplay Fix: In UpdateColumn, no longer assume all updates are part of the same vector, but instead verify this and batch updates per vector by @Mytherin in https://github.com/duckdb/duckdb/pull/18999 * Bump iceberg by @Tmonster in https://github.com/duckdb/duckdb/pull/19001 **Full Changelog**: https://github.com/duckdb/duckdb/compare/v1.3.2...v1.4.0