Releases: duckdb/duckdb-rs
v1.4.3
Highlights
- Build can auto-download matching prebuilt libduckdb via
DUCKDB_DOWNLOAD_LIB=1. - Appenders now support column subsets and column switching; defaults/NULLs fill the rest.
- Table functions can store extra info via the new
register_table_function_with_extra_info. - Scalar functions can be marked volatile using the
volatiletrait method. - Logical type coverage broadened (new DuckDB IDs,
Unsupportedfallback). - Updated bundled DuckDB to v1.4.3
What's Changed
- Update Rust to 1.91 by @mlafeldt in #626
- Download pre-built DuckDB libraries by @mlafeldt in #628
- Handle invalid & unsupported DuckDB types more gracefully by @mlafeldt in #629
- Add missing LogicalTypeId variants to match DuckDB C API by @leo-altertable in #630
- Allow to pass extra info to table functions by @mlafeldt in #637
- Align scalar state semantics and revert TableFunctionOptions by @mlafeldt in #638
- Support volatile scalar functions by @mlafeldt in #639
- Add ListVector::get_entry by @mlafeldt in #640
- Update broken links in CONTRIBUTING.md by @mlafeldt in #641
- Add column-selective appender API with default support by @mlafeldt in #642
- Remove broken release changelog/action by @mlafeldt in #645
- Update DuckDB to v1.4.3 by @mlafeldt in #644
New Contributors
- @leo-altertable made their first contribution in #630
- @tobilg made their first contribution in #639
Full Changelog: v1.4.2...v1.4.3
v1.4.2
What's Changed
- Test behavior of multiple in-memory databases by @mlafeldt in #601
- Add test for appending struct fields using params! macro by @mlafeldt in #603
- Mark RawStatement as Send and document thread safety constraints by @mlafeldt in #606
- Add support for querying parameter names in prepared statements by @mlafeldt in #609
- Add installation guide to README by @mlafeldt in #611
- Document ICU extension limitations with bundled feature by @mlafeldt in #612
- Don't try to test README snippet by @mlafeldt in #613
- Add missing 28 to AppenderParams array impl by @mlafeldt in #614
- Create an appender to specific catalog + schema + table by @mchataigner in #623
- Add basic support for FixedSizeBinary using Blob by @mchataigner in #624
- refactor(types): use into_result in from_sql and improve decimal conversion by @fvaleye in #616
- performance(chrono): use write! macro to improve date formatting by @fvaleye in #617
- performance(memory): improve memory allocation when the size is known by @fvaleye in #618
- Add column_logical_type and get/set_alias methods by @diegoimbert in #620
- Update DuckDB to v1.4.2 by @Maxxen in #625
New Contributors
- @mchataigner made their first contribution in #623
- @fvaleye made their first contribution in #616
- @diegoimbert made their first contribution in #620
Full Changelog: v1.4.1...v1.4.2
v1.4.1
v1.4.0
What's Changed
- Remove personal development files by @mlafeldt in #534
- Make config API more ergonomic by @mlafeldt in #535
- Document what Date32 is and how to convert it by @mlafeldt in #539
- Improve column_count error handling and documentation by @mlafeldt in #541
- Fix vscalar feature to depend on vtab-arrow by @mlafeldt in #542
- Fix feature configuration using cargo-hack by @mlafeldt in #545
- Remove features extra_check and column_decltype by @mlafeldt in #548
- Document Cargo features by @mlafeldt in #549
- Remove unused SmallCString implementation by @mlafeldt in #550
- Reproduce issue with produce_arrow_string_view and show fix by @mlafeldt in #552
- Add REPL example by @mlafeldt in #553
- Document available examples by @mlafeldt in #555
- Overhaul README by @mlafeldt in #556
- Add query_one convenience method by @mlafeldt in #559
- Show how to use Rows.and_then and point users to it by @mlafeldt in #560
- Fix memory leak in Value Display implementation by @mlafeldt in #562
- Document linking against libduckdb on macOS and Linux by @mlafeldt in #563
- Remove redundant flush and close calls in Appender Drop by @mlafeldt in #564
- Add test for foreign key constraint validation in Appender by @mlafeldt in #565
- Speed up CI by canceling in-progress runs by @mlafeldt in #566
- Clean up ignored tests by @mlafeldt in #567
- Support passing custom state to scalar functions by @mlafeldt in #558
- Remove broken SAVEPOINT implementation copied from rusqlite by @mlafeldt in #568
- Document how to get column count by @mlafeldt in #569
- Use Rust 1.89.0 by @mlafeldt in #573
- Set minimal supported Rust version to 1.82.0 by @mlafeldt in #572
- Fix or remove links to SQLite by @mlafeldt in #578
- Remove unsupported TransactionBehavior by @mlafeldt in #579
- Expose Transaction::new_unchecked by @mlafeldt in #580
- Bump slab from 0.4.10 to 0.4.11 by @dependabot[bot] in #581
- Pin nightly Rust to fix ASAN CI job by @mlafeldt in #584
- build(libduckdb-sys): sort C++ source files for deterministic builds by @FabioCanedo in #583
- Fix arrow list type to duckdb logical type conversion by @wangrunji0408 in #574
- Update Arrow to v56 by @mlafeldt in #589
- Update DuckDB to v1.4.0 by @mlafeldt in #590
New Contributors
- @FabioCanedo made their first contribution in #583
- @wangrunji0408 made their first contribution in #574
Full Changelog: v1.3.2...v1.4.0
v1.3.2
What's Changed
- Fix Parquet example to run from workspace root by @mlafeldt in #522
- Update and clean up dependencies by @mlafeldt in #520
- Optimize dependencies by @paolobarbolini in #513
- Update Rust to v1.88.0 by @mlafeldt in #523
- Publish docs for more features by @mlafeldt in #524
- Expand and test Inserter trait by @mlafeldt in #525
- chore: Let Inserter accept &String and &Vec by @yutannihilation in #507
- ran
cargo clippy --fix -- -Wclippy::use_selfby @adamnemecek in #502 - cargo clippy --fix --all-features -- -Wclippy::use_self by @mlafeldt in #526
- First round of CI tweaks by @mlafeldt in #527
- enable union test by @Mause in #340
- Fix timezone-dependent chrono tests with fixed timestamps by @mlafeldt in #528
- Fix column names in Arrow tests by @mlafeldt in #529
- possible typo in appender test case by @era127 in #306
- Add interrupt handle by @jankramer in #493
- Support appending large Arrow record batches by @mlafeldt in #530
- Fix conversion of Arrow floating point types by @mlafeldt in #532
- Update DuckDB to v1.3.2 by @mlafeldt in #531
New Contributors
- @paolobarbolini made their first contribution in #513
- @adamnemecek made their first contribution in #502
- @jankramer made their first contribution in #493
Full Changelog: v1.3.1...v1.3.2
v1.3.1
Had to re-issue the release since the CD job failed. Sorry about that!
What's Changed
- Multiple upgrade.sh improvements by @mlafeldt in #514
- Fix a bunch of problems reported by Clippy by @mlafeldt in #517
- Ensure we all use the same Rust version during development by @mlafeldt in #516
- Update to DuckDB v1.3.1 by @mlafeldt in #515
- bump loadable macros crate by @Maxxen in #521
Full Changelog: v1.3.0...v1.3.1
v1.3.0
Note
Unfortunately this release contains a regression when reading DECIMAL types through arrow. DuckDB v1.3.0 contains new physical types for decimals and will try to use the smallest possible representation for decimals depending on their logical scale and width - but arrow-rs currently only supports 128 and 256-bit decimals (not e.g. 32-bit used with smaller widths), and will thus throw an error when these smaller decimals are read from DuckDB. Regardless of when/if arrow-rs adds support for smaller decimal types, the plan is to make this behavior configurable in DuckDB v1.3.1.
What's Changed
- Update
github.com/wangfenjin/duckdb-rstogithub.com/duckdb/duckdb-rsby @lukekim in #499 - Make DuckString's constructor public by @benjamintli in #497
- upgrade arrow-rs to 55 by @AdamGS in #496
- fix: libduckdb-sys build fails on Windows by @maemon4095 in #495
- [WIP] Update to DuckDB v1.3.0 by @Maxxen in #505
New Contributors
- @lukekim made their first contribution in #499
- @benjamintli made their first contribution in #497
- @AdamGS made their first contribution in #496
- @maemon4095 made their first contribution in #495
Full Changelog: v1.2.2...v1.3.0
1.2.2
What's Changed
- include the correct duckdb sources for v1.2.1 by @Maxxen in #469
- Explicitly define NDEBUG on release builds by @Maxxen in #474
- Use the crate name if ext_name is not specified by @yutannihilation in #472
- Set the default min version when min_duckdb_version is not specified by @yutannihilation in #473
- Fix clippy warnings + symbolize ASAN stack traces by @Maxxen in #490
- Upgrade to DuckDB v1.2.2 by @Maxxen in #491
- Add unit test for table function and remote parquet source, merged with main by @Maxxen in #492
Full Changelog: v1.2.1...v1.2.2
1.2.1
Sorry for tagging all contributors again, I had to delete the release and retry due to the CD CI failing when pushing to crates.io!
What's Changed
- Add List of nested types support for Arrow vtab: Struct, List, FixedSizeList by @sgrebnov in #432
- remove print by @Maxxen in #435
- Fix Rust 1.85 clippy error by @sgrebnov in #443
- Bundle core_functions extension by default by @tk04 in #437
- fix bindgen issue with WASM builds by @samansmink in #433
- duckdb/Cargo.toml: teach docs.rs about vtab by @ajwerner in #445
- Add support for Map writing to Arrow vtab by @sgrebnov in #439
- [WIP] Upgrade to V1.2.1 by @Maxxen in #462
- Unbundle ICU again due to binary size by @Maxxen in #464
New Contributors
- @sgrebnov made their first contribution in #432
- @tk04 made their first contribution in #437
- @ajwerner made their first contribution in #445
- @fotonick made their first contribution in #454
- @yutannihilation made their first contribution in #452
- @shritesh made their first contribution in #455
- @luong-komorebi made their first contribution in #438
Full Changelog: 1.2.0...v1.2.1
1.2.0
What's Changed
- Update LICENSE file by @szarnyasg in #420
- Add Utf8View & BinaryView to supported Arrow vtab types by @phillipleblanc in #397
- [WIP] Upgrade to V1.2.0 by @Maxxen in #427
- 1.2.0 followup by @Maxxen in #428
- Add scalar function support by @Maxxen in #429
- bump duckdb-loadable-macros by @Maxxen in #431
Contributors
Unfortunately, I'm not used to working with squash commits and messed up the GitHub commit history slightly, so here some handwritten props for everyone that contributed to this release!
- @szarnyasg made their first contribution in #420
- @matthewgapp added scalar function support in #407
- @sourcefrog helped fixing CI and added safety improvements to the vtab module in #417, #416 and #415
- @samansmink worked on loadable rust extension support!
- @arsdragonfly added debug for Savepoint in #410
- @akesling fixed a type in #406
- @peasee added support for boolean lists in #398
- @phillipleblanc added arrow utf8view and binaryview support in #397
- @bnmoch3 fixed an issue with the appender tests in #424
- @johnallen3d upgraded arrow in #421
Full Changelog: v1.1.1...1.2.0