Skip to content

Releases: rusqlite/rusqlite

0.26.0

04 Oct 16:58
3982393
Compare
Choose a tag to compare

Nice to have: make possible to remove authorizer hook

  • Add bundle-sqlcipher and bundle-ssl #860
  • Breaking changes: Add support for authorizer hook #946 / #975
    Action is not visible from root anymore
  • Add a function to return the path of a Connection #963 / #962
  • Add a helper function for getting the byte data from a ValueRef, regardless of if its Text or Blob #983
  • Make the empty placeholder params be Send + Sync #1005
  • Use a generic ToSql param in pragma functions #1009
  • Breaking changes: Implement AsRef<Statement> for Row(s) #887
    Rows::column* and Row::column* removed now that you have access to underlying statement.
  • Fix FromSql impl for OffsetDateTime #970
    • Upgrade time crate to version 0.3.0
  • Bump bundled sqlite3 version to 3.36.0 #979
  • Allow static linking against the VC runtime #1021
  • Breaking changes: Make load_extension unsafe #1016
  • Add as_type_or_null to ValueRef #1012
  • Correct pkg-config version #960
  • Improve VTab API: Iterate on both index constraint and usage #1001 / #1006
  • Access to sqlite3_db_cacheflush via Connection #984 / #985
  • Retrieve error message from database connection handle #988
  • Include the session FFI in the bundled bindings #982
  • Use #[doc(cfg)] instead of manually indicating feature = "blah" in the comments #835 / #973
  • Use env::var instead of cfg in some cases in build.rs #961
  • Add time back to modern-full feature #969
  • Fix InnerConnection decode_result / changes #974 / #931
  • Upgrage bindgen to version 0.59 #994

v0.25.3

09 May 06:57
Compare
Choose a tag to compare

Equivalent to v0.25.2, but without the dramatic change to the default features.

rusqlite v0.25.2 (yanked) / libsqlite3-sys v0.22.2

09 May 06:11
Compare
Choose a tag to compare

Note: rusqlite v0.25.2 has been yanked because it accidentally enabled bundled-full as a default feature. v0.25.3 has been cut that is equivalent but without that change. The libsqlite3-sys release that happened at the same time is still fine.

This release is a patch release that enables builds on some older versions of Rust. Rusqlite does not commit to a particular MSRV, but this release is known to work at least back to Rust 1.41.0.

It is likely that the next release will require a newer version of Rust, whether or not it is mentioned in the release notes.

rusqlite 0.25.1, libsqlite3-sys 0.22.1

19 Apr 17:01
9ea5e2f
Compare
Choose a tag to compare
  • Use SQLITE_TEMP_STORE=3 on android. (#937)
  • Upgrade to bindgen 0.58 (#933)

0.25.0

03 Apr 18:12
517ef2b
Compare
Choose a tag to compare
  • BREAKING CHANGE: Overhaul parameter API #830 / #609
  • Add ToSql implementations for u64 and usize #826 / #821
  • Implement FromSql for u64, usize and f32, and ToSql for f32 #823 / #822 / #821
  • Reduce required lifetime in create_scalar_function #825
  • Expose query progress information and introduce Batch iterator #824 / #803
  • Add #[inline] and #[cold] in far more places #834
  • Fix create_collation #839
  • Remove #[non_exhaustive] attribute on IndexConstraintOp #840 / #783
  • Document that optional() requires import of trait rusqlite::OptionalExtension #842
  • Update time to appease deps.rs #849
  • Upgrade to bindgen 0.57
  • Improve busy handler documentation #854
  • Upgrade SQLite bundled version to 3.35.4
  • Expands/cleans up documentation. Also renames (and documents) the so-far-undocumented LIBSQLITE3_FLAGS. #861
  • Add get_connection method to function context #867
  • Fix smallvec version #896
  • BREAKING CHANGE: Pass context to aggregate init and finalize #866
  • BREAKING CHANGE: Rename get_raw to get_ref_unwrap and get_raw_checked to get_ref #838
  • BREAKING CHANGE: Fix DateTime format #886 / #885 + Leniently parse rfc3339 timezones #928

rusqlite 0.24.2

05 Dec 03:09
Compare
Choose a tag to compare

v0.24.2 is identical to v0.24.1 except it allows building with an older version of smallvec, as the newer one caused meaningful performance issues in Firefox.

See #855 for more info.

rusqlite 0.24.1, libsqlite3-sys 0.20.1

07 Oct 23:07
Compare
Choose a tag to compare
  • The lru-cache crate has been replaced with hashlink, which may fix panics on Rust nightly caused by unsoundness in some versions of the lru-cache crate (#811).

  • A positional BLOB I/O API has been added, which more closely mirrors SQLites actual BLOB I/O api, and is similar to unix-style pwrite/pread. (#780).

  • A winsqlite3 feature as been added to both rusqlite and libsqlite3-sys which allows linking against the SQLite present in newer versions of Windows 10 (#796).

  • Rusqlite's iterator types are now #[must_use] (#799).

  • Several dependencies have been updated.

rusqlite 0.24.0, libsqlite-sys 0.20.0

22 Aug 05:36
79ab689
Compare
Choose a tag to compare
  • BREAKING CHANGE: Upgrade to time v0.2 and put it behind a feature flag (#653)
  • impl TryFrom<&Row<'_>> for (...)
    This change implements TryFrom<&Row> for tuples up to 16 fields. This
    is a convenience function that can be used to map rows more easily.
  • adding ability to work with sqlite compiled with SQLITE_OMIT_DECLTYPE (feature column_decltype)
  • LIBSQLITE3_FLAGS hook
    Enables compiling bundled sources with different flags.
  • Add cross-compilation with mingw (#774)
  • Support wasm32-wasi target (#785)
  • Implement our own sqlite3_execwhich supports unlock notify (#767)
  • Fix order of parameters in InvalidParameterCount message (#779)
  • Don't implement Into for Statement (#763)
  • Publically expose Map
  • little speedup for bundled sqlite3.c on unix (HAVE_LOCALTIME_R)
  • BREAKING CHANGE: VTabCursor lifetime should be bound to VTab lifetime (#753)
  • preupdate_hook feature requires buildtime_bindgen
  • Upgrade SQLite bundled sources to 3.33.0
  • Upgrade to bindgen 0.54
  • Fix missing docs
  • Add link to gitter channel (#738)
  • Include LICENSE into the libsqlite3-sys crate (#736)

rusqlite 0.23.1

23 Apr 22:07
Compare
Choose a tag to compare

Hotfix release for arm32 bustage (#724)

rusqlite 0.23.0, libsqlite-sys 0.18.0

23 Apr 17:07
Compare
Choose a tag to compare

The release primarily contains a number of security/memory safety fixes, which were mostly found due to an audit of the unsafe code in the crate. An advisory will be published for these shortly.

They mostly impact APIs exposed through features, so while there are a lot of them, if you're using rusqlite under default features, you're fine. None of them impact libsqlite3-sys.

It's a major release as these APIs were fundamentally unsound and could not be fixed without breaking changes.

  • Make VTab / VTabCursor unsafe trait as implementing them on the wrong type is unsound c9ef5bd. (Note that a safe VTab API is planned in the future).
  • Make create_module take a &'static Module as that's what the reference was treated as. 3c6b57f
  • Make UnlockNotification hold the Mutex while notifying the CondVar. Also, ensure &mut is not used to reference a value shared across another thread. 45fd77e
  • Fix potential format string vuln in rusqlite::trace::log 2327d3b
  • Auxdata API has been changed and has new bounds.
    • Fix potential use-after-free and data race in auxdata api 2ef3628
    • Fix repr(Rust) type being used as if it were repr(C) 71b2f51
  • Fix use-after-free in sessions.rs in ac30e16

Non-safety changes in this release:

  • Bundled SQLite has been updated to 3.31.1 22564d3
  • Non-unicode paths are now handled properly, at least on unix #692
  • Functions using va_list are excluded from the bundled bindings, as these are platform specific. You can still use them if you enable the buildtime_bindgen feature. 288aa96
  • An unchecked_transaction function has been added which allows opting-out of compile time transaction checking. Despite it's name, it's still checked, it just downgrades a compilation error to a runtime one: #693
  • std::error::Error::source is implemented in favor of std::error::Error::cause for all error types.