Commit Graph

885 Commits

Author SHA1 Message Date
Thom Chiovoloni
d408e3bcd2 Allow opting out of compile-time transaction checking 2020-04-09 12:39:40 -07:00
Konrad Borowski
c8078dfd1f Allow non-Unicode file names on Unix-like platforms 2020-04-09 10:35:38 +02:00
Thom Chiovoloni
ca13698273 Revert "Merge pull request #499 from xfix/unix-invalid-unicode"
This reverts commit 061748e1f5, reversing
changes made to cf3cdecf12.
2020-04-08 10:38:32 -07:00
Thom Chiovoloni
061748e1f5
Merge pull request #499 from xfix/unix-invalid-unicode
Allow non-Unicode file names on Unix-like platforms
2020-04-08 10:30:50 -07:00
Thom Chiovoloni
cf3cdecf12
Merge pull request #684 from thomcc/internal-unsafe
Clean up internal unsafe code
2020-04-08 10:15:03 -07:00
Thom Chiovoloni
f5c20abaa1 Remove unused vtab_v3 feature while I'm here 2020-04-07 14:28:03 -07:00
Thom Chiovoloni
8f7fc7d976 Avoid using MaybeUninit for pointers 2020-04-07 10:04:18 -07:00
Thom Chiovoloni
53c99f940e Fix up conventions around unsafe in internal functions 2020-04-07 10:04:18 -07:00
Thom Chiovoloni
c0df911946
Avoid rust-analyzer bug in InnerConnection::new (#686)
This is a workaround for a false error rust-analyzer gives in
InnerConnection::new. I'm guessing it's because it does some weird
feature stuff. It doesn't change any semantics, but makes working in
`rusqlite` much nicer when using rust-analyzer.
2020-04-07 08:58:41 -07:00
Thom Chiovoloni
5ef73f6c8c
Implement std::error::Error::source instead of cause (#683) 2020-04-06 18:12:22 -07:00
Thom Chiovoloni
76336369ed
Fix regression with <Cow<'_, _> as ToSql> (#681) 2020-04-06 17:00:15 -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
9b040da029
Add Rows::{mapped,and_then} to get an Iterator out of a Rows i… (#676) 2020-04-06 13:01:39 -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
3196989f0d
Clarify that the submodules of rusqlite::vtab are ports (#672) 2020-04-06 11:04:45 -07:00
Thom Chiovoloni
0c0d45f714
Add APIs allowing separate parameter binding and statement execu… (#668) 2020-04-06 10:44:00 -07:00
Thom Chiovoloni
26c744d0c3
Improve CI test coverage (#670)
* Improve CI test coverage

* Run clippy/rustfmt/rustdoc in CI

* Disable warnings when building bundled sqlite
2020-04-06 10:43:43 -07:00
Thom Chiovoloni
6617db59fb
Document which features are required, and add vtab usage examples (#669) 2020-04-05 22:15:27 -07:00
Thom Chiovoloni
3ae52545a9
Fix failing rarray test (#664) 2020-03-31 21:07:26 -07:00
zero-systems
2a04f06a3a
Relaxed Sized bound on Box/Rc/Arc/Cow for ToSql
* Fix Box<T> for unsized

* refactoring

* Add more tests

* ?Sized for Cow, Rc, Arc too
2020-03-31 20:52:34 -07:00
zero-systems
761df93a83
Impls of ToSql for different generic types (Box, Cow, Rc, Arc). (#660)
* Impl ToSql for Box<str>

* Add generic impls for Cow, Box, Rc, Arc. Remove impl for Box<str>

* Remove impl of ToSql for Cow<'_, str>

* Add missing as_ref

Co-authored-by: Øsystems <>
2020-03-28 09:53:03 -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
8ddacbb27c doctest README.md 2020-03-08 15:36:56 +01:00
gwenn
97b2f4cda0 Fix test_execute_select 2020-03-04 20:42:32 +01: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
gwenn
5356a609de Introduce alloc to generate C string allocated by sqlite3
Safe to send to SQLite for deallocation.
2020-02-29 13:09:42 +01:00
gwenn
a3e5ea990d
Merge pull request #640 from Genomicsplc/wasm-no-thread-checks
don't perform threading mode checks on wasm32
2020-02-29 10:01:25 +01:00
Joshua C. Randall
09ad553081 don't perform threading mode checks on wasm32 2020-02-24 22:48:54 +00:00
gwenn
15fc3b4b71 Clippy + rust fmt 2020-02-22 11:50:00 +01:00
gwenn
406cd6d2cf Merge pull request #630 from gwenn/pr/open-with-vfs
add ability to open sqlite connection with specified vfs
2020-02-09 12:54:45 +01:00
gwenn
7d1d6024e9 Factorize code 2020-02-09 12:21:20 +01:00
gwenn
4d58a43b38 Fix compilation errors 2020-02-09 12:08:25 +01:00
gwenn
9e17a0b28e Merge remote-tracking branch 'upstream/master' into pr/open-with-vfs
# Conflicts:
#	src/inner_connection.rs
2020-02-09 11:58:49 +01:00
gwenn
953906aab9 Rustfmt 2020-02-09 11:48:45 +01:00
gwenn
922228f604 Fix clippy warnings 2020-02-09 11:48:08 +01:00
gwenn
05e87b8d8d Add missing constants 2020-02-09 11:47:01 +01:00
gwenn
17759a912e Ignore PATH change
Cargo itself changes the PATH.
So `libsqlite3-sys` is always rebuilt on Windows platform.
To avoid this, we ignore PATH change.
If the PATH has been modified in such a way that a different SQLite library is found,
you will have to also modify SQLITE3_LIB_DIR to make cargo rebuild `libsqlite3-sys`

Fix #435.
2020-02-08 10:25:52 +01:00
gwenn
b2c63c8224
Merge pull request #623 from gwenn/index-constraint-op
Add missing IndexConstraintOp entries
2020-01-26 18:26:40 +01:00
gwenn
8cc4440f45 Add missing IndexConstraintOp entries
Remove conditional inclusions.
2020-01-26 18:14:52 +01:00
gwenn
5565d2e058
Add support to function flags (#622)
Breaking changes
2020-01-26 18:11:11 +01:00
gwenn
5d06bc25a6 Add missing IndexConstraintOp entries
Breaking changes
2020-01-26 17:51:51 +01:00
gwenn
b61c570cdd
Merge pull request #621 from gwenn/dbconfig
Add missing DbConfig entries
2020-01-26 17:36:15 +01:00
gwenn
e266211c48 Add missing DbConfig entries 2020-01-26 17:03:48 +01:00
gwenn
adb904650d Fix warnings related to deprecated Error::description 2020-01-26 16:57:58 +01:00
gwenn
d1813caa1d
Merge pull request #617 from gwenn/params
Fix params macro
2020-01-18 19:29:14 +01:00
gwenn
f8991082da Fix params macro
See #614
2020-01-18 19:04:28 +01:00
gwenn
ea7f0da6ae
Merge pull request #613 from thomcc/modern_sqlite
Separate the `modern_sqlite` and `bundled` features.
2020-01-14 20:40:39 +01:00
Thom Chiovoloni
585797b4d6 Add FromSql for Box<str>, Rc<str> and Arc<str> 2020-01-14 08:26:16 -08:00
Thom Chiovoloni
c70d148542 Remove most of the code using feature=bundled as a version check 2020-01-14 08:11:36 -08:00
arthurprs
cae86b2bfe Fix i32 overflow in Connection::busy_timeout 2019-12-28 20:18:10 +01: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
9484f5c15e
Merge pull request #588 from gwenn/session
Session
2019-11-02 15:21:55 +01:00
gwenn
de9f06f142 Fix ChangesetIter::start_strm
The input reference must still be alive after the function returns
2019-11-02 14:53:32 +01:00
gwenn
fb9fb3790c Fix segfaut by using a cursor instead of a slice. 2019-11-02 10:42:13 +01:00
gwenn
317abe6155 Update README example 2019-11-01 18:27:56 +01:00
gwenn
0693d5f6ce Reactivate session feature
And fix partially x_input.
2019-11-01 09:57:56 +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
8eb844b0c9 Paste relevant section from SQLite documantation 2019-10-29 20:26:35 +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
ec52d44939
Merge pull request #578 from gwenn/cant-open
Cant open
2019-10-19 11:20:56 +02:00
gwenn
15f356e5a7 Merge remote-tracking branch 'jgallagher/master' into cant-open 2019-10-19 10:40:53 +02:00
gwenn
22bdd80b92 Ignore mutex_atomic clippy lint
> This lint cannot detect if the mutex is actually used for waiting
before a critical section.
2019-10-19 10:10:17 +02:00
gwenn
0cf9ef8514 Fix some clippy warnings 2019-10-13 13:08:33 +02:00
Will Dowd
49f48a5c56 Parse Option<T> into Value/ValueRef where applicable 2019-09-27 16:02:37 -04:00
gwenn
104188055e
Merge pull request #568 from gwenn/column_name
Make `column_name()` public and forward all column methods in Row and Rows
2019-09-02 18:29:52 +02:00
Vlad-Shcherbina
81d26ccadb
Fix typo in docs 2019-09-01 12:41:51 +03:00
gwenn
9ce3b82570 Make column_name returns a Result 2019-08-31 12:17:48 +02:00
gwenn
4ffdb07f31 Merge remote-tracking branch 'jgallagher/master' into twistedfall 2019-08-31 10:00:33 +02:00
gwenn
941e36be9d Merge remote-tracking branch 'jgallagher/master' into twistedfall 2019-08-31 09:55:24 +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
Pro
a8d34da2d5 Use the correct (larger) lifetime of the returned column-related references in Row, Rows and Column 2019-08-22 16:53:16 +02:00
Pro
2a8339bda7 Forward all column related methods in Row and Rows 2019-08-22 16:38:43 +02:00
Pro
d46eb23364 Make column_name() public
Changes it's interface to Option<&str> to accommodate for out of bounds index
2019-08-22 16:38:43 +02:00
Pro
692b4b67dc Use expect() instead of unwrap() for string conversion 2019-08-22 16:38:31 +02:00
gwenn
dfcc4511ea Fix Clippy warning 2019-08-17 08:19:19 +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
dcc43fa445 Fix warnings 2019-08-09 20:06:31 +02:00
gwenn
e4fecf7fb8 Rustfmt 2019-08-09 20:03:46 +02:00
gwenn
d229f0f9e9 Remove #[macro_use] attribute when importing macros 2019-08-09 20:01:44 +02:00
Kornel
010794e091 Conversion from FromSqlError to Error
Fixes #555
2019-08-04 21:24:50 +01: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
701389605d Do not assume sqlite3_column_text is valid UTF-8
Fix impact on features
2019-07-24 20:46:53 +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
30b41bed20 Make Module impl Send
Also introduce a dedicated feature for series virtual table.
2019-07-11 19:21:54 +02:00
gwenn
208f3c084b Clippy: fix warnings 2019-07-10 21:10:12 +02:00
Thom Chiovoloni
3aca84c67d
Merge pull request #541 from thomcc/include-column-name-in-type-error
Include the name of the column in InvalidColumnType errors
2019-06-25 18:08:05 -07:00
gwenn
ef036e383c
Merge pull request #539 from gwenn/window-func
Add binding to `sqlite3_create_window_function`
2019-06-25 21:40:21 +02:00
Thom Chiovoloni
4356f5a176 Include the name of the column in InvalidColumnType errors 2019-06-25 12:20:11 -07:00
gwenn
c275cd29e0 Fix tests 2019-06-25 20:47:32 +02:00
gwenn
f1198dd9ff Add binding to sqlite3_create_window_function 2019-06-25 20:33:49 +02:00