This is a bug fix release for various issues discovered after we released 1.1.0. There are no new major features, just bug fixes. Database files created by DuckDB since v0.9.* can be read by DuckDB v1.1.1.
What's Changed
- [Python] Fix a crash related to handling of the
f_locals
by @Tishj in #13821 - [Dev] Remove unnecessary parameter from BufferHandle constructor by @Tishj in #13823
- When vacuuming, immediately checkpoint the vacuumed row groups instead of scheduling a checkpoint task by @Mytherin in #13825
- Check for unquoted errors after finishing up a buffer. by @pdet in #13826
- Issue #13813: TIMETZ Uninvertible Casts by @hawkfish in #13820
- add cardinality for cross product and propositional join by @jeewonhh in #13818
- Add requested_schema argument to PyCapsule interface by @WillAyd in #13802
- Throw at double/float cast to decimal if it does not fit by @pdet in #13745
- [Fix] C API - Correct type comparison in MAP value functions by @taniabogatsch in #13844
- [C-API Dev] Fix up
"Test DataChunk populate ListVector in C API"
test by @Tishj in #13839 - [Dev] Minor cleanup to BufferManager and BlockHandle API by @Tishj in #13838
- Small fixes for prompt of sniff_csv by @pdet in #13843
- [BufferManager] Fix
duckdb_memory()
reporting wrong size fortemporary_storage_bytes
by @Tishj in #13837 - Fix for internal error when using rejects tables and adding implicit cast for boolean values. by @pdet in #13849
- [Fix ART] Correct prefix transformation by @taniabogatsch in #13858
- [Python] Fix issue causing an exception when creating a
duckdb.StarExpression
without anexclude_list
by @Tishj in #13881 - Fix issue with cgroups/slurm variables: skip if memory limit cannot be parsed, and only run this on Linux by @Mytherin in #13879
- Explicit windows-2019 instead of windows-latest by @carlopi in #13883
- CI/Windows: Drop redundant package by @szarnyasg in #13874
- Preserve operator in
BindWithCTE
by @lnkuiper in #13873 - Update description of 'max_temp_directory_size' by @szarnyasg in #13724
- 13810 unnest cross join error by @Tmonster in #13878
- Tweak allocation purging by @lnkuiper in #13877
- Copy From Database - create a balanced UNION ALL tree instead of a depth-first union all tree to avoid stack overflows by @Mytherin in #13889
- [Python] Fix issue related to the GIL when using
execute
with multiple statements by @Tishj in #13893 - Fix #13880: correctly name http_proxy_password setting by @Mytherin in #13890
- Fix #13872: duckdb_result_return_type is not deprecated, and group together deprecated functions by @Mytherin in #13891
- [Python] Add
python_scan_all_frames
to opt-in to scanning all frames (< 1.1 behavior) by @Tishj in #13896 - Improve error on enums by @carlopi in #13885
- Handle extension ABI mismatches in a forward & backward compatible way by @carlopi in #13894
- Fix #13824: min() max() varchar column use default collation by @flashmouse in #13909
- Fix issue in casting 2 byte BIT -> BLOB by @Tishj in #13908
- add missing azure secret providers for autoloading by @samansmink in #13902
- Remove buffer_manager_allocate.patch and bump spatial by @carlopi in #13895
- [Python] Improve
install_extension
to supportrepository
/repository_url
andversion
by @Tishj in #13876 - fix REGEX not supported anymore for valid queries (only statement error) #2889 by @hmeriann in #13633
- [CI] Invert operations on OSX.yml, deploying nightly artifacts before test by @carlopi in #13927
- [Python][Jupyter] Don't use
ExplainFormat::HTML
forexplain('analyze')
by @Tishj in #13928 - Only bind to SQL value functions if there is no alias with this name present we can bind to instead by @Mytherin in #13925
- Improve logic for remote extension install on Windows by @carlopi in #13929
- CI: Trigger actions for labeled discussions by @szarnyasg in #13937
- [Swift] Update README.md in Swift repo by @tcldr in #13955
- [Dev] Add exclusion for
pybind11
internal_pybind11_conduit_v1_
method by @Tishj in #13961 - Create a balanced union tree, also for export by @Mytherin in #13956
- Increment julia version by @Mytherin in #13966
- Fix #13585 - transform from or select first based on order specified by the user by @Mytherin in #13959
- Fix Cross Product Cardinality by @jeewonhh in #13954
- Do not run the date/timestamp format sniffer if they are set by the user by @pdet in #13960
- Modify create_art_varchar.benchmark so it passes weekly regressions by @Tmonster in #13968
- Fix data race when writing GeoParquet by @Maxxen in #13962
- Check vector type in GetVectorScanType to avoid concurrent race when updating validity by @Mytherin in #13965
- Parser Keyword Category Search by @pdet in #13875
- Escape quotes in FTS by @lnkuiper in #13917
- Fix #13941: fix error message in appender by @Mytherin in #13957
- fix: remove http prefix from proxy value when present by @dylanspag-lmco in #13973
- Use defaults when serializing copy to file by @Mytherin in #13978
- Fix #13933: disable join filter pushdown when a join is performed over collated columns by @Mytherin in #13958
- Fix partitions on wide tables by @piever in #13988
- [Fix] Throw exception for UNNEST in lambdas by @taniabogatsch in #13969
- Fixing some parquet issues found by fuzzing by @hannes in #13964
- fix julia partitions for streaming result by @piever in #14000
- More descriptive Parquet created_by with version and source hash by @hannes in #13992
- Decimal downcast limit check by @pdet in #13922
- [C API] Add SQLNULL to the duckdb types by @taniabogatsch in #13999
- Fix crash in the shell caused by printing blobs that failed to cast by @Maxxen in #13983
- [Binding] Always try binding with the schema of the
UserType
first if it's set by @Tishj in #13995 - [Arrow] Only produce 'arrow.json' Extension types when
arrow_lossless_conversion
is enabled. by @Tishj in #13989 - Bugfixes by @lnkuiper in #13982
- Disable swift linux tests by @Mytherin in #14019
- fix minor typos in comments of aggregate function tests by @era127 in #14007
- [CSV Sniffer] Slight change of rules for dialect detection by @pdet in #14013
- [Test Fix] Add noforcestorage to in-memory tests by @taniabogatsch in #14016
- Fix #14020: fix off-by-one in RLE compression: avoid flushing when last_seen_count == 0 which can happen if a column has exactly 2^16 (65535) repeated values by @Mytherin in #14030
- Adds Julia support for scalar UDFs by @drizk1 in #14024
- Proper NULL handling in special json extraction functions by @lnkuiper in #14032
- Fix #13993 - avoid disabling optimizers for SET VARIABLE by @Mytherin in #14028
- [Arrow] Make unknown Arrow extensions throw at scan instead of bind by @pdet in #14015
- Improve assertion macros by @c-herrewijn in #14033
- [Arrow] Move
ArrowUtil
to its own file by @Tishj in #13990 - [CSV Sniffer] Verify validity of header before value access by @pdet in #14040
- Fix #14026: all TIMESTAMP_xx cannot cast to TIME directly by @flashmouse in #14045
- Only merge distinct stats if both sides have distinct stats available by @Mytherin in #14046
- Avoid http-redirect in README by @carlopi in #14029
- fix: make ArrowArrayWrapper::GetNextChunk() virtual by @rustyconover in #14003
- Issue #13655: MEDIAN Even Tests by @hawkfish in #13722
- Fix #13934: use CreateSortKeyWithValidity to correctly handle NULL in all calls to arg_max by @Mytherin in #14053
- Upgrade MySQL/Postgres extensions by @Mytherin in #14054
- [Union Reader] Early-out on readers of files that do not have data by @pdet in #14050
- Issue #13899: AsOf Unrelated Pushdown by @hawkfish in #13975
- Feature #3128: 2024b Time Zones by @hawkfish in #14061
- bump spatial by @Maxxen in #14062
- Fixup StagedUpload invocation via workflow_call by @carlopi in #14065
- Skip polars test in 3.7 due to missing PanicException by @carlopi in #14066
- Add building, testing and distributing for Python 3.13 by @carlopi in #14067
- bump sqlsmith and azure versions by @samansmink in #14069
- bump substrait by @pdet in #14055
- CIBW_SKIP also musllinux on Python 3.7 or Python 3.8 by @carlopi in #14074
Full Changelog: v1.1.0...v1.1.1