Commit Graph

509 Commits

Author SHA1 Message Date
Thom Chiovoloni
c70d148542 Remove most of the code using feature=bundled as a version check 2020-01-14 08:11:36 -08:00
Steven Roose
c162a4516c
Replace deprecated tempdir with tempfile
This also removes one dependency on the winapi crate.  The current
version of the time crate also depends on winapi, but work is being done
to replace that version with 0.2 to remove the winapi dependency.
2019-11-22 11:12:53 +00:00
gwenn
8302a50fb8 Fix clippy warnings 2019-11-03 11:19:07 +01:00
gwenn
317abe6155 Update README example 2019-11-01 18:27:56 +01:00
gwenn
edfd7658c3 Segmentation fault on prepare_cached with an empty query
With an empty query is prepared, sqlite3 returns no error but a null pointer.
And then `sqlite3_sql` returns null.
Which make `CStr::from_ptr` crash.
2019-10-29 19:24:18 +01:00
gwenn
15f356e5a7 Merge remote-tracking branch 'jgallagher/master' into cant-open 2019-10-19 10:40:53 +02:00
gwenn
6c838bf544 Ignore test_execute_multiple when no extra check 2019-08-31 09:39:09 +02:00
gwenn
c6a5fd402c Merge remote-tracking branch 'jgallagher/master' into tail 2019-08-31 09:30:25 +02:00
gwenn
bcd26ca062 Merge remote-tracking branch 'jgallagher/master' into tail
# Conflicts:
#	src/inner_connection.rs
#	src/lib.rs
2019-08-26 20:41:15 +02:00
gwenn
00d50199a2 Check SQL query passed to execute
When `extra_check` feature is activated:
Fail when query has a column count > 0
Or when query is readonly.
2019-08-26 20:21:23 +02:00
gwenn
08e32444c9 Cleanup use statements 2019-08-17 08:18:37 +02:00
gwenn
28a48ec7c1 Check OpenFlags 2019-08-17 08:16:47 +02:00
gwenn
d229f0f9e9 Remove #[macro_use] attribute when importing macros 2019-08-09 20:01:44 +02:00
gwenn
f0ae7b6e9b Do not assume sqlite3_column_text is valid UTF-8.
Fix Statement::value_ref
2019-07-24 20:08:31 +02:00
gwenn
208f3c084b Clippy: fix warnings 2019-07-10 21:10:12 +02:00
Thom Chiovoloni
4356f5a176 Include the name of the column in InvalidColumnType errors 2019-06-25 12:20:11 -07:00
gwenn
147168184f rustdoc: example for Connection::open file 2019-06-24 20:05:36 +02:00
gwenn
bb7ae7f215 Add binding to sqlite3_create_collation_v2 2019-06-17 19:20:53 +02:00
Joshua C. Randall
1ae02726cf add ability to open with specified vfs 2019-06-17 10:42:54 +01:00
gwenn
031bffffa5 Add query_row_named for prepared statement. 2019-06-12 19:18:57 +02:00
Thom Chiovoloni
d8074b1ece impl ToSql for Box<dyn ToSql>. Fixes #500 2019-03-27 19:36:11 -07:00
Konrad Borowski
f5072b8e0f Allow non-Unicode file names on Unix-like platforms 2019-03-26 10:20:22 +01:00
gwenn
ceb1ce4a55 Rustfmt 2019-03-19 20:45:04 +01:00
gwenn
4703358866 Fix module visibility 2019-03-19 20:43:40 +01:00
gwenn
38e92159fb Introduce Statement::columns
Return Columns name and type. (#494)
2019-03-19 20:33:36 +01:00
gwenn
71a2004894 Add Rows::map method 2019-03-10 12:58:20 +01:00
gwenn
59a44cfae5 Merge remote-tracking branch 'jgallagher/master' into fallible-iterator 2019-03-10 11:12:14 +01:00
gwenn
d94acdc3f4
Merge pull request #476 from gwenn/pragma
Ease PRAGMA usage (#273 and #265)
2019-02-27 18:03:35 +01:00
Thom Chiovoloni
04f900059d Avoid unnecessary copies/allocations when passing strings to sqlite 2019-02-26 19:47:17 -08:00
gwenn
7be87e950d Merge remote-tracking branch 'jgallagher/master' into pragma 2019-02-21 21:07:18 +01:00
gwenn
6d9ae896b5 Do not panic by default
Replace `Row::get` by `Row::get_checked`,
And rename original `Row::get` to `Row::get_unwrap`.
`Stmt::query_map`, `Stmt::query_map_named`, `Stmt::query_row`,
`Conn::query_row` and `Conn::query_row_named` callback parameter must return a `Result`.
2019-02-21 20:48:09 +01:00
gwenn
1775688ac2
Merge branch 'master' into pragma 2019-02-16 18:52:03 +01:00
gwenn
c1f12c7380 Revert change related to #460 2019-02-16 17:24:56 +01:00
gwenn
d70286e98a Remove unwrap from examples 2019-02-09 07:16:05 +01:00
gwenn
2c1483f2e7 Merge remote-tracking branch 'jgallagher/master' into fallible-iterator 2019-02-09 06:47:57 +01:00
gwenn
7c5bfb7cc3
Merge pull request #475 from gwenn/db-config
Support for sqlite3_db_config #468
2019-02-08 21:38:01 +01:00
gwenn
d93dec52c0 Make Rows implement FallibleStreamingIterator 2019-02-03 14:01:42 +01:00
gwenn
e9896a7734 Lifetime elision in impl 2019-02-03 11:02:38 +01:00
gwenn
9c00dd01a2 Draft to ease PRAGMA usage (#273 and #265) 2019-02-03 09:17:37 +01:00
gwenn
176e4c232b Support for sqlite3_db_config #468 2019-02-02 15:17:20 +01:00
gwenn
e8e76852bd Merge remote-tracking branch 'jgallagher/master' into tail 2019-02-02 13:22:40 +01:00
gwenn
c2614b54df Move InnerConnection in its own module 2019-02-02 12:46:52 +01:00
gwenn
8862b17340 Fix clippy warnings 2019-02-02 11:37:26 +01:00
gwenn
4c4578851b Remove needless lifetimes 2019-02-02 11:08:04 +01:00
gwenn
0a46a34e3d Clean examples
Remove `extern crate` usages.
Rustfmt.
2019-01-30 20:14:46 +01:00
gwenn
6e0b1e2751
Merge pull request #471 from thomcc/params-macro
Add params/named_params macro, and expose ToSql from top level
2019-01-30 18:35:41 +01:00
Thom Chiovoloni
d7c8d43fb4 Add params/named_params macro, and expose ToSql from top level 2019-01-29 15:33:57 -08:00
Thom Chiovoloni
9478c490fb Make the libsqlite3_sys as ffi export pub 2019-01-26 14:30:27 -08:00
gwenn
4be7900bab Rustfmt 2019-01-26 11:02:34 +01:00
gwenn
e4c1f541ae Expose sqlite3_changes() #460 2019-01-26 11:01:51 +01:00
gwenn
274ea8aec5 Merge remote-tracking branch 'jgallagher/master' into from_handle 2019-01-26 09:59:00 +01:00
Thom Chiovoloni
ec879337af Add support for querying sqlite_stmt_status 2019-01-24 21:43:39 -08:00
gwenn
dbc4eef657
Session extension (#459)
Session extension bindings
2019-01-13 12:46:19 +01:00
gwenn
92a22b7842 sqlite3_db_filename is available in SQLite >= 3.7.10 2019-01-06 14:01:17 +01:00
gwenn
0042f2514f Introduce Connection::from_handle 2019-01-06 12:58:46 +01:00
gwenn
747a8d36ed
Err partial eq (#452)
Impl PartialEq for Error
2018-12-19 21:58:33 +01:00
gwenn
5c7104c12f Improve doc 2018-12-16 11:55:04 +01:00
gwenn
e0db3d16dd Introduce OptionalExtension
Like in Diesel.
2018-12-16 11:15:21 +01:00
gwenn
d874180333 Rust 2018 idioms 2018-12-07 21:57:04 +01:00
gwenn
bcaa929748 Merge remote-tracking branch 'jgallagher/master' into 2018
# Conflicts:
#	src/lib.rs
#	src/statement.rs
2018-11-05 20:04:04 +01:00
gwenn
ccf52b2daa Replace try! by ? 2018-11-05 19:09:41 +01:00
gwenn
d44203116a
Merge pull request #426 from gwenn/deprecated
Remove deprecated stuff
2018-11-01 11:05:40 +01:00
gwenn
2357acd79e Remove deprecated stuff 2018-11-01 10:30:18 +01:00
gwenn
495f1d529a Clippy 2018-11-01 09:40:56 +01:00
gwenn
1262238229 Rustfmt 2018-10-30 20:15:19 +01:00
gwenn
f04047db01 Rust 2018 2018-10-30 20:15:08 +01:00
gwenn
77cb50e000 Check that only one statement is provided (#397)
Connection.execute
Connection.execute_named
Connection.quer_row
Connection.quer_row_named
2018-10-28 10:29:34 +01:00
gwenn
47d3ac7027 Try to fix test_interrupt #415
Use a scalar function to make sure the interrupt is performed
while the statement is running.
2018-10-28 09:54:30 +01:00
gwenn
1598d4bc30 Rustfmt 2018-10-28 08:51:02 +01:00
gwenn
0d08bf5e05
Merge pull request #411 from thomcc/i128_blob
Add a feature for storing i128 as blobs.
2018-10-19 21:49:09 +02:00
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