Commit Graph

1172 Commits

Author SHA1 Message Date
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
gwenn
d6d8adb54e
Merge pull request #1096 from thomcc/limit-cleanup
Move Limits enum from libsqlite3-sys into rusqlite
2022-01-09 15:37:49 +01:00
Thom Chiovoloni
d67c0e09dd Remove the SQLite version check 2022-01-09 01:57:13 -08:00
Thom Chiovoloni
9cbe5a5e89
Move Limits enum from libsqlite3-sys into rusqlite 2022-01-08 16:45:35 -08:00
gwenn
cc4f059d9b Merge remote-tracking branch 'origin/master' into ptr_as_ptr 2022-01-06 18:20:01 +01:00
gwenn
e1fd731cb0 clippy::unseparated_literal_suffix 2022-01-06 05:07:27 -08:00
gwenn
c10e2f39ef clippy::single_match_else 2022-01-06 04:56:59 -08:00
gwenn
68f41d6e9e clippy::semicolon_if_nothing_returned 2022-01-06 04:56:42 -08:00
gwenn
406ac6a7fc clippy::must_use_candidate 2022-01-06 04:56:24 -08:00
gwenn
bcfe99578b clippy::map_unwrap_or 2022-01-06 04:55:27 -08:00
gwenn
576a8a96f6 clippy::default_trait_access 2022-01-06 04:55:07 -08:00
gwenn
b5aa6f7984 clippy::redundant_closure_for_method_calls 2022-01-06 04:54:51 -08:00
gwenn
48975e015f clippy::let_underscore_drop 2022-01-06 04:54:39 -08:00
gwenn
01c4be82c8 clippy::doc_markdown 2022-01-06 04:54:10 -08:00
gwenn
6f8e509763 Oops 2022-01-05 20:12:52 +01:00
gwenn
43591154b2 clippy:ptr_as_ptr 2022-01-05 19:50:25 +01:00
Thom Chiovoloni
230c76fe66 Fix a minor clippy complaint from nightly clippy 2022-01-04 21:15:18 -08:00
Thom Chiovoloni
519684a744 cleanup unlock_notify code a bit 2022-01-04 21:15:18 -08:00
trevyn
c759bc7527 Consolidate to FromSqlError::InvalidBlobSize (breaking) 2022-01-02 18:24:56 -08:00
trevyn
7f09d295ba Add ToSql/FromSql for [u8; N] 2022-01-02 18:24:56 -08:00
Nicholas Bishop
94cd2cbf6b Fix markdown rendering of Connection::transaction doc
This fixes `DropBehavior::Commit` being rendered as `DropBehavior: :Commit`.
2021-12-30 15:45:23 -05:00
gwenn
f177ee1c72 Sync series with official source 2021-12-22 19:49:33 +01:00
gwenn
0ce15c546a Fix clippy warnings 2021-12-18 08:42:04 +01:00
gwenn
4ceb290235 Fix rollback_hook doc 2021-12-11 12:10:01 +01:00
Thom Chiovoloni
287b0ea08b Undo transition to edition 2021, prep release 0.26.3 2021-12-08 17:06:01 -08:00
gwenn
28da7a2ad9 Fix clippy warning
warning: this implementation is unsound, as some fields in `Connection` are `!Send`
   --> src/lib.rs:339:1
339 | unsafe impl Send for Connection {}
2021-12-04 10:07:56 +01:00
gwenn
934e0c709e Fix callbacks lifetime 2021-12-01 04:28:09 -08:00
gwenn
612158507e Fix callbacks lifetime 2021-12-01 04:28:09 -08:00
gwenn
30f8c8c502 Fix callbacks lifetime 2021-12-01 04:28:09 -08:00