gwenn
50d379b564
Make Statement::column_index case insensitive
...
Fix #330
2018-03-27 20:07:46 +02:00
gwenn
83c8db2d21
Fix Connection::open documentation ( #332 )
2018-03-24 10:58:42 +01: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
gwenn
c612a44207
Fix errors relative to OpenFlags
...
Also handle extended error codes.
2018-03-24 10:15:10 +01:00
gwenn
5fd76aa54b
Unlock notification
...
Test added
2018-03-24 08:06:30 +01:00
gwenn
154a70d41b
WIP: Unlock Notification
...
To be tested
2018-03-24 08:06:30 +01:00
gwenn
455e7d4060
WIP: Unlock Notification
...
To do: unlock_notify_cb
2018-03-24 08:06:30 +01:00
gwenn
5d91fb088f
Unlock notification
2018-03-24 08:03:21 +01:00
gwenn
0b85c5a1f2
Merge pull request #266 from gwenn/hooks
...
Implementation of sqlite3_update_hook #260
2018-03-24 07:33:29 +01:00
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
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
John Gallagher
5039e57637
Merge branch 'master' into gwenn-functions
...
Conflicts:
Changelog.md
2015-12-11 19:21:39 -05:00
John Gallagher
5fdb2e1fda
Allow named parameters to be omitted.
...
If the parameters have never been bound, they default to `NULL`. If they
have previously been bound, they keep the existing value.
2015-12-11 16:36:49 -05:00
John Gallagher
3bcde498bd
Expand comments.
2015-12-11 16:27:39 -05:00
John Gallagher
ecef092303
Add remove_function
to clear a user-defined function.
2015-12-11 15:47:52 -05:00
John Gallagher
3baf7b10f8
Add unit test demonstrating a closure-based UDF.
2015-12-11 15:35:59 -05:00
John Gallagher
3913e89f94
Allow user scalar functions to return results.
...
This removes the need for scalar functions to have direct access to the
context (in order to set the return value).
2015-12-11 15:08:40 -05:00
John Gallagher
81ec7fe7cd
Add get
to function::Context.
...
This allows user-defined functions to now only accept a `Context`, as it
embeds the arguments inside itself.
2015-12-11 14:46:28 -05:00
John Gallagher
94d40c41c7
Introduce Context wrapper for user-defined functions.
...
This commit adds get/set auxilliary data for arguments; more to come.
2015-12-11 13:54:08 -05:00
John Gallagher
29494f46f6
Let create_scalar_function take an FnMut instead of a extern "C" fn.
2015-12-11 12:01:05 -05:00
John Gallagher
aae431760e
rustfmt - no code changes
2015-12-11 11:41:40 -05:00
John Gallagher
0c3575e845
Fix segfault in regexp user function test
2015-12-11 11:40:53 -05:00
John Gallagher
9f5f4ac385
Merge branch 'functions' of https://github.com/gwenn/rusqlite into gwenn-functions
...
Conflicts:
Cargo.toml
src/lib.rs
2015-12-11 11:31:25 -05:00
John Gallagher
599e30f372
Rename bind_named_parameters -> bind_parameters_named.
2015-12-10 20:49:47 -05:00
John Gallagher
0051ff47a6
Refactor: Extract match to get an expected row into its own method.
2015-12-10 20:48:38 -05:00
John Gallagher
b7468b2c4b
Make parameter_index return a Result<Option<_>> instead of squashing
...
string conversion errors into None.
2015-12-10 20:41:31 -05:00
John Gallagher
186cb5893b
Rename query_named_row -> query_row_named.
...
I think this is more consistent with Rust's tendency to group similar
methods like `iter`, `iter_mut` by appending the difference as a suffix.
2015-12-10 20:31:07 -05:00
John Gallagher
8d4b3e6a31
Remove commented-out code
2015-12-10 20:30:43 -05:00
John Gallagher
21528452d7
Clean up comments on named parameter methods
2015-12-10 20:30:05 -05:00
John Gallagher
7338f23d4b
Add extra assertions around binding named parameters
2015-12-10 20:27:09 -05:00
John Gallagher
2f220161a5
Add extra check to named-parameter insertion unit test
2015-12-10 20:16:46 -05:00
John Gallagher
ab6ab3b2e9
Run rustfmt on named_params.rs
2015-12-10 17:01:19 -05:00
John Gallagher
53979407c5
Merge branch 'named-param' of https://github.com/gwenn/rusqlite into gwenn-named-param
...
Conflicts:
Cargo.toml
src/lib.rs
2015-12-10 16:53:43 -05:00
John Gallagher
a1f1480b18
Run rustfmt on all crate files
2015-12-10 16:48:09 -05:00
John Gallagher
49951ca3be
Add backup and restore methods to SqliteConnection (behind backup
Cargo feature)
2015-12-10 16:20:46 -05:00
John Gallagher
3781b8f47f
rustfmt backup.rs
2015-12-10 16:20:46 -05:00
John Gallagher
8c2e0a0da7
Rename BackupName -> DatabaseName
2015-12-10 16:20:45 -05:00
John Gallagher
5ebbf5a1a2
Use &str instead of String inside BackupName
2015-12-09 00:48:40 -05:00
John Gallagher
e2f8e73635
Initial implementation of the online backup API.
2015-12-09 00:19:59 -05:00
John Gallagher
51a542c0f7
Fix broken load_extension feature
2015-12-08 21:15:23 -05:00
Gwenael Treguier
fe6afe2a94
Merge branch 'master' of https://github.com/jgallagher/rusqlite into functions
2015-12-06 21:33:21 +01:00
Gwenael Treguier
7ab79d6de6
Add Failure documentation.
2015-12-06 19:57:20 +01:00
Gwenael Treguier
da69584b9f
Add Example and Failure documentation
2015-12-05 13:43:03 +01:00
Gwenael Treguier
5b86871d76
Merge branch 'master' of https://github.com/jgallagher/rusqlite into named-param
2015-12-05 12:32:16 +01:00
Gwenael Treguier
fa03bcd564
Fix use declaration.
2015-12-05 12:28:12 +01:00
Gwenael Treguier
18ff9cf4ca
Merge branch 'master' of https://github.com/jgallagher/rusqlite into stmt-cache
2015-12-05 11:58:06 +01:00
Gwenael Treguier
2cf0455f8d
Add Failure documentation
2015-12-05 11:28:33 +01:00
Gwenael Treguier
cef1d3285e
Merge branch 'master' of https://github.com/jgallagher/rusqlite into blob
2015-12-05 11:11:23 +01:00
John Gallagher
ac08a18c43
Merge pull request #86 from jgallagher/gwenn-trace_extension
...
Add Rust interface to SQLite's logging, tracing, and profiling hooks
2015-12-01 13:19:43 -05:00
John Gallagher
3d654aeed1
Add more documentation for failure modes of functions that return s
2015-12-01 12:05:29 -05:00
John Gallagher
1af3fcd053
Fix error messages when failing to convert paths and strings to C-compatible versions
2015-12-01 11:47:55 -05:00
John Gallagher
49cb1efe62
Merge branch 'master' into gwenn-trace_extension
2015-12-01 11:13:23 -05:00
John Gallagher
635616842c
Remove 'static requirement on output of closure given to query_map and query_and_then.
...
The 'static bound was there to prevent callers from being able to save
off the `SqliteRow` handles passed into the closure. This PR changes the
closure to take `&SqliteRow`s instead, which provides the same feature
without restricting the output of the closure.
2015-12-01 10:58:32 -05:00
John Gallagher
e6fef5107d
Change profile() to take a Rust fn instead of an extern "C" fn.
2015-12-01 10:34:18 -05:00
John Gallagher
ace5b1ebdc
Change trace() to take a Rust fn instead of an extern "C" fn.
2015-11-30 21:08:39 -05:00
John Gallagher
dbfa6ca31f
Change config_log to take a Rust fn instead of an extern "C" fn.
...
Moves the unit test for config_log out of #[ignore] and into its own
test file since it affects the entire process.
2015-11-30 21:08:39 -05:00
John Gallagher
eaf080261b
Merge branch 'trace_extension' of https://github.com/gwenn/rusqlite into gwenn-trace_extension
2015-11-30 13:13:43 -05:00
Gwenael Treguier
0729e195c3
Use debug_struct for formatting.
2015-11-30 12:16:09 -05:00
Gwenael Treguier
20c1213482
Remove feature duration.
2015-11-11 15:03:07 +01:00
Gwenael Treguier
a2327fb048
Revert "Remove usage of unstable library feature 'duration'"
...
This reverts commit 9c415f9c9e
.
2015-11-11 15:00:39 +01:00
Gwenael Treguier
4d2d8b43e6
Clean use statement.
2015-11-11 14:45:25 +01:00
Gwenael Treguier
e052053a79
Merge remote-tracking branch 'jgallagher/master' into stmt-cache
2015-11-11 14:42:08 +01:00
Gwenael Treguier
ddd976c158
Cleanup use statements.
2015-11-11 14:39:54 +01:00
Gwenael Treguier
db7345624f
Merge remote-tracking branch 'jgallagher/master' into named-param
2015-11-11 14:39:15 +01:00
Gwenael Treguier
50bfba1e1d
Ignore test_log.
2015-11-11 14:29:40 +01:00
Gwenael Treguier
8bff40b6d6
Merge remote-tracking branch 'jgallagher/master' into trace_extension
2015-11-11 14:28:21 +01:00
John Gallagher
420c4d4d9f
Address RFC 1214 warning
2015-11-03 11:27:52 -05:00
John Gallagher
b1350c4c14
Merge branch 'master' into gwenn-reset_asap
2015-09-22 10:16:52 -07:00
John Gallagher
d23667870e
Merge pull request #70 from jgallagher/pfernie-master
...
Replace get_opt with get_checked. Add query_and_then and query_row_and_then.
2015-09-21 10:38:07 -04:00
John Gallagher
7ee69fe103
Remove get_opt (superceded by get_checked).
2015-09-21 10:31:11 -04:00
John Gallagher
1918dc14d0
Add tests for query_row_and_then().
2015-09-20 21:30:40 -04:00
John Gallagher
072a336b33
Refactor: Reduce duplication across query_and_then tests.
2015-09-20 21:28:50 -04:00
John Gallagher
0cbb2743e3
Merge branch 'master' of https://github.com/pfernie/rusqlite into pfernie-master
2015-09-20 21:07:39 -04:00
John Gallagher
59a3b0ddb5
Merge pull request #62 from gwenn/too-big
...
Check Rust str length before binding.
2015-09-20 20:57:28 -04:00
John Gallagher
d07c7ec8a6
Add basic unit test of statement debug including SQL
2015-09-20 20:44:51 -04:00
gwenn
05669082a3
Debug db path and stmt sql.
2015-09-20 20:41:13 -04:00
John Gallagher
43b0c1c98a
Merge branch 'reset_asap' of https://github.com/gwenn/rusqlite into gwenn-reset_asap
2015-09-20 20:30:59 -04:00
John Gallagher
36f577aea6
Merge pull request #53 from gwenn/exec_check
...
Extra check in SqliteStatement.execute
2015-09-20 20:29:12 -04:00
Huon Wilson
b7efb37b35
Relax uses of P: AsRef<...>
from &P
to P
.
...
This means that one can pass `AsRef` types directly, without having to
insert a `&`, e.g. `SqliteConnection::open("foo.db")` (new)
vs. `SqliteConnection::open(&"foo.db")` (old).
This should be backwards compatible, since there is an impl in the
standard library:
impl<'a, T, U> AsRef<U> for &'a T where U: ?Sized, T: AsRef<U> + ?Sized
I.e. the old `&P` satisfies the new bound still. (Taking `P` directly is
what the standard library does with similar functions, like
`File::open`.)
2015-09-08 18:11:50 +10:00
Patrick Fernie
e4eda2041e
Implement SqliteConnection::query_row_and_then()
2015-08-27 14:47:48 -04:00
Patrick Fernie
29072e585b
Implement SqliteStatement::query_and_then()
...
Allows for more ergonomic unification of error types
2015-08-27 13:43:43 -04:00
Patrick Fernie
e1532f5edf
Correct idx-checking behavior for SqliteRow::get_checked()
2015-08-27 10:44:24 -04:00
Gwenael Treguier
b9ab3350ea
Add regexp() function implementation
2015-08-09 13:06:23 +02:00
Gwenael Treguier
0a454eed79
Add support to user defined scalar functions
2015-08-09 09:52:53 +02:00
Gwenael Treguier
a470499dcb
Improve documentation
2015-08-08 16:33:08 +02:00
Gwenael Treguier
eb7f670ce1
Make named_params module private
2015-08-08 16:19:05 +02:00
Gwenael Treguier
3b830b4bce
Add documentation
2015-08-08 16:11:31 +02:00
Gwenael Treguier
59a4c5593a
Improve documentation.
2015-08-08 09:57:07 +02:00
Gwenael Treguier
d1f5ce2435
Check when buffer is too long.
2015-08-08 09:39:35 +02:00
Gwenael Treguier
6bc1a8bb59
Check when statement is too long.
2015-08-08 09:30:50 +02:00
Gwenael Treguier
3b673a74b2
Add SqliteConnection.execute_named,query_named_row.
2015-08-07 02:19:57 +02:00
Gwenael Treguier
9c63b9f37a
Check Rust blob length before binding.
2015-08-06 21:45:54 +02:00
Gwenael Treguier
7b8051dc7e
Check Rust str length before binding.
2015-08-06 21:15:30 +02:00
Gwenael Treguier
7ff9d4056b
Add SqliteStatement.named_query.
2015-08-05 22:07:49 +02:00
Gwenael Treguier
e81757e86d
Add Stmt::named_execute and Stmt::parameter_index.
2015-08-04 21:48:54 +02:00
Gwenael Treguier
8bb624cccc
Factorize code
2015-08-04 18:52:57 +02:00
Gwenael Treguier
9c415f9c9e
Remove usage of unstable library feature 'duration'
2015-08-02 12:16:01 +02:00
Gwenael Treguier
25de884720
LRU statement cache
2015-08-02 12:07:49 +02:00
gwenn
ef254fdca0
Rename feature to 'trace'
2015-08-01 18:58:04 +02:00
gwenn
1bf12f8150
Feature blob IO.
2015-08-01 18:51:02 +02:00
gwenn
4a7e83f0af
Feature sqlite3_{log,trace,profile}.
2015-08-01 17:21:41 +02:00
gwenn
4fa6d3c020
Reset as soon as possible.
2015-08-01 10:18:06 +02:00
gwenn
f91db1b350
Cache column_count (I am not sure it's worth it)
2015-08-01 10:08:28 +02:00
gwenn
c31c68d5e3
Only check column count when DONE.
2015-08-01 09:11:31 +02:00
gwenn
1dc144c8c1
Add test_execute_select.
2015-08-01 08:09:59 +02:00
John Gallagher
e7eb6454d9
Merge pull request #51 from Yuhta/colnames
...
Add column_names to SqliteStatement
2015-07-26 13:55:15 -04:00
John Gallagher
4d1063348e
Use sqlite3_destructor_type from bindgen'd header
2015-07-26 13:43:43 -04:00
Jimmy Lu
22968be4fc
Add column_names to SqliteStatement
2015-07-24 22:16:20 -04:00
gwenn
fd36d98c85
Make SqliteOpenFlags implement Default.
...
Activate URI and NO_MUTEX by default.
2015-07-06 20:24:27 +02:00
John Gallagher
ad3e805357
Merge pull request #39 from jgallagher/add-get-checked
...
Add get_checked to SqliteRow.
2015-05-11 20:17:18 -04:00
Marcus Klaas
51f6c15c6c
Slightly adjust the signature of query_map
2015-05-11 16:46:28 -04:00
John Gallagher
ea911fbdbd
Give MappedRows a SqliteRows instead of a SqliteStatement.
2015-05-11 16:46:28 -04:00
John Gallagher
3f75300844
Use boxed closures to allow query_map to take f: F instead of f: &F
2015-05-11 16:46:28 -04:00
Marcus Klaas
95f511d437
Add initial implementation for query_map
2015-05-11 16:46:26 -04:00
Marcus Klaas
f591b82cb0
Remove uses of query_row_safe in tests
2015-05-07 15:41:02 +02:00
John Gallagher
37cfcf470b
Add SqliteRow::get_checked, which performs basic SQLite column type checking.
2015-05-04 21:50:36 -04:00
John Gallagher
03be8e0cd6
Make query_row
a synonym for query_row_safe
.
...
This is a breaking change for anyone using `query_row`. To update code
that used the old `query_row`, you must now `.unwrap()` the returned
result.
2015-05-04 20:12:18 -04:00
John Gallagher
120f0cbb65
Add messages to all our assertions.
2015-05-04 20:02:33 -04:00
John Gallagher
98e7994251
Merge pull request #35 from marcusklaas/as-path
...
Change path parameter type to &AsRef<Path>
2015-05-04 19:55:19 -04:00
John Gallagher
55c173a465
Merge branch 'stable' into 'master'
2015-05-04 19:52:10 -04:00
Marcus Klaas
debb717aa4
Change path parameter type to &AsRef<Path>
2015-05-04 21:22:11 +02:00
John Gallagher
b393348ab0
Remove stable #![allow(unstable)]
tags from docs
2015-05-03 21:49:27 -04:00
John Gallagher
038d30e2c8
Remove unstable features for Rust-1.0-beta
2015-04-03 14:48:35 -05:00
John Gallagher
5e04b98840
Updates to track rustc nightly
2015-04-03 08:32:11 -05:00
Huon Wilson
57ca5f3b51
Use std::ptr::Unique
to ensure SqliteConnection is Send.
...
Semantically the C resource is owned by the SqliteConnection, so Unique
is correct. Being Send is safe because sqlite3 can only possibly be
thread unsafe in cases when there is simultaneous access from multiple
threads, but transferring ownership between threads doesn't allow that
to occur.
2015-03-29 21:27:13 +11:00
John Gallagher
4b085b9103
Bump version and use libc
from crates.io
2015-03-28 23:09:21 -04:00
John Gallagher
c8fbe48f15
Remove unneeded #![feature(core)]
2015-03-28 23:03:45 -04:00
John Gallagher
2461654861
Use new hyphen-less extern crate name
2015-03-26 15:49:13 -04:00
John Gallagher
89e20146e3
Use bitflags crate instead of rustc_bitflags
2015-03-17 00:56:55 -04:00
John Gallagher
632d87de2f
Remove most uses of #[feature(core)]
2015-03-17 00:55:28 -04:00
John Gallagher
b3d949b3bb
Remove unneeded #[feature]s
2015-03-17 00:44:37 -04:00
John Gallagher
736b62e0ce
Reexport sqlite3_stmt from libsqlite3-sys for easier ToSql impl'ing
2015-03-12 16:40:07 -04:00
John Gallagher
30db1905d3
Cleanup - if let
to match
2015-03-10 16:07:38 -04:00
John Gallagher
d7909c086b
rustup - remove now-unused feature
2015-03-10 15:52:30 -04:00
John Gallagher
f971d57396
Merge branch 'master' into path-reform
2015-02-23 21:44:29 -05:00
John Gallagher
ee89f8db59
Fix warnings from latest rustc
2015-02-23 20:37:55 -05:00
John Gallagher
31d629070e
Add scoped guard for enabling extension loading
2015-02-23 20:37:55 -05:00
John Gallagher
348f94e109
Add public API for loading extensions
2015-02-23 20:37:55 -05:00
John Gallagher
03f368c4f4
Build raw sqlite interface as libsqlite3-sys
...
Use pkg-config to find it.
2015-02-23 20:37:55 -05:00
John Gallagher
7a430c0fde
Use existing message instead of ffi::code_to_str
in Error trait
2015-02-13 15:48:11 -05:00
John Gallagher
21e0a5493d
Merge branch 'jshs-std-error' into v0.0.9
2015-02-13 15:45:53 -05:00
John Gallagher
937eedbe61
Fix for latest rustc changes
2015-02-13 15:44:24 -05:00
John Gallagher
1dc78b66da
SqliteConnection::open
takes a std::path
.
...
Add new constructors, `open_in_memory` and `open_in_memory_with_flags`,
for opening in-memory databases.
Closes #13 .
2015-02-06 20:07:23 -05:00
Joshua Schneider
6d795caaed
Implement standard Error trait for SqliteError
2015-02-04 21:33:11 +01:00
John Gallagher
a89ceeef01
Add feature(test) for testing
2015-02-04 10:53:28 -05:00
Patrick Fernie
ec65bc4978
add feature attributes for unstable APIs
2015-02-03 19:01:24 -05:00
Patrick Fernie
58fa5bde2a
update to use fmt::{Display,Debug} instead of fmt::{String,Show}
2015-02-03 18:59:58 -05:00
Marcus Klaas
954a99d64b
import crate for bitflags macro
2015-01-19 21:13:51 +01:00
John Gallagher
8617cde6b6
Add query_row_safe
.
...
This is a `SqliteResult`-returning variant of `query_row`, which panics
if the query fails or does not return at least one row.
2015-01-10 21:17:49 -06:00
John Gallagher
b57322e2ca
Allow use of unstable APIs
2015-01-10 20:58:55 -06:00
John Gallagher
680056b351
Implement fmt::String for SqliteError
2015-01-10 20:58:55 -06:00
John Gallagher
8843d15a07
Use new Show interpolation
2015-01-10 20:58:55 -06:00
John Gallagher
cc8a68ca83
Update for int/uint -> isize/usize
2015-01-10 20:58:54 -06:00
John Gallagher
830758c8f8
Update for new directive name
2015-01-07 14:06:21 -05:00
John Gallagher
e02442c531
Update for rust's std::c_str -> std::ffi
2015-01-07 14:05:36 -05:00
John Gallagher
b69e3d083d
Remove now-unneeded directives
2015-01-07 11:24:48 -05:00
John Gallagher
d427ddd7a5
Use new closure syntax
2015-01-07 09:18:14 -05:00
John Gallagher
f2a1a8076f
Use associated type for Iterator
2015-01-05 11:15:24 -05:00
John Gallagher
a52fedad36
Use ToCStr trait
2015-01-05 11:15:15 -05:00
John Gallagher
5902b9106c
sed -i -s 's/#\[deriving(/#\[derive(/g' **/*.rs
2015-01-05 10:59:55 -05:00
John Gallagher
05b03ae2ce
Set default busy timeout to 5 seconds
2014-12-23 12:26:57 -05:00
John Gallagher
ba1f648679
Use semicolons on macros
2014-12-23 12:22:16 -05:00
John Gallagher
678fd0f3a3
Add #[deriving(Copy)] as appropriate
2014-12-23 12:22:05 -05:00
John Gallagher
13fc87fe11
Update bindgen output, mainly to include #[deriving(Copy)]
2014-12-23 12:21:42 -05:00
John Gallagher
d0dfb27007
Use Vec::from_raw_buf
instead of vec::raw::from_buf
2014-12-04 10:47:19 -05:00
John Gallagher
f2c6389601
Track changes in rust-nightly
2014-11-19 10:48:40 -05:00
John Gallagher
8fa377b36c
Remove "semi-safe" term.
...
Based on comments from [this reddit
thread](http://www.reddit.com/r/rust/comments/2lapta/rusqlite_ergonomic_semisafe_bindings_to_sqlite/ ).
2014-11-10 12:56:32 -05:00
John Gallagher
75dd753fbb
Track changes in rust-nightly
2014-11-10 11:58:46 -05:00
John Gallagher
66d5502308
Fix failing travis build
2014-11-04 12:26:08 -05:00
John Gallagher
bc85835566
Add warning about stale rows to SqliteRows docs
2014-11-04 10:55:07 -05:00
John Gallagher
b34f255aac
Add documentation
2014-11-03 17:11:00 -05:00
John Gallagher
949260046c
Change query_row
to unwrap the SqliteResult
2014-10-28 15:14:52 -04:00
John Gallagher
68e9d81283
Rename transaction mode
to behavior
to match SQLite docs
2014-10-23 17:57:02 -04:00
John Gallagher
c8af7e4eb5
Add ToSql/FromSql for time::Timespec.
...
Uses SQLite's default format string for `datetime()`.
2014-10-22 22:16:00 -04:00
John Gallagher
1fa4c2098e
Make FromSql return a SqliteResult
2014-10-20 21:07:52 -04:00
John Gallagher
56846dc0bd
Make mod ffi public
2014-10-20 21:07:27 -04:00
John Gallagher
ca3a0f0580
Initial commit
2014-10-19 19:56:41 -04:00