Releases: rusqlite/rusqlite
0.26.0
Nice to have: make possible to remove authorizer hook
- Add
bundle-sqlcipher
andbundle-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>
forRow
(s) #887
Rows::column* and Row::column* removed now that you have access to underlying statement. - Fix
FromSql
impl forOffsetDateTime
#970- Upgrade
time
crate to version 0.3.0
- Upgrade
- 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
toValueRef
#1012 - Correct
pkg-config
version #960 - Improve VTab API: Iterate on both index constraint and usage #1001 / #1006
- Access to
sqlite3_db_cacheflush
viaConnection
#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 indicatingfeature = "blah"
in the comments #835 / #973 - Use
env::var
instead ofcfg
in some cases in build.rs #961 - Add
time
back tomodern-full
feature #969 - Fix
InnerConnection
decode_result / changes #974 / #931 - Upgrage
bindgen
to version 0.59 #994
v0.25.3
rusqlite v0.25.2 (yanked) / libsqlite3-sys v0.22.2
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
0.25.0
- BREAKING CHANGE: Overhaul parameter API #830 / #609
- Add
ToSql
implementations foru64
andusize
#826 / #821 - Implement
FromSql
foru64
,usize
andf32
, andToSql
forf32
#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 traitrusqlite::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
toget_ref_unwrap
andget_raw_checked
toget_ref
#838 - BREAKING CHANGE: Fix DateTime format #886 / #885 + Leniently parse rfc3339 timezones #928
rusqlite 0.24.2
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
-
The
lru-cache
crate has been replaced withhashlink
, which may fix panics on Rust nightly caused by unsoundness in some versions of thelru-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 bothrusqlite
andlibsqlite3-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
- BREAKING CHANGE: Upgrade to
time
v0.2 and put it behind a feature flag (#653) - impl
TryFrom<&Row<'_>>
for(...)
This change implementsTryFrom<&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
(featurecolumn_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_exec
which 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 requiresbuildtime_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
Hotfix release for arm32 bustage (#724)
rusqlite 0.23.0, libsqlite-sys 0.18.0
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 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.