Commit Graph

1131 Commits

Author SHA1 Message Date
gwenn
96103b0662 Merge remote-tracking branch 'jgallagher/master' into hooks 2018-01-20 10:08:40 +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
Travis Cross
5d8a840b5d Fix date/time format for SQLite, use RFC 3339
We implement `ToSql` and `FromSql` for `time::Timespec` values.  Our
documentation indicates that we store the value in the same format
used by SQLite's built-in date/time functions, but this was not
correct.

We were using the format:

    %Y-%m-%d %H:%M:%S:%f %Z

This format cannot be interpreted at all by SQLite's built-in
date/time functions.  There are three reasons for this:

- SQLite supports only two timezone formats: `[+-]HH:MM` and the
  literal character `Z` (indicating UTC)

- SQLite does not support a space before the timezone indicator

- SQLite supports a period (`.`) between the seconds field and the
  fractional seconds field, but not a colon (`:`)

SQLite does support the RFC 3339 date/time format, which is standard
in many other places.  As we're always storing a UTC value, we'll
simply use a trailing `Z` to indicate the timezone, as allowed by RFC
3339.  The new format is:

    %Y-%m-%dT%H:%M:%S.%fZ

To avoid breaking applications using databases with values in the old
format, we'll continue to support it as a fallback for `FromSql`.

[1] https://www.sqlite.org/lang_datefunc.html
[2] https://tools.ietf.org/html/rfc3339
2017-12-24 22:15:31 +00:00
John Gallagher
aa64e2fb33 Remove potentially conflicting impl of ToSqlOutput.
Replace with manual implementations of all the types we provided impls
for before.
2017-12-05 19:40:09 -05:00
John Gallagher
402d5340d5 Patch release of libsqlite3-sys to remove crates.io keyword 2017-12-05 18:05:51 -05:00
John Gallagher
94febda05a
Merge pull request #311 from jgallagher/clippy-warnings
Fix handful of clippy warnings.
2017-12-05 18:05:02 -05:00
John Gallagher
20c86dd2a1
Merge pull request #315 from sgrif/sg-keyword-cleanup
Remove the database keyword/category from libsqlite3-sys
2017-12-05 18:04:43 -05:00
Sean Griffin
b553a214c8 Remove the database keyword/category from libsqlite3-sys
Currently `libsqlite3-sys` is the first result for both the "database"
keyword, and the "Database interfaces" category. This makes sense, as it
is a dependency of both Diesel and rusqlite. However, this library is
not intended to be used directly. While it can technically be called a
database interface, FFI is clearly the category that applies more than
anything else. Someone browsing this keyword or category is likely
looking for a Rust library they can use, not a C one.
2017-12-03 14:22:01 -07:00
John Gallagher
4bfbb5f1fe Fix handful of clippy warnings. 2017-11-17 11:37:23 -07:00
John Gallagher
5f180c5a95 Add sqlcipher feature to README. 2017-11-13 15:59:56 -07:00
John Gallagher
20ee7c6841 Fix 0.13.0 release date in Changelog 2017-11-13 15:57:34 -07:00
John Gallagher
a3bec58c96 Bump to v0.13.0. 2017-11-13 15:55:48 -07:00
John Gallagher
e1401359df
Merge pull request #309 from jgallagher/gwenn-doc-rs
Update doc links to docs.rs
2017-11-13 15:55:20 -07:00
John Gallagher
f28df22a70 Add limits feature to docs.rs metadata. 2017-11-13 15:50:59 -07:00
John Gallagher
42643820f6 Merge branch 'doc-rs' of https://github.com/gwenn/rusqlite into gwenn-doc-rs 2017-11-13 15:49:25 -07:00
John Gallagher
00e90eaafe
Merge pull request #308 from jgallagher/lvillani-sqlcipher
Add support for linking to SQLCipher
2017-11-13 15:47:11 -07:00
John Gallagher
17f02d7dc8
Merge pull request #307 from jgallagher/fitzgen-update-bindgen-dep
Update `bindgen` dependency to the latest version
2017-11-13 15:46:59 -07:00
John Gallagher
cbdbacddd8 Merge branch 'sqlcipher' of https://github.com/lvillani/rusqlite into lvillani-sqlcipher 2017-11-13 13:29:24 -07:00
John Gallagher
dc6268d4c9 Merge branch 'update-bindgen-dep' of https://github.com/fitzgen/rusqlite into fitzgen-update-bindgen-dep 2017-11-13 13:26:50 -07:00
John Gallagher
5f800eb285
Merge pull request #306 from jgallagher/twistedfall-master
Export RowIndex trait to allow external code to be generic over what can index be
2017-11-13 11:33:12 -07:00
John Gallagher
68dbcc3c39
Merge pull request #305 from jgallagher/lgarczyn-master
Fixed loss of time information during string conversion
2017-11-13 10:26:32 -07:00
John Gallagher
ccf9e6fe6c Merge branch 'master' of https://github.com/twistedfall/rusqlite into twistedfall-master 2017-11-13 08:30:29 -07:00
John Gallagher
6b81979eea Merge branch 'master' of https://github.com/lgarczyn/rusqlite into lgarczyn-master 2017-11-13 08:27:33 -07:00
John Gallagher
217e12fcee
Merge pull request #304 from jgallagher/gwenn-clippy
Fix some clippy warnings
2017-11-13 08:23:52 -07:00
John Gallagher
e4b68fe0aa
Merge pull request #303 from jgallagher/edelangh-flush_prepared_cached
Added drop for Connection to prevent fd leak
2017-11-13 08:23:40 -07:00
John Gallagher
498faac4db Merge branch 'clippy' of https://github.com/gwenn/rusqlite into gwenn-clippy 2017-11-12 16:27:42 -07:00
John Gallagher
d000aa52d7 Merge branch 'flush_prepared_cached' of https://github.com/edelangh/rusqlite into edelangh-flush_prepared_cached 2017-11-12 16:23:59 -07:00
John Gallagher
73bc7b9dcf
Merge pull request #302 from jgallagher/oherrala-update-deps
Update dependencies
2017-11-12 16:17:33 -07:00
John Gallagher
47ca815fa1 Bump rustc version for appveyor. 2017-11-12 15:24:21 -07:00
John Gallagher
4852d826c8 Merge branch 'update-deps' of https://github.com/oherrala/rusqlite into oherrala-update-deps 2017-11-12 15:07:31 -07:00
John Gallagher
3d34ab4168
Merge pull request #287 from euclio/patch-1
add glob for sqlite sources in .gitattributes
2017-11-12 15:04:34 -07:00
John Gallagher
9d98ee54c0
Merge pull request #286 from mcgoo/vcpkg
msvc/vcpkg dynamic builds now require explicit opt-in
2017-11-12 15:03:49 -07:00
John Gallagher
08228ec7c6
Merge pull request #283 from king6cong/master
code indent
2017-11-12 15:03:31 -07:00
John Gallagher
b5f57c14c5
Merge pull request #276 from cactorium/master
Add Other variant for the Error type
2017-11-12 15:02:41 -07:00
Nick Fitzgerald
ea7207b83d Update bindgen dependency to the latest version
This also required adjusting the fixup inserting `SQLITE_DETERMINISTIC` into the
bindings if it was missing. Now that `bindgen` uses the `quote` crate for code
generation, instead of `syntex`, we can't rely on the output being formatted (it
only is formatted if there is a usable `rustfmt` on the `$PATH`). Even better
than this `contains` tweak would be switching to regexps or something.

Despite that formatting hiccup, newer `bindgen` releases are more reliable due
to many bug fixes, and also build in approximately half the time that older
`bindgen` versions do.
2017-11-11 17:09:19 -08:00
Lorenzo Villani
8cbfc00ec6 Add support for linking to SQLCipher 2017-10-24 19:52:19 +02:00
Ossi Herrala
28d58529b7 Update dependencies
* Gcc crate has been renamed to cc.
* Chrono::UTC has been renamed to Chrono::Utc.
* bitflags 1.0 uses associated constants. So prefix OpenFlags.
2017-10-09 23:25:40 +03:00
Pro
c08ee8be82 Export RowIndex trait to allow external code to be generic over what can index be 2017-09-20 15:34:06 +02:00
gwenn
c842e789bd Merge remote-tracking branch 'jgallagher/master' into vtab 2017-09-11 19:45:22 +02:00
edelangh
ab643c90ce review panic in InnerConnection.drop 2017-09-06 16:50:21 +02:00
gwenn
148dc0baf0 Fix more clippy warnings 2017-08-18 21:26:44 +02:00
edelangh
0d1907887e add cfg for test 2017-07-20 16:40:24 +02:00
gwenn
f7c1a8e7b8 Fix some clippy warnings 2017-07-19 21:26:39 +02:00
edelangh
bdd4f9a1a9 Added drop for Connection to prevent fd leak
Added call to flush_prepared_statement_cache
otherwise InnerConnection receives DatabaseBusy on sqlite3_close
2017-07-19 12:22:31 +02:00
louis
301634add7 fixed timezone issue 2017-07-18 09:56:02 -06:00
louis
6188a6a97c added more tests 2017-07-18 17:46:49 +02:00
louis
8bc97972f8 fixed %F instead of %F:%s 2017-07-18 17:43:25 +02:00
louis
0a114c4436 Fixed loss of time information during string conversion 2017-07-11 17:15:07 +02:00
louis
0d001583b2 Fixed loss of time information during string conversion 2017-07-11 17:01:25 +02:00