Commit Graph

439 Commits

Author SHA1 Message Date
Thom Chiovoloni
3d82f7199a Allow getting a ValueRef out of Row and Context, fixes #259 2018-10-18 12:14:38 -07:00
Joe
e109554819
Remove version check when bundled 2018-10-16 01:30:35 +00:00
Thom Chiovoloni
572471c40f Add a feature for storing i128 as blobs.
This is behind the `i128_blob` feature.

Blobs are stored as 16 byte big-endian values, with their most significant bit
flipped. This is so that sorting, comparison, etc all work properly, even with
negative numbers. This also allows the representation to be stable across
different computers.

It's possible that the `FromSql` implementation should handle the case that the
real value is stored in an integer. I didn't do this, but would be willing to
make the change. I don't think we should store them this way though, since I
don't think users would be able to sort/compare them sanely.

Support for `u128` is not implemented, as comparison with i128 values would work
strangely. This also is consistent with `u64` not being allowed, not that I
think that would be reason enough on it's own.

The `byteorder` crate is used if this feature is flipped, as it's quite small
and implements things more or less optimally. If/when `i128::{to,from}_be_bytes`
gets stabilized (https://github.com/rust-lang/rust/issues/52963), we should
probably use that instead.
2018-10-08 12:22:28 -07:00
gwenn
7176be2d6d
Merge pull request #408 from thomcc/interrupt_handle
Add a method of interrupting a query executing on a separate thread, fixes #407
2018-10-08 18:37:30 +02:00
Thom Chiovoloni
b4565f565a Add a method of interrupting a query executing on a separate thread, fixes #407 2018-09-26 13:42:30 -07:00
gwenn
e7e03c3443 Introduce NO_PARAMS constant
As suggested here:
https://users.rust-lang.org/t/sql-parameter-values/20469/2
2018-09-16 11:10:19 +02:00
gwenn
c4ae541eac Take IntoIterator rather than &[&ToSql] (#312) 2018-09-16 09:49:23 +02:00
gwenn
70b59f9c2c Impossible to execute a pragma in 0.14.0 #400
sqlite3_stmt_readonly does not work for PRAGMA.
2018-09-12 22:16:22 +02:00
gwenn
5e9c7bac4e Rustfmt 2018-08-16 18:29:46 +02:00
gwenn
0ccf98d214 Merge remote-tracking branch 'jgallagher/master' into vtab 2018-08-11 13:37:56 +02:00
gwenn
c925d1aa97 Rustfmt 2018-08-11 12:48:21 +02:00
gwenn
2a29717c5a Fix hooks 2018-08-11 11:14:17 +02:00
gwenn
3aca24792c Merge remote-tracking branch 'jgallagher/master' into vtab 2018-08-05 13:26:45 +02:00
gwenn
7310cac6f5 Use pub(crate) 2018-07-31 22:17:17 +02:00
gwenn
a5403eb05f Replace PRAGMA call by Rust busy_timeout function 2018-07-28 17:04:10 +02:00
gwenn
73ebce5f98 Add binding to sqlite3_busy_timeout and sqlite3_busy_handler. 2018-07-28 17:04:10 +02:00
gwenn
fc37b324b8 Merge remote-tracking branch 'jgallagher/master' into vtab 2018-07-28 16:56:21 +02:00
gwenn
9ecb1eef55
Merge pull request #369 from gwenn/busy
Add binding to sqlite3_busy_timeout and sqlite3_busy_handler.
2018-07-28 16:39:38 +02:00
Kornel
b075592147 Test transaction recovery from sqlite busy error 2018-07-28 12:58:05 +01:00
gwenn
558104de4d Add binding to sqlite3_busy_timeout and sqlite3_busy_handler. 2018-07-28 12:10:57 +02:00
gwenn
e2df03f474 Remove macros 2018-07-14 18:47:52 +02:00
gwenn
823f3c96aa Ensure Virtual tables can be declared outside rusqlite crate
Not sure it is the way to go.
2018-07-14 11:01:19 +02:00
gwenn
3b0423353d Merge remote-tracking branch 'jgallagher/master' into vtab 2018-06-28 21:01:53 +02:00
gwenn
bb6fa61e68 Merge remote-tracking branch 'jgallagher/master' into vtab 2018-06-28 20:54:32 +02:00
gwenn
2ea17d0b54 Fix clippy warnings
Calling OpenFlags::default() is more clear than this expression
2018-06-28 20:46:28 +02:00
gwenn
9c7a5583b9 Fix some clippy warnings
* Rows cannot implement iterator
* DatabaseName is passed by value => Copy ?
2018-06-20 19:07:23 +02:00
gwenn
d72c4582d9 Merge remote-tracking branch 'jgallagher/master' into vtab 2018-06-10 19:16:20 +02:00
gwenn
e1ba89c310 Merge remote-tracking branch 'jgallagher/master' into vtab 2018-06-10 18:49:40 +02:00
gwenn
0d0a7bf81f Replace row changes/count type (i32) with usize
Breaking change
2018-05-23 21:23:28 +02:00
gwenn
c6f4ae632a Replace column index/count type (i32) with usize
Breaking change
2018-05-23 21:04:13 +02:00
gwenn
6cbeb6ef59 Introduce context module
To make `set_result` and `report_error` in functions module
visible to vtab module.
2018-05-13 11:44:31 +02:00
gwenn
6855b5052d
Ensure connection can be safely returned to a pool (#353)
* Add binding to sqlite3_get_autocommit.
* Add binding to sqlite3_stmt_busy.
* Disable test_is_busy by default
2018-05-12 18:35:08 +02:00
gwenn
1e3dc542a4 Merge remote-tracking branch 'jgallagher/master' into vtab 2018-05-06 08:00:12 +02:00
gwenn
88f2f3e4bd
Merge pull request #350 from jgallagher/clippy
Fix clippy warnings
2018-05-04 20:44:34 +02:00
gwenn
994d40da26 Fix clippy warnings 2018-05-04 19:55:55 +02:00
gwenn
fee4bfcc86 Merge remote-tracking branch 'jgallagher/master' into unlock-notify 2018-05-04 18:06:41 +02:00
gwenn
30e23cf0a0 Fix features dependencies 2018-04-30 22:09:41 +02:00
gwenn
9c5c9e3c7e Merge remote-tracking branch 'jgallagher/master' into vtab 2018-04-30 22:02:14 +02:00
gwenn
83775ee62d Remove second field from RawStatement
Use sqlite3_db_handle instead
2018-04-03 20:18:51 +02:00
gwenn
a0151f9073 Introduce is_locked 2018-03-31 10:22:19 +02:00
gwenn
cccdf9735f Factorize check on code returned by prepare/step. 2018-03-27 21:49:09 +02:00
gwenn
83c8db2d21 Fix Connection::open documentation (#332) 2018-03-24 10:58:42 +01:00
gwenn
c612a44207 Fix errors relative to OpenFlags
Also handle extended error codes.
2018-03-24 10:15:10 +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
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
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
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
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
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
king6cong
13a32e4004 code indent 2017-06-02 17:19:39 +08:00
John Gallagher
4623064f4d Update to bitflags 0.9. 2017-05-29 10:52:19 -04:00
gwenn
dfdd42fd09 Bind sqlite3_commit_hook and sqlite3_rollback_hook 2017-05-12 19:14:34 +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
3b575c3b4a Implementation of sqlite3_update_hook #260
First draft (no tested and a memory leak)
2017-04-25 20:58:22 +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
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
4b2a6d2207 Fix unused macro warning when compiling tests without trace feature. 2017-04-05 12:54:58 -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
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
509257dfa8 Merge branch 'limits' of https://github.com/gwenn/rusqlite into gwenn-limits 2017-02-07 19:41:30 -05: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
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
06583aadf2 fix clippy warnings 2017-01-23 19:46:49 -05:00
John Gallagher
68ae7de1d5 Update docs on Row::get 2017-01-22 19:42:51 -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
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
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
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
8f28ff17b8 Fix rustdoc warnings 2016-08-15 12:41:15 +02:00
gwenn
8f079819f7 Change VTabCursor::filter signature 2016-08-13 13:55:30 +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
e2cf171192 Introduce FromSqlError as specified by John Gallagher 2016-06-02 21:03:25 +02: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
f3693a993e rustfmt 2016-05-26 00:28:18 -04:00
John Gallagher
e4926ac0d7 Rework ToSql to be implementable without unsafe. 2016-05-26 00:14:45 -04:00
John Gallagher
2f4990dafd Rename BorrowedValue -> ValueRef. 2016-05-24 21:34:18 -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
dccfd7e801 Refactor: Extract ToSql into its own module. 2016-05-22 20:16:54 -04:00
gwenn
0740620ffe Merge remote-tracking branch 'jgallagher/master' into vtab 2016-05-20 18:31:30 +02: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
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