mirror of
https://github.com/isar/rusqlite.git
synced 2025-11-20 15:03:52 +08:00
8.4 KiB
8.4 KiB
Version UPCOMING (...)
- BREAKING CHANGE: Creating transactions from a
Connectionor savepoints from aTransactionnow take&mut selfinstead of&selfto correctly represent that transactions within a connection are inherently nested. While a transaction is alive, the parent connection or transaction is unusable, soTransactionnow implementsDeref<Target=Connection>, giving access toConnection's methods via theTransactionitself. - BREAKING CHANGE:
Transaction::set_commitandTransaction::set_rollbackhave been replaced byTransaction::set_drop_behavior. - BREAKING CHANGE:
Transaction::savepoint()now returns aSavepointinstead of anotherTransaction. UnlikeTransaction,Savepoints can be rolled back while keeping the current savepoint active. - Adds
Connection::prepare_cached.Connectionnow keeps an internal cache of any statements prepared via this method. The size of this cache defaults to 16 (prepare_cachedwill always work but may re-prepare statements if more are prepared than the cache holds), and can be controlled viaConnection::set_prepared_statement_cache_capacity. - Adds
insertconvenience method toStatementwhich returns the row ID of an inserted row. - Adds
existsconvenience method returning whether a query finds one or more rows. - Adds support for serializing types from the
serde_jsoncrate. Requires theserde_jsonfeature. - Adds support for serializing types from the
chronocrate. Requires thechronofeature. - Removes
load_extensionfeature fromlibsqlite3-sys.load_extensionis still available on rusqlite itself. - Fixes crash on nightly Rust when using the
tracefeature. - Adds optional
clippyfeature and addresses issues it found. - Adds
column_count()method toStatementandRow. - Adds
types::Valuefor dynamic column types. - Adds support for user-defined aggregate functions (behind the existing
functionsCargo feature). - Introduces a
RowIndextrait allowing columns to be fetched via index (as before) or name (new). - Introduces
ZeroBlobtype under theblobmodule/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 toConnection. Please file an issue if you actually use it.
Version 0.6.0 (2015-12-17)
- BREAKING CHANGE:
SqliteErroris 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 asSqliteFailurecases (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,SqliteErrorno longer implementsPartialEq. - 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, andSqliteTransactionExclusiveare no longer exported. Instead, useTransactionBehavior::Deferred,TransactionBehavior::Immediate, andTransactionBehavior::Exclusive. - Removed
Sqliteprefix on many types:SqliteConnectionis nowConnectionSqliteErroris nowErrorSqliteResultis nowResultSqliteStatementis nowStatementSqliteRowsis nowRowsSqliteRowis nowRowSqliteOpenFlagsis nowOpenFlagsSqliteTransactionis nowTransaction.SqliteTransactionBehavioris nowTransactionBehavior.SqliteLoadExtensionGuardis nowLoadExtensionGuard. The old, prefixed names are still exported but are deprecated.
- Adds a variety of
..._namedmethods for executing queries using named placeholder parameters. - Adds
backupfeature that exposes SQLite's online backup API. - Adds
blobfeature that exposes SQLite's Incremental I/O for BLOB API. - Adds
functionsfeature that allows user-defined scalar functions to be added to openSqliteConnections.
Version 0.5.0 (2015-12-08)
- Adds
tracefeature that allows the use of SQLite's logging, tracing, and profiling hooks. - Slight change to the closure types passed to
query_mapandquery_and_then:- Remove the
'staticrequirement on the closure's output type. - Give the closure a
&SqliteRowinstead of aSqliteRow.
- Remove the
- When building, the environment variable
SQLITE3_LIB_DIRnow takes precedence over pkg-config. - If
pkg-configis not available, we will try to findlibsqlite3in/usr/lib. - Add more documentation for failure modes of functions that return
SqliteResults. - Updates
libcdependency to 0.2, fixing builds on ARM for Rust 1.6 or newer.
Version 0.4.0 (2015-11-03)
- Adds
Sizedbound toFromSqltrait 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. Useget_checkedinstead. - Add
query_row_and_thenandquery_and_thenconvenience functions. These are analogous toquery_rowandquery_mapbut allow functions that can fail by returningResults. - Relax uses of
P: AsRef<...>from&PtoP. - Add additional error check for calling
executewhenquerywas intended. - Improve debug formatting of
SqliteStatementandSqliteConnection. - Changes documentation of
get_checkedto 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()toSqliteStatement. - By default, include
SQLITE_OPEN_NO_MUTEXandSQLITE_OPEN_URIflags when opening a new conneciton. - Fix generated bindings (e.g.,
sqlite3_execwas wrong). - Use now-generated
sqlite3_destructor_typeto defineSQLITE_STATICandSQLITE_TRANSIENT.
Version 0.1.0 (2015-05-11)
- [breaking-change] Modify
query_rowto return aResultinstead of unwrapping. - Deprecate
query_row_safe(usequery_rowinstead). - 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
stablebranch. Development continues onmasterand 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
libccrate).
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_stmtfromlibsqlite3-sysfor easierimpl-ing ofToSqlandFromSql. - Updates to track latest rustc changes.
- Update dependency versions.
Version 0.0.10 (2015-02-23)
- BREAKING CHANGE:
opennow expects aPathrather than astr. There is a separateopen_in_memoryconstructor for opening in-memory databases. - Added the ability to load SQLite extensions. This is behind the
load_extensionCargo 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
Errortrait forSqliteError.
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, aSqliteResult-returning variant ofquery_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
timecrate.
Version 0.0.1 (2014-11-21)
- Initial release