pypi duckdb 1.1.0
DuckDB 1.1.0 "Eatoni"

latest releases: 1.1.1.dev100, 1.1.1.dev64
8 days ago

This release of DuckDB is named "Eatoni" after Eaton's pintail (Anas Eatoni) from the southern Indian Ocean.

Please also refer to the announcement blog post: https://duckdb.org/2024/09/09/announcing-duckdb-110

What's Changed

  • Add feature changes back in by @Mytherin in #11146
  • Make MultiFileReader filename configurable by @lnkuiper in #11178
  • [Dev] Fix compilation issues on feature by @Tishj in #11082
  • add query() and query_table() functions by @chrisiou in #10586
  • [Block Size] Move the block allocation size into the block manager by @taniabogatsch in #11176
  • LIMIT pushdown below PROJECT by @jeewonhh in #11112
  • BUGFIX: IN () filter with one argument should translate to = filter. by @Tmonster in #11473
  • Regression Script should calculate micro benchmark differences with the correct base branch by @Tmonster in #11762
  • Pushdown filters on window partitions by @Tmonster in #10932
  • Arrow ListView Type by @Tishj in #10766
  • Add scalar function support to the C API by @Mytherin in #11786
  • Add TopN optimization in physical plan mapping by @kryonix in #11290
  • Join-dependent filter derivation by @lnkuiper in #11272
  • Implement ROW_GROUPS_PER_FILE for Parquet by @lnkuiper in #11249
  • Prefer Final projected columns on probe side if cardinalities are similar by @Tmonster in #11109
  • Propagate unused columns to distinct on by @Tmonster in #11006
  • Separate eviction queues by FileBufferType by @lnkuiper in #11417
  • Disable false positive for vector size nightly in test by @taniabogatsch in #11953
  • Rework jemalloc extension by @lnkuiper in #11891
  • Tweak jemalloc config by @lnkuiper in #12034
  • Httpfs test to nightly by @carlopi in #12196
  • Removed three reinterpret casts and some rewriting by @taniabogatsch in #12200
  • Begin Profiling Rework to move towards Modularity by @maiadegraaf in #11101
  • [CLI] Add highlighting + limited auto-complete for shell dot commands by @Mytherin in #12201
  • Skip test to fix block size nightly and add more explicit error checking by @taniabogatsch in #12211
  • Remove BLOCK_ALLOC_SIZE from the column segment files by @taniabogatsch in #11474
  • [Julia] - Added optional schema input argument to DuckDB.Appender constructor by @curtd in #12174
  • Fix Mark Index in the Bound Join Ref by @pdet in #12263
  • Fix for CI Regression Failure by @maiadegraaf in #12273
  • 🦆 by @samansmink in #12303
  • Disable JEMALLOC_RETAIN by @lnkuiper in #12185
  • Enforce compression extensions for CSV Files by @pdet in #11903
  • Make spuriously failing test more robust by @lnkuiper in #12306
  • Add new extensions to issue template by @szarnyasg in #12313
  • [Fix] Block size nightly run by @taniabogatsch in #12283
  • Spell Check | Nothing Major | Corrected base_scanner.cpp by @nj7 in #12282
  • add duckdb_bind_timestamp_tz function to C API by @karlseguin in #12151
  • [Python] Add some date/datetime functions to pyspark api by @mariotaddeucci in #12075
  • Fixes to Windows workflow and ubuntu_18 action by @carlopi in #12308
  • [Extension Dev] Forward declare re2 in hive_partitioning.hpp by @Tishj in #12302
  • add expected errors to test/sql/copy/per_thread_output.test by @hmeriann in #12280
  • Issue #12287: ICU Strptime Lists by @hawkfish in #12295
  • Issue #12171: Streaming Window FILTER by @hawkfish in #12250
  • [Python] Update the Connection wrapper generation, now generates c++ code by @Tishj in #12216
  • Use iterator buffer position when storing buffer handles by @pdet in #12315
  • Bump Julia client to v0.10.3 by @Mytherin in #12323
  • Fix #12286 - in the MetadataManager, prefer to allocate new blocks if the next free block id is smaller than the currently used metadata block by @Mytherin in #12318
  • [Fix] Only read file size if file handle still exists by @taniabogatsch in #12319
  • Add support for APPEND argument to hive partitioned write by @Mytherin in #12262
  • Remove all reinterpret casts from the transformer by @taniabogatsch in #12320
  • Additional check for overlapping CTE names by @lnkuiper in #12305
  • [Dev] STANDARD_VECTOR_SIZE and BLOCK_ALLOC_SIZE can now be set through the Makefile by @Tishj in #12164
  • [Upsert] Fix issue with lambdas in DO UPDATE SET expressions by @Tishj in #11866
  • [Python] Fix scoping issue for pandas_analyze_sample setting by @Tishj in #11706
  • Support REGEX matches expected error message by @hmeriann in #12327
  • Allow run_fuzzer to reduce multi statements. by @Tmonster in #12278
  • Fix #12328 - when flattening STRUCT vectors with NULL values, we need to flatten the children recursively as well by @Mytherin in #12332
  • Make dbgen generate data in parallel by @Mytherin in #12337
  • dbgen: skip parallel generation if DUCKDB_NO_THREADS is set by @Mytherin in #12341
  • Add prefix prefix_front_back. to get prefix_front_ and prefix_back_ by @liujiayi771 in #12344
  • Issue #12171: Streaming Windowed DISTINCT by @hawkfish in #12311
  • Update README by @szarnyasg in #12357
  • [CSV Reader] [Skip Option] Tests and fixes by @pdet in #12213
  • Adjust BM25 score in FTS extension to prevent negative scores by @lnkuiper in #12356
  • Fix typos by @szarnyasg in #12360
  • Fix #12293 - accept NULL values in generate_series with timestamp by @Mytherin in #12367
  • Fix #12335: avoid calling fsync when writing Parquet files, instead just close the file by @Mytherin in #12371
  • Fix parameters passed down to other workflows in OnTag.yml by @carlopi in #12369
  • [Python] Fixes for the SQLLogicTest runner implementation by @Tishj in #12372
  • Bump julia to v1.0.0 by @Mytherin in #12379
  • Fix #11921 - varchar -> timestamp casts are not invertible by @Mytherin in #12376
  • Upgrade utf8proc - and move our custom extensions out of utf8proc itself by @Mytherin in #12373
  • change max_queries number back to 2000 by @Tmonster in #12375
  • Remove sqlsmith extension by @Tmonster in #12300
  • Reorder semi and anti joins. by @Tmonster in #11815
  • Issue #12351: implicit cast to TIMESTAMP_MS, TIMESTAMP_S, TIMESTAMP_NS from DATE values by @akoshchiy in #12352
  • Issue #10023: Approx_Count_Distinct Memory Usage by @hawkfish in #12355
  • Fix a small typo in dev instructions for swift setup by @gjmwoods in #12383
  • Release lock before returning BufferHandle in StandardBufferManager::Pin by @lnkuiper in #12391
  • Remote attach autoload by @carlopi in #12393
  • Add JSON type to Parquet reader/writer by @lnkuiper in #12222
  • Add RETURN_FILES parameter to COPY TO by @lnkuiper in #12220
  • Updated JoinHashTable to use linear probing to resolve hash collisions by @gropaul in #11472
  • [Benchmark Runner] Add --disable-timeout flag by @Tishj in #12387
  • Don't replace unicode spaces within $$ quotes in query strings by @lnkuiper in #12405
  • [Python] Fix fatal exception caused by empty Pandas Categorical objects. by @Tishj in #12370
  • Release CSV Blocks when acquiring new blocks if single threaded by @pdet in #12409
  • Add support for prefetching multiple adjacent blocks in a single batched read when attaching to remote databases by @Mytherin in #12413
  • MatchRegex() fixed to do not return false positive result by @hmeriann in #12396
  • Expected errors 2053 by @hmeriann in #12392
  • [C-API] Catch exception in duckdb_execute_prepared by @Tishj in #12414
  • Combining LIST_CONCAT and CONCAT binding by @maiadegraaf in #12317
  • [Appender] Add AppendDefault by @Tishj in #11905
  • [Python Dev] Push CTE internally for every (python) replacement scan that occurred. by @Tishj in #12161
  • Improve compiler compatibility by @krlmlr in #12401
  • Write zero-length list offsets for NULL values when serializing vectors by @Mytherin in #12423
  • Get column statistics if Logical Get has a statistics function by @jeewonhh in #12424
  • jemalloc: Identify GNU source code properly by @lnkuiper in #12420
  • Avoid parallelizing LIMIT clauses when the query plan is simple by @Mytherin in #12433
  • Prefetch metadata blocks for remote files by @Mytherin in #12437
  • [Jupyter] Remove width limit on the BoxRenderer config by @Tishj in #12443
  • Revert #10865 by @carlopi in #12426
  • inline delta by @samansmink in #12435
  • Account for tagged dollar-quoted strings when stripping unicode spaces by @lnkuiper in #12421
  • Work-around for broken github windows runner by @Mytherin in #12447
  • Prevents clearing of the types of the LogicalExecute operator by @NiclasHaderer in #12436
  • Add support for BEGIN TRANSACTION READ ONLY by @Mytherin in #12202
  • Make range and generate_series table in-out functions, and fix several issues with table in-out functions by @Mytherin in #12431
  • Issue #12412: AsOf Filter Push by @hawkfish in #12448
  • [Fix] Block Size Nightly by @taniabogatsch in #12427
  • [ART] Remove Flatten and template key generation by @taniabogatsch in #12428
  • [Python] Clean up internals of execute / executemany by @Tishj in #12434
  • By default attach remote databases as READ_ONLY by @carlopi in #12461
  • Fix #11837: use internal physical type for FIRST/LAST/ANY_VALUE instead of logical type by @Mytherin in #12462
  • Issue #12464: Windowed Order By All by @hawkfish in #12470
  • Specialize list_value for primitive types for significantly improved performance by @Mytherin in #12468
  • [Dev] Remove dead code from PhysicalBatchCopyToFile by @Tishj in #12459
  • Disable Windows extensions CI until Github actions runners are fixed by @Mytherin in #12479
  • [Fix] access_mode now lives in AttachOptions by @taniabogatsch in #12482
  • Internal #2186: Nanosecond Functionality by @hawkfish in #12440
  • [C-API] Fix leak in duckdb_create_config by @Tishj in #12465
  • [Python] No longer scan the entire frame lineage in a replacement scan, added option to disable (python) replacements entirely by @Tishj in #12425
  • throw binder error for comment on system catalog by @samansmink in #12486
  • Parquet reader performance by @lnkuiper in #12478
  • Operators the Optimizer can skip by @Tmonster in #12489
  • Fixes clang conversion warnings by @TinyTinni in #12467
  • Avoid creating internal schemas as non-internal when reading old database files by @Mytherin in #12456
  • Allow parquet encryption/decryption keys to be passed in as base64 encoded strings by @elefeint in #12445
  • [Block Size] Introducing CompressionInfo by @taniabogatsch in #12481
  • add the number of filtered files to explain by @samansmink in #12488
  • Implement Map Type Detection for JSON Reader by @ZiyaZa in #11285
  • [Dev] Remove busy-spin from ClientContext::ExecuteTaskInternal by @Tishj in #12483
  • Pluggable collations by @Mytherin in #12492
  • [Dev] Don't fail make generate-files if the python code generation fails by @Tishj in #12500
  • Optimize EXTRACT(year/month/day FROM date/timestamp) by @Mytherin in #12499
  • [Fix] Remove BLOCK_ALLOC_SIZE in the single file block manager by @taniabogatsch in #12502
  • Revert Windows CI fixes by @carlopi in #12510
  • Fix #12467 changes to covariance calculation by @carlopi in #12515
  • [Python] Fix reading strided datetime and timedelta columns by @Tishj in #12519
  • Add method for decoding sort keys, and use this in min/max for arbitrary types by @Mytherin in #12520
  • Reduce allocations & use predication in ColumnSegment::FilterSelection by @Mytherin in #12521
  • Skip only built-in optimizers by @Mytherin in #12522
  • Improve min/max performance for strings and fallback types by @Mytherin in #12524
  • Move arg_min/arg_max to use sort keys by @Mytherin in #12525
  • Move FIRST/LAST/ANY_VALUE to use sort keys by @Mytherin in #12526
  • CMake: use GNUInstallDirs as defaults for INSTALL_{BIN,LIB,INCLUDE}_DIR by @paparodeo in #12509
  • More formatting and fix to stddev by @carlopi in #12516
  • Linux Extensions CI: Attempt at fix missing dependencies by @carlopi in #12429
  • Fix checkouts by @carlopi in #12366
  • Etag if none match for extension install by @carlopi in #12333
  • [Block Size] FixedSizeAllocator, MetadataManager, PartialBlockManager by @taniabogatsch in #12514
  • [Python] Skip the PandasAnalyzer if dtype is 'string' by @Tishj in #12511
  • [StreamQueryResult] Batched variant of the StreamQueryResult collector by @Tishj in #11494
  • Move many tests to slow by @Mytherin in #12534
  • Add support for arg_min(ANY, ANY) by @Mytherin in #12532
  • Avoid overriding types in PrepareTypeForCast when not required by @Mytherin in #12539
  • Support all types in histogram function by @Mytherin in #12538
  • [Python] Remove busy-spin during execution by @Tishj in #12512
  • [Block Size] String space constant by @taniabogatsch in #12537
  • Use string_t instead of std::string in histogram by @Mytherin in #12545
  • Add support for binned histograms by @Mytherin in #12548
  • [Upsert] Fix RETURNING for DO NOTHING by @Tishj in #12554
  • Build Android Binaries by @hannes in #12550
  • [CI] Remove pyarrow version lock by @Tishj in #12566
  • [Dev] Change tests: np.NaN -> np.nan by @Tishj in #12565
  • Internal #2017: DECIMAL Downcast Rounding by @hawkfish in #12036
  • Issue #12204: Summarize Temporal Quantiles by @hawkfish in #12297
  • Internal #2186: Nanosecond StrTimeFormat by @hawkfish in #12551
  • Add support for equi_width_bins function to compute histogram boundaries by @Mytherin in #12574
  • add support for casting 'yes'/'no' strings to boolean values by @chrisiou in #12501
  • Julia: Add chunked results with Tables.partitions() by @frankier in #12395
  • [PySpark] - Allow spark session range by @mariotaddeucci in #12346
  • [PySpark] Implement subset drop duplicates by @mariotaddeucci in #12348
  • ICU noaccent collation by @tiagokepe in #12170
  • Implement Brotli compression for Parquet reading & writing by @hannes in #12103
  • [FriendlySQL] Unpacked COLUMNS() Expression by @Tishj in #11872
  • [PySpark] Implement UDFRegistration.register method on PySpark api by @mariotaddeucci in #12179
  • [Python] Don't use np.nan, deprecated alias starting with NumPy 2.0 by @Tishj in #12583
  • Add bind_expression callback to scalar function, and use it to turn typeof into a BoundConstantExpression by @Mytherin in #12580
  • Add can_cast_implicitly scalar function by @Mytherin in #12581
  • Add support for histogram and histogram_values table macro, and add support for default table macros (similar to how we support default macros) by @Mytherin in #12590
  • build: swap libclang for cxxheaderparser by @Mause in #12567
  • [C-API] Add table_description struct to query various information about the table. by @Tishj in #12460
  • Change new micro benchmark script to only look for .benchmark files by @maiadegraaf in #12598
  • Add HTTP error code to extension install failures by @carlopi in #12608
  • Separate WAL write from commit, and allow writing to the WAL without holding the transaction lock by @Mytherin in #12261
  • Add OwningStringMap - and rework histogram and mode functions to use this by @Mytherin in #12601
  • Feature #1272: Window Executor State by @hawkfish in #12573
  • Add support for any type to mode aggregate by @Mytherin in #12619
  • WAL - when dropping a table, also delete any transaction local storage associated with that table by @Mytherin in #12603
  • [Python] Allow Generators to be passed where List is expected by @Tishj in #12602
  • VectorOperations::Copy - fast path when copying an aligned flat validity mask into a flat vector by @Mytherin in #12618
  • Move android CI to only run during nightly CI triggers by @Mytherin in #12622
  • Add initial support for GeoParquet + Bump spatial by @Maxxen in #12503
  • Issue #12600: Streaming Positive LAG by @hawkfish in #12609
  • Feature #1272: Window Group Preparation by @hawkfish in #12628
  • Minor window improvements by @Mytherin in #12617
  • Merge feature into main by @Mytherin in #12633
  • Refactor quantile aggregate - clean up code & support quantile_disc/median for all types by @Mytherin in #12630
  • Feature 1272: Window Payload Preallocation by @hawkfish in #12629
  • [ART] Configurable index scan threshold by @taniabogatsch in #12635
  • Subtract start offset for when fetching array child segment by @Maxxen in #12639
  • Remove custom logic to detect main vs feature by @carlopi in #12643
  • Do not quote fields with space in the CSV output mode by @szarnyasg in #12644
  • Use lowercase in 'html' output mode by @szarnyasg in #12612
  • Internal #2361: Window ROWS Overflow by @hawkfish in #12652
  • Quantile: Fix variable used only in D_ASSERT by @carlopi in #12642
  • Skip pytorch test, it fails spuriously in CI by @carlopi in #12645
  • Add histogram_exact function that adds values to bins only if they match exactly, and add other column that contains values that do not fit in any bin by @Mytherin in #12650
  • Add operator hook for sink progress by @Maxxen in #12637
  • Regression workflow on newly introduced benchmarks: remove for now by @carlopi in #12659
  • Fix #12646 - allow SQL value functions in HAVING by @Mytherin in #12654
  • Add != operators on string_t and interval_t by @carlopi in #12658
  • fix: improve C scalar functions API by @rustyconover in #12663
  • Add approx_top_k aggregate based on the (Filtered) Space-Saving algorithm, and use it in histogram by @Mytherin in #12653
  • Fix std::sort requirements, from greater_equal to greater by @carlopi in #12669
  • fix(parquet): two-complement zeroes check on FIXED_BYTE_ARRAY encoded DECIMAL (#12621) by @fedefrancescon in #12655
  • [CSV Reader] Reorder of Columns for CSV Scans on multiple files. by @pdet in #12288
  • [CSV] [Bug-Fix] Fix for issue related with single-threaded execution and null padding. by @pdet in #12679
  • [Block Size] String block limit and a few other places by @taniabogatsch in #12671
  • Rework arena allocator allocation policy - and increase pivot threshold by @Mytherin in #12690
  • Julia - Fix Base.isopen(db::DB) in #12700
  • [CLI] Limit history size to 100MB, and avoid writing invalid UTF8 to the CLI history by @Mytherin in #12677
  • Add configurable thresholds for using nested loop join and merge join by @Mytherin in #12689
  • Prevent unnecessary usage of std::string in list aggregate - and use more efficient memcpy for batched copy by @Mytherin in #12694
  • Dont load spatial unless geoparquet metata is present by @Maxxen in #12692
  • Serialization: add CustomData and better support for integrating with extensions by @jeewonhh in #12681
  • Removing ODBC driver by @hannes in #12706
  • Support thousand separator for floating point numbers by @Mytherin in #12717
  • [Python] Use non-owning references to hold created cursors by @Tishj in #12711
  • LIST(VARCHAR) - reduce memory usage by avoiding allocation of nullmask for string data, and allocate larger initial batches by @Mytherin in #12705
  • [CSV] Bug fix for race condition in single-threaded multifile reader + properly print paths on union_by_name errors. by @pdet in #12697
  • Issue template: Add ODBC and Node (neo) clients by @szarnyasg in #12714
  • Shell: add .sql suffix to temporary file created with \e by @Mytherin in #12723
  • Partitioned write - keep only up until 100 files open, when this limit is exceeded close the file and create a new file if more data for this partition appears by @Mytherin in #12708
  • Change setting types to fix warnings by @Mytherin in #12724
  • Avoid unnecessarily copying child expression when binding COLLATE statements by @Mytherin in #12725
  • Support for variadic arguments in scalar UDFs in the C API by @taniabogatsch in #12678
  • [Relation API] Dont push DISTINCT modifier for EXCEPT/INTERSECT ALL by @Tishj in #12599
  • Builds for Windows on ARM64 by @hannes in #12586
  • Rework union_by_name so that files are no longer kept open by @Mytherin in #12730
  • Fix #12729: early-out when checking for perfect hash joins when running on empty tables by @Mytherin in #12731
  • CLI: Replace \n with \r\n again in history again by @Mytherin in #12735
  • Fix #11228 - add support for unsigned integers in printf/format by @Mytherin in #12736
  • Various CI fixes by @Mytherin in #12737
  • Add repeat(LIST[], INT) that allows repetition of lists similar to how this is allowed in Python by @Mytherin in #12738
  • [Python] Add missing options to read_json method by @Tishj in #12732
  • Add support for fetching cardinality estimation and stats through a multifilelist by @samansmink in #12740
  • Fixes warnings detected by cppcheck by @carlopi in #12745
  • [Arrow] Add ArrowQueryResult by @Tishj in #12496
  • [Dev] StreamQueryResult internals cleanup by @Tishj in #12636
  • ALP/ALPRD: correctly skip when we are skipping fewer values than in a vector by @Mytherin in #12753
  • Maintain prepared statement parameter types explicitly instead of converting into literals by @Mytherin in #12759
  • CLI .changes: use sqlite3_changes64 and sqlite3_totalchanges64 to prevent overflows by @Mytherin in #12761
  • Fix #12569: avoid truncating zeros that matter in format function by @Mytherin in #12762
  • Fix #12418: Remove .lint command in SQLite shell by @Mytherin in #12763
  • Fewer system calls in LocalFileSystem::ListFiles by @Mytherin in #12769
  • Support indexes in COPY DATABASE by @Mytherin in #12768
  • Issue #12600: Batched LEAD/LAG by @hawkfish in #12770
  • Issue #12600: Streaming Positive LEAD by @hawkfish in #12685
  • Add dl functionality for Windows by @ccfelius in #12765
  • Fix stale bot permissions, with @szarnyasg by @carlopi in #12782
  • [CI] Stale bot: actually add permissions by @carlopi in #12786
  • Fix FILE_SIZE_BYTES test (again) by @lnkuiper in #12779
  • Fix extended tests in CI by @carlopi in #12781
  • Patch CentOS 7 EOL causing CI failure by @samansmink in #12788
  • Allow extensions to optionally add own description (on load) by @carlopi in #12754
  • Internal #2429: Shifted LEAD NULLs by @hawkfish in #12791
  • Issue #12784: Months Before Days by @hawkfish in #12794
  • bump vss by @Maxxen in #12797
  • Remove centos workaround by @samansmink in #12801
  • For compressed deletes in the undo buffer - count the actual size that will be written to the WAL when determining the auto-checkpoint threshold by @Mytherin in #12803
  • feat: new inet functions by @panga in #12575
  • [Dev] MakeExecutor::ResultCollectorIsBlocked less trigger-happy by @Tishj in #12780
  • Fix #12798: Add head file to fix debug build incomplete type error by @zzachimed in #12810
  • [Block Size] Switching to configurable block sizes by @taniabogatsch in #12691
  • [Dev] Clean up the generate_serialization.py script a bit by @Tishj in #12823
  • Remove micro extended from duckdb/duckdb by @hmeriann in #12792
  • [Python] Allow pathlib.Path to be provided to duckdb.connect by @Tishj in #12809
  • remove .py scripts migrating to the sqlsmith by @hmeriann in #12827
  • Some expected error messages added by @hmeriann in #12825
  • [Fix] list_resize by @taniabogatsch in #12832
  • [Python] Python SQLLogicTester maintenance by @Tishj in #12833
  • [Python] Accept a list of Expression objects in DuckDBPyRelation.aggregate by @Tishj in #12812
  • [Copy Database] Don't include generated columns in the copied data by @Tishj in #12835
  • [Julia] Added Appender support for Int128, UInt128, and Base.UUID values by @curtd in #12836
  • [Python] Fix extraction of days/seconds/microseconds from timedelta object by @Tishj in #12760
  • [Python] Output a regular key -> value dict for hashable keys by @Tishj in #12734
  • [Dev] Change internals of StringUtil::GenerateRandomName by @Tishj in #12806
  • [CSV] Adaptive Sniffer by @pdet in #12698
  • Fix LinuxRelease.yml after bump to Node 20 by @carlopi in #12850
  • Fix: Reduce repeated judgment in ties[i]. by @Light-City in #12840
  • add html_escape and html_unescape functions in inet extension by @chrisiou in #11191
  • Fix union struct implict cast by @Maxxen in #12847
  • Update httplib from v0.10.2 to v0.14.3 by @lnkuiper in #12849
  • Fix an issue where parameters would be promoted to NULL, incorrectly causing PREPARE to fail by @Mytherin in #12844
  • More expected error messages added by @hmeriann in #12846
  • Overload MIN/MAX/MAX_BY/MIN_BY to return the "top" N values by @Maxxen in #12834
  • Fix #12789: list_zip support array by @flashmouse in #12859
  • [Python] Fix missing ConnectionException errors by @Tishj in #12864
  • Make equi_width_binning buckets even nicer by @Mytherin in #12878
  • Add a JSON pretty print function by @PhictionalOne in #12398
  • Add Metrics Support in the CAPI by @maiadegraaf in #12498
  • Update issue template by @szarnyasg in #12880
  • Fix regression in Parquet reader TryOpenNextFile by @lnkuiper in #12848
  • Improve performance of memory usage counters by @yiyuanliu in #12751
  • [Fix] No String Inline / Destroy Unpinned Blocks nightly run by @taniabogatsch in #12884
  • Fix LinuxRelease.yml CI by avoiding upload by @carlopi in #12891
  • Do not depend on manylinux extension in Python's CI by @carlopi in #12895
  • [Dev] Fix failing test in test_relation_api.cpp by @Tishj in #12894
  • [Dev] Skip test_run_pandas_with_tz on pandas <2.0.0 by @Tishj in #12896
  • Fix #12688: Julia SubString handling by @dhanak in #12899
  • [Python-Dev] Add DependencyException, throw earlier if PendingQuery fails by @Tishj in #12888
  • [Fix] Mixing block sizes and compression functions by @taniabogatsch in #12858
  • Fix issue with list radix serialization by @lnkuiper in #12887
  • Respect limit during join order by @Tmonster in #12851
  • [CHORE]: Fix minor SQL test case by @Tmonster in #12909
  • Fixes for duckdb_constraints and information_schema constraint tables by @Mytherin in #12914
  • [Postgres Compatiblity] Support => to supply named parameters to functions by @Tishj in #12913
  • Pushdown table filters into probe based on min/max data found during hash build of hash joins by @Mytherin in #12908
  • Count nulls when detecting JSON structure by @lnkuiper in #12883
  • Fix #12870 - improve error message when encountering schema mismatches in COPY tbl FROM file.parquet by @Mytherin in #12918
  • Use different versions of snappy depending on the compiler by @lnkuiper in #12889
  • Fix Issues with type detection for Doubles/Floats/Decimals by @pdet in #12866
  • Pass 'Unsecure_node_version' to allow node16 for a bit longer by @carlopi in #12922
  • Minor refactor for window_executor by @ZhangHuiGui in #12924
  • ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION:false for Android and Nightly by @carlopi in #12930
  • [Fix] Vector verification for dictionary expressions by @taniabogatsch in #12890
  • Return smaller cardinality for Top N operator by @jeewonhh in #12932
  • Make GCC Happy Again by @carlopi in #12937
  • [Fix] More robust parquet metadata test by @taniabogatsch in #12935
  • Rework table filters, and for each row group only execute table filters if they can actually filter out any rows by @Mytherin in #12938
  • Issue #12941: Window Constant Results by @hawkfish in #12943
  • Expected errors 2053 by @hmeriann in #12927
  • Make ErrorData::Message() and ErrorData::RawMessage() const by @Flogex in #12885
  • Feature #1272: Window Parallel Sink by @hawkfish in #12907
  • [Arrow] Add PhysicalArrowBatchCollector, a batched result collector for the ArrowQueryResult by @Tishj in #12787
  • [Python] Rework internals of object registration by @Tishj in #12625
  • [StreamQueryResult] Add ExecuteTask method to StreamQueryResult by @Tishj in #12824
  • Fix several CTE related issues by @kryonix in #12948
  • Label mark joins with convert to semi by @Tmonster in #12916
  • [Julia]: Added FixedDecimal support to Appender API by @curtd in #12923
  • Pushdown dynamically generated filters into MultiFileList, allowing partitions to be pruned by @Mytherin in #12955
  • Automatically materialize CTEs by @lnkuiper in #12290
  • Move checkpointing parallelism into TaskExecutor class, use that class for parallel union_by_name by @Mytherin in #12957
  • [Dev] Uncouple HTTPState from core by @Tishj in #12912
  • [Dev] Clean up TreeRenderer code by @Tishj in #12716
  • Swap build side and probe side base on cardinality AND width of build side. by @Tmonster in #12755
  • [Python] Use Set instead of List for the get_table_names stubs by @Tishj in #12963
  • Feature #1272: Window Validity Array by @hawkfish in #12954
  • [CSV Reader] Make glob reading more permissive to errors if ignore_errors is set by @pdet in #12966
  • [Python] Convert ENUM to np.array instead of pd.Categorical for fetchnumpy by @Tishj in #12964
  • Several hive partitioning fixes by @Mytherin in #12970
  • fix incorrect int32 appender by @piever in #12956
  • Add missing TransformCTE extraction to TransformRecursiveCTE by @kryonix in #12968
  • Expected errors 2053 by @hmeriann in #12969
  • Add Pyodide 0.26.1 (corresponding to Python 3.12) by @carlopi in #12965
  • Avoid adding a suffix to Parquet files when doing a partitioned write by @Mytherin in #12972
  • URL Encode/Decode Hive Partitioning Columns/Filters + add url_encode/url_decode scalar functions by @Mytherin in #12974
  • Fix JSON extension Cmake by @carlopi in #12975
  • Clarify when it's necessary to refresh data and validity pointers by @Giorgi in #12973
  • Added new information_schema views - closes #4343 by @prmoore77 in #12942
  • Use jaro winkler similarity for finding similar entries in catalog by @Mytherin in #12980
  • Internal #2503: Streaming Window Reset by @hawkfish in #12984
  • Fix #12933: maintain insertion order in window when the window clause is empty (i.e. over ()) by @Mytherin in #12982
  • Feature #1272: Window Constant Sink by @hawkfish in #12979
  • Remove special case for '+' in URLs in httplib by @lnkuiper in #12929
  • Rebind prepared statements based on catalog versions by @ywelsch in #12829
  • Allow string stats larger than our default for parquet row group pruning by @lnkuiper in #12928
  • Add work-around for R client table function initialization back in under a config setting by @Mytherin in #12990
  • [Dev] Add getters/setters for the 'column_ids' of a LogicalGet by @Tishj in #12971
  • Accelerate Parquet en/decryption with HTTPFS extension by @ccfelius in #11720
  • remove deprecated CDN invalidations by @samansmink in #12997
  • add large ingestions by @hmeriann in #12949
  • Fix shared_ptr issues in RowGroup and add locks to WAL initialization by @Mytherin in #13000
  • Add the ANY type and special null handling to the C API by @taniabogatsch in #12785
  • Improve error messages in the presence of subqueries by @Mytherin in #13001
  • Case-insensitive NULL casting in VARCHAR -> STRUCT casts by @lnkuiper in #13003
  • TemporaryMemoryManager improvements by @lnkuiper in #12931
  • Make sure that empty and only white space headers have same treatment by @pdet in #12994
  • Push timestamp_tz to do direct casting if ICU is not loaded by @pdet in #12993
  • [Dev] Add query to QueryRelation for logging by @Tishj in #13004
  • [Spark API] Fix group by compatibility issues by @Tishj in #13005
  • [CSV] Progress Bar for compressed files. by @pdet in #12728
  • Disable fixed size map in PartitionedTupleData by @Mytherin in #13013
  • Fix parallel creation and destruction of instances through the DBInstanceCache by @Mytherin in #13010
  • Avoid generating join filters for interval columns by @Mytherin in #13014
  • Extend least/greatest to support all types, and always return the same type as its input types by @Mytherin in #13019
  • Add sha1(varchar) -> varchar scalar function by @bradlarsen in #13020
  • Decimal to FloatingPoint: Avoid losing precision by splitting operation in two, more fixes and tests by @carlopi in #12627
  • Feature #1272: Segment Tree Finalize by @hawkfish in #13002
  • Create Delimiter Join and Delimiter Get via Relations by @pdet in #12953
  • Fix CTE/noalternativeverify issues by @lnkuiper in #13024
  • Fix bug in reworked fixed_size_map_t by @lnkuiper in #13023
  • Fix abs for floating point negative zero by @Mytherin in #13025
  • [Nightly-Bug] [CSV Reader] Use strings on header detection by @pdet in #13028
  • Release GIL during DB instantiation by @ywelsch in #13029
  • GCC 4.8: add noexpr to 2 constructors by @carlopi in #13030
  • Fixes for LogicalType::ANY and fixed_size_map by @Mytherin in #13035
  • [Nightly] Fix for arrow appending fixed size lists by @pdet in #13039
  • fix storing persistent secrets in home dir by @samansmink in #13033
  • Internal #2534: IGNORE NULLS Threading by @hawkfish in #13050
  • [Julia] Only commit transaction on non-error (compat) by @genericallyterrible in #13049
  • Improve EXPLAIN output of Delim Joins and Delim Gets by @kryonix in #12995
  • Make client reuse threadsafe by @samansmink in #13052
  • Only remove the first occurrence of extension prefix by @jeewonhh in #13057
  • Fix incorrect overflow in left shift of unsigned number by @Mytherin in #13056
  • Add tests for sha1 function by @bradlarsen in #13064
  • [Relation] ViewRelation could be created without an alias by @Tishj in #13054
  • Support IN operator for LIST by @Tishj in #12920
  • [Python] Read from file-like objects with read_json by @Tishj in #13040
  • [Python] Fix lifetime issue with MaterializedRelation by @Tishj in #12998
  • PySpark sort by columns and DataFrame.getitem by @khalidmammadov in #12981
  • Fix trouble to compile with MSVC by @annnei in #12579
  • Create a dedicated RegisteredStateManager that manages client context states in a thread-safe manner by @Mytherin in #13027
  • DEBUG_STACKTRACE should not be enabled for release builds by @Mytherin in #13070
  • Add blob overloads to crypto functions, and turn md5_number_lower and md5_number_upper into macros by @Mytherin in #13068
  • Internal #2534: IGNORE NULLS Threading by @hawkfish in #13065
  • Variable Integer Size Type by @pdet in #13015
  • Simplify binding of CALL statement by @Mytherin in #13074
  • Fix #13045: flatten in list_inner_product by @Mytherin in #13076
  • Fix for unpivot on zero columns by @Mytherin in #13073
  • Add support for overloading to macros by @Mytherin in #13062
  • Internal #2534: Windowed FILTER Threading by @hawkfish in #13086
  • Fixup #12579, remove pessimizing std::move by @carlopi in #13089
  • [CSV Reader] Fix when reading overbuffer values of csv files with extra delimiter by @pdet in #13081
  • Making error messages more clear for new line delimiter errors by @pdet in #13082
  • [CSV Sniffer] Sniffer can now sniff files with extra delimiters by @pdet in #13083
  • Remove test in Pyodide due to weird pandas interactions by @carlopi in #13091
  • Add support for SQL-level variables by @Mytherin in #13084
  • Fix wasm CI and add missing template argument by @carlopi in #13094
  • Some clang tidy fixes around narrowing casts by @carlopi in #13105
  • chore: PushdownAggregate fast path by @lichuang in #13098
    • fix list_distance & list_cosine_similarity execute fail when list i… by @flashmouse in #13090
  • [Explain] Add EXPLAIN (FORMAT JSON) syntax by @Tishj in #12967
  • Expected errors 2053 by @hmeriann in #13107
  • [Bug] Enum types not being found if created in a schema by @pdet in #13106
  • Parquet reader can now read files with duplicate column names by @hannes in #13111
  • Prefer aliases over column-value functions in GROUP BY, and prefer error message when alias is used in an expression by @Mytherin in #13118
  • Disallowing DISTINCT, FILTER and ORDER BY for UNNEST by @hannes in #13110
  • Feature #1272: Windowed DISTINCT Sink by @hawkfish in #13093
  • adjust list value logic execute seq by @flashmouse in #13114
  • add CORE_EXTENSIONS build flag by @samansmink in #13116
  • [Python] Add missing options for read_csv by @Tishj in #12872
  • Fix merge conflict by @Mytherin in #13126
  • Retry on HTTP failure in extension install by @Mytherin in #13122
  • Clean up ChunkInfo when cleaning up a transaction by @Mytherin in #13125
  • typo: conjuction -> conjunction by @qsliu2017 in #13127
  • Add duckdb_result_error_type that returns the exception type of the error by @Mytherin in #13131
  • Keep track of user-provided configuration options, and compare them as well for database instance caching purposes by @Mytherin in #13129
  • Disable sniff_csv when enable_external_access is not set by @hannes in #13133
  • Internal #2577: Window Atomic Finalize by @hawkfish in #13117
  • Internal #2577: Window Tree Allocation by @hawkfish in #13119
  • Fix optimizer error when dealing with IN with a single NULL parameter by @Mytherin in #13139
  • Internal #2597: Ragged Validity Array by @hawkfish in #13137
  • Create file with O_EXCL flag set. by @mkaruza in #13123
  • better CE for comparisons that use =, !=, <, <=, >, >=. by @Tmonster in #13130
  • Use Slurm env vars to manage cpu and memory allocation if run inside Slurm HPC job by @dirkpetersen in #12978
  • Fix CTEFilterPusher optimization by @kryonix in #13142
  • Test with recent threadsanitizer by @carlopi in #13124
  • Fixes for RegexFindAll function errors and multibyte character support by @chrisiou in #13108
  • clang-tidy: rework Makefile and CI by @carlopi in #13101
  • Extension updates to also be logged via enable_http_logging by @carlopi in #13087
  • Hooks now get an error to indicate transaction/query success. by @NiclasHaderer in #13136
  • Use alias bind path in ORDER BY when running COLLATE by @Mytherin in #13140
  • Implementation of recursive JSONPath expressions by @robert-s01 in #12991
  • Adding option to disable materialized cte optimization by @pdet in #13146
  • [Python] Fix issue with native UDFs returning STRUCT items by @Tishj in #13147
  • CGroups: fix compilation due to UB cast by @carlopi in #13151
  • test_expression.py: Skip throw related test on Windows by @carlopi in #13157
  • Replaced while loop with if statement by @NiclasHaderer in #13161
  • ThreadSanitizer: Avoid spurious data race in InsertMatchesAndIncrementMisses by @carlopi in #13179
  • Add 'bugprone-narrowing-conversions' clang-tidy check by @carlopi in #13180
  • [C API] Return duckdb_value in duckdb_profiling_info_get_value by @taniabogatsch in #13160
  • Fix #13120: implement StructFilter::ToExpression by @Mytherin in #13182
  • Feature #1272: Windowed DISTINCT Sort by @hawkfish in #13150
  • Add native list_has_any implementation by @Maxxen in #13163
  • Add pragma extension versions by @samansmink in #13063
  • [C API] Add duckdb_scalar_function_set_volatile that allows changing FunctionStability of a scalar function by @Mytherin in #13186
  • [CSV Sniffer] Give preference to configurations that ignore the least amount of lines by @pdet in #13188
  • Fix #13017 - if grabbing the lock fails due to it not being supported, allow this in read-only mode by @Mytherin in #13189
  • Add test_collate_pivot: used to fail in 1.0.0, add to avoid regressions by @carlopi in #13190
  • Add catalog_error_max_schemas setting that toggles how many schemas we look at for "did you mean..." style error messages by @Mytherin in #13191
  • Fix build error when compiling with -DDISABLE_EXTENSION_LOAD=1 by @whatsthecraic in #13194
  • Add clang-tidy-diff script, and invoke it on PRs by @carlopi in #13158
  • [Explain (mostly internal only)] Change the way key-value pairs of information are stored for RenderTreeNodes by @Tishj in #13109
  • Fixup invocation of clang-tidy by @carlopi in #13216
  • [Julia] fix Vector and DataChunk all_valid() checks by @aplavin in #13210
  • Fix broken explain (format json) test by @Mytherin in #13218
  • Linux 32: avoid packaging Jemalloc, due to regression by @carlopi in #13156
  • feat(c): create value support by @Mytherin in #13203
  • feat(c): create value support by @Mause in #12140
  • fix: 13077: use tmp file for secret writes by @devanbenz in #13170
  • Filter paths before scripts/clang-tidy-diff.py by @carlopi in #13220
  • [CSV Reader/Progress Bar] Fixes by @pdet in #13207
  • Use poll in httplib by @Mytherin in #13223
  • Fix several fuzzer issues by @Mytherin in #13240
  • Fix #13238 - cannot return constant vector for volatile functions with more than one row as input by @Mytherin in #13241
  • Rename FORCE_CHECKPOINT to ALWAYS_CHECKPOINT by @Mytherin in #13242
  • C API test fix - correctly use length also in non-inlined case by @Mytherin in #13243
  • Rollback optimistic writers when all rows we have inserted are deleted by @Mytherin in #13236
  • Add serialization support and fix ToString of ChangeOwnershipInfo by @Mytherin in #13233
  • Fix #13200: Transactions that update tables need to keep the underlying row group collection alive to ensure we can safely clean-up by @Mytherin in #13230
  • [CSV Reader] Comment Option by @pdet in #13162
  • Fix foreign key lookups from different search path by @ywelsch in #13256
  • Add aggregate function support to the C API by @Mytherin in #13229
  • Feature #1272: Window Task Blocking by @hawkfish in #13249
  • Implement #4318: add overload for pg_get_constraintdef by @Mytherin in #13258
  • Several fuzzer fixes by @Mytherin in #13261
  • Correctly add profiling information from finalize events to operator timings in EXPLAIN ANALYZE by @Mytherin in #13260
  • Issue #13250: Zero Time Buckets by @hawkfish in #13271
  • Add delta to CI by @samansmink in #13219
  • Remove outadated test that fails somehow randomly and doesn't add much by @carlopi in #13276
  • Fix casts logic by @carlopi in #13275
  • Executor profiler fix by @Mytherin in #13282
  • Avoid clang-tidy-diff to check Python sources or extension folder by @carlopi in #13279
  • Enable yacc stack growing by @Mytherin in #13280
  • Fix #13272: correctly read signed integer stats for TIMETZ by @Mytherin in #13283
  • [Upsert] Fix crash caused by scanning an empty LocalTableStorage by @Tishj in #13281
  • Internal #2681: IEJoin Progress by @hawkfish in #13284
  • Move to latest duckdb-wasm (fixing COI compilation) by @carlopi in #13257
  • [DEV] CSV Tests Refactor and Sniffer decoupled of the vector size by @pdet in #13231
  • [TemporaryFileManager] Fix bug causing sizes of .block files to not be counted towards max_temp_directory_size by @Tishj in #13278
  • [CSV Reader] Properly cleanup invalid rows by @pdet in #13262
  • Disable website docs CI run by @Mytherin in #13288
  • Window Task Scheduling: avoid blocking tasks during GETDATA by @Mytherin in #13290
  • Fix #12582: correctly deal with empty grouping sets mixed with non-empty ones in lateral joins/correlated subqueries by @Mytherin in #13291
  • Reduce memory usage of test by @Mytherin in #13292
  • Move back from handrolled checkout to GH action + skip some verification in memory-intensive tests in CI by @carlopi in #13296
  • C API extensions by @samansmink in #12682
  • Secret settings cascade by @samansmink in #13167
  • Fix CMake for when folders are not git folders via git rev-parse --is-inside-work-tree by @carlopi in #13315
  • [Dev] Fix breakage caused by adjusting duckdb.h directly by @Tishj in #13321
  • CAPI extensions: Fixup list of exported functions for wasm by @carlopi in #13320
  • [Python Dev] Make cursor creation threadsafe, perform compaction on the internal vector by @Tishj in #13319
  • [Dev] Make (previously implicit) assertion explicit for DuckTransactionManager by @Tishj in #13307
  • [PySpark] Fix filter type checking and isin column expression return type by @khalidmammadov in #13294
  • Fix clang-format version in CONTRIBUTING.md by @JelteF in #13324
  • Expected errors 2053 by @hmeriann in #13322
  • Fix #13237: fix .mode insert float column output by @flashmouse in #13308
  • Add CUMULATIVE_CARDINALITY metric by @maiadegraaf in #13234
  • Fuzzer #3113: Lead Lag Shift by @hawkfish in #13330
  • Implemented list_extract with VectorOperations::Copy by @Maxxen in #13313
  • Issue template: Fix Arrow extension link by @szarnyasg in #13333
  • NO_PARTITION_COLUMNS option to skip partition writes for Parquet copy by @ykskb in #12886
  • Format Python README by @szarnyasg in #13340
  • Bug/Regression fixes by @lnkuiper in #13317
  • Enable unnesting lists of arrays by @Maxxen in #13342
  • Limit relation has wrong relation type by @pdet in #13343
  • [Dev] Remove redundant variable from SQLStatement by @Tishj in #13341
  • Internal #2722: Partition State Threading by @hawkfish in #13350
  • Adding hyperbolic trigonometric functions by @nickgerrets in #13346
  • CSV Sniffer - Error Messages by @pdet in #13355
  • Fix a typo by @SYaoJun in #13360
  • Add PySpark head, take and first functions by @khalidmammadov in #13349
  • [Explain] Add the GRAPHVIZ format for EXPLAIN statements by @Tishj in #13201
  • Time cast: Have same behavior as Postgres by @pdet in #13267
  • Fix reordering semi joins by @Tmonster in #13335
  • Fix appian join tests by @Tmonster in #13356
  • remove sqlsmith patch by @Tmonster in #13334
  • Support Json Types in CSV Reader by @pdet in #13359
  • [CSV Sniffer] Date/Timestamp Sniffing adjustment by @pdet in #13168
  • WAL: Write pointers to optimistically written row groups directly, instead of copying over the data by @Mytherin in #13372
  • [Metrics] Add CUMULATIVE_ROWS_SCANNED and OPERATOR_ROWS_SCANNED by @maiadegraaf in #13354
  • [Transformer] Fix loss of named parameter data in recursive TransformStatement calls by @Tishj in #13344
  • Feature #1272: Window Distinct Merging by @hawkfish in #13329
  • Refine heuristic for flipping join sides by @lnkuiper in #13399
  • Update jemalloc and re-enable opt.retain by @lnkuiper in #13370
  • Add native list_has_all implementation by @Maxxen in #13401
  • Feature #1272: Window Distinct Indices by @hawkfish in #13394
  • [Arrow] Support consuming an "arrow_array_stream" PyCapsule by @Tishj in #13386
  • Sample at least one value for the hyperloglog by @Tmonster in #13383
  • Fix issues with JSON map inference by @lnkuiper in #13387
  • Compressed materialization for joins by @lnkuiper in #13402
  • Python installation: Recommend using pip by @szarnyasg in #13357
  • [Python UDF] Filter NULL values before calling the user defined function by @Tishj in #13358
  • Add support for scalar function overloads to the C API by @Mytherin in #13409
  • Fix unused variable, resolve warning turned error in the amalgamation CI by @carlopi in #13408
  • Add support for aggregate function overloads to the C API by @Mytherin in #13410
  • Fix lossy double cast issue by @lnkuiper in #13411
  • Buffer manager: set handle readers after I/O so that any I/O exceptions don't leave the readers with an invalid value by @Mytherin in #13417
  • fix undefined symbol in httpfs for python by @cyberjunk in #13420
  • Fix dsdgen args by @Tmonster in #13421
  • [Arrow] Support producing an "arrow_array_stream" PyCapsule by @Tishj in #13418
  • Disable jemalloc on 32bit through cmake, not through a CI script by @lnkuiper in #13433
  • allow changing the default persistent secret storage after initialization by @samansmink in #13434
  • Fixing hugeint cast to varint by @pdet in #13268
  • [Explain] Add the HTML format for EXPLAIN statements by @Tishj in #13202
  • fix for the issue 2698 by @hmeriann in #13440
  • Avoid rounding errors and simplify memory assignments in TemporaryMemoryManager by @lnkuiper in #13439
  • Pull up filters from and through explicit joins by @lnkuiper in #13431
  • [Metadata] Populate the expressions column of duckdb_indexes by @Tishj in #13415
  • Use LossyNumericCast while reading memory limits by @carlopi in #13450
  • Label timestampTZ to timestamp cast as not revertible by @Tmonster in #13206
  • Prevent the query thread from picking up query unrelated tasks if compiled with DUCKDB_NO_THREADS by @NiclasHaderer in #13326
  • [Dev] Skip test on lower pyarrow versions by @Tishj in #13463
  • Add TPCDS sf-100 benchmarks by @hmeriann in #13205
  • [Python] Let create_function cancel an open transaction instead of failing by @Tishj in #13462
  • [Dev] Mention non-unique indexes in UPSERT DO UPDATE SET error by @Tishj in #13465
  • Issue #13380: IN Invertible Casts by @hawkfish in #13441
  • Compilation Fixes for GCC 4.8 by @hannes in #13474
  • [Dev] Make Binder::Binder a private constructor by @Tishj in #13475
  • [Arrow] Accept objects that provide the __arrow_c_stream__ producer method by @Tishj in #13425
  • [Lambdas] Support N-ary lambdas in the list comprehension syntax by @Tishj in #13389
  • [METRICS] Add blocked_thread_time Metric by @maiadegraaf in #13430
  • Add ifdef to allow generating code with newer versions of Bison by @Mytherin in #13477
  • Clean up rendered text trees by @Mytherin in #13476
  • Make CMake target exports relocatable by @cryos in #13312
  • Disable delta extension on windows for now by @Mytherin in #13485
  • Regression runner - don't fail on HTTP error by @Mytherin in #13486
  • ExecutorTask: flush before finalizing task by @Mytherin in #13482
  • [Metrics] Rework Optimizer Metrics by @maiadegraaf in #13480
  • Support collations in ordered aggregates by @Mytherin in #13491
  • ci: minor optional cleanup for cibuildwheel config by @henryiii in #13496
  • chore: remove wheel dependency by @henryiii in #13495
  • Prefer depth-first plan evaluation for unions and joins by @lnkuiper in #13447
  • Fix #13472: get correct WAL location for windows long paths by @Mytherin in #13487
  • Make error message more explicit for when trying to parse SQL types. by @pdet in #13376
  • [Arrow] Add UUID and JSON extension types by @pdet in #13446
  • Apply extension patches via 'patch' instead of 'git apply' by @carlopi in #13488
  • Feature #1272: Window Distinct Tree by @hawkfish in #13503
  • Scalar macro default params by @Alex-Monahan in #13494
  • Add Varint to AllTypes() by @pdet in #13388
  • [ADBC] Support creation and ingestion into temporary tables. by @pdet in #13426
  • Add support for registering custom casts (and types) through c api by @Maxxen in #13499
  • Bump sqlite & mysql by @carlopi in #13515
  • Switch floating point division and modulo to use IEEE semantics for division by zero by default, and add ieee_floating_point_ops setting that can be used to revert back to old behavior by @Mytherin in #13493
  • [C API] Get all metrics by @taniabogatsch in #13497
  • Tuning ART indexes for duplicate values by @taniabogatsch in #13373
  • Feature #1272: Windowed Quantile Tree by @hawkfish in #13516
  • [Auto Loading] Autoload extension settings by @Tishj in #12790
  • JSON bugfixes and new functions by @lnkuiper in #13481
  • Make changes to relation.hpp backward compatible with older API via default parameters by @carlopi in #13522
  • Preserve cardinality information by @jeewonhh in #13517
  • Return an error when multiple rows are returned from a scalar subquery by @Mytherin in #13514
  • When referencing optimistically-written blocks in the WAL, we need to fsync the main database file before writing the WAL to ensure all changes have made it to disk by @Mytherin in #13526
  • Remove assertion in compressed file system by @Maxxen in #13531
  • Skip empty files in single-threaded CSV reader by @pdet in #13528
  • Disallow ordering by non-integer literal by default - and add the setting order_by_non_integer_literal to revert to the previous behavior by @Mytherin in #13532
  • Produce an empty list result for enum_range(NULL::enum_type) by @pdet in #13530
  • [CSV Reader] Fix for invalid unicode in header by @pdet in #13518
  • Issue #13525: Window Local States by @hawkfish in #13538
  • Linux32 also to regular ci by @carlopi in #13547
  • Feature #1272: Windowed Distinct Tree by @hawkfish in #13527
  • Bump GitHub workflows to their latest versions by @deining in #13393
  • Add map_contains, map_contains_entry and map_contains_value functions, list_position now returns null. by @Maxxen in #13406
  • Numeric casts: forbid NumericCasts for float/double, add Lossy and Exact equivalent to make syntax explicit by @carlopi in #13546
  • Fix clang-tidy on insertion_order_preserving_map.hpp: Alter order of statements by @carlopi in #13556
  • Add http proxy by @samansmink in #13368
  • move the inet extension out-of-tree by @chrisiou in #13085
  • Fix compilation: install extension needs an instance now by @Mytherin in #13565
  • Initialize (potentially) empty buffer by @lnkuiper in #13564
  • HTTP glob test fix by @Mytherin in #13563
  • Remove patches (vss and substrait), bump other repositories by @carlopi in #13551
  • Disable dynamic filter pushdown for right semi joins by @Mytherin in #13562
  • postgres_scanner: bump & remove patches by @carlopi in #13567
  • Optimistic write to WAL: cannot write block pointers if we have in-memory updates to transaction local storage by @Mytherin in #13577
  • Add all CAPI functions to extension api for now by @samansmink in #13568
  • Minor fixes for DuckDB-Wasm by @carlopi in #13566
  • Fix for vector size 2 tests by @Mytherin in #13569
  • [CSV Sniffer] Date Adjustment by @pdet in #13573
  • Fix issues found by alternative verify by @Mytherin in #13578
  • Set version info for duckdb.dll by @Giorgi in #13557
  • Update storage info by @szarnyasg in #13483
  • Constrain size of estimated cardinality returned when operator is not initialized by @Mytherin in #13574
  • Unify task (un)blocking in physical operators by @lnkuiper in #13559
  • [CSV Reader] Fix lock issue on Global CSV Reader by @pdet in #13560
  • TIMETZ group by: collations now no longer always return VARCHAR by @Mytherin in #13571
  • Internal #2850: Window Local States by @hawkfish in #13581
  • Two steps upload action by @carlopi in #13582
  • Use new HLL implementation in DistinctStatistics by @lnkuiper in #13489
  • Remove inet from extension update test by @Mytherin in #13589
  • [METRICS] Small fixes by @maiadegraaf in #13575
  • Fix #13537: correctly maintain parameter count when rebinding a prepared statement by @Mytherin in #13583
  • Various nightly test fixes by @Mytherin in #13584
  • IE Join: turn these into atomics to prevent tsan from tripping up in GetProgress by @Mytherin in #13586
  • Fix HTTPFS tests by @Mytherin in #13588
  • [PyArrow] Fix issue with passing timestamp types to filters by @pdet in #13593
  • Fuzzer fixes by @Tmonster in #13596
  • Automatically call malloc_trim to reduce unused outstanding allocations by @lnkuiper in #13590
  • Fix for joins and FSST on 32-bit configurations by @Mytherin in #13594
  • Casting to Bit is no longer Invertible by @Tmonster in #13595
  • Switch in-tree DuckDB extension to use DuckDB's semver tag by @samansmink in #13591
  • List has bind fix by @Maxxen in #13600
  • Do not include version.rc file on MINGW by @Giorgi in #13601
  • [Python RelAPI] Throw an error if trying to use a invalid argument in read_csv by @pdet in #13597
  • More nightly test fixes by @Mytherin in #13605
  • Optimistic write to WAL: we cannot optimistically write block pointers if there are indexes by @Mytherin in #13610
  • Block verification run and FixedSizeBuffer fix by @taniabogatsch in #13607
  • [Test] Tighter ART storage regression boundaries by @taniabogatsch in #13612
  • Disable JEMALLOC_HAVE_MADVISE_HUGE in jemalloc by @lnkuiper in #13608
  • Avoid adding buffers that will be destroyed to the eviction queue by @lnkuiper in #13606
  • Track overflow strings in PartialBlockManager during optimistic write by @Mytherin in #13618
  • [Fix] Avoid index deletion after catalog exception by @taniabogatsch in #13627

Full Changelog: v1.0.0...v1.1.0

Don't miss a new duckdb release

NewReleases is sending notifications on new releases.