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 toDuckDB.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
andBLOCK_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
fromDATE
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
inStandardBufferManager::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 toCOPY 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
andgenerate_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
andtimedelta
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 turntypeof
into aBoundConstantExpression
by @Mytherin in #12580 - Add
can_cast_implicitly
scalar function by @Mytherin in #12581 - Add support for
histogram
andhistogram_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 reworkhistogram
andmode
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 & supportquantile_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 addother
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
inlist
aggregate - and use more efficientmemcpy
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] Make
Executor::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 toduckdb.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 inDuckDBPyRelation.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
, andBase.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 causingPREPARE
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 ifPendingQuery
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()
andErrorData::RawMessage()
const by @Flogex in #12885 - Feature #1272: Window Parallel Sink by @hawkfish in #12907
- [Arrow] Add
PhysicalArrowBatchCollector
, a batched result collector for theArrowQueryResult
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 parallelunion_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 ofList
for theget_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 ofpd.Categorical
forfetchnumpy
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 inVARCHAR
->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 towardsmax_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
withVectorOperations::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 forEXPLAIN
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
andOPERATOR_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 forEXPLAIN
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 ofduckdb_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
andmap_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