Commit Graph

121 Commits

Author SHA1 Message Date
Thom Chiovoloni
d35dd0e99f
Allow optionally passing an Error parameter to rusqlite::Result (#678) 2020-04-06 14:43:06 -07:00
Thom Chiovoloni
0394e114d0
Return an error instead of panicing when parameter count is wron… (#675)
Fixes #671
2020-04-06 12:47:35 -07:00
Thom Chiovoloni
6f6f7ffd9f
Add #[non_exhaustive] to enums that might get new variants. (#673)
This just using them in patterns without a catchall. I left things alone
that seem very unlikely to change (`Value`, `ValueRef`, `DatabaseName`,
etc...). This might help reduce the number of breaking changes we need
(rusqlite is still pre-1.0 so it doesn't really matter that much, but
breaking changes complicate the story around when we can cut releases).
2020-04-06 12:01:39 -07:00
Thom Chiovoloni
0c0d45f714
Add APIs allowing separate parameter binding and statement execu… (#668) 2020-04-06 10:44:00 -07:00
gwenn
f71ea05603 Handle text with internal nuls
Fix insertion and selection (#657).
2020-03-25 19:20:05 +01:00
Thom Chiovoloni
8c574be1e3 Revert "don't truncate text columns that contain nul bytes"
This reverts commit 004c8f23d4.
2020-03-24 10:58:09 -07:00
Damien Elmes
004c8f23d4 don't truncate text columns that contain nul bytes 2020-03-23 22:03:31 -07:00
gwenn
1fb00e99b7 Fix error while executing ALTER statement
`execute_bacth` should be used for DDL.
`execute` should still work except when `extra-check` feature is
activated.
2020-03-04 20:26:31 +01:00
Thom Chiovoloni
c70d148542 Remove most of the code using feature=bundled as a version check 2020-01-14 08:11:36 -08:00
gwenn
8302a50fb8 Fix clippy warnings 2019-11-03 11:19:07 +01:00
gwenn
ca5eccfe95 Check that even when sqlite_stmt is null, there is no panic. 2019-10-30 20:09:27 +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
Vlad-Shcherbina
81d26ccadb
Fix typo in docs 2019-09-01 12:41:51 +03: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
4db226c0df
Memory leak when using Statement.expanded_sql (#553)
Memory leak when using Statement.expanded_sql
2019-07-28 08:53:26 +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
bd5506899d Revert last commit 2019-07-23 18:29:50 +02:00
gwenn
f78ac1f2cf Do not assume sqlite3_column_text is valid UTF-8.
Fix Statement::value_ref
2019-07-22 21:07:53 +02:00
gwenn
031bffffa5 Add query_row_named for prepared statement. 2019-06-12 19:18:57 +02: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
Thom Chiovoloni
04f900059d Avoid unnecessary copies/allocations when passing strings to sqlite 2019-02-26 19:47:17 -08: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
8abaf6eefe Fix rustdoc examples 2019-02-09 06:38:24 +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
e8e76852bd Merge remote-tracking branch 'jgallagher/master' into tail 2019-02-02 13:22:40 +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
Thom Chiovoloni
d7c8d43fb4 Add params/named_params macro, and expose ToSql from top level 2019-01-29 15:33:57 -08:00
gwenn
94d5fe55c8 Cargo fix 2019-01-26 10:55:14 +01:00
gwenn
9b973d01b1 Test parameters binding 2019-01-26 08:17:23 +01:00
Thom Chiovoloni
ec879337af Add support for querying sqlite_stmt_status 2019-01-24 21:43:39 -08: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
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
495f1d529a Clippy 2018-11-01 09:40:56 +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
1598d4bc30 Rustfmt 2018-10-28 08:51:02 +01: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
4c3fa7bd53 Add binding to sqlite3_expanded_sql 2018-08-10 20:52:11 +02:00
gwenn
31de0187a2 Return an InvalidQuery error when SQL is not read only 2018-08-10 20:48:13 +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
b8594a0f83 Fix regressions 2018-06-10 19:21:55 +02:00
gwenn
d72c4582d9 Merge remote-tracking branch 'jgallagher/master' into vtab 2018-06-10 19:16:20 +02:00
gwenn
fa64a4d0bf Draft for carray module in Rust
Incomplete support for sqlite3_bind_pointer.
Make Context::set_result return a Result.
Add Values::get_array.
2018-06-10 18:29:38 +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
994d40da26 Fix clippy warnings 2018-05-04 19:55:55 +02:00
gwenn
50d379b564 Make Statement::column_index case insensitive
Fix #330
2018-03-27 20:07:46 +02:00
gwenn
f7c1a8e7b8 Fix some clippy warnings 2017-07-19 21:26:39 +02:00
gwenn
08f96a678e Rustfmt 2017-04-07 19:43:24 +02:00
John Gallagher
ec78a2b5fa Reorganize: Extract Row/Rows and helper types into their own mod files. 2017-03-08 17:03:31 -05: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