diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /third_party/rust/rusqlite/Changelog.md | |
parent | Initial commit. (diff) | |
download | firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/rusqlite/Changelog.md')
-rw-r--r-- | third_party/rust/rusqlite/Changelog.md | 332 |
1 files changed, 332 insertions, 0 deletions
diff --git a/third_party/rust/rusqlite/Changelog.md b/third_party/rust/rusqlite/Changelog.md new file mode 100644 index 0000000000..6ba11d70e9 --- /dev/null +++ b/third_party/rust/rusqlite/Changelog.md @@ -0,0 +1,332 @@ +For version 0.15.0 and above, see [Releases](https://github.com/rusqlite/rusqlite/releases) page. + +# Version 0.14.0 (2018-08-17) + +* BREAKING CHANGE: `ToSql` implementation for `time::Timespec` uses RFC 3339 (%Y-%m-%dT%H:%M:%S.%fZ). + Previous format was %Y-%m-%d %H:%M:%S:%f %Z. +* BREAKING CHANGE: Remove potentially conflicting impl of ToSqlOutput (#313). +* BREAKING CHANGE: Replace column index/count type (i32) with usize. +* BREAKING CHANGE: Replace parameter index/count type (i32) with usize. +* BREAKING CHANGE: Replace row changes/count type (i32) with usize. +* BREAKING CHANGE: Scalar functions must be `Send`able and `'static`. +* Bugfix: Commit failure unhandled, database left in unusable state (#366). +* Bugfix: `free_boxed_hook` does not work for `fn`. +* Update the bundled SQLite version to 3.24.0 (#326). +* Add DropBehavior::Panic to enforce intentional commit or rollback. +* Implement `sqlite3_update_hook` (#260, #328), `sqlite3_commit_hook` and `sqlite3_rollback_hook`. +* Add support to unlock notification behind `unlock_notify` feature (#294, #331). +* Make `Statement::column_index` case insensitive (#330). +* Add comment to justify `&mut Connection` in `Transaction`. +* Fix `tyvar_behind_raw_pointer` warnings. +* Fix handful of clippy warnings. +* Fix `Connection::open` documentation (#332) +* Add binding to `sqlite3_get_autocommit` and `sqlite3_stmt_busy`. +* Add binding to `sqlite3_busy_timeout` and `sqlite3_busy_handler`. +* Add binding to `sqlite3_expanded_sql`. +* Use `rerun-if-env-changed` in libsqlite3-sys (#329). +* Return an `InvalidQuery` error when SQL is not read only. + +# Version 0.13.0 (2017-11-13) + +* Added ToSqlConversionFailure case to Error enum. +* Now depends on chrono 0.4, bitflats 1.0, and (optionally) cc 1.0 / bindgen 0.31. +* The ToSql/FromSql implementations for time::Timespec now include + and expect fractional seconds and timezone in the serialized string. +* The RowIndex type used in Row::get is now publicly exported. +* New `sqlcipher` feature allows linking against SQLCipher instead of SQLite. +* Doc link in README now point to docs.rs. + +# Version 0.12.0 (2017-05-29) + +* Defines HAVE\_USLEEP when building with a bundled SQLite (#263). +* Updates dependencies to their latest versions, particularly serde to 1.0. +* Adds support for vcpkg on Windows. +* Adds `ToSql` impls for `str` and `[u8]`. + +# Version 0.11.0 (2017-04-06) + +* Avoid publicly exporting SQLite constants multiple times from libsqlite3-sys. +* Adds `FromSql` and `ToSql` impls for `isize`. Documents why `usize` and `u64` are not included. + +# Version 0.10.1 (2017-03-03) + +* Updates the `bundled` SQLite version to 3.17.0. +* Changes the build process to no longer require `bindgen`. This should improve + build times and no longer require a new-ish Clang. See the README for more + details. + +# Version 0.10.0 (2017-02-28) + +* Re-export the `ErrorCode` enum from `libsqlite3-sys`. +* 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`. +* 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. +* 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 + the README for requirements of particular features. +* 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 + 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 + version the check that rusqlite was using would cause a segfault if linked against a SQLite + older than 3.7.0. +* 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 + skipped by calling the unsafe function `rusqlite::bypass_sqlite_version_check()`. +* Removes the `libc` dependency in favor of using `std::os::raw` + +# Version 0.9.5 (2017-01-26) + +* Add impls of `Clone`, `Debug`, and `PartialEq` to `ToSqlOutput`. + +# Version 0.9.4 (2017-01-25) + +* Update dependencies. + +# Version 0.9.3 (2017-01-23) + +* Make `ToSqlOutput` itself implement `ToSql`. + +# Version 0.9.2 (2017-01-22) + +* Bugfix: The `FromSql` impl for `i32` now returns an error instead of + truncating if the underlying SQLite value is out of `i32`'s range. +* Added `FromSql` and `ToSql` impls for `i8`, `i16`, `u8`, `u16`, and `u32`. + `i32` and `i64` already had impls. `u64` is omitted because their range + cannot be represented by `i64`, which is the type we use to communicate with + SQLite. + +# Version 0.9.1 (2017-01-20) + +* BREAKING CHANGE: `Connection::close()` now returns a `Result<(), (Connection, Error)>` instead + of a `Result<(), Error>` so callers get the still-open connection back on failure. + +# Version 0.8.0 (2016-12-31) + +* BREAKING CHANGE: The `FromSql` trait has been redesigned. It now requires a single, safe + method instead of the previous definition which required implementing one or two unsafe + methods. +* BREAKING CHANGE: The `ToSql` trait has been redesigned. It can now be implemented without + `unsafe`, and implementors can choose to return either borrowed or owned results. +* BREAKING CHANGE: The closure passed to `query_row`, `query_row_and_then`, `query_row_safe`, + and `query_row_named` now expects a `&Row` instead of a `Row`. The vast majority of calls + to these functions will probably not need to change; see + https://github.com/jgallagher/rusqlite/pull/184. +* BREAKING CHANGE: A few cases of the `Error` enum have sprouted additional information + (e.g., `FromSqlConversionFailure` now also includes the column index and the type returned + by SQLite). +* Added `#[deprecated(since = "...", note = "...")]` flags (new in Rust 1.9 for libraries) to + all deprecated APIs. +* Added `query_row` convenience function to `Statement`. +* Added `bundled` feature which will build SQLite from source instead of attempting to link + against a SQLite that already exists on the system. +* Fixed a bug where using cached prepared statements resulted in attempting to close a connection + failing with `DatabaseBusy`; see https://github.com/jgallagher/rusqlite/issues/186. + +# Version 0.7.3 (2016-06-01) + +* Fixes an incorrect failure from the `insert()` convenience function when back-to-back inserts to + different tables both returned the same row ID + ([#171](https://github.com/jgallagher/rusqlite/issues/171)). + +# Version 0.7.2 (2016-05-19) + +* BREAKING CHANGE: `Rows` no longer implements `Iterator`. It still has a `next()` method, but + the lifetime of the returned `Row` is now tied to the lifetime of the vending `Rows` object. + 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 + 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 + that implement `Iterator`. +* BREAKING CHANGE: `Transaction::savepoint()` now returns a `Savepoint` instead of another + `Transaction`. Unlike `Transaction`, `Savepoint`s can be rolled back while keeping the current + savepoint active. +* BREAKING CHANGE: Creating transactions from a `Connection` or savepoints from a `Transaction` + now take `&mut self` instead of `&self` to correctly represent that transactions within a + connection are inherently nested. While a transaction is alive, the parent connection or + transaction is unusable, so `Transaction` now implements `Deref<Target=Connection>`, giving + access to `Connection`'s methods via the `Transaction` itself. +* BREAKING CHANGE: `Transaction::set_commit` and `Transaction::set_rollback` have been replaced + by `Transaction::set_drop_behavior`. +* Adds `Connection::prepare_cached`. `Connection` now keeps an internal cache of any statements + prepared via this method. The size of this cache defaults to 16 (`prepare_cached` will always + work but may re-prepare statements if more are prepared than the cache holds), and can be + controlled via `Connection::set_prepared_statement_cache_capacity`. +* Adds `query_map_named` and `query_and_then_named` to `Statement`. +* Adds `insert` convenience method to `Statement` which returns the row ID of an inserted row. +* Adds `exists` convenience method returning whether a query finds one or more rows. +* Adds support for serializing types from the `serde_json` crate. Requires the `serde_json` feature. +* Adds support for serializing types from the `chrono` crate. Requires the `chrono` feature. +* Removes `load_extension` feature from `libsqlite3-sys`. `load_extension` is still available + on rusqlite itself. +* Fixes crash on nightly Rust when using the `trace` feature. +* Adds optional `clippy` feature and addresses issues it found. +* Adds `column_count()` method to `Statement` and `Row`. +* Adds `types::Value` for dynamic column types. +* Adds support for user-defined aggregate functions (behind the existing `functions` Cargo feature). +* Introduces a `RowIndex` trait allowing columns to be fetched via index (as before) or name (new). +* Introduces `ZeroBlob` type under the `blob` module/feature exposing SQLite's zeroblob API. +* Adds CI testing for Windows via AppVeyor. +* Fixes a warning building libsqlite3-sys under Rust 1.6. +* Adds an unsafe `handle()` method to `Connection`. Please file an issue if you actually use it. + +# Version 0.6.0 (2015-12-17) + +* BREAKING CHANGE: `SqliteError` is now an enum instead of a struct. Previously, we were (ab)using + the error code and message to send back both underlying SQLite errors and errors that occurred + at the Rust level. Now those have been separated out; SQLite errors are returned as + `SqliteFailure` cases (which still include the error code but also include a Rust-friendlier + enum as well), and rusqlite-level errors are captured in other cases. Because of this change, + `SqliteError` no longer implements `PartialEq`. +* BREAKING CHANGE: When opening a new detection, rusqlite now detects if SQLite was compiled or + configured for single-threaded use only; if it was, connection attempts will fail. If this + affects you, please open an issue. +* BREAKING CHANGE: `SqliteTransactionDeferred`, `SqliteTransactionImmediate`, and + `SqliteTransactionExclusive` are no longer exported. Instead, use + `TransactionBehavior::Deferred`, `TransactionBehavior::Immediate`, and + `TransactionBehavior::Exclusive`. +* Removed `Sqlite` prefix on many types: + * `SqliteConnection` is now `Connection` + * `SqliteError` is now `Error` + * `SqliteResult` is now `Result` + * `SqliteStatement` is now `Statement` + * `SqliteRows` is now `Rows` + * `SqliteRow` is now `Row` + * `SqliteOpenFlags` is now `OpenFlags` + * `SqliteTransaction` is now `Transaction`. + * `SqliteTransactionBehavior` is now `TransactionBehavior`. + * `SqliteLoadExtensionGuard` is now `LoadExtensionGuard`. + The old, prefixed names are still exported but are deprecated. +* Adds a variety of `..._named` methods for executing queries using named placeholder parameters. +* Adds `backup` feature that exposes SQLite's online backup API. +* Adds `blob` feature that exposes SQLite's Incremental I/O for BLOB API. +* Adds `functions` feature that allows user-defined scalar functions to be added to + open `SqliteConnection`s. + +# Version 0.5.0 (2015-12-08) + +* Adds `trace` feature that allows the use of SQLite's logging, tracing, and profiling hooks. +* Slight change to the closure types passed to `query_map` and `query_and_then`: + * Remove the `'static` requirement on the closure's output type. + * Give the closure a `&SqliteRow` instead of a `SqliteRow`. +* When building, the environment variable `SQLITE3_LIB_DIR` now takes precedence over pkg-config. +* If `pkg-config` is not available, we will try to find `libsqlite3` in `/usr/lib`. +* Add more documentation for failure modes of functions that return `SqliteResult`s. +* Updates `libc` dependency to 0.2, fixing builds on ARM for Rust 1.6 or newer. + +# Version 0.4.0 (2015-11-03) + +* Adds `Sized` bound to `FromSql` trait as required by RFC 1214. + +# Version 0.3.1 (2015-09-22) + +* Reset underlying SQLite statements as soon as possible after executing, as recommended by + http://www.sqlite.org/cvstrac/wiki?p=ScrollingCursor. + +# Version 0.3.0 (2015-09-21) + +* Removes `get_opt`. Use `get_checked` instead. +* Add `query_row_and_then` and `query_and_then` convenience functions. These are analogous to + `query_row` and `query_map` but allow functions that can fail by returning `Result`s. +* Relax uses of `P: AsRef<...>` from `&P` to `P`. +* Add additional error check for calling `execute` when `query` was intended. +* Improve debug formatting of `SqliteStatement` and `SqliteConnection`. +* Changes documentation of `get_checked` to correctly indicate that it returns errors (not panics) + when given invalid types or column indices. + +# Version 0.2.0 (2015-07-26) + +* Add `column_names()` to `SqliteStatement`. +* By default, include `SQLITE_OPEN_NO_MUTEX` and `SQLITE_OPEN_URI` flags when opening a + new conneciton. +* Fix generated bindings (e.g., `sqlite3_exec` was wrong). +* Use now-generated `sqlite3_destructor_type` to define `SQLITE_STATIC` and `SQLITE_TRANSIENT`. + +# Version 0.1.0 (2015-05-11) + +* [breaking-change] Modify `query_row` to return a `Result` instead of unwrapping. +* Deprecate `query_row_safe` (use `query_row` instead). +* Add `query_map`. +* Add `get_checked`, which asks SQLite to do some basic type-checking of columns. + +# Version 0.0.17 (2015-04-03) + +* Publish version that builds on stable rust (beta). This version lives on the + `stable` branch. Development continues on `master` and still requires a nightly + version of Rust. + +# Version 0.0.16 + +* Updates to track rustc nightly. + +# Version 0.0.15 + +* Make SqliteConnection `Send`. + +# Version 0.0.14 + +* Remove unneeded features (also involves switching to `libc` crate). + +# Version 0.0.13 (2015-03-26) + +* Updates to track rustc nightly. + +# Version 0.0.12 (2015-03-24) + +* Updates to track rustc stabilization. + +# Version 0.0.11 (2015-03-12) + +* Reexport `sqlite3_stmt` from `libsqlite3-sys` for easier `impl`-ing of `ToSql` and `FromSql`. +* Updates to track latest rustc changes. +* Update dependency versions. + +# Version 0.0.10 (2015-02-23) + +* BREAKING CHANGE: `open` now expects a `Path` rather than a `str`. There is a separate + `open_in_memory` constructor for opening in-memory databases. +* Added the ability to load SQLite extensions. This is behind the `load_extension` Cargo feature, + because not all builds of sqlite3 include this ability. Notably the default libsqlite3 that + ships with OS X 10.10 does not support extensions. + +# Version 0.0.9 (2015-02-13) + +* Updates to track latest rustc changes. +* Implement standard `Error` trait for `SqliteError`. + +# Version 0.0.8 (2015-02-04) + +* Updates to track latest rustc changes. + +# Version 0.0.7 (2015-01-20) + +* Use external bitflags from crates.io. + +# Version 0.0.6 (2015-01-10) + +* Updates to track latest rustc changes (1.0.0-alpha). +* Add `query_row_safe`, a `SqliteResult`-returning variant of `query_row`. + +# Version 0.0.5 (2015-01-07) + +* Updates to track latest rustc changes (closure syntax). +* Updates to track latest rust stdlib changes (`std::c_str` -> `std::ffi`). + +# Version 0.0.4 (2015-01-05) + +* Updates to track latest rustc changes. + +# Version 0.0.3 (2014-12-23) + +* Updates to track latest rustc changes. +* Add call to `sqlite3_busy_timeout`. + +# Version 0.0.2 (2014-12-04) + +* Remove use of now-deprecated `std::vec::raw::from_buf`. +* Update to latest version of `time` crate. + +# Version 0.0.1 (2014-11-21) + +* Initial release |