John Gallagher
6f8f2f3910
Fix clippy match_same_arms warning
2016-05-19 15:02:06 -05:00
John Gallagher
342b00303a
Merge pull request #155 from jgallagher/fix-nightly-test-failures
...
Fix doctest failures on rust nightly.
2016-05-19 14:57:16 -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
d608956bd0
Merge branch 'master' into remove-rows-iterator-impl
2016-05-19 14:06:56 -05:00
John Gallagher
0e6e78e81a
Merge branch 'master' into savepoint-improvements
2016-05-19 13:49:02 -05:00
John Gallagher
74b57ee47a
Add test and fix for invalid cached column_count.
...
Issue raised in
https://github.com/jgallagher/rusqlite/pull/113#issuecomment-220122048 .
2016-05-18 22:19:04 -05:00
John Gallagher
d5bbbbd763
Add query_map_named and query_and_then_named to Statement.
2016-05-18 22:01:08 -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
30733a3688
Modify Rows::next to tie its lifetime to the returned Row.
...
This means Rows no longer implements Iterator, but it is no longer
possible to misuse it by accessing a stale Row handle.
2016-05-18 11:41:22 -05:00
John Gallagher
437a06fca3
Merge branch 'master' into gwenn-stmt-cache
2016-05-17 20:52:52 -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
e71c3c5207
Add Connection::set_prepared_statement_cache_capacity.
2016-05-17 14:20:56 -05:00
John Gallagher
d923d8c670
Use a real LruCache instead of a VecDeque.
2016-05-17 13:35:23 -05:00
John Gallagher
20b93bdb96
rustfmt
2016-05-17 13:35:23 -05:00
John Gallagher
bd81b727f0
Simplify CachedStatement lifetimes
2016-05-17 13:35:21 -05:00
John Gallagher
3c15eb0218
Add Connection::prepare_cached.
2016-05-17 13:34:54 -05:00
John Gallagher
ed72da92ef
Remove cache feature
2016-05-17 12:01:55 -05:00
John Gallagher
0ab9421e6a
Detach StatementCache from Connection so we can embed it (coming later)
2016-05-17 11:59:54 -05:00
John Gallagher
1978568d01
Make StatementCache hold RawStatements instead of Statements.
2016-05-17 11:55:10 -05:00
John Gallagher
f6aba80f4b
Extract RawStatement wrapper around *mut sqlite3_stmt.
2016-05-17 11:27:29 -05:00
John Gallagher
b76196ae1a
Merge branch 'master' into gwenn-stmt-cache
2016-05-17 08:54:47 -05:00
John Gallagher
63e5570ca9
Merge pull request #149 from jgallagher/gwenn-reset
...
Reset statements ASAP.
2016-05-16 15:19:03 -05:00
John Gallagher
1262d3bb17
Call sqlite3_reset on a statement ASAP inside Rows
's Iterator
impl.
2016-05-16 14:39:14 -05:00
John Gallagher
8e1ce5cf9c
Fuse a Rows
iterator once it fetches the final row.
2016-05-16 14:11:44 -05:00
John Gallagher
4a6c7b5329
Reset in Rows's drop impl instead of waiting for the next query
2016-05-16 14:02:39 -05:00
gwenn
3a52dd65f0
Rustfmt
2016-05-16 19:52:17 +02:00
gwenn
9fefa372db
Reset as soon as possible.
2016-05-16 19:51:31 +02:00
John Gallagher
ba7b1ea45e
Merge pull request #147 from jgallagher/update-to-latest-bitflags
...
Update to latest bitflags crate.
2016-05-16 12:20:26 -05:00
John Gallagher
f77ae8816d
Update to latest bitflags crate.
...
Closes #139 .
2016-05-16 11:36:48 -05:00
John Gallagher
757a1f40dc
rustfmt
2016-05-16 11:18:38 -05:00
John Gallagher
493446e6d1
Implement exists
using query
instead of FFI.
2016-05-16 11:18:15 -05:00
John Gallagher
7b174c97f8
Add sanity check for insert
that does not do an insertion
2016-05-16 11:15:07 -05:00
John Gallagher
504b16dc98
Merge branch 'master' into gwenn-convenient
2016-05-16 11:02:56 -05:00
John Gallagher
8124953882
rustfmt
2016-05-16 10:17:25 -05:00
John Gallagher
b47b644246
Merge branch 'master' into gwenn-json
2016-05-16 10:14:09 -05:00
John Gallagher
68256a54ad
Merge pull request #144 from jgallagher/gwenn-chrono
...
From/ToSql for chrono types.
2016-05-16 10:13:42 -05:00
John Gallagher
4924c0b38b
rustfmt
2016-05-16 10:02:07 -05:00
John Gallagher
6a4abff462
Restore support for full RFC3339 timestamps with a space seperator
2016-05-16 09:27:50 -05:00
John Gallagher
6d9b268776
Add tests confirming DateTime works with " " seperator instead of "T"
2016-05-16 09:13:45 -05:00
John Gallagher
34d5e2db24
Always store DateTimes in UTC
2016-05-16 09:08:31 -05:00
John Gallagher
b87d4b44a6
Minor code cleanup/refactoring. No functional changes.
2016-05-15 22:51:04 -05:00
John Gallagher
5038e2a705
Remove unnecessary column_has_valid_sqlite_type impl
2016-05-15 22:46:50 -05:00
John Gallagher
b68e9e8a6f
Merge branch 'gwenn-chrono' into json
2016-05-15 22:41:06 -05:00
John Gallagher
88fb175b40
Limit Timespec representation to strings.
2016-05-15 22:30:11 -05:00
John Gallagher
07801ca370
Greatly reduce implementation of chrono types.
...
Limit ToSql/FromSql to string representations, and limit allowed string
representations to RFC3339 (if a timezone is expected) and SQLite's
`datetime()` format (if not).
2016-05-15 22:23:02 -05:00
John Gallagher
42bc173009
Only use strings for NaiveDate's ToSql/FromSql impl
2016-05-15 19:58:06 -05:00
John Gallagher
350dc59bb9
Remove unnecessary column_has_valid_sqlite_type impls
2016-05-15 15:32:59 -04:00
gwenn
b20168fe9c
Use String::from_utf8_lossy for error/trace.
...
Try to use the original message even if there are invalid
characters.
2016-05-07 12:08:57 +02:00
gwenn
79376a4ca9
Partially fix the bug reported by @iwinux.
...
If microseconds are specified but no timezone indicator, parsing
fails...
2016-05-04 21:57:16 +02:00
gwenn
1cf68d2184
Julian/Unix times are ambiguous when converted to DateTime.
2016-04-15 21:02:08 +02:00
gwenn
57b492ffb2
Merge branch 'chrono' of https://github.com/gwenn/rusqlite into json
2016-04-02 16:50:00 +02:00
gwenn
87844c688e
Fix clippy warning
2016-04-02 16:48:33 +02:00
gwenn
94f181f359
Merge branch 'chrono' of https://github.com/gwenn/rusqlite into json
2016-04-02 14:02:28 +02:00
gwenn
3769d085ae
Fix clippy warnings.
2016-04-02 13:57:55 +02:00
gwenn
73bd4a29f2
Merge remote-tracking branch 'jgallagher/master' into chrono
2016-03-30 18:02:48 +02:00
gwenn
3a7c87b896
Merge remote-tracking branch 'jgallagher/master' into json
2016-03-30 17:58:36 +02:00
John Gallagher
09dfa6afab
Move clippy allowance behind a cfg_attr
2016-03-29 16:36:00 -04:00
John Gallagher
c0b8be99e8
Fix crash due to 0-sized function type change in nightly
2016-03-29 16:14:12 -04:00
John Gallagher
41fe698cec
Address additional clippy warnings
2016-03-29 14:18:56 -04:00
John Gallagher
2bd54578f5
Update clippy version and address new warnings
2016-03-29 11:54:02 -04:00
gwenn
3c1ce6428a
Implement FromSql/ToSql for serde_json Value
2016-02-25 19:06:37 +01:00
gwenn
ecac52dc4c
Make FromSql impl for TimeSpec support double/int.
2016-02-25 18:44:53 +01:00
gwenn
08d4d9aadf
Comment out TZ sensitive tests.
2016-02-23 18:34:08 +01:00
gwenn
33bc6edb4a
Test From/ToSQL for chrono types.
2016-02-23 18:18:56 +01:00
gwenn
bdb9823b07
Add From/ToSql impl. for chrono types.
2016-02-22 20:36:49 +01:00
gwenn
aea2f876d5
Try to fix regression with Rust stable.
2016-02-14 16:24:35 +01:00
gwenn
0fe1990d34
Fix clippy warnings
2016-02-14 16:11:59 +01:00
gwenn
24d5093ab8
Merge remote-tracking branch 'jgallagher/master' into rustfmt
2016-02-02 19:15:35 +01:00
gwenn
f529d130b9
Rustfmt
2016-02-02 19:12:00 +01:00
gwenn
82f1467a9f
Add declaration for convenient module
2016-02-02 18:57:25 +01:00
John Gallagher
9a4095365f
Merge branch 'master' into gwenn-stmt-cache
2016-02-02 10:39:22 -05:00
John Gallagher
350fd11fed
Add a handle()
method to unsafely get the underlying SQLite connection.
...
Doc comments suggest opening issues on rusqlite for any uses of
`handle()`, as uses indicate areas where rusqlite insufficiently wraps
SQLite.
2016-02-01 15:21:03 -05:00
gwenn
03bc69f815
Introduce exists and insert convenient methods
2016-02-01 20:42:50 +01:00
John Gallagher
a793f8c8c5
Remove scary lifetime-of-rows-may-panic from README.
...
Closes #119 .
2016-02-01 14:30:51 -05:00
John Gallagher
55dde134e1
Merge pull request #122 from gwenn/zeroblob
...
Introduce ZeroBlob struct.
2016-02-01 14:14:14 -05:00
gwenn
43613a0020
Moves ZeroBlob from types to blob module.
2016-02-01 18:13:07 +01:00
John Gallagher
f4c3ba0fa2
rustfmt
2016-02-01 10:48:30 -05:00
gwenn
f488277373
Introduce ZeoBlob struct.
2016-01-31 18:17:28 +01:00
gwenn
ea14115d6c
Ensure there is no allocation in final aggregation step.
2016-01-28 18:12:23 +01:00
John Gallagher
0afdc111d1
Merge branch 'master' into gwenn-stmt-cache
2016-01-07 15:53:23 -05:00
John Gallagher
ca761d7697
Avoid creating an aggregation context unnecessarily if the function is
...
called against 0 rows.
2016-01-07 15:14:24 -05:00
John Gallagher
199dfc455b
Internal refactor - extract common error handling code
2016-01-07 12:39:16 -05:00
John Gallagher
b189f6ba66
Change how Aggregate works when called on no rows.
...
Before this commit, if the aggregate function was called on 0 rows, it
would always return NULL (and never call Aggregate::init() or
finalize()). Now, init() and finalize() are always called to get the
result of the function, even if step() is never called.
2016-01-07 12:35:27 -05:00
John Gallagher
e4819b6adc
Give Aggregate::finalize ownership of the context it created
2016-01-07 11:42:39 -05:00
John Gallagher
ab262a55de
Merge branch 'aggregate' of https://github.com/gwenn/rusqlite into gwenn-aggregate
2016-01-07 11:40:40 -05:00
John Gallagher
726bd59932
Fix typo "rowss" in docs.
2016-01-07 11:36:01 -05:00
John Gallagher
0a371b7145
Rename StatementCache::release -> cache_stmt
2016-01-07 11:30:51 -05:00
John Gallagher
7b29277d6f
Use discard()
instead of cacheable = false
to avoid prevent cached
...
statements from returning to the cache.
2016-01-07 11:24:20 -05:00
John Gallagher
ed0923bba9
Update for RowIndex change
2016-01-07 11:20:42 -05:00
John Gallagher
a9a953e6b7
Merge branch 'stmt-cache' of https://github.com/gwenn/rusqlite into gwenn-stmt-cache
2016-01-07 11:19:59 -05:00
John Gallagher
f290c15d0d
Merge branch 'dynamic' of https://github.com/gwenn/rusqlite into gwenn-dynamic
2016-01-07 11:12:05 -05:00
gwenn
12f26e78b3
Introduce RowIndex trait (like in rust-postgres)
2016-01-02 12:13:37 +01:00
gwenn
9db82e74db
Make possible to execute dynamic queries.
...
Queries with dynamic column count/type.
2016-01-02 10:28:00 +01:00
gwenn
987b06cf79
Add some documentation
2015-12-20 19:27:28 +01:00
gwenn
83b9fd0aba
Test a user-defined aggregate function: my_sum.
2015-12-20 12:23:51 +01:00
gwenn
68b4943a39
Add some doc
2015-12-19 17:14:06 +01:00
gwenn
5876be3d48
Add test with cacheable set to false
2015-12-19 17:01:06 +01:00
gwenn
cb1951c21a
Fix borrowing
2015-12-19 16:56:41 +01:00
gwenn
7bdf80ccdb
Introduce two distinct lifetime parameters.
2015-12-19 16:49:11 +01:00
gwenn
468ded3e08
Merge branch 'master' of https://github.com/jgallagher/rusqlite into aggregate
2015-12-18 20:39:08 +01:00
Gwenael Treguier
86ffc24bb9
Merge branch 'master' of https://github.com/jgallagher/rusqlite into stmt-cache
2015-12-18 20:25:52 +01:00
Gwenael Treguier
30c8910d19
Still some lifetime problem...
2015-12-18 20:18:46 +01:00
Gwenael Treguier
85fb89b280
Fail to create a new CachedStatement.
2015-12-17 20:33:34 +01:00
Gwenael Treguier
109c26fea4
Replace LruCache by VecDeque.
2015-12-17 20:02:49 +01:00
John Gallagher
b241f98920
Add test and check for SQLite being in single-threaded mode
2015-12-16 23:56:21 -05:00
John Gallagher
2e082d7f94
Document new Error enum.
2015-12-16 23:51:24 -05:00
John Gallagher
7920dbc5ff
Only check for SQLITE_CONSTRAINT_NOTNULL on new enough versions of SQLite.
2015-12-16 20:30:27 -05:00
John Gallagher
2129cdb0f2
Add Send and Sync bounds to boxed errors to be comaptible with io::Error.
2015-12-16 20:30:27 -05:00
John Gallagher
047861b928
Move Error
into its own module (internal organization only - public API remains).
2015-12-16 20:30:27 -05:00
John Gallagher
aac4d59fcc
Change Error
from a struct to an enum (BREAKING CHANGE).
...
This allows us to separate out the underlying SQLite error codes from
errors that occur on the Rust side.
2015-12-16 20:30:27 -05:00
John Gallagher
bf859a8008
Attempt to enable extended result codes for all connections
2015-12-16 20:30:27 -05:00
Gwenael Treguier
ff02213b53
Introduce a RefCell in CachedStatement.
2015-12-16 20:10:31 +01:00
Gwenael Treguier
9257987b37
Try to introduce a CachedStatement struct.
2015-12-16 19:42:03 +01:00
Gwenael Treguier
880a78ae83
Partial fix following John suggestions.
2015-12-15 21:49:59 +01:00
Gwenael Treguier
108b6b6fcd
Merge branch 'master' of https://github.com/jgallagher/rusqlite into stmt-cache
2015-12-15 21:03:31 +01:00
Gwenael Treguier
13c93e0f8b
Rustfmt
2015-12-15 20:57:32 +01:00
Gwenael Treguier
0b42e3c78c
Merge branch 'master' of https://github.com/jgallagher/rusqlite into aggregate
2015-12-15 20:55:46 +01:00
Gwenael Treguier
458951e2d5
First draft to support user defined aggregate functions.
2015-12-15 20:54:23 +01:00
John Gallagher
c63238108c
Add comment to write recommending write_all.
2015-12-15 14:24:05 -05:00
John Gallagher
3482e1c453
Add unit test confirming write_all to a Blob fails if given too much data.
2015-12-15 13:39:47 -05:00
John Gallagher
d24968db15
Expand comments.
2015-12-14 16:21:38 -05:00
John Gallagher
900c241c4e
Fix logic in seek to disallow seeking past the end
2015-12-14 16:11:07 -05:00
John Gallagher
af9b45851a
Truncate instead of erroring if asked to read/write too much data from a Blob.
2015-12-14 16:06:53 -05:00
John Gallagher
c15a8dba79
More extensive unit tests for Blob.
2015-12-14 15:03:29 -05:00
John Gallagher
a43da3ef73
rustfmt
2015-12-14 14:13:14 -05:00
John Gallagher
7a7d13f520
Move Blob's seek
to an impl of std::io::Seek.
2015-12-14 14:12:11 -05:00
John Gallagher
439f8583e7
Move Blob's write
to an impl of std::io::Write.
2015-12-14 13:50:18 -05:00
John Gallagher
f290ce11ab
Move Blob's read
to an impl of std::io::Read.
2015-12-14 13:45:44 -05:00
John Gallagher
5ac5f3e9b5
Make blob_open
take a DatabaseName
instead of a str.
2015-12-14 13:38:36 -05:00
John Gallagher
73611d45d5
Merge branch 'blob' of https://github.com/gwenn/rusqlite into gwenn-blob
2015-12-14 13:35:05 -05:00
John Gallagher
4b512212d2
Inline decode_result_with_errmsg to fix dead code warning
2015-12-13 14:59:47 -05:00
John Gallagher
bf96a15bcf
Merge remote-tracking branch 'origin/master' into bindgen-update
2015-12-13 08:45:59 -05:00
John Gallagher
b883ab651d
Update unsafety of C function pointers for new bindgen
2015-12-13 08:40:51 -05:00
Gwenael Treguier
1c4ca000cf
Simplify execute_batch implementation.
2015-12-13 14:15:56 +01:00
Gwenael Treguier
d5faf2fab3
Merge branch 'master' of https://github.com/jgallagher/rusqlite into stmt-cache
2015-12-13 11:23:54 +01:00
Gwenael Treguier
888dce0d8f
Rustfmt
2015-12-13 11:05:11 +01:00
Gwenael Treguier
6f0f121d61
Merge remote-tracking branch 'remotes/jgallagher/master' into blob
2015-12-13 10:53:29 +01:00
John Gallagher
6bcc3edccd
BREAKING CHANGE: Remove common prefix on TransactionBehavior case names.
2015-12-12 14:22:50 -05:00
John Gallagher
b1cde705be
Rename SqliteLoadExtensionGuard
-> LoadExtensionGuard
.
2015-12-12 14:20:11 -05:00
John Gallagher
3d15a8a15c
Rename SqliteTransaction*
-> Transaction*
.
2015-12-12 14:17:43 -05:00
John Gallagher
9cac56d6a2
Rename SqliteOpenFlags
-> OpenFlags
.
2015-12-12 14:13:29 -05:00
John Gallagher
ea5cb41bbf
Rename SqliteRow
-> Row
.
2015-12-12 14:11:24 -05:00
John Gallagher
b932640181
Rename SqliteRows
-> Rows
.
2015-12-12 14:09:37 -05:00
John Gallagher
ec654352d9
Rename SqliteStatement
-> Statement
.
2015-12-12 14:08:04 -05:00
John Gallagher
eb60bb3111
Rename SqliteResult
-> Result
.
2015-12-12 14:06:03 -05:00
John Gallagher
f0b6bf9152
Rename SqliteError -> Error.
2015-12-12 13:53:58 -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
4830b0a648
Add unit test for function with variable number of arguments
2015-12-12 10:44:08 -05:00