Commit Graph

62 Commits

Author SHA1 Message Date
Thom Chiovoloni
65c38bf813 Add #[inline] and #[cold] in far more places 2020-11-04 07:59:23 -08:00
Thom Chiovoloni
22121772a2 Deprecate NO_PARAMS in favor of passing an empty array 2020-11-03 19:09:19 -08:00
Thom Chiovoloni
032aea73b8 Overhaul query API, removing the need for the _named variants of all functions, and rusqlite::NO_PARAMS 2020-11-03 19:09:19 -08:00
gwenn
dd886578d2 Implement our own sqlite3_exec
Should fix issue related to unlock notify: #767
Caveat: many CString allocated.
2020-06-26 19:35:14 +02:00
gwenn
57db338537 Rustfmt 2020-06-25 09:45:49 -07:00
gwenn
f37519ad51 Replace execute_batch usages by execute
Because execute_batch does not support unlock_notify
2020-06-25 09:45:49 -07:00
gwenn
76fc22c653 Fix missing docs 2020-05-21 00:48:06 -07:00
Thom Chiovoloni
d408e3bcd2 Allow opting out of compile-time transaction checking 2020-04-09 12:39:40 -07:00
Thom Chiovoloni
6f6f7ffd9f
Add #[non_exhaustive] to enums that might get new variants. (#673)
This just using them in patterns without a catchall. I left things alone
that seem very unlikely to change (`Value`, `ValueRef`, `DatabaseName`,
etc...). This might help reduce the number of breaking changes we need
(rusqlite is still pre-1.0 so it doesn't really matter that much, but
breaking changes complicate the story around when we can cut releases).
2020-04-06 12:01:39 -07:00
gwenn
e9896a7734 Lifetime elision in impl 2019-02-03 11:02:38 +01:00
Peter Abrahamsen
a160f360d0 Test that Transaction can be removed from an Rc 2019-01-29 11:01:09 -08:00
Peter Abrahamsen
65c6bff73b
Derive Debug for Transaction 2019-01-26 21:29:42 -08:00
gwenn
d874180333 Rust 2018 idioms 2018-12-07 21:57:04 +01:00
gwenn
bcaa929748 Merge remote-tracking branch 'jgallagher/master' into 2018
# Conflicts:
#	src/lib.rs
#	src/statement.rs
2018-11-05 20:04:04 +01:00
gwenn
ccf52b2daa Replace try! by ? 2018-11-05 19:09:41 +01:00
gwenn
2357acd79e Remove deprecated stuff 2018-11-01 10:30:18 +01:00
gwenn
1262238229 Rustfmt 2018-10-30 20:15:19 +01:00
gwenn
f04047db01 Rust 2018 2018-10-30 20:15:08 +01:00
gwenn
e7e03c3443 Introduce NO_PARAMS constant
As suggested here:
https://users.rust-lang.org/t/sql-parameter-values/20469/2
2018-09-16 11:10:19 +02:00
gwenn
c4ae541eac Take IntoIterator rather than &[&ToSql] (#312) 2018-09-16 09:49:23 +02:00
gwenn
d6b6058849
[ci skip] Fix Transaction doc 2018-09-05 18:08:39 +02:00
gwenn
5e9c7bac4e Rustfmt 2018-08-16 18:29:46 +02:00
gwenn
c925d1aa97 Rustfmt 2018-08-11 12:48:21 +02:00
gwenn
5e1e805b4f Use sqlite3_get_autocommit instead of our own flag/status 2018-07-28 16:04:42 +02:00
Kornel
2487b18db0 Avoid keeping transactions unexpectedly open
If transaction can't be automatically committed, roll it back to prevent transaction staying open past the lifetime of the Transaction object

Fixes #366
2018-07-27 17:18:47 +01:00
Kornel
1e29cf4a0f Mark self.committed only after command succeeds
Fixes #366
2018-07-27 17:18:39 +01:00
gwenn
994d40da26 Fix clippy warnings 2018-05-04 19:55:55 +02:00
gwenn
d962ebab55
Merge pull request #325 from rnewman/rnewman/panic
Add DropBehavior::Panic to enforce intentional commit or rollback.
2018-03-24 10:29:02 +01:00
Richard Newman
2a03c1ad4d Add DropBehavior::Panic to enforce intentional commit or rollback. 2018-01-11 16:52:32 -08:00
Travis Cross
7e280d4e64 Add comment to justify &mut Connection in Transaction
The `Transaction` implementation never actually mutates the
`Connection` reference we give it.  In fact, the `Transaction`
structure itself only requires an immutable connection.  So it can be
surprising to readers that the constructor requires a `&mut
Connection`.  We do this so as to prevent at compile-time nested or
concurrent transactions on the same connection as these are not
allowed by SQLite.

In this commit, we add a comment explaining this nuance.
2017-12-31 10:30:23 +00:00
gwenn
08f96a678e Rustfmt 2017-04-07 19:43:24 +02:00
John Gallagher
60e1f3c02f Add more explicit types in unit tests. 2017-02-05 17:30:53 -05:00
gwenn
8f28ff17b8 Fix rustdoc warnings 2016-08-15 12:41:15 +02:00
gwenn
b10c52f32f Fix clippy warnings 2016-08-08 15:23:55 +02:00
John Gallagher
7c0eba0475 Add since and note for all deprecation tags. 2016-05-29 20:36:20 -04:00
gwenn
f817ec86bc Use new Rust 1.9 attribute: #[deprecated]. 2016-05-26 21:16:09 +02:00
John Gallagher
71aa41c27a rustfmt 2016-05-19 20:04:33 -05:00
John Gallagher
cacda916f9 Fix doctest failures on rust nightly.
These should've been failing on stable too as they were all wrong.

Closes #154.
2016-05-19 14:25:39 -05:00
John Gallagher
703cf22b52 Separate Savepoint out from Transaction.
Replaces `set_commit` and `set_rollback` with `set_drop_behavior`.

Allows specification of savepoint names.

Savepoint::rollback() does not consume the savepoint;
Transaction::rollback() does consume the transaction.
2016-05-18 16:38:09 -05:00
John Gallagher
678b301494 Make rollback take (&mut self) instead of (self) 2016-05-18 14:25:57 -05:00
John Gallagher
599bf5acfe Add test and fix for nested savepoint rollbacks.
This requires giving savepoints distinct names.
2016-05-17 20:19:44 -05:00
John Gallagher
92834951e3 Make the creation of transactions and savepoints take &mut self.
Transactions in SQLite are nested, but the previous API allowed rusqlite
transaction wrappers to be created as "siblings". This resulted in
unexpected (and usually wrong) behavior.
2016-05-17 19:53:53 -05:00
John Gallagher
41fe698cec Address additional clippy warnings 2016-03-29 14:18:56 -04:00
gwenn
0fe1990d34 Fix clippy warnings 2016-02-14 16:11:59 +01:00
gwenn
f529d130b9 Rustfmt 2016-02-02 19:12:00 +01:00
John Gallagher
6bcc3edccd BREAKING CHANGE: Remove common prefix on TransactionBehavior case names. 2015-12-12 14:22:50 -05:00
John Gallagher
3d15a8a15c Rename SqliteTransaction* -> Transaction*. 2015-12-12 14:17:43 -05:00
John Gallagher
eb60bb3111 Rename SqliteResult -> Result. 2015-12-12 14:06:03 -05:00
John Gallagher
4327a84edb Rename SqliteConnection -> Connection.
Leave old name in as a (deprecated) typealias.
2015-12-12 13:53:34 -05:00
John Gallagher
a1f1480b18 Run rustfmt on all crate files 2015-12-10 16:48:09 -05:00