mirror of
https://github.com/isar/rusqlite.git
synced 2024-11-22 07:09:20 +08:00
commit
a0f5b4cf1c
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
@ -49,7 +49,7 @@ jobs:
|
|||||||
# The `{ sharedKey: ... }` allows different actions to share the cache.
|
# The `{ sharedKey: ... }` allows different actions to share the cache.
|
||||||
# We're using a `fullBuild` key mostly as a "this needs to do the
|
# We're using a `fullBuild` key mostly as a "this needs to do the
|
||||||
# complete" that needs to do the complete build (that is, including
|
# complete" that needs to do the complete build (that is, including
|
||||||
# `--features 'bundled-full session buildtime_bindgen`), which is very
|
# `--features 'bundled-full session buildtime_bindgen'`), which is very
|
||||||
# slow, and has several deps.
|
# slow, and has several deps.
|
||||||
- uses: Swatinem/rust-cache@v2
|
- uses: Swatinem/rust-cache@v2
|
||||||
with: { sharedKey: fullBuild }
|
with: { sharedKey: fullBuild }
|
||||||
|
14
Changelog.md
14
Changelog.md
@ -15,7 +15,7 @@ For version 0.15.0 and above, see [Releases](https://github.com/rusqlite/rusqlit
|
|||||||
* Add DropBehavior::Panic to enforce intentional commit or rollback.
|
* Add DropBehavior::Panic to enforce intentional commit or rollback.
|
||||||
* Implement `sqlite3_update_hook` (#260, #328), `sqlite3_commit_hook` and `sqlite3_rollback_hook`.
|
* Implement `sqlite3_update_hook` (#260, #328), `sqlite3_commit_hook` and `sqlite3_rollback_hook`.
|
||||||
* Add support to unlock notification behind `unlock_notify` feature (#294, #331).
|
* Add support to unlock notification behind `unlock_notify` feature (#294, #331).
|
||||||
* Make `Statement::column_index` case insensitive (#330).
|
* Make `Statement::column_index` case-insensitive (#330).
|
||||||
* Add comment to justify `&mut Connection` in `Transaction`.
|
* Add comment to justify `&mut Connection` in `Transaction`.
|
||||||
* Fix `tyvar_behind_raw_pointer` warnings.
|
* Fix `tyvar_behind_raw_pointer` warnings.
|
||||||
* Fix handful of clippy warnings.
|
* Fix handful of clippy warnings.
|
||||||
@ -29,7 +29,7 @@ For version 0.15.0 and above, see [Releases](https://github.com/rusqlite/rusqlit
|
|||||||
# Version 0.13.0 (2017-11-13)
|
# Version 0.13.0 (2017-11-13)
|
||||||
|
|
||||||
* Added ToSqlConversionFailure case to Error enum.
|
* Added ToSqlConversionFailure case to Error enum.
|
||||||
* Now depends on chrono 0.4, bitflats 1.0, and (optionally) cc 1.0 / bindgen 0.31.
|
* Now depends on chrono 0.4, bitflags 1.0, and (optionally) cc 1.0 / bindgen 0.31.
|
||||||
* The ToSql/FromSql implementations for time::Timespec now include
|
* The ToSql/FromSql implementations for time::Timespec now include
|
||||||
and expect fractional seconds and timezone in the serialized string.
|
and expect fractional seconds and timezone in the serialized string.
|
||||||
* The RowIndex type used in Row::get is now publicly exported.
|
* The RowIndex type used in Row::get is now publicly exported.
|
||||||
@ -61,18 +61,18 @@ For version 0.15.0 and above, see [Releases](https://github.com/rusqlite/rusqlit
|
|||||||
* Adds `version()` and `version_number()` functions for querying the version of SQLite in use.
|
* Adds `version()` and `version_number()` functions for querying the version of SQLite in use.
|
||||||
* Adds the `limits` feature, exposing `limit()` and `set_limit()` methods on `Connection`.
|
* Adds the `limits` feature, exposing `limit()` and `set_limit()` methods on `Connection`.
|
||||||
* Updates to `libsqlite3-sys` 0.7.0, which runs rust-bindgen at build-time instead of assuming the
|
* Updates to `libsqlite3-sys` 0.7.0, which runs rust-bindgen at build-time instead of assuming the
|
||||||
precense of all expected SQLite constants and functions.
|
presence of all expected SQLite constants and functions.
|
||||||
* Clarifies supported SQLite versions. Running with SQLite older than 3.6.8 now panics, and
|
* Clarifies supported SQLite versions. Running with SQLite older than 3.6.8 now panics, and
|
||||||
some features will not compile unless a sufficiently-recent SQLite version is used. See
|
some features will not compile unless a sufficiently-recent SQLite version is used. See
|
||||||
the README for requirements of particular features.
|
the README for requirements of particular features.
|
||||||
* When running with SQLite 3.6.x, rusqlite attempts to perform SQLite initialization. If it fails,
|
* When running with SQLite 3.6.x, rusqlite attempts to perform SQLite initialization. If it fails,
|
||||||
rusqlite will panic since it cannot ensure the threading mode for SQLite. This check can by
|
rusqlite will panic since it cannot ensure the threading mode for SQLite. This check can be
|
||||||
skipped by calling the unsafe function `rusqlite::bypass_sqlite_initialization()`. This is
|
skipped by calling the unsafe function `rusqlite::bypass_sqlite_initialization()`. This is
|
||||||
technically a breaking change but is unlikely to affect anyone in practice, since prior to this
|
technically a breaking change but is unlikely to affect anyone in practice, since prior to this
|
||||||
version the check that rusqlite was using would cause a segfault if linked against a SQLite
|
version the check that rusqlite was using would cause a segfault if linked against a SQLite
|
||||||
older than 3.7.0.
|
older than 3.7.0.
|
||||||
* rusqlite now performs a one-time check (prior to the first connection attempt) that the runtime
|
* rusqlite now performs a one-time check (prior to the first connection attempt) that the runtime
|
||||||
SQLite version is at least as new as the SQLite version found at buildtime. This check can by
|
SQLite version is at least as new as the SQLite version found at buildtime. This check can be
|
||||||
skipped by calling the unsafe function `rusqlite::bypass_sqlite_version_check()`.
|
skipped by calling the unsafe function `rusqlite::bypass_sqlite_version_check()`.
|
||||||
* Removes the `libc` dependency in favor of using `std::os::raw`
|
* Removes the `libc` dependency in favor of using `std::os::raw`
|
||||||
|
|
||||||
@ -137,7 +137,7 @@ For version 0.15.0 and above, see [Releases](https://github.com/rusqlite/rusqlit
|
|||||||
This behavior is more correct. Previously there were runtime checks to prevent misuse, but
|
This behavior is more correct. Previously there were runtime checks to prevent misuse, but
|
||||||
other changes in this release to reset statements as soon as possible introduced yet another
|
other changes in this release to reset statements as soon as possible introduced yet another
|
||||||
hazard related to the lack of these lifetime connections. We were already recommending the
|
hazard related to the lack of these lifetime connections. We were already recommending the
|
||||||
use of `query_map` and `query_and_then` over raw `query`; both of theose still return handles
|
use of `query_map` and `query_and_then` over raw `query`; both of those still return handles
|
||||||
that implement `Iterator`.
|
that implement `Iterator`.
|
||||||
* BREAKING CHANGE: `Transaction::savepoint()` now returns a `Savepoint` instead of another
|
* BREAKING CHANGE: `Transaction::savepoint()` now returns a `Savepoint` instead of another
|
||||||
`Transaction`. Unlike `Transaction`, `Savepoint`s can be rolled back while keeping the current
|
`Transaction`. Unlike `Transaction`, `Savepoint`s can be rolled back while keeping the current
|
||||||
@ -239,7 +239,7 @@ For version 0.15.0 and above, see [Releases](https://github.com/rusqlite/rusqlit
|
|||||||
|
|
||||||
* Add `column_names()` to `SqliteStatement`.
|
* Add `column_names()` to `SqliteStatement`.
|
||||||
* By default, include `SQLITE_OPEN_NO_MUTEX` and `SQLITE_OPEN_URI` flags when opening a
|
* By default, include `SQLITE_OPEN_NO_MUTEX` and `SQLITE_OPEN_URI` flags when opening a
|
||||||
new conneciton.
|
new connection.
|
||||||
* Fix generated bindings (e.g., `sqlite3_exec` was wrong).
|
* Fix generated bindings (e.g., `sqlite3_exec` was wrong).
|
||||||
* Use now-generated `sqlite3_destructor_type` to define `SQLITE_STATIC` and `SQLITE_TRANSIENT`.
|
* Use now-generated `sqlite3_destructor_type` to define `SQLITE_STATIC` and `SQLITE_TRANSIENT`.
|
||||||
|
|
||||||
|
@ -839,7 +839,7 @@ mod test {
|
|||||||
// This implementation of a regexp scalar function uses SQLite's auxiliary data
|
// This implementation of a regexp scalar function uses SQLite's auxiliary data
|
||||||
// (https://www.sqlite.org/c3ref/get_auxdata.html) to avoid recompiling the regular
|
// (https://www.sqlite.org/c3ref/get_auxdata.html) to avoid recompiling the regular
|
||||||
// expression multiple times within one query.
|
// expression multiple times within one query.
|
||||||
fn regexp_with_auxilliary(ctx: &Context<'_>) -> Result<bool> {
|
fn regexp_with_auxiliary(ctx: &Context<'_>) -> Result<bool> {
|
||||||
assert_eq!(ctx.len(), 2, "called with unexpected number of arguments");
|
assert_eq!(ctx.len(), 2, "called with unexpected number of arguments");
|
||||||
type BoxError = Box<dyn std::error::Error + Send + Sync + 'static>;
|
type BoxError = Box<dyn std::error::Error + Send + Sync + 'static>;
|
||||||
let regexp: std::sync::Arc<Regex> = ctx
|
let regexp: std::sync::Arc<Regex> = ctx
|
||||||
@ -860,7 +860,7 @@ mod test {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_function_regexp_with_auxilliary() -> Result<()> {
|
fn test_function_regexp_with_auxiliary() -> Result<()> {
|
||||||
let db = Connection::open_in_memory()?;
|
let db = Connection::open_in_memory()?;
|
||||||
db.execute_batch(
|
db.execute_batch(
|
||||||
"BEGIN;
|
"BEGIN;
|
||||||
@ -874,7 +874,7 @@ mod test {
|
|||||||
"regexp",
|
"regexp",
|
||||||
2,
|
2,
|
||||||
FunctionFlags::SQLITE_UTF8 | FunctionFlags::SQLITE_DETERMINISTIC,
|
FunctionFlags::SQLITE_UTF8 | FunctionFlags::SQLITE_DETERMINISTIC,
|
||||||
regexp_with_auxilliary,
|
regexp_with_auxiliary,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
let result: bool = db.one_column("SELECT regexp('l.s[aeiouy]', 'lisa')")?;
|
let result: bool = db.one_column("SELECT regexp('l.s[aeiouy]', 'lisa')")?;
|
||||||
|
@ -1039,7 +1039,7 @@ impl<'conn> Iterator for Batch<'conn, '_> {
|
|||||||
|
|
||||||
bitflags::bitflags! {
|
bitflags::bitflags! {
|
||||||
/// Flags for opening SQLite database connections. See
|
/// Flags for opening SQLite database connections. See
|
||||||
/// [sqlite3_open_v2](http://www.sqlite.org/c3ref/open.html) for details.
|
/// [sqlite3_open_v2](https://www.sqlite.org/c3ref/open.html) for details.
|
||||||
///
|
///
|
||||||
/// The default open flags are `SQLITE_OPEN_READ_WRITE | SQLITE_OPEN_CREATE
|
/// The default open flags are `SQLITE_OPEN_READ_WRITE | SQLITE_OPEN_CREATE
|
||||||
/// | SQLITE_OPEN_URI | SQLITE_OPEN_NO_MUTEX`. See [`Connection::open`] for
|
/// | SQLITE_OPEN_URI | SQLITE_OPEN_NO_MUTEX`. See [`Connection::open`] for
|
||||||
|
Loading…
Reference in New Issue
Block a user