Commit Graph

94 Commits

Author SHA1 Message Date
gwenn
e1eed94bef Fix clippy warnings
Allow `unnecessary_wraps` for `check_update` and `check_no_tail`.
Remove `check_readonly` (`sqlite3-parser` may help).
2021-02-28 13:19:58 +01:00
Thom Chiovoloni
19b0772f3f Make it clear bind_in is not public, and inline functions passing large arrays by value to avoid too much copying 2021-01-31 16:18:48 -08:00
gwenn
afcdc2b43a Use most concise syntax for params 2021-01-19 21:16:08 +01:00
gwenn
6fae5d6641 Add/fix rustdoc links 2020-11-22 09:34:03 +01:00
kud1ing
7beba0c6eb Document that optional() requires import of rusqlite::OptionalExtension
Document that `optional()` requires import of `rusqlite::OptionalExtension`.
2020-11-20 18:09:47 -08:00
gwenn
0649df96ea Fix non-autolinks warnings 2020-11-07 12:32:41 +01:00
gwenn
da94f8eba6 Make tests return Result 2020-11-05 22:14:00 +01:00
Thom Chiovoloni
65c38bf813 Add #[inline] and #[cold] in far more places 2020-11-04 07:59:23 -08:00
Thom Chiovoloni
22121772a2 Deprecate NO_PARAMS in favor of passing an empty array 2020-11-03 19:09:19 -08:00
Thom Chiovoloni
2461ebf62f Update documentation 2020-11-03 19:09:19 -08:00
Thom Chiovoloni
032aea73b8 Overhaul query API, removing the need for the _named variants of all functions, and rusqlite::NO_PARAMS 2020-11-03 19:09:19 -08:00
Tim
83c038107d Fix order of parameters in InvalidParameterCount message
This prints a message like `Error: Wrong number of parameters passed to query. Got 7, needed 8`, but the numbers were the wrong way around - i.e. it should have printed `Got 8, needed 7` in this case.
2020-07-01 08:38:50 -07:00
gwenn
dd886578d2 Implement our own sqlite3_exec
Should fix issue related to unlock notify: #767
Caveat: many CString allocated.
2020-06-26 19:35:14 +02:00
gwenn
f37519ad51 Replace execute_batch usages by execute
Because execute_batch does not support unlock_notify
2020-06-25 09:45:49 -07:00
Thom Chiovoloni
f7a573e44a Don't implement Into<RawStatement> for Statement 2020-06-07 19:18:46 -07:00
gwenn
7b08dc9ad5 Try to explain why we need a map function
To tranform the fallible streaming iterator.
2020-06-02 19:05:09 +02:00
gwenn
ceb9f11de8 Replace pub(crate) by pub(super) visibilty 2020-05-16 10:18:25 +02:00
Thom Chiovoloni
418ef10af2 Add a wrapper for strings allocated on sqlite heap 2020-04-16 08:21:43 -07:00
Thom Chiovoloni
9322b0e881 Update links & copyright statement 2020-04-15 21:37:39 -07:00
Thom Chiovoloni
552416039e Optimize named params via caching and use of smallvec 2020-04-14 10:26:41 -07:00
Thom Chiovoloni
cf9b6e9ae2 Avoid relying on sqlite to justify str::from_utf8_unchecked 2020-04-14 09:31:29 -07:00
gwenn
611c8e8b02 Rustfmt 2020-04-11 22:18:22 -07:00
Thom Chiovoloni
53c99f940e Fix up conventions around unsafe in internal functions 2020-04-07 10:04:18 -07:00
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