./databases/duckdb, In-process SQL OLAP database management system

[ Image CVSweb ] [ Image Homepage ] [ Image RSS ] [ Image Required by ] [ Image Add to tracker ]


Branch: CURRENT, Version: 1.4.4, Package name: duckdb-1.4.4, Maintainer: ryoon

DuckDB is a high-performance analytical database system. It is
designed to be fast, reliable and easy to use. DuckDB provides a
rich SQL dialect, with support far beyond basic SQL. DuckDB supports
arbitrary and nested correlated subqueries, window functions,
collations, complex types (arrays, structs), and more.


Master sites:

Filesize: 96039.634 KB

Version history: (Expand)


CVS history: (Expand)


   2026-02-01 09:40:05 by Ryo ONODERA | Files touched by this commit (7) | Package updated
Log message:
databases/duckdb,py-duckdb: Update to 1.4.4

* Use separated tarballs for duckdb and py-duckdb.
  The tarball of duckdb does not contain py-duckdb.

Changelog:
1.4.4:
What's Changed

    Cast Fix: Correctly handle negative exponent with a number with a decimal in \ 
VARCHAR -> INTEGER cast by @Mytherin in #20098
    [Storage] Fix NULL filter check for constant segments by @Tishj in #20103
    fixing staged upload for install.duckdb.org - hopefully by @hannes in #20104
    Remove undefined loop by @artjomPlaunov in #20105
    [Test] Adjust concurrent attach-detach test to expect write-write conflict \ 
by @taniabogatsch in #20108
    Fix ALIAS function in filter pushdown to preserve column aliases(#20008) by \ 
@henry8128 in #20106
    Headers missing from http logs by @samansmink in #20030
    Bumping httpfs to include duckdb/duckdb-httpfs#174 by @carlopi in #20145
    Issue #20136: Secondary IGNORE NULLS by @hawkfish in #20153
    Fix minio nightly tests by @c-herrewijn in #20132
    Fix use-after-free in mode aggregate Combine function by @victor-ab in #20146
    Only pushdown varchar if the arrow type is not a string view by \ 
@evertlammerts in #20165
    Quote filters in adbc_get_objects by @evertlammerts in #20172
    Issue #20156: Streaming Window Unions by @hawkfish in #20191
    MergeInto: correctly clean-up buffer and handle non trivial GetData by \ 
@carlopi in #20163
    Fix extentension-ci-tools to latest release version in the v1.4-andium \ 
branch by @carlopi in #20227
    [Chore] Clean up CI nightly run to prevent time outs by @taniabogatsch in #20150
    Bump Julia to v1.4.3 by @maiadegraaf in #20248
    Internal #6881: 2025c Time Zones by @hawkfish in #20258
    Split statements by semicolon by @Dtenwolde in #20174
    [chore] Remove numeric_cast.hpp import and other tidy stuff by \ 
@taniabogatsch in #20278
    [chore] Reduce latency of VARCHAR index creation test by @taniabogatsch in #20277
    Reuse correct table-level metadata during checkpoints by @ywelsch in #20267
    Fix view resolution not being stable if the referenced table lives in a \ 
different schema by @Tishj in #20260
    ConstantOrNullFunction input validity mask overwrite bugfix by \ 
@artjomPlaunov in #20283
    dbgen: use TaskExecutor framework by @Mytherin in #20284
    fix(adbc): return error when setting an empty sql query by @gishor in #20071
    Bump iceberg, and add wasm platforms! by @carlopi in #20205
    _extension_distribution: Pin to v1.4-andium branch of extension-ci-tools by \ 
@carlopi in #20294
    Optimize prepared statement parameter lookups by @EtgarDev in #20252
    Update VectorType in ComputePartitionIndices by @lnkuiper in #20343
    Add some defensive programming in RadixPartitionedHashTable::Combine and \ 
RadixPartitionedHashTable::Finalize by @lnkuiper in #20342
    Increase reserved size for paths in SetPathsInternal by @Flogex in #20340
    Use UTF-16 console output in Windows shell (1.4) by @staticlibs in #20339
    Force repartitioning in RadixPartitionedHashTable::Combine by @lnkuiper in #20357
    Fixup comparison to wrong iterator on abdc's driver by @carlopi in #20360
    [chore] dsdgen generation signed integer overflow fix by @taniabogatsch in #20279
    Give preference do variables set in config by @pdet in #20396
    Add QueryContext also to Write(void *buffer, idx_t nr_bytes), so that \ 
BytesWritten are updated also there by @carlopi in #20393
    Fix Issue #20233: fix function chain in qualify by @ArNine in #20302
    Backport client data cleanup by @taniabogatsch in #20403
    Add v1.4.4 to Storage Version by @maiadegraaf in #20404
    Parquet Reader: Ignore invalid UTF8 in string stats, instead of throwing an \ 
error by @Mytherin in #20405
    Don't add a semicolon to final query when splitting statements by @Dtenwolde \ 
in #20401
    Fixup BRANCHES_TO_BE_CACHED, vars are not available on PRs, so env it is by \ 
@carlopi in #20411
    [Fix] Defensive infinite loop guard and UTF-8 check in C API by \ 
@taniabogatsch in #20348
    Add ducklake, httpfs and iceberg tests so they are run in CI by @carlopi in \ 
#20319
    [Stats] date_trunc stat propagation fix by @Tishj in #20421
    Refactor allowed path sanitize by @hannes in #20346
    Issue #20413: ASOF SEMI/ANTI Bindings by @hawkfish in #20433
    Fix #20410: fix for RIGHT SEMI/ANTI - cannot fully label chain as found if \ 
there are non-equality predicates present in the join condition by @Mytherin in \ 
#20435
    [Fix] Misaligned size in ART prefix count by @taniabogatsch in #20455
    Wrap ccache in own action by @carlopi in #20466
    [Chore] Add ORDER BY to AS OF test by @taniabogatsch in #20465
    Fix segfault in hive partitioning with NULL values by @Schwarf in #20468
    Nightly test encryption fixes by @ccfelius in #20461
    [C API] Fix error data creation by @taniabogatsch in #20451
    Skip concurrent_encrypted_attach due to race in autoloading httpfs by \ 
@carlopi in #20471
    CI fixup: Comparisons needs to be done via strings (since input via \ 
workflow_call is a string) by @carlopi in #20464
    Add unity_catalog to extensions built by duckdb/duckdb by @carlopi in #20445
    Invert the setup of ccache and cleanup_runner by @carlopi in #20429
    bump spatial for andium by @Maxxen in #20479
    Reclaim disk space on MacOS runners by @lnkuiper in #20493
    Adding secure clear functions by @ccfelius in #20285
    rewrite unaligned scan by @artjomPlaunov in #20474
    Issue #20470: TIMESTAMPTZ to DATE by @hawkfish in #20498
    Reset cached dictionaries in TRY expression by @Maxxen in #20452
    [Copy] Fix #20324 partition_by option binding by @Tishj in #20509
    Bump multiple extensions by @maiadegraaf in #20504
    update azure ref for v1.4-andium by @benfleis in #20506
    [Fix] Directly retrieve the logical column index during MERGE INTO binding \ 
by @taniabogatsch in #20503
    Sanitize pragmas by @samansmink in #20514
    Bump httpfs, ducklake and postgres by @carlopi in #20518
    Revert vortex bump for v1.4.4 by @taniabogatsch in #20527
    Bump VSS by @taniabogatsch in #20542
    Bump Excel by @maiadegraaf in #20540
    Fix Issue #20233: Fix function chain in having and merge to v1.4 by @ArNine \ 
in #20532
    bump iceberg by @Tmonster in #20549
    Bump Iceberg v1.4 by @Tmonster in #20604
    Fix KeyValueSecretReader init by @NiclasHaderer in #20620
    Fail fast extensions by @carlopi in #20605

1.4.3:
What's Changed

    implement proper equals for table functions by @Maxxen in #19722
    Fix behavior for HAVING clause without a GROUP BY by @Tishj in #19739
    Remove httpfs patches and bump by @carlopi in #19763
    Correctly use a lock when accessing the EncryptionKeyManager by @Mytherin in \ 
#19772
    Bump iceberg to now default available extension by @carlopi in #19764
    Extract all column bindings of json each function by @Tmonster in #19766
    constraint violation bug fix by @artjomPlaunov in #19776
    Avoid binding macro arguments for untyped macros by @lnkuiper in #19779
    It should probably be ${EXTENSION_CONFIG_BUILD} instead of \ 
EXTENSION_CONFIG_BUILD by @hannes in #19694
    Fix #19575: Fix illegal utf8 character by @flashmouse in #19699
    chore: bump vortex to 0.56.0 by @0ax1 in #19815
    PositionalScan: handle also HAVE_MORE_OUTPUT + empty chunk via iteration by \ 
@carlopi in #19824
    AttachDatabase: first set whether file is remote, then do the rest by \ 
@carlopi in #19826
    Add CacheBehavior::AUTOMATIC to DBInstanceCache that automatically does the \ 
right thing™ by @Mytherin in #19841
    Reuse metadata even in the presence of deletes by @ywelsch in #19823
    DuckIndexScanState::TableScanFunc, split into 2 explicit phases by @carlopi \ 
in #19838
    Bump httpfs and iceberg by @carlopi in #19859
    Keep cte_root alive while binding materialized CTEs in MERGE INTO children \ 
by @Mytherin in #19863
    CI Cleanup (#19840) by @yan-alex in #19857
    Fix #19517: preserve relation name for table-qualified star LIKE expression \ 
by @henry8128 in #19887
    avoid underflow/"inf" loop while reporting unittest summary \ 
(backport… by @benfleis in #19900
    Fixes incorrect handing of APPROX_QUANTILE TIME by @Damon07 in #19891
    Add v1.4.3 to Storage Version by @maiadegraaf in #19907
    clean up tmp files while building extensions by @c-herrewijn in #19908
    Bump: ducklake, mysql_scanner by @maiadegraaf in #19910
    remove large limit optimization whenever there is a filter by @guillesd in #19911
    free disk space in Upload Extensions job by @c-herrewijn in #19912
    [Compression] Prevent overriding COMPRESSION_EMPTY with COMPRESSION_CONSTANT \ 
by @Tishj in #19913
    Make make tidy-check-diff compare against base branch, instead of always \ 
comparing against origin/main by @Mytherin in #19917
    More testing for appender and attach-detach by @taniabogatsch in #19708
    Script to release a extension manually by @samansmink in #19881
    Assert that result types match with column data collection when fetching \ 
data by @pdet in #19750
    No longer auto-enable profiling on DEBUG mode by @maiadegraaf in #19931
    Fix optimizer incorrectly remove ORDER BY clause from aggregates by \ 
@tianjq16 in #19925
    Backport revert append fixes by @Mytherin in #19941
    Bump: spatial by @Maxxen in #19943
    Issue #19916: WASM Time Zones by @hawkfish in #19918
    Fix correlated column binding in ConstantBinder by @d-justen in #19945
    [chore] Increase slow threshold by @taniabogatsch in #19965
    [Parquet] Fix prepared copy option parameter by @Tishj in #19966
    [TestConfig] Fix verify_fetch_row config, reduce duplication in skip_tests \ 
by @Tishj in #19967
    remove sha from artifacts by @c-herrewijn in #19957
    Unbound index binding with context by @artjomPlaunov in #19953
    [Fix] Bug in FetchRow after update on indexed table with dict_fsst \ 
compression by @taniabogatsch in #19970
    Null assertion on denormalized_table argument by @Dtenwolde in #19947
    [Art][Wal]Unbound index allocations by @artjomPlaunov in #19901
    No sampling over 281TB by @Tmonster in #19978
    Take in consideration if the sniffer used unstrictness while selecting \ 
candidates by @pdet in #20005
    [CSV] Avoid throwing unnecessary errors on strict mode by @pdet in #20007
    [Compression] Fix an issue with NULL updates to a column compressed with \ 
DICT_FSST by @Tishj in #20009
    Bump: delta, ducklake, iceberg by @maiadegraaf in #20012
    add unity_catalog, update delta by @samansmink in #20019
    Bump spatial by @staticlibs in #20020
    Retag #19821 to v1.4 - Use PLAIN_DICTIONARY for Parquet version 1 by @pdet \ 
in #20024
    Fix INSERT OR REPLACE BY NAME with partial columns(#19845) by @henry8128 in \ 
#19989
    Bump MySQL scanner by @staticlibs in #20025
    Windows must sample less by @Tmonster in #20018
    Issue #20015: Streaming Window Sequence by @hawkfish in #20027
    bump iceberg by @Tmonster in #20032
    Fix #20014: correctly use numeric_limits::min for NumericLimits::Min so that \ 
stats are initialized to -infinity for floating points by @Mytherin in #20039
    Enable windows_arm64 arch for main extensions by @staticlibs in #20004
    Fix mark join decorrelation by @kryonix in #20033
    propagate gate status in Node4::DeleteChild by @artjomPlaunov in #20044
    Bump: httpfs by @samansmink in #20036
    Bump ducklake by @pdet in #20054
    bump azure to v1.4.3 by @benfleis in #20057
    Bump extensions by @samansmink in #20055
    Fix unnecessary dependent join rewrite by @kryonix in #20048
    Version tag for local files for robust external file cache validation by \ 
@lnkuiper in #20058
    backport runner cleanup action by @hannes in #20085

1.4.2:
What's Changed

    bump duckdb-azure ref for 1.4.1 by @benfleis in #19275
    Fix regex optimization to remove flags when converting to contains by \ 
@mlafeldt in #19290
    feat: Fix length of sort keys by @krlmlr in #19260
    Pass lambda bindings to next binder by @Dtenwolde in #19144
    bump Julia to v1.4.1 by @c-herrewijn in #19306
    Use cross-compilation for static libs on OSX by @hannes in #19304
    Allow multiple read-only attaches to the same database across database \ 
instances by @Mytherin in #19319
    hugeint_t fixes by @carlopi in #19318
    Use CMAKE__COMPILER_LAUNCHER by @evertlammerts in #19326
    Add settings field to test config by @Mytherin in #19330
    Keep track of which database managers have which databases attached in the \ 
DatabaseFilePathManager by @Mytherin in #19338
    Bugfixes by @lnkuiper in #19329
    skip several ci jobs on prs that only bump extensions by @samansmink in #19249
    [C API] bind_value out of range fix by @taniabogatsch in #19348
    Destroy TaskNotifier prior to calling FinishTask by @Mytherin in #19373
    Remove zip bombs by @Mytherin in #19380
    Avoid calling shared_from_this() and instead use the passed in ClientContext \ 
in buffered data by @Mytherin in #19379
    add test tag support [vfs integration tests p1] by @benfleis in #19331
    Throw if non-VARCHAR key is passed to json_object by @lnkuiper in #19365
    BUGFIX: Silent failure to write row groups with large lists by @J-Meyers in \ 
#19376
    Fixes for CTE (de)serialization compatibility with older versions by \ 
@Mytherin in #19393
    Fix #18139: correctly initialize flush size in MemoryStream, and re-use \ 
writer states by @Mytherin in #19398
    Fixup Kalman fiter: bound it's (0, scale_factor), not (0, 1) by @carlopi in \ 
#19395
    Fix StringDecompress for hugeint_t values by @ywelsch in #19403
    Fix #19211: make INSERT OR IGNORE correctly handle multiple constraints by \ 
@Mytherin in #19409
    Issue #19386: ICU TZDEFAULT by @hawkfish in #19413
    Fix issue in MetadataManager triggered when doing concurrent reads while \ 
checkpointing, and rework concurrent attach / detach test by @Mytherin in #19424
    ADBC fix: escape schema, table and column identifiers by @evertlammerts in #19407
    v1.4: Only serialize CTE nodes when MATERIALIZED is specified by @Mytherin \ 
in #19420
    Add forwards compatibility tests to CI by @Mytherin in #19432
    Internal #6168: Unsupported Correlated Binds by @hawkfish in #19431
    Don't pull up filters through DISTINCT ON and make enum casts in Parquet \ 
safe (bugfixes) by @lnkuiper in #19406
    Get table bindings for all operators under a logical get if the logical get \ 
function is an unnest by @Tmonster in #19467
    WASM #1897: UTC Offset Support by @hawkfish in #19464
    Add tests for nested lambda bindings by @Dtenwolde in #19453
    [Compression] Fix issue in ZSTD decompression related to mis-interpreted \ 
segment offsets by @Tishj in #19475
    vfs integration tests p2 - update (env) vars and tests by @benfleis in #19428
    CI Fix: clear benchmark cache between runs by @Mytherin in #19508
    Make DatabaseInstance::log_manager a unique_ptr by @Flogex in #19471
    Support non-standard NULL in Parquet again by @Mytherin in #19523
    Bump: inet by @samansmink in #19526
    Bump multiple extensions by @samansmink in #19522
    add upcoming patch release to internal versions by @samansmink in #19525
    Add test that either 'latest' or 'vX.Y.Z' are supported STORAGE_VERSIONs by \ 
@carlopi in #19527
    Moving staging to cf and uploading to install bucket by @hannes in #19539
    Creating separate OSX cli binaries for each arch by @hannes in #19538
    [Dev] Disable the use of ZSTD if the block_manager is the \ 
InMemoryBlockManager by @Tishj in #19543
    Follow up to staging move by @hannes in #19551
    Bugfixes: Parquet JSON+DELTA_LENGTH_BYTE_ARRAY and sorting iterator by \ 
@lnkuiper in #19556
    [ported from main] Fix bug initializing std::vector for column names by \ 
@evertlammerts in #19555
    Disable jemalloc on BSD by @lnkuiper in #19560
    Fix race condition between Append and Scan by @Captain32 in #19571
    Release relevant tests to still be run on all builds by @carlopi in #19559
    fix inconsistent behavior in remote read_file/blob, and prevent union… by \ 
@Maxxen in #19531
    [v1.4-andium] Add Profiler output to logger interface by @carlopi in #19572
    Fix edge case in uncompressed validity scan with offset and fix off-by-one \ 
in ArrayColumnData::Select by @Maxxen in #19567
    Skip compiling remote optimizer test when TSAN Is enabled by @Mytherin in #19590
    Wal index deletes by @artjomPlaunov in #19477
    add vortex external extension by @samansmink in #19580
    Avoid eagerly resolving the next on-disk pointer in the MetadataReader, as \ 
that pointer might not always be valid by @Mytherin in #19588
    [DevEx] Improve error message when FROM clause is omitted by @Tishj in #18995
    bump iceberg by @Tmonster in #19618
    Improve error message around compression type deprecation/availability \ 
checks by @Tishj in #19619
    Increase cast-cost of old-style implicit cast to string by @Maxxen in #19621
    Try to prevent overshooting of FILE_SIZE_BYTES by pre-emptively increasing \ 
bytes written in Parquet writer by @lnkuiper in #19622
    Bump: spatial by @Maxxen in #19620
    Detect invalid merge into action and throw exception by @Mytherin in #19636
    Fix #19455: correctly extract root table in merge into when running ajoin \ 
that contains single-sided predicates that are transformed into filters by \ 
@Mytherin in #19637
    Remove FlushAll from DETACH by @lnkuiper in #19644
    Bump MySQL scanner by @staticlibs in #19643
    Enable running all extensions tests as part of the build step by @carlopi in \ 
#19631
    Always remember extra_metadata_blocks when checkpointing by @ywelsch in #19639
    duckdb_logs_parsed to do case-insensitive matching by @carlopi in #19669
    Categorize ParseLogMessage as CAN_THROW_RUNTIME_ERROR LVM by @carlopi in #19668
    Log total probe matches in hash join by @lnkuiper in #19683
    Fix InsertRelation on attached database by @evertlammerts in #19583
    Add request timing to HTTP log by @samansmink in #19691
    Add missing query location tohttpfs by @samansmink in #19715
    Fix #19355: correctly resolve subquery in MERGE INTO action condition by \ 
@Mytherin in #19720
    Fix #19700: correctly sort output selection vector in nested selection \ 
operations by @Mytherin in #19718
    Bump httpfs and resume testing on Windows by @carlopi in #19714
    [Dev] Fix assertion failure for empty ColumnData serialization by @Tishj in \ 
#19713
    Bump the Postgres scanner extension by @Mytherin in #19730
    Add explicit Initialize(HTTPParam&) method to HTTPClient by @carlopi in \ 
#19723
    Logs to be case-insensitive also at enable_logging callsite by @carlopi in #19734
    Fix CVE GHSA-vmp8-hg63-v2hp crypto issues by @samansmink in #19716

1.4.1:
What's Changed

    Fix attach to right DB when using DuckLake by @pdet in #19011
    set default value of MAIN_BRANCH_VERSIONING to false by @c-herrewijn in #19014
    ComplexJSON: parse all valid JSON correctly by @Mytherin in #19024
    Issue #19016: ICU Offset Parsing by @hawkfish in #19029
    Throw if we detect a quoted new line with the null padding set in parallel \ 
mode by @pdet in #19012
    Bump iceberg & ducklake by @carlopi in #19037
    Build Fix: unordered_map<enum class is not supported in all compilers, \ 
use map< instead by @Mytherin in #19046
    Disable emitting versioned libraries by default by @Mytherin in #19047
    Re-add aliased settings to duckdb_settings() view, and some fixes for \ 
aliased settings by @Mytherin in #19050
    Fix threading issues in metadata manager, and expand concurrent attach / \ 
detach fuzz test by @Mytherin in #19054
    Correctly re-align all child column segments of the ColumnData on \ 
Deserialize, and add logging to checkpoints by @Mytherin in #19055
    [unittest] Fixes so that '{BASE_TEST_NAME}' can be used within \ 
--on-new-connection by @carlopi in #19056
    add a bunch of expected error messages to old macro tests and fix iss… by \ 
@lnkuiper in #19042
    Always execute cast and try_cast if they are not invertible by @DinosL in #19010
    Switching core extension upload to dedicated credentials by @hannes in #19061
    Include BeginQuery in latency metric by @taniabogatsch in #19064
    [Dev] Bit of code cleanup in (parquet) ColumnWriter by @Tishj in #19063
    Add config: one_schema_per_test.json by @carlopi in #19059
    Change bucket name for core extensions by @hannes in #19083
    Moved test data into testing dir by @NiclasHaderer in #19102
    Bump httpfs by @carlopi in #19104
    Fix example syntax in variant_typeof() function by @krlmlr in #18977
    Avoid throwing on unset extension setting by @Mytherin in #19117
    Fix internal issue 5975 by @lnkuiper in #19101
    Properly initialize StringStats in Parquet reader by @lnkuiper in #19139
    Remove HTTPFS tests and setup scripts by @Mytherin in #19140
    Validate JSON in Parquet reader by @lnkuiper in #19143
    Fix bug in merge into when condition is in parenthesis by @pdet in #19137
    Allow implicit casts from JSON[] to JSON again by @lnkuiper in #19141
    [ci] Change logic for saving caches: Github variable that decides what gets \ 
cached by @carlopi in #19150
    Fix handling of quotes in ToString() of search_path in current_setting by \ 
@Mytherin in #19162
    Delay throwing NotImplementedException in ExpressionBinder by @lnkuiper in #19153
    Issue #18303: AsOf NLJ Nulls by @hawkfish in #19173
    HTTPUtil: response might be null, perform check by @carlopi in #19179
    Handle malformed schema index in Parquet reader by @Mytherin in #19191
    ATTACH IF NOT EXISTS: avoid looping waiting for DETACH to finish, wait only \ 
for an ATTACH operation to finish by @Mytherin in #19193
    Implement duckdb_connection_count table function by @taniabogatsch in #19187
    Disable ALP for non-default block sizes by @taniabogatsch in #19197
    Check for unresolved parameters when binding CREATE MACRO ... AS TABLE by \ 
@lnkuiper in #19196
    https://duckdb-blobs.s3.amazonaws.com -> https://blobs.duckdb.org by \ 
@carlopi in #19206
    [chore] Attempt at restoring workflow for MinGW Static libs by @carlopi in #19205
    Simple no default region return 301 response by @Tmonster in #19087
    [Fix] Correctly reset the gate status during ART merging by @taniabogatsch \ 
in #19204
    build spatial extension for mingw by @c-herrewijn in #19207
    Fixup templated version of TryGetSecretKeyOrSetting by @carlopi in #19218
    Bump: delta by @samansmink in #19220
    Autoloading helper file system: allow either autoloading or proper errors in \ 
more file operations by @carlopi in #19198
    Eargerly destroy sort buffers in Window by @lnkuiper in #19224
    [Transaction] Delete and drop of a table can now happen in the same \ 
transaction without error by @Tishj in #18918
    PRAGMA's MissingEntry: Suggest CALL might be an option by @carlopi in #18815
    Bump: aws, ducklake, iceberg by @samansmink in #19228
    Issue 18603 by @Tmonster in #19227
    Bump DuckLake to latest of V1.4 by @pdet in #19237
    Bump mysql and sqlite by @staticlibs in #19240
    Don't write parquet-native GEOMETRY by default, add option to control \ 
GeoParquet version by @Maxxen in #19244
    When executing a relation, generate a query to set if it is not a query \ 
relation by @Mytherin in #19234
    add support for writing geoparquet with v2 metadata too by @Maxxen in #19246
    Bump: iceberg by @samansmink in #19250
    Bump: avro, httpfs by @samansmink in #19248
    bump duckdb-azure ref for 1.4.1 by @benfleis in #19275

1.4.0:
What's Changed

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

Changelog:
1.3.2:
What's Changed

    bump julia to v1.3.1 by @c-herrewijn in #17966
    [CI] adding DONT_LINK parameter to the test extension configuration for inet \ 
extension by @hmeriann in #17967
    Eviction queue: Sort purged nodes and bulk re-add by @lnkuiper in #17913
    Grab lock before finalizing dynamic filters by @lnkuiper in #17964
    Issue #5144: AsOf Join Threshold by @hawkfish in #17978
    Fix for IsDenseRange check in filter_combiner by @pdet in #17988
    Use SharedLockTable in DataTable::Fetch by @Mytherin in #17983
    On Windows CI use zip from msys2 instead of choco by @staticlibs in #17993
    [FIX] Arrow ArrowBool8 Extension Type Add Validity Type Check by \ 
@rustyconover in #18005
    Make test more lenient by @lnkuiper in #18022
    Print internal exception stack traces on failed transaction rollback by \ 
@taniabogatsch in #18023
    More fixes around GetDatabases by @taniabogatsch in #18024
    [Fix] Binding error when resolving lambdas with a struct alias by \ 
@taniabogatsch in #18014
    Disable constexpr std::mutex on Windows by @staticlibs in #17991
    Use correct expression function after filter pushdown by @Tmonster in #17860
    Implement bulk enqueue for non-concurrent queue by @lnkuiper in #18032
    Bring back libduckdb-src.zip as release artifact by @mlafeldt in #18019
    Issue #18035: Zero Fill TIMESTAMP_NS by @hawkfish in #18045
    Fix handling dynamic table filters in RemoveUnusedColumns by @Damon07 in #18033
    Fix incorrect results in index scan by @taniabogatsch in #18058
    bump spatial (v1.3) by @Maxxen in #18059
    constant or null can be replaced when argument is a bound column reg by \ 
@Tmonster in #18018
    Issue #18047: TIMESTAMP_TZ Upcast Costs by @hawkfish in #18064
    Properly handle empty RHS in IE Join by @lnkuiper in #18067
    Avoid going too in-depth while computing join order by @carlopi in #17904
    Main.yml: Move very long job from debug to release with -DDEBUG and \ 
FORCE_ASSERT by @carlopi in #18081
    Run Python workflow against both Python 3.9 and 3.13 on PR to ensure … by \ 
@evertlammerts in #18080
    fix statistics propagation for anti-joins on empty tables by @bradynwalsh in \ 
#17439
    OSX.yml: Move from using debug builds to release + DDEBUG + FORCE_ASSERT by \ 
@carlopi in #18102
    Fix copy constructor in SetVariableStatement by @staticlibs in #18101
    [Parquet] Add write_bloom_filter flag to allow disabling of bloom filters by \ 
@Mytherin in #18093
    Add Stack Trace marker to stack trace by @JelteF in #18089
    Add missing INT128 to decimal Parquet reader switch by @lnkuiper in #18104
    shared_ptr& must be reached from FileOpener by @carlopi in #18107
    Cleanup on correct branch (1.3-ossivalis) instead of v1.2-histrionicus by \ 
@carlopi in #18111
    Refactor extracting expressions for dynamic index scans by @lnkuiper in #18095
    Add v1.3.2 to version_map.json and generate storage_info.cpp by @hmeriann in \ 
#18112
    CI: Actually correctly skip building unnecessary extensions by @carlopi in #18119
    Absorb patch from #18107 by @carlopi in #18114
    Use unsigned hugeint for compressed materialization strings by @lnkuiper in \ 
#18128
    Throw internal exception on corrupted roaring bitmap offsets by \ 
@taniabogatsch in #18130
    Allow .tsv as an accepted db file by @pdet in #18133
    Fixing CSV Fuzzer issues by @pdet in #18134
    Bump iceberg for 1.3.2, from @Tishj, and bumping also httpfs by @carlopi in \ 
#18148
    Internal #5245: AsOf NLJ Comparisons by @hawkfish in #18159
    Add internal exceptions to compression paths to prevent segmentation \ 
violations by @taniabogatsch in #18151
    Fix for arrow.json production extension type by @pdet in #18132
    partially restore deprecated http logging settings by @samansmink in #18150
    Bump for wasm fixes (excel and httpfs) and test fixes (iceberg) by @carlopi \ 
in #18167
    bump spatial by @Maxxen in #18161
    Bump sqlsmith and aws by @Tmonster in #18155
    bump ducklake for v1.3.2. by @c-herrewijn in #18156
    Bump spatial again: include re-linking for handling global objects in Wasm \ 
by @carlopi in #18170

1.3.1:
What's Changed

    MultiFileReader: Fix for handling nested list/map default values by \ 
@Mytherin in #17589
    Signed to Unsigned is not reversible by @Tmonster in #17571
    [Dev][CLI] Use an unused bit for DUCKDB_LATEST_STORAGE_VERSION by @Tishj in \ 
#17598
    minor restructure MAIN_BRANCH_VERSIONING by @c-herrewijn in #17601
    Main branch versioning set to false by @c-herrewijn in #17602
    Generate correct UUID v7 by @Mytherin in #17612
    Issue #17606: Disable TIMESTAMPTZ Casts by @hawkfish in #17614
    Bugfixes by @lnkuiper in #17543
    Improve Windows lock conflict error by @Mytherin in #17622
    Actually initialize in batch copy to file by @Mytherin in #17627
    Issue #17621: Streaming Window Reset by @hawkfish in #17649
    CLI: Print codename for '-version' by @szarnyasg in #17637
    [Python][Dev] Ignore DYNAMIC_FILTER TableFilters in filter pushdown by \ 
@Tishj in #17657
    [Dev] Throw if db is not available yet in setting certain configuration \ 
options by @Tishj in #17659
    chore: Fix initialization by @krlmlr in #17643
    chore: Fix initialization by @krlmlr in #17644
    DefaultSecretGenerator: require lock for modifying persistent_secrets by \ 
@Mytherin in #17650
    initialize the read with the OpenFile info and not just the path by \ 
@Tmonster in #17652
    Don't bail on TopN optimization if we don't have a cardinality by @lnkuiper \ 
in #17654
    Fixes for CSV fuzzer tests by @pdet in #17678
    chore: Fix strict aliasing warning on GCC by @krlmlr in #17641
    Partitioned copy: don't check if file exists for remote files by @Mytherin \ 
in #17689
    Fix version detection for sdist builds without git info by @evertlammerts in \ 
#17605
    Bugfixes by @lnkuiper in #17695
    Do not get file handle unnecessarily. by @Tmonster in #17698
    Allow table functions to disable statement caching by @Mytherin in #17702
    [SQLLogicTester] Replace keywords in <FILE>:pattern result for the \ 
query statement by @Tishj in #17710
    Parquet Reader: only read strings as fixed length strings if the type is \ 
FIXED_LEN_BYTE_ARRAY by @Mytherin in #17723
    Internal #5022: IN Pushdown Equalities by @hawkfish in #17731
    Internal #4995: Commutative INTERVAL Multiply by @hawkfish in #17730
    Issue #17725: Quantile NaN Compare by @hawkfish in #17761
    Backport CI fixes by @Mytherin in #17763
    Have the skip_rows option consider empty csv lines by @pdet in #17756
    Fix wrong assertion in Parquet DBP encoder by @lnkuiper in #17746
    CLI: make -f always bail on error by @Mytherin in #17768
    Don't Flatten() then Reference() by @hannes in #17769
    [Dev] Fix TRY expression crash on literals by @Tishj in #17753
    Pop up ICU errors to the csv sniffer by @pdet in #17719
    [Nested] Fix incorrect type casting in list_reduce lambda expressions by \ 
@maiadegraaf in #17581
    [chore] Avoid caching msys artifacts on PRs by @carlopi in #17777
    Skip encodings and spatial extensions on PRs by @carlopi in #17775
    Add FileBufferType::EXTERNAL_FILE and add to same queue as \ 
FileBufferType::BLOCK by @lnkuiper in #17771
    Storge the argument and value of arg_min_max in the state as a unique_ptr by \ 
@pdet in #17749
    Physical operator logging by @lnkuiper in #17752
    Take string size into account in GetRowSize in ParquetWriter by @lnkuiper in \ 
#17793
    [CSV Sniffer] Consider if null_padding is set to true when detecting \ 
midcomment line during sniffing by @pdet in #17751
    Revert "Avoid early-out when catalog lookup fails - instead finish all \ 
look-ups" by @Mytherin in #17805
    Support file rotation with WRITE_EMPTY_FILE false by @Mytherin in #17804
    Check page filtered out flag before reading it by @Damon07 in #17786
    Avoid saving ccache on pull_requests by @carlopi in #17810
    Support glibc 2.28 environments in 1.3.x by @taniabogatsch in #17814
    arrow_output_version option to produce arrow depending on a format version. \ 
by @pdet in #17791
    Internal #5069: Win32 Cast Simplification by @hawkfish in #17820
    local_agnostic::isspace to avoid spaces be depending on locale by @carlopi \ 
in #17808
    MultiFileReader: Make column mapping mode configurable per-file, instead of \ 
requiring it to be set globally by @Mytherin in #17817
    Fixup confict by @carlopi in #17831
    [Fix] Throw serialisation error when encountering invalid row IDs in WAL \ 
delete by @taniabogatsch in #17832
    remap_struct: Correctly reserve list vectors to deal with remapping \ 
larger-than-vector-size lists/maps by @Mytherin in #17836
    Fixup unique_ptr<T[], deleter>, now with working custom deleters by \ 
@carlopi in #17840
    Fix ICE with Windows ARM64 (1.3) by @staticlibs in #17846
    [Fix] WAL replay catalog error in AddForeignKeyConstraint by @taniabogatsch \ 
in #17830
    Add ducklake sha by @c-herrewijn in #17818
    add ducklake to internal_extensions by @c-herrewijn in #17811
    Use boolean operators instead of bitwise operators for (u)hugeint by \ 
@lnkuiper in #17862
    Bump httpfs by @Tmonster in #17863
    Function Serialization: adapt to removal of overloads by explicitly casting \ 
if argument types have changed by @Mytherin in #17867
    Add FinalizeLoad callback to catalogs, which can be called after the \ 
database is fully instantiated by @Mytherin in #17868
    Set query location for interval constants in all cases by @Mytherin in #17876
    Add support for option.scheduler_proctree by @lnkuiper in #17878
    Add urllib3 dependency and improve fixture download reliability by \ 
@evertlammerts in #17880
    Add option to control parquet NaN pruning by @Maxxen in #17883
    Issue #17781: ASOF Predicate Binding by @hawkfish in #17889
Skipping failing on OSX Release part by @hmeriann in #17899
    [Fix] Serialisation error for invalid block ID in index deserialization by \ 
@taniabogatsch in #17900
    Update MemoryTag when converting block to persistent by @lnkuiper in #17893
    Add sup #17894
    Bump extensions by @Mytherin in #17905
    http_log.test: solve non-determinism at the test level by @carlopi in #17914
    Fixup #17775, correct boolean logic by @carlopi in #17912
    Make sure distance is always an int when doing version bumps in setup.py by \ 
@c-herrewijn in #17918
    bump azure, aws and httpfs by @samansmink in #17919
    bump spatial by @Maxxen in #17920
    Add v1.3.1 to version_map.json by @Flogex in #17922
    Bump Avro and Iceberg + fix by @carlopi in #17930
    Bump Avro and Iceberg in out_of_tree_extensions.cmake by @Tishj in #17923
    Enable Test extension (inside docker) step in build_extensions_dockerized by \ 
@hmeriann in #17916
    [chore] Skip 2 tests in autoloading mode (parquet + ZSTD) plus improve error \ 
message by @carlopi in #17935
    [tpcds] dsdgen currently assumes DuckTable, throw if that's not the case by \ 
@carlopi in #17934
   2025-06-25 13:14:55 by Ryo ONODERA | Files touched by this commit (1)
Log message:
databases/duckdb: Fix incorrect PLIST

* This PLIST is fromn non-1.3.0 of duckdb. It is my mistake.
   2025-06-24 16:29:27 by Ryo ONODERA | Files touched by this commit (6)
Log message:
databases/py-duckdb: Fix previous

I had confused. This should fix packaging of py-duckdb.
   2025-06-24 02:02:58 by Ryo ONODERA | Files touched by this commit (4)
Log message:
databases/py-duckdb: Fix packaging error

* Without git command, version number in egg info is 0.0.0.
  Hardcode it as PKGVERSION_NOREV.
   2025-06-15 15:30:20 by Ryo ONODERA | Files touched by this commit (6) | Package updated
Log message:
databases/duckdb: Update to 1.3.0

* Prepare for databases/py-duckdb.

Changelog:
1.3.0:
What's Changed

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

Changelog:
1.2.2:
This is a bug fix release for various issues discovered after we released 1.2.1. \ 
There are no new major features, just bug fixes. Database files created by \ 
DuckDB versions all the way back to v0.9.* can be read by this version.
What's Changed

    [Python] Fix deadlock in from_parquet with file_globs caused by not \ 
releasing the GIL by @Tishj in #16522
    [Python] Fix some stubs issues by @Tishj in #16523
    [Dev] Fix issues in the benchmark runner related to the serialized \ 
storage_version by @Tishj in #16533
    Set estimated cardinality to newly created logical operators by @jeewonhh in \ 
#16528
    custom_extension_repository to also be the default \ 
autoinstall_extension_repository by @carlopi in #16459
    [Python Dev] No longer trigger a DeprecationWarning when using a UDF by \ 
@Tishj in #16433
    Fixup problems connected to prep to 1.2.1 by @carlopi in #16578
    Give preference to quote=escape if we can't do better by @pdet in #16584
    Max ART key length by @taniabogatsch in #16588
    Issue #16617: Window Constant Finalize by @hawkfish in #16628
    [Fix] Index scan - Move the table scan state into the local state by \ 
@taniabogatsch in #16650
    [Fix] Perform eager constraint checking during physical batch insert by \ 
@taniabogatsch in #16651
    [Python] Don't push down OPTIONAL_FILTER into pyarrow for the arrow scan. by \ 
@Tishj in #16657
    move OrderPreservationRecursive to physical_plan_generator.hpp by @jeewonhh \ 
in #16656
    Add libs folder to bundled static libs by @taniabogatsch in #16655
    Avoid UMA by @krlmlr in #16641
    Avoid UMA by @krlmlr in #16643
    Avoid UMA by @krlmlr in #16642
    Several fixes for CSV fuzzer tests by @pdet in #16636
    FSST Fix: Correctly detect the situation where we have 3 bytes remaining by \ 
@Mytherin in #16688
    Fix #16627: handle DISTINCT FROM and NOT DISTINCT FROM in zone-map pushdown \ 
by @Mytherin in #16691
    Fix #16554: emit blobs as part of .dump by @Mytherin in #16693
    add avro by @samansmink in #16708
    Issue #16652: Implicit Ordered Aggregation by @hawkfish in #16718
    Issue #16649: SelectNth Remainders by @hawkfish in #16705
    [Dev] Fix EXPORT DATABASE missing semicolons in produced schema.sql by \ 
@Tishj in #16723
    Always throw the error that happens the earliest in the CSV Reader by @pdet \ 
in #16728
    Fix #16662 by @lnkuiper in #16732
    [Test] Add missing test for eager-constraint checking fix by @taniabogatsch \ 
in #16745
    Clamp reported memory in duckdb_memory by @Mytherin in #16753
    CLI -help: Fix default value for -nullvalue by @carlopi in #16755
    Apply RLE fix to v1.2 by @Mytherin in #16756
    [Arrow] Setting schema of the keys to not null for maps and properly write \ 
Null columns to arrow by @pdet in #16711
    Fix min/max values in numeric cast exception message by @abramk in #16777
    [ADBC] Add wrapper to connection new, set options at connection init, if \ 
any. by @pdet in #16748
    Remove delta from extensions built on a nightly basis (vs 1.2-histrionicus) \ 
by @carlopi in #16794
    PhysicalTopN: Buffer-allocated StringHeap by @lnkuiper in #16770
    [chore] Add v1.2.2 to storage versions, preparation for upcoming patch \ 
release by @carlopi in #16799
    Fix issue when line is empty by @pdet in #16823
    Add extra check in normalize for commit, rollback and abort by @pdet in #16802
    Fix #16783: Fix DistributivityRule by @flashmouse in #16804
    Internal #4492: Ignore Nulls Orrification by @hawkfish in #16837
    Fix #16836: rewrite main column data in case of an update that only modifies \ 
the validity by @Mytherin in #16851
    Initialize type by @pdet in #16848
    [CSV Reader] Add check on ever quoted for candidate selection by @pdet in #16868
    Clean up partial deletes when encountering a transaction conflict in a \ 
vector by @Mytherin in #16905
    Fix clang-tidy: add missing include by @Mytherin in #16920
    Backport "Adding gzip version of shell for linux/osx install \ 
script" by @carlopi in #16917
    Backport "Adding gzip version of shell for linux/osx install \ 
script"/2 by @carlopi in #16924
    Skip tests for Python 3.8, already end-of-life by @carlopi in #16923
    Bump to avro version that now support wasm by @carlopi in #16916
    Unwrap DUCKDB_EXTENSION__LINKED_LIBS via CMake by @carlopi in #16914
    Skip manylinux-extensions-x64 job by @carlopi in #16932
    [Fix] Disable recursion for invalidated database error by @taniabogatsch in \ 
#16907
    bump excel (on v1.2) by @Maxxen in #16915
    [Fix] Flush local storage before any deletes by @taniabogatsch in #16951
    [Python] Fix PyArrow filter pushdown for NaN by @Tishj in #16952
    Allow overriding the Printer::Print output destination by @bleskes in #16909
    bump out-of-tree extensions to v1.2.2 by @Tmonster in #16913
    Allow SQL prepared statements to be rebound by @NiclasHaderer in #16820
    Fix #16959: binding constraints should not modify the original constraints \ 
by @Mytherin in #16971
    Add back manylinux extensions [on v1.2-histrionicus] AND bump extensions by \ 
@carlopi in #16976
    Skip TPC-DS Q67 on DOUBLE by @Mytherin in #16987
    Re-enable iceberg by @carlopi in #16992
    Try enabling and bump delta by @Maxxen in #16990
    Backport @szarnyasg's 16999 by @carlopi in #17013

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

    [Dev] MultiFileReader fix InternalError in CreateFilterMap by @Tishj in #16114
    [bug-fix] Avoid throwing in catch block for failed commits by @Vegetable26 \ 
in #15903
    Issue #16098: ValidEnd Parallel Vectorisation by @hawkfish in #16140
    Adding an extension option shouldn't delete a set value and promote \ 
unrecognized options by @bleskes in #15919
    Parquet writer: Re-implement GetRowSize for Strings by @Mytherin in #16178
    Fix #16157: correctly get the first row when reading hive partitions from a \ 
dictionary vector by @Mytherin in #16180
    Fix #16122: bind default values in a sub-binder to avoid modifying the \ 
catalog search path of the current binder by @Mytherin in #16181
    Fix #16134: when a catalog/schema/table has the same name, we prefer to \ 
suggest the table name by @Mytherin in #16189
    Ensure MergeCollectionTask has a writer by @ywelsch in #16207
    Backport #16115 by @NiclasHaderer in #16227
    Deleted copy constructor of pending query by @NiclasHaderer in #16242
    Correctly report errors caused by get_database in C extensions by @mlafeldt \ 
in #16253
    use random seeds for bernoulli sample when parallel is enabled by @Tmonster \ 
in #16223
    Parquet Reader: avoid caching the compressed buffer in the ColumnReader by \ 
@Mytherin in #16263
    Fix #16260: correctly handle parameters in getvariable by @Mytherin in #16264
    Avoid calling SetFilterAlwaysTrue multiple times in RowGroup::CheckZonemap \ 
by @Mytherin in #16269
    [Fix] Scanning from normal leaf to nested leaf by @taniabogatsch in #16270
    Fix #16231: refer to order by condition in ARRAY(SUBQUERY) by alias instead \ 
of by index by @Mytherin in #16272
    Fix #16257 by @lnkuiper in #16275
    AFL Tests for the CSV reader by @pdet in #16280
    Issue #16250: Window Range Performance by @hawkfish in #16276
    Fix #16278: late materialization should not trigger on very large limits, \ 
and it should never trigger on limits without offsets when \ 
preserve_insertion_order = false by @Mytherin in #16282
    Overflow strings allocations: avoid rounding up memory allocated per \ 
overflow string - when reading "small" overflow strings place them \ 
directly into the vector instead by @Mytherin in #16283
    Use ordered map to preserve expressions order by @Damon07 in #16111
    [Dev] register_filesystem stubs, use fsspec.AbstractFileSystem, not str by \ 
@Tishj in #16266
    [Python Dev] Fix crash with empty args for isin | Fix transformation for \ 
isnotin by @Tishj in #16271
    Fix issue related to hang when all candidates are eliminated in refinement \ 
by @pdet in #16288
    [Fix] Early-out on CREATE INDEX (IF NOT EXISTS) by @taniabogatsch in #16093
    [Python] Fix the reverse binary expressions in the Expression API by @Tishj \ 
in #16300
    Bugfixes by @lnkuiper in #16244
    [Fix] MinGW bundle static libs by @taniabogatsch in #16292
    Fix heap buffer oveflow sampling by @Tmonster in #16279
    Expose STRING_LITERAL in C API by @taniabogatsch in #16293
    Allow accessing profiler query tree under lock by @ywelsch in #16314
    bump extensions by @Maxxen in #16313
    Inline virtual list lambda bind functions by @Maxxen in #16327
    Update shell.cpp to fix #16333 by @teaguesterling in #16335
    Add the suggestion to verify the nullstring as part of the cast error \ 
message by @pdet in #16336
    Take NULLs into account for DELTA_BINARY_PACKED by @lnkuiper in #16317
    PhysicalTableScan: Adapt to allow async behaviour by @carlopi in #16310
    Allow querying attached catalog from detached catalog by @jeewonhh in #16289
    Reduce minimum expected memory usage in RadixPartitionedHashTable by \ 
@lnkuiper in #16332
    Backport ebb4dcc to v1.2-, adding missing include by @carlopi in #16369
    Excecption load on mismatched ABI: Use '%d' to print ABI type by @carlopi in \ 
#16367
    Aggregation: For dictionaries without an id - use the correct threshold to \ 
bail-out on using the dictionary by @Mytherin in #16364
    Bump excel to the same version distributed on core repository by @carlopi in \ 
#16375
    Accept valid dialects with escape set into the refinement phase by @pdet in \ 
#16387
    Push the correct casts for values of different types in (X, Y) IN (SELECT X, \ 
Y) by @Mytherin in #16392
    Add support for autoload and autoinstall for ui extension by @carlopi in #16393
    Add twine_upload option to Python.yml to trigger upload by @carlopi in #16410
    Only select options that generate more columns with null_padding, if they at \ 
least hold 50% of consistency by @pdet in #16404
    Use checkpoint bind in DuckTableEntry::Copy to avoid re-validating default \ 
values (and potentially causing issues during WAL replay) by @Mytherin in #16398
    Rename DUCKDB_API to DUCKDB_C_API for duckdb.h by @Mytherin in #16397
    Issue #16407: Try_Strptime Invalid TimeZone by @hawkfish in #16416
    Internal #4303: Windowed DISTINCT Leaks by @hawkfish in #16417
    Internal #4258: MODE Spooling Stability by @hawkfish in #16415
    Fix PyPi upload also for branches, when twine_upload is provided by @carlopi \ 
in #16421
    [Fix] Throw constraint violation for FK constraint checking by @taniabogat \ 
Add storage and serialization version for v1.2.1 by @Flogex in #16403
    Update flaky return_files.test by @jeewonhh in #16432
    Add python version to duckdb_api by @guenp in #15599
    Do not accept null values in lists for column parameters by @pdetigning \ 
using azure by @hannes in #16444
    CSV small code Improvements + initialising boolean variable. by @pdet in #16454
    [Python Dev] Make pandas not required in a couple places, check if it's \ 
installed in others by @Tishj in #16414
    fix passinger in #16480
    [Python Dev] pyproject.toml should not use oldest-supported-numpy anymore by \ 
@Tishj in #16486
    [tests] Multiple FORMAT in copy, only last one matters by @carlopi in #16493
    Bump postgres_scanner and fts extensions by @lnkuiper in #16492
    bump sqlsmith extension tag by @Tmonster in #16488
    [BugFix]: Swap join children, not left and right set by @Tmonster in #16487
    [tests] Add allow_unsigned_extensions require by @carlopi in #16499
    Provide callback when tasks are starting / stopping by @ywelsch in #16451
    CodeQuality: ubuntu-20 to ubuntu-22, lock black to version 24 and trick \ 
clang_format detection by @carlopi in #16513
    Move from ubuntu-20:04 to ubuntu-22:04, part I by @carlopi in #16510
    [chore] Build Linux releases also on PRs AND ubuntu-20 to 22 by @carlopi in \ 
#16506
    Move from ubuntu-20:04 to ubuntu-22:04, part II by @carlopi in #16514
    bump spatial and excel for v1.2 by @Maxxen in #16504
    CI Fixes after upgrade to ubuntu 22 by @Mytherin in #16516
    LinuxRelease.yml: Pass down override git describe by @carlopi in #16521
    bump spatial again by @Maxxen in #16518