gwenn
718b985d86
Merge pull request #338 from gwenn/future-compatibility
...
Fix tyvar_behind_raw_pointer warnings
2018-03-24 03:14:16 +01:00
gwenn
d2a71a1352
Improve error message when we can't open a database
...
Ensure the error message contains the database path
2018-03-10 19:17:22 +01:00
gwenn
3b5e224f82
Fix tyvar_behind_raw_pointer warnings
2018-03-10 18:07:30 +01:00
gwenn
db87de4086
Inline csv dependency
2018-03-10 17:05:22 +01:00
gwenn
96e5cf2239
Fix statement cache
...
SQLite ignores the SQL tail (whitespaces, comments).
We can easily ignore whitespaces by trimming the SQL.
2018-02-17 10:28:20 +01:00
gwenn
4357471197
Fix build errors related to bitflags
2018-01-27 10:32:58 +01:00
gwenn
3aaab1e36f
Merge remote-tracking branch 'remotes/jgallagher/master' into vtab
2018-01-20 12:29:07 +01:00
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
4bfbb5f1fe
Fix handful of clippy warnings.
2017-11-17 11:37:23 -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
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
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
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
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
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
king6cong
13a32e4004
code indent
2017-06-02 17:19:39 +08:00
Kelvin Ly
dde762bf0e
Rename Error::Other to Error::ToSqlConversionFailure
2017-05-30 19:22:14 -04:00
John Gallagher
20de96083a
Merge pull request #280 from jgallagher/to-sql-str-u8
...
Add ToSql impls for str and [u8].
2017-05-29 13:39:35 -04:00
John Gallagher
3827a835ef
Add ToSql impls for str and [u8].
2017-05-29 11:20:52 -04:00
John Gallagher
4623064f4d
Update to bitflags 0.9.
2017-05-29 10:52:19 -04:00
John Gallagher
6b360a11c2
Merge pull request #258 from gwenn/constants
...
Constants
2017-05-29 10:37:26 -04:00
Kelvin Ly
022f1e8671
Add Other variant for the Error type
2017-05-19 23:48:06 -04:00
gwenn
94670c0119
Rustfmt
2017-05-12 19:18:42 +02:00
gwenn
dfdd42fd09
Bind sqlite3_commit_hook and sqlite3_rollback_hook
2017-05-12 19:14:34 +02:00
gwenn
466b8aab2f
Rename row
parameter to row_id
2017-05-12 19:12:10 +02:00
gwenn
3e6fffaf94
Due to rust monophormisation, there is no need for double indirection
2017-04-27 18:05:12 +02:00
gwenn
63a444a95f
Fix memory leak and add test
2017-04-26 20:12:48 +02:00
gwenn
6eb98afd67
SQLITE_RECURSIVE is not available with SQLite 3.6.8
2017-04-25 21:08:41 +02:00
gwenn
3b575c3b4a
Implementation of sqlite3_update_hook #260
...
First draft (no tested and a memory leak)
2017-04-25 20:58:22 +02:00
gwenn
197d1161c3
Field estimatedRows is not available with SQLite 3.7.7
2017-04-21 21:50:38 +02:00
gwenn
1d684ae653
Merge remote-tracking branch 'jgallagher/master' into vtab
2017-04-21 20:01:04 +02:00
gwenn
9ea48db46f
Some open flags are not available in 3.6.8
2017-04-20 20:59:07 +02:00
Aidan Hobson Sayers
7bd969b8fd
Fix functions for empty blobs
...
Expands fix from #175
2017-04-16 16:49:28 +01:00
gwenn
08f96a678e
Rustfmt
2017-04-07 19:43:24 +02:00
gwenn
4e5b64fbca
Use constants generated by bindgen where possible
2017-04-07 19:36:31 +02:00
John Gallagher
401d1f81e1
Merge pull request #255 from jgallagher/fix-duplicated-constants
...
Avoid publicly exporting constants from libsqlite3-sys multiple times.
2017-04-05 14:31:31 -04:00
John Gallagher
549373f764
Fix incorrect ffi constant accesses.
2017-04-05 13:58:33 -04:00
John Gallagher
76363cca7e
Merge pull request #253 from jgallagher/fix-unused-macro-warning
...
Fix unused macro warning when compiling tests without `trace` feature.
2017-04-05 13:30:46 -04:00
John Gallagher
4b2a6d2207
Fix unused macro warning when compiling tests without trace
feature.
2017-04-05 12:54:58 -04:00
John Gallagher
a1206d5076
Add FromSql/ToSql impls for isize.
2017-04-05 12:52:37 -04:00
gwenn
3889c8d3e0
Merge remote-tracking branch 'jgallagher/master' into vtab
2017-03-09 19:24:43 +01:00
John Gallagher
ec78a2b5fa
Reorganize: Extract Row/Rows and helper types into their own mod files.
2017-03-08 17:03:31 -05:00
gwenn
7f0082e44e
Merge remote-tracking branch 'jgallagher/master' into vtab
2017-03-08 20:35:07 +01:00
John Gallagher
6bd8516511
Roll convenient.rs into statement.rs.
2017-03-08 11:26:25 -05:00
John Gallagher
5bd7cb37c7
Move named_params.rs into statement.rs, greatly reducing the StatementCrateImpl trait size.
2017-03-08 11:20:43 -05:00
John Gallagher
59159fcb25
Rename execute_() to execute_with_bound_parameters().
2017-03-08 11:11:05 -05:00
John Gallagher
723fc91a09
Minor refactor to avoid needing to expose Statement::decode_result().
2017-03-08 11:04:22 -05:00
John Gallagher
38c9a4a159
Reorganize: Extract Statement and its impl into its own module.
2017-03-08 10:48:14 -05:00
gwenn
faa94d1246
Fix clippy warnings
...
And fix bench.
2017-02-24 20:10:51 +01:00
John Gallagher
39d71810ce
Merge branch 'master' into semver-check
2017-02-23 15:36:54 -05:00
Sean Griffin
2c58b3f804
Remove the dependency on libc
...
Recent versions of bindgen use `std::os::raw` over `libc`, but currently
`libsqlite3-sys` is overriding that. `std::os::raw` is a subset of
`libc` that exports only the relevant type definitions, but not any
functions which require additional linking. This enables
`libsqlite3-sys` to be more easily used on targets that may not have a
libc available (presumably sqlite itself would have been compiled with
musl in that case)
2017-02-16 11:17:24 -05:00
Dominik Miedziński
1b1573c5b2
Fix URL Markdown syntax in Connection docs
2017-02-11 10:50:13 +01:00
John Gallagher
56eee2c13c
Perform a runtime check that the SQLite version isn't older than the one we found at build time.
2017-02-09 20:56:51 -05:00
John Gallagher
358cca1638
Clarify support of older SQLite versions.
2017-02-09 20:23:17 -05:00
John Gallagher
4216671fe6
Update for new bindgen output.
2017-02-08 20:40:30 -05:00
John Gallagher
e2d2a689f8
Minor cleanup from rustfmt pass
2017-02-08 19:38:50 -05:00
gwenn
80f822db28
rustfmt v0.7.1
2017-02-08 21:11:15 +01:00
John Gallagher
01b926c27e
Trivial tweaks
2017-02-07 19:43:54 -05:00
John Gallagher
509257dfa8
Merge branch 'limits' of https://github.com/gwenn/rusqlite into gwenn-limits
2017-02-07 19:41:30 -05:00
gwenn
7014dd6260
Oops
2017-02-07 19:52:52 +01:00
gwenn
59111b783d
Fix tests with old SQLite version (< 3.8.7)
2017-02-07 18:41:14 +01:00
John Gallagher
eb099952ac
Expose version(), version_number(), and source_id() functions.
2017-02-06 20:23:16 -05:00
John Gallagher
98da52ce8f
Merge branch 'err-code' of https://github.com/gwenn/rusqlite into gwenn-err-code
2017-02-06 19:53:31 -05:00
gwenn
bbd6c73daa
Rename get_limit to limit
...
And do not test default limits, only updated ones
2017-02-06 17:43:32 +01:00
John Gallagher
60e1f3c02f
Add more explicit types in unit tests.
2017-02-05 17:30:53 -05:00
gwenn
307431911c
Exporting libsqlite3_sys::error::ErrorCode ( #218 )
2017-02-04 11:33:23 +01:00
gwenn
359ec914d2
Expose limits ( #220 )
2017-02-04 11:01:38 +01:00
John Gallagher
8054ea4ab8
Derive Clone, Debug, and PartialEq on ToSqlOutput.
2017-01-26 22:02:20 -05:00
reddraggone9
57750fe6a6
Fix doc comment example of FromSql/ToSql
...
Update a doc test so that it compiles on master. Also remove the ignore
directive so that it runs with the rest of the test suite.
2017-01-24 22:57:42 -06:00
John Gallagher
06583aadf2
fix clippy warnings
2017-01-23 19:46:49 -05:00
John Gallagher
aa6c542202
Add impl ToSql for ToSqlOutput.
2017-01-23 19:42:02 -05:00
John Gallagher
e180ab15ce
Fix incomplete match under functions
feature
2017-01-22 20:05:06 -05:00
John Gallagher
7c072bf55e
impl ToSql for i8,i16,u8,u16,u32
2017-01-22 19:55:49 -05:00
John Gallagher
68ae7de1d5
Update docs on Row::get
2017-01-22 19:42:51 -05:00
John Gallagher
846a59695c
Add range-checked FromSql impls for i8, i16, u8, u16, u32.
2017-01-22 19:40:48 -05:00
John Gallagher
1974ee573c
Add range checks for i32's FromSql impl.
2017-01-22 19:26:19 -05:00
gwenn
8b9437ff35
Merge remote-tracking branch 'jgallagher/master' into vtab
2017-01-13 21:43:10 +01:00
John Gallagher
b49e1d1a1c
Merge pull request #205 from jgallagher/fix-retry-close-failure
...
Fix close() returning a useful connection on failure.
2017-01-07 12:25:47 -05:00
John Gallagher
6709207453
Fix close() returning a useful connection on failure.
2017-01-06 14:32:27 -05:00
John Gallagher
f30edaf563
Silence another deprecation reexport warning.
2017-01-06 14:25:55 -05:00
gwenn
685694255b
Merge remote-tracking branch 'jgallagher/master' into vtab
2017-01-06 18:34:54 +01:00
John Gallagher
0b5d8339e1
Silence warnings about deprecations when exporting deprecated types.
2017-01-06 01:23:51 -05:00
John Gallagher
3af91b36bf
Make Connection::close() return the connection on failure.
2017-01-03 20:00:29 -05:00
gwenn
46df930881
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-12-31 09:15:26 +01:00
John Gallagher
4c8b0ab6dd
Merge pull request #181 from gwenn/clippy
...
Fix clippy warnings
2016-12-31 01:23:40 -05:00
John Gallagher
2e140d0684
FromSqlError::cause() returns other error's cause directly (possibly None).
2016-12-31 00:36:52 -05:00
John Gallagher
4181441d63
Merge branch 'master' into gwenn-invalid-column-type
2016-12-31 00:35:47 -05:00
gwenn
bc71c58387
Add Statement.query_row convenient method ( #179 )
2016-12-31 00:03:55 -05:00
John Gallagher
08d88177e7
Merge branch 'flush-cache' of https://github.com/gwenn/rusqlite into gwenn-flush-cache
2016-12-30 23:55:19 -05:00
John Gallagher
f17fc14a59
Update query_row_named so its closure also takes a &Row instead of a Row
2016-12-30 23:48:04 -05:00
John Gallagher
3815b6beef
Merge branch 'query_row' of https://github.com/pfernie/rusqlite into pfernie-query_row
2016-12-30 23:42:38 -05:00
John Gallagher
d1ad61dc41
Merge pull request #178 from gwenn/varparam-usage
...
Fix issue #177
2016-12-30 23:38:50 -05:00
John Gallagher
4f5abc705a
Remove workaround for issue fixed in Rust 1.9.
2016-12-30 23:25:21 -05:00
John Gallagher
0d685af2d5
Merge branch 'master' into safe-tosql
2016-12-30 23:18:32 -05:00
gwenn
8c6f585d52
Fix clippy warnings
2016-12-04 10:18:56 +01:00
gwenn
ffe605150a
Ensure cache is flushed when closing the connection
...
Fix #186
2016-11-04 20:47:28 +01:00
Patrick Fernie
ece7c041e8
change query_row* fns to take Row by reference instead of moving
2016-10-07 12:42:27 -04:00
gwenn
58b7d62517
Introduce IndexConstraintUsage
2016-08-20 12:06:24 +02:00
gwenn
b11a4b1c73
Make index constraints and values iterable
2016-08-20 09:55:25 +02:00
gwenn
8f28ff17b8
Fix rustdoc warnings
2016-08-15 12:41:15 +02:00
gwenn
1d342ef5f3
Test series virtual table
2016-08-15 09:09:38 +02:00
gwenn
b4db5666b6
Misc
2016-08-14 19:57:39 +02:00
gwenn
424a6c0cc8
Add series table-valued-function.
2016-08-14 19:53:47 +02:00
gwenn
3b5bd7abab
Introduce IndexConstraintOp
2016-08-14 12:26:05 +02:00
gwenn
4d2e881706
Partial IndexInfo implementation
2016-08-14 11:22:12 +02:00
gwenn
438312c132
Change signature of VTab::best_index
2016-08-14 09:44:37 +02:00
gwenn
505abc0331
Change signature of VTabCursor::filter
2016-08-14 09:31:53 +02:00
gwenn
a90388e6bf
Change signature of VTab::best_index
2016-08-14 09:08:42 +02:00
gwenn
c8b09e2ee7
Change VTabCursor::column signature
2016-08-13 17:46:49 +02:00
gwenn
8f079819f7
Change VTabCursor::filter signature
2016-08-13 13:55:30 +02:00
gwenn
0a19cbd16a
Change VTabCursor::filter signature
2016-08-13 13:12:48 +02:00
gwenn
59ad638875
Change VTab::create signature
2016-08-13 11:54:19 +02:00
gwenn
b10c52f32f
Fix clippy warnings
2016-08-08 15:23:55 +02:00
gwenn
3f55a4583c
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-07-02 11:51:42 +02:00
gwenn
038ef2de42
Revert all InvalidColumnType stuff
2016-07-02 11:50:39 +02:00
gwenn
3eb3b22ad5
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-07-02 11:28:59 +02:00
gwenn
a7d27098b7
Fix issue #177
2016-07-02 10:22:47 +02:00
gwenn
9f05147660
Fix issue jgallagher/rusqlite#174
2016-06-13 20:32:39 +02:00
gwenn
95050f10a8
Add test with empty blob (issue #174 ).
2016-06-13 20:22:21 +02:00
gwenn
e2cf171192
Introduce FromSqlError
as specified by John Gallagher
2016-06-02 21:03:25 +02:00
John Gallagher
58b7aea4f7
Merge branch 'release-0.7' into merge-0.7.3
2016-06-01 21:31:26 -04:00
John Gallagher
ad0b823560
Remove sanity check in insert()
that could return StatementFailedToInsertRow
.
...
This was intended to detect an `UPDATE` query passed to `insert`, but
incorrectly failed if inserts to different tables caused the same row ID
to be returned from both. `UPDATE`s are no longer detectable.
2016-06-01 20:52:22 -04:00
gwenn
91dc30b04d
Simplify InvalidType
2016-05-30 21:20:07 +02:00
gwenn
fb19e718cf
Introduce an intermediary InvalidType error.
...
InvalidType is used where the column/parameter index is not known.
2016-05-30 20:35:56 +02:00
John Gallagher
d43a1abc78
Merge branch 'master' into rust-1.9-reexported-trait-bugfix
2016-05-29 23:54:47 -04:00
John Gallagher
326d8999e8
Merge pull request #169 from jgallagher/deprecated
...
Use new Rust 1.9 attribute: #[deprecated(since = "...", note = "...")]
2016-05-29 23:42:22 -04:00
John Gallagher
b1b438158d
Remove workaround for Rust compiler bug that was fixed in 1.9.
2016-05-29 20:38:46 -04:00
John Gallagher
7c0eba0475
Add since
and note
for all deprecation tags.
2016-05-29 20:36:20 -04:00
gwenn
6a4eacc927
Simply use cargo clippy
2016-05-28 11:16:55 +02:00
gwenn
f817ec86bc
Use new Rust 1.9 attribute: #[deprecated].
2016-05-26 21:16:09 +02:00
gwenn
cabcaf3dcb
Better error reporting on invalid column type.
2016-05-26 21:03:05 +02:00
John Gallagher
bafa85a1a0
Fix clippy warnings.
2016-05-26 00:30:01 -04:00
John Gallagher
f3693a993e
rustfmt
2016-05-26 00:28:18 -04:00
John Gallagher
9a6e17b478
Add doc comments to ToSqlOutput.
2016-05-26 00:14:46 -04:00
John Gallagher
2b830fde2d
Remove pub re-export of FFI helpers from functions
.
2016-05-26 00:14:45 -04:00
John Gallagher
6467815d02
Replace functions::ToResult with ToSql.
2016-05-26 00:14:45 -04:00
John Gallagher
13bff6fab6
Add ToSql impl for bool
.
2016-05-26 00:14:45 -04:00
John Gallagher
9125826534
Move types::Value into its own module.
2016-05-26 00:14:45 -04:00
John Gallagher
e4926ac0d7
Rework ToSql to be implementable without unsafe
.
2016-05-26 00:14:45 -04:00
John Gallagher
8adb96131b
Remove now-unnecessary FFI re-exports.
2016-05-25 19:53:18 -04:00
John Gallagher
2f4990dafd
Rename BorrowedValue -> ValueRef.
2016-05-24 21:34:18 -04:00
John Gallagher
d9df23ca90
Fix doc comment example of FromSql implementation.
2016-05-24 20:12:29 -04:00
John Gallagher
0fbfad2452
Remove functions::FromValue.
...
With the new definition of FromSql, we can reuse it since we can convert
a sqlite3_value into a BorrowedValue.
2016-05-24 20:08:12 -04:00
John Gallagher
4662b9b932
Allow FromSql::<f64> to work on SQLite integer values.
2016-05-24 20:05:32 -04:00
John Gallagher
9d47d5109a
Add doc comments for BorrowedValue and friends.
2016-05-24 19:48:26 -04:00
John Gallagher
734f18c985
Impl From
for converting Value <-> BorrowedValue
2016-05-24 19:36:38 -04:00
John Gallagher
5b0cdbaa56
Redo FromSql to make implementing it not unsafe
.
...
Pass implementers a BorrowedValue instead of relying on them to use
the FFI interface. We take the responsibility of converting the raw
statement and column index into a BorrowedValue.
2016-05-23 21:49:54 -04:00
John Gallagher
c90cd37c00
Add types::BorrowedValue.
2016-05-23 21:48:56 -04:00
John Gallagher
efc6c89370
Add RawStatement::column_type.
2016-05-23 21:46:51 -04:00
John Gallagher
dccfd7e801
Refactor: Extract ToSql into its own module.
2016-05-22 20:16:54 -04:00
John Gallagher
0e96e2269c
Refactor: Extract FromSql into its own module.
2016-05-22 20:01:03 -04:00
gwenn
cbc479c484
Rustfmt
2016-05-20 18:36:44 +02:00
gwenn
0740620ffe
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-05-20 18:31:30 +02:00
John Gallagher
8ce2f5888f
Document CachedStatement::discard.
2016-05-19 20:36:41 -05:00
John Gallagher
dc1b0e39ed
Re-export DropBehavior and SqliteTransactionBehavior.
2016-05-19 20:35:27 -05:00
John Gallagher
d27ed0de63
Re-export Savepoint.
2016-05-19 20:32:17 -05:00
John Gallagher
c4417bee0e
Manual fixes for rustfmt overly long lines.
2016-05-19 20:09:40 -05:00
John Gallagher
71aa41c27a
rustfmt
2016-05-19 20:04:33 -05:00
gwenn
ef6fcc8976
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-05-19 22:10:58 +02:00
John Gallagher
57d2ae42cf
Fix clippy needless_borrow warning
2016-05-19 15:03:01 -05:00
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
gwenn
1bb177047e
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-05-19 21:24:17 +02: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
gwenn
42d95f042f
Fix tests and improve InvalidColumnType error message.
2016-05-18 21:25:13 +02: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
gwenn
29373e7d0d
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-05-16 22:30:58 +02: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
gwenn
94b4b7595c
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-05-16 18:58:56 +02:00
gwenn
f1e0e10138
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-05-16 18:38:15 +02: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
8e92ef6cf3
SQLite Modules cannot be destroyed.
2016-05-07 12:04:16 +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
6fb549420b
Rustfmt
2016-05-03 21:00:59 +02:00
gwenn
1cf68d2184
Julian/Unix times are ambiguous when converted to DateTime.
2016-04-15 21:02:08 +02:00
gwenn
59872a1850
Fix clippy warnings
2016-04-02 17:16:17 +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
b802230d56
Fix warnings
2016-03-30 18:28:03 +02:00
gwenn
5541cb06fe
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-03-30 18:26:26 +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
d5e4fdfa52
Try to fix Travis build.
2016-02-13 17:28:37 +01:00
gwenn
a9fa2baa3e
Ensure there is one csv reader by cursor.
2016-02-12 20:17:42 +01:00
gwenn
8b5f871386
Add some missing doc
2016-02-11 21:47:47 +01:00
gwenn
1dd5c49937
Fix escape_double_quote
2016-02-11 21:19:18 +01:00
gwenn
38209ffef3
First minimalist test for csvtab implementation.
2016-02-11 19:16:05 +01:00
gwenn
3fbeccdf55
Fix CSVTab::next method.
2016-02-10 20:48:30 +01:00
gwenn
ed5637f513
Fix CSVTab::create method.
2016-02-10 20:30:08 +01:00
gwenn
1e6e8115bb
Introduce VTab and VTabCursor traits.
2016-02-10 18:15:46 +01:00
gwenn
30d1464e93
Improve error handling.
2016-02-10 18:07:58 +01:00
gwenn
933000b57a
Partial CSV virtual table implementation.
2016-02-08 18:06:11 +01:00
gwenn
2dc4230223
Split vtab module in two.
...
A part specific to int array module.
And a generic part.
2016-02-03 20:11:34 +01:00
gwenn
effbf1e395
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-02-03 18:10:58 +01:00
gwenn
f261e8f7eb
Introduce init_module! macro to create sqlite_module
2016-02-02 21:16:10 +01:00
gwenn
f749d24ac1
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-02-02 19:18:19 +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
gwenn
eab16402be
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-02-01 20:35:30 +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
gwenn
e17678b173
IntArray virtual table.
2016-01-24 12:18:21 +01:00
gwenn
2d6705b03e
First, try to implement a simple virtual table.
2016-01-23 18:34:09 +01:00
gwenn
5b62e2dd5f
Virtual Table: WIP
2016-01-10 20:56:04 +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