Commit Graph

1200 Commits

Author SHA1 Message Date
gwenn
fed1c1c165 Fix PrepFlags 2023-06-03 11:24:32 +02:00
gwenn
9d502c4995 Use SQLITE_PREPARE_PERSISTENT for CachedStatement 2023-06-03 11:17:19 +02:00
gwenn
602a868783 Fix Clippy warnings 2023-06-03 07:18:43 +02:00
gwenn
38691ca50b Fix clippy warning 2023-06-03 07:02:44 +02:00
gwenn
0c7629ed70 Add new constants introduced by SQLite 3.42.0 2023-05-31 11:06:56 +02:00
gwenn
5e079e509c
Merge pull request #1313 from itsxaos/nonzero
Implement FromSql & ToSql for std::num::NonZero types
2023-05-31 10:53:40 +02:00
Taylor C. Richberger
88653ca62a remove depth from Savepoint
Savepoints with the same name nest properly without issue.  This doesn't
work with rusqlite unless savepoints are always released on drop.
2023-05-18 08:44:50 -06:00
gwenn
697a333887 Rustfmt 2023-04-22 16:58:36 +02:00
gwenn
0f8d1aadc7 Fix clippy warnings 2023-04-22 16:53:13 +02:00
gwenn
0e369ba878 Misc 2023-04-16 18:09:15 +02:00
gwenn
b59b0ddf2e Bump sqlite3-parser version 2023-04-16 16:17:36 +02:00
Kornel
b6bf62db14 Use track_caller for panicking methods 2023-04-15 21:35:03 +01:00
gwenn
a927ce1bb6 Merge remote-tracking branch 'upstream/master' into captured_identifiers 2023-04-11 19:43:00 +02:00
xaos
3ea9333e78 Add missing tests for std::num::NonZero{I64, Isize, U64, Usize} 2023-04-05 08:34:01 +02:00
xaos
2e5db7b2a0 Test FromSql & ToSql for std::num::NonZero types 2023-04-05 05:03:52 +02:00
xaos
ce7cdfb5bc Implement FromSql for std::num::NonZero types 2023-04-05 04:38:51 +02:00
xaos
00b88e37fe Implement ToSql for std::num::NonZero types 2023-04-05 04:36:05 +02:00
xaos
88e5882de9 Fix missing ToSql asserts for isize, usize & u64 2023-04-05 03:44:46 +02:00
xaos
f6cd0a5384 Fix minor doc inaccuracy 2023-04-04 23:02:27 +02:00
gwenn
eb7fbc57d0 Use ParseCallbacks::item_name to fix sqlite3_index_info_* types 2023-03-25 10:19:56 +01:00
Johnny Graettinger
7c1d5a1863 Add Statement.readonly() accessor
Remove cfg(extra_check) from RawStatement::readonly()
2023-03-23 18:55:19 +00:00
gwenn
5a6f58acda Fix code related to bitflags 2023-03-14 19:43:50 +01:00
gwenn
ba07f41aac Merge remote-tracking branch 'origin/master' into clippy 2023-03-12 15:49:58 +01:00
gwenn
7278e5fa91
Merge pull request #1250 from gwenn/deprecated
Remove deprecated API
2023-03-12 15:42:58 +01:00
Mark Hammond
9c2cc12b08
No longer panic if we fail to close the connection when dropping it. 2023-02-24 15:13:25 +11:00
gwenn
8d318b3a03 Fix clippy warning 2023-02-03 18:44:21 +01:00
gwenn
a92fa13bfd Fix clippy warnings 2023-01-07 17:09:53 +01:00
gwenn
78b7c52105 Captured identifiers in SQL strings
Introduce macro_rules `prepare_and_bind` and `prepare_cached_and_bind`
2022-12-26 20:00:59 +01:00
gwenn
b346d02b98 Fix build error
After merging PRs #1263 and #1248
2022-12-13 19:52:32 +01:00
gwenn
a1b83423a5
Merge pull request #1263 from psarna/from_handle_owned
Introduce Connection::from_handle_owned
2022-12-11 10:52:52 +01:00
gwenn
5f851fb90f Add Statement::clear_bindings 2022-12-11 10:26:13 +01:00
gwenn
312bf41e90 Merge remote-tracking branch 'origin/master' into deprecated 2022-12-11 09:56:22 +01:00
gwenn
aad182aff4
Merge pull request #1252 from gwenn/serde_json
Fix FromSql/ToSql for serde_json::Value
2022-12-11 09:50:21 +01:00
gwenn
9e76bf42d1
Merge pull request #1248 from gwenn/db_path
Remove Connection path field
2022-12-11 09:41:26 +01:00
gwenn
3aa9addaa3 [breaking change] Update edition from 2018 to 2021
And fix clippy warnings
2022-12-09 20:19:04 +01:00
Piotr Sarna
82a56b1b58 Introduce Connection::from_handle_owned
It behaves almost the same as Connection::from_handle,
but it promises to close the inner connection when
the returned connection is closed or dropped.

The rationale for having this function is that some users
of Connection::from_handle obtain the handle simply by calling
ffi::sqlite3_open_v2 or other similar function manually, and would
still like for its resources to be released once the connection
is dropped.

The use-case behind this commit is from https://github.com/libsql/libsql/,
where a new libsql_open call is introduced to pass other parameters
(like virtual WAL interface) to the connection.
2022-11-29 15:52:30 +01:00
gwenn
2e07650a02 Use ?NNN format instead of ?
https://sqlite.org/lang_expr.html#parameters
> But because it is easy to miscount the question marks, the use of this parameter format is discouraged. Programmers are encouraged to use one of the symbolic formats below or the ?NNN format above instead.
2022-11-27 09:38:06 +01:00
gwenn
1038577691 Fix clippy warnings
Related to chrono 0.4.23.
Only some tests are impacted.
2022-11-19 13:29:43 +01:00
gwenn
6ca54320fc Fix FromSql/ToSql for serde_json::Value
Fix #882 for valid JSON values
2022-11-11 18:37:22 +01:00
gwenn
503f02ee01 Cosmetic changes in tests 2022-11-11 16:32:42 +01:00
gwenn
784ef95bb6 Intoduce one_column for tests 2022-11-11 16:20:39 +01:00
gwenn
70ebb7f6b4 Merge remote-tracking branch 'upstream/master' into debug_row 2022-11-11 14:59:17 +01:00
gwenn
d79d4a175b Remove deprecated API 2022-11-11 14:45:22 +01:00
gwenn
8a281679b2 Merge remote-tracking branch 'upstream/master' into db_path 2022-11-09 20:09:04 +01:00
gwenn
27e5fb016b Fix clippy warnings 2022-11-09 19:57:36 +01:00
gwenn
d24318f7c9 Remove Connection path field
Use sqlite3_db_filename instead.
Pros: memory footprint, absolute path
Cons: one cannot make the disctinction between multiple memory
databases anymore (like file:one.db?mode=memory and
file:another.db?mode=memory).
2022-11-08 20:44:12 +01:00
gwenn
5488c7ef50 Merge remote-tracking branch 'upstream/master' into debug_row 2022-10-30 09:03:17 +01:00
gwenn
6d509afe49 Clippy 2022-10-28 19:02:49 +02:00
gwenn
2cb104a40b Impl Debug for Row 2022-10-09 11:43:02 +02:00
gwenn
456523f312 Fix error: unknown lint: clippy::bool_to_int_with_if 2022-10-08 19:28:38 +02:00
gwenn
ba73b81776 Fix CI build error
stable clippy vs nightly clippy
2022-10-08 18:57:12 +02:00
gwenn
cd6ce6e2c3 Fix clippy warnings 2022-10-08 18:45:51 +02:00
gwenn
a37489ec93
Merge pull request #1217 from gwenn/modern_vtab
Include vtablog only with modern_sqlite feature
2022-10-05 19:35:52 +02:00
gwenn
ff1b3d5ed4
Merge pull request #1223 from gwenn/const
Reuse constants already defined in SQLite <= 3.14.0
2022-10-05 19:30:17 +02:00
gwenn
7dab08c4b2 Fix clippy warnings 2022-10-02 11:34:58 +02:00
Thom Chiovoloni
a100adc1f2 Fix potential unsoundness in SqliteMallocString 2022-09-16 13:38:54 -07:00
gwenn
79b6fd6e61 Merge remote-tracking branch 'upstream/master' into modern_vtab
# Conflicts:
#	src/vtab/mod.rs
2022-09-02 20:33:21 +02:00
gwenn
dae4390c5e Reuse constants already defined in SQLite <= 3.14.0 2022-09-02 20:04:18 +02:00
gwenn
6766d6a6cd Remove old_sqlite feature
And associated bindgen_3.6.8.rs
2022-08-30 13:05:47 -07:00
gwenn
15d56bcb52 Fix sqlcipher build 2022-08-30 13:05:47 -07:00
gwenn
6e740d0611 Change default minimal SQLite API version
From 3.6.8 to 3.14.0.
Use `old_sqlite` feature to keep 3.6.8 (or 3.7.16) as the minimal version.
Use `modern_sqlite` for SQLite API > 3.14.0.
Also remove old 3.6.23 and 3.7.7 bindings.
2022-08-30 13:05:47 -07:00
gwenn
2d9621b8ae Include vtablog only with modern_sqlite feature
Make array, csvtab, series module work with either modern_sqlite or buildtime_bindgen
2022-08-17 19:24:42 +02:00
heavenboy8
569b19c160 update code to fit the last rust version requirements 2022-08-17 08:28:12 +02:00
gwenn
d5110ced91 Fix clippy warnings 2022-07-31 07:00:37 +02:00
gwenn
618e9a1274 Clean code
Typos, deprecated code usages, ...
2022-05-29 13:33:51 +02:00
gwenn
d9b79a5f9e Fix clippy warnings (derive_partial_eq_without_eq) 2022-05-29 11:32:47 +02:00
Lucas Burns
e669609734
chore: derive Debug for Savepoint 2022-05-05 13:00:49 -05:00
gwenn
7b0fb7d1b1
Merge pull request #1137 from gwenn/error_offset
Introduce SqlInputError with offset
2022-04-24 08:20:20 +02:00
gwenn
c313cd770d Params for 28-length arrays 2022-04-23 21:32:19 -07:00
gwenn
8f40fd1cf3 Fix build errors with SQLCipher 2022-04-21 15:26:46 +02:00
gwenn
8370970b0b Keep track of SQL input 2022-04-21 15:14:08 +02:00
gwenn
c15fa489ad Bundled SQLCipher is now based on SQLite > 3.35 2022-04-21 13:34:20 +02:00
gwenn
cfcbb56fce Merge remote-tracking branch 'origin/master' into error_offset
# Conflicts:
#	src/statement.rs
2022-04-20 07:27:05 +02:00
gwenn
26c444341c Do not use Connection::handle()
https://docs.rs/rusqlite/latest/rusqlite/struct.Connection.html#method.handle
```
You should not need to use this function...
```
And use `decode_result`...
2022-04-18 08:59:49 -07:00
Max Unsted
95941f6378 derive Eq for Type 2022-04-17 13:28:48 -07:00
Nikolai Vazquez
4d06d2222f Add Connection::release_memory method
This is behind a new `release_memory` feature flag. It simply calls
`sqlite3_db_release_memory` on the raw handle.
2022-04-17 08:40:36 -07:00
gwenn
ad911efd15 Replace .err().unwrap() by .unwrap_err() 2022-04-07 09:17:42 +02:00
gwenn
214a6244f9 Rustfmt 2022-04-07 09:17:07 +02:00
gwenn
fedf6b41ae Use sqlite_error_code where possible 2022-04-07 09:15:55 +02:00
Nikolai Vazquez
b0993a1d99 Add Error methods to get SQLite error values 2022-04-06 20:27:01 -04:00
gwenn
33e5f127cf Check current SQLite version while registering module 2022-04-04 06:24:51 -07:00
gwenn
6e0684b69f Rustfmt 2022-04-04 06:24:51 -07:00
gwenn
106e46c424 Actually test DELETE, INSERT, UPDATE on vtablog 2022-04-04 06:24:51 -07:00
gwenn
aa511ea337 Fix clippy warning 2022-04-04 06:24:51 -07:00
gwenn
fe1150b0cf Port vtablog as an example of a writable VTab 2022-04-04 06:24:51 -07:00
gwenn
762321c15e Introduce macro to avoid code duplication 2022-04-04 06:24:51 -07:00
gwenn
f04bec2fd5 Updatable eponymous virtual table 2022-04-04 06:24:51 -07:00
gwenn
3787f432a4 Add support to updatable virtual tables 2022-04-04 06:24:51 -07:00
Thom Chiovoloni
624c3a2d05 Small doc grammar fix 2022-04-04 00:20:33 -07:00
Thom Chiovoloni
46def6d67e Improve the docs for opening the connection a bit 2022-04-03 22:08:50 -07:00
gwenn
af8cd1caec
Merge pull request #1152 from thomcc/expose-changes
Expose `sqlite3_changes` (or `sqlite3_changes64` if available)
2022-04-04 06:36:10 +02:00
Thom Chiovoloni
9699b4a210 Fix non-bundled tests against macOS system SQLite 2022-04-03 11:12:38 -07:00
Thom Chiovoloni
899784379b
Expose sqlite3_changes (or sqlite3_changes64 if available) 2022-04-03 08:13:27 -07:00
gwenn
5e2c103a0c
Add some missing wrappers (#1139)
* Add some missing wrappers:

sqlite3_value_subtype
sqlite3_result_subtype
sqlite3_changes64
sqlite3_db_readonly
sqlite3_txn_state
sqlite3_stmt_isexplain
sqlite3_vtab_config
sqlite3_index_info.idxFlags
sqlite3_index_info.colUsed
sqlite3_index_info.idxStr
sqlite3_vtab_collation

* Mark series VTab as innocuous and csv as direct only
2022-03-17 19:58:02 +01:00
gwenn
69a40526d5 Introduce SqlInputError with offset 2022-03-13 17:31:07 +01:00
Thom Chiovoloni
74e4fa008e Make the example code in the crate docs be the same as the README 2022-03-10 13:07:06 -08:00
Thom Chiovoloni
2ec0b2e8fe Implement Params for tuples of ToSql up to size 16, and touch up docs 2022-03-10 13:07:06 -08:00
gwenn
65668a46e4 Add constants introduced by SQLite 3.38.0
SQLITE_STMTSTATUS_FILTER_MISS
SQLITE_STMTSTATUS_FILTER_HIT
SQLITE_INDEX_CONSTRAINT_LIMIT
SQLITE_INDEX_CONSTRAINT_OFFSET
2022-02-26 09:55:17 +01:00
link2xt
81795e90b4 Uncomment config::DbConfig::SQLITE_DBCONFIG_RESET_DATABASE 2022-01-16 16:16:39 +00:00
gwenn
34b9519c3e
Merge pull request #1050 from gwenn/clippy_send
Fix clippy warning
2022-01-16 09:00:07 +01:00