Skip to content

Releases: duckdb/duckdb-rs

v1.4.4

27 Jan 10:18
46d2e09

Choose a tag to compare

Highlights

  • Appender::append_rows now accepts tuples for heterogeneous data types directly.
  • Loadable extension setup simplified: single loadable-extension feature replaces vtab-loadable + loadable-extension.
  • duckdb_entrypoint_c_api macro re-exported from main crate - no need to depend on duckdb-loadable-macros directly anymore.
  • stream_arrow() now works with CALL statements via automatic fallback to duckdb_fetch_chunk().
  • Streaming execution returns descriptive DuckDB error messages instead of "Unknown error code".
  • Performance: ~2x faster column name lookups via lazy HashMap cache; removed redundant null checks; zero-copy FlatVector::insert for strings.
  • Build: fixed static linking (libduckdb_static.a) and cargo cache invalidation from absolute OUT_DIR.
  • Updated bundled DuckDB to v1.4.4 and Rust to 1.93.

What's Changed

  • Update Cargo.lock and bump crate version in README by @mlafeldt in #646
  • Remove legacy duckdb_entrypoint macro by @mlafeldt in #652
  • Re-export duckdb_entrypoint_c_api from main crate by @mlafeldt in #653
  • Consolidate loadable extension features by @mlafeldt in #654
  • Update Rust to 1.92 by @mlafeldt in #656
  • fix(build): prevent cargo cache invalidation from absolute OUT_DIR path by @cameronraysmith in #658
  • libduckdb-sys/build.rs: fix link directive when statically linking by @brunal in #655
  • performance(row): remove useless null check in value_ref_internal by @fvaleye in #662
  • Enable stream_arrow() to work with CALL statements by @leo-altertable in #660
  • Extract error messages in execute_streaming to provide descriptive errors by @redox in #661
  • performance(statement): introduce a lazy cache for column name to index by @fvaleye in #663
  • Avoid unnecessary copy and allocation in FlatVector::insert by @sfc-gh-bhannel in #665
  • feat: implement AppenderParams for tuples by @MathewBravo in #647
  • Update Rust to 1.93 by @mlafeldt in #669
  • Update DuckDB to v1.4.4 by @mlafeldt in #671
  • Update copyright year by @mlafeldt in #672

New Contributors

Full Changelog: v1.4.3...v1.4.4

v1.4.3

09 Dec 13:58
65e8496

Choose a tag to compare

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 volatile trait method.
  • Logical type coverage broadened (new DuckDB IDs, Unsupported fallback).
  • Updated bundled DuckDB to v1.4.3

What's Changed

New Contributors

Full Changelog: v1.4.2...v1.4.3

v1.4.2

13 Nov 14:00

Choose a tag to compare

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

Full Changelog: v1.4.1...v1.4.2

v1.4.1

07 Oct 11:58

Choose a tag to compare

What's Changed

Full Changelog: v1.4.0...v1.4.1

v1.4.0

17 Sep 08:35
c20ace3

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.3.2...v1.4.0

v1.3.2

09 Jul 13:00
19acb89

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.3.1...v1.3.2

v1.3.1

23 Jun 14:14

Choose a tag to compare

Had to re-issue the release since the CD job failed. Sorry about that!

What's Changed

Full Changelog: v1.3.0...v1.3.1

v1.3.0

03 Jun 21:21

Choose a tag to compare

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

New Contributors

Full Changelog: v1.2.2...v1.3.0

1.2.2

11 Apr 11:41

Choose a tag to compare

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

12 Mar 15:34
a2be244

Choose a tag to compare

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

New Contributors

Full Changelog: 1.2.0...v1.2.1