Commit Graph

1200 Commits

Author SHA1 Message Date
gwenn
4f175d5748 Fix DateTime format 2021-01-29 22:03:50 +01:00
gwenn
afcdc2b43a Use most concise syntax for params 2021-01-19 21:16:08 +01:00
gwenn
70742651b1 Fix CI build
clippy::unnecessary_wraps is not stable yet
2021-01-02 13:43:12 +01:00
gwenn
2319165b59 Fix clippy warnings 2021-01-02 10:49:29 +01:00
gwenn
e154ccb606
Rename get_raw to get_ref_unwrap and get_raw_checked to get_ref (#838)
* test `From<FromSqlError> for Error`
* Rename get_raw to get_ref_unwrap and get_raw_checked to get_ref
2020-12-22 21:34:30 +01:00
Thom Chiovoloni
73f59a3a38
Merge pull request #866 from phiresky/pass-context-to-aggregate 2020-12-19 12:47:13 -08:00
phiresky
0221266f2e make init return result 2020-12-19 12:15:18 +01:00
phiresky
7c83680231 fix lints 2020-12-18 23:11:23 +01:00
phiresky
d4f8242d0c format 2020-12-18 13:54:38 +01:00
phiresky
9d2e936eb8 formatting and tests 2020-12-18 13:53:13 +01:00
phiresky
eff747b756 format 2020-12-18 13:52:07 +01:00
phiresky
25c817413b pass context to finalize function 2020-12-18 13:30:11 +01:00
phiresky
1309c563c7 add get_connection method to function context 2020-12-18 13:24:03 +01:00
phiresky
2cffca874c pass context to aggregate init function 2020-12-18 13:11:39 +01:00
Mahmoud Al-Qudsi
73754bbe24 [docs] Document default busy_timeout/busy_handler
Include a note in the documentation for both `busy_handler()` and
`busy_timeout()` explaining the current default behavior (with a
disclaimer indicating that this behavior should not be relied upon as it
is an implementation detail that may change).
2020-12-02 17:20:50 -06:00
Mahmoud Al-Qudsi
2dab6d8364 [docs] Fix over-long monospacing of SQLITE_BUSY 2020-12-02 17:06:46 -06:00
gwenn
3aeb5d7e08 Remove obsolete doc section
`FromSql` / `ToSql` are now implemented for i64 and usize
2020-11-22 09:37:52 +01:00
gwenn
32ee895b63 Remove some usages of params! / NO_PARAMS 2020-11-22 09:37:00 +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
9ae66e363e
Merge pull request #840 from gwenn/IndexConstraintOp
Remove #[non_exhaustive] attribute on IndexConstraintOp
2020-11-07 12:20:15 +01:00
gwenn
3388fd1683 Remove #[non_exhaustive] attribute on IndexConstraintOp 2020-11-07 12:02:33 +01:00
gwenn
47ec0e1d8f Fix create_collation
The xDestroy callback is not called if the sqlite3_create_collation_v2() function fails.
2020-11-07 11:54:59 +01:00
gwenn
bbd1ff5fb0 Try to fix CI build 2020-11-05 22:24:55 +01:00
gwenn
549ceb59e2 Try to fix CI build 2020-11-05 22:21:02 +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
7574124233 Format code in doc comments for good measure 2020-11-03 19:09:19 -08:00
Thom Chiovoloni
f0990c38bf Fix stale doc 2020-11-03 19:09:19 -08:00
Thom Chiovoloni
a312582d11 Ensure empty array Params impl can trigger Error::InvalidParameterCount when needed 2020-11-03 19:09:19 -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
Thom Chiovoloni
c45446ba73 Seal the RowIndex trait (technically breaking, but unlikely to break anybody) 2020-11-03 19:09:19 -08:00
gwenn
b9ccb252ef
Merge pull request #824 from gwenn/progress_handler
Expose query progress information
2020-11-03 18:14:36 +01:00
Thom Chiovoloni
1aeea123dd Silence clippy's complaint about unelided lifetime in session.rs 2020-11-02 19:34:09 -08:00
gwenn
1103febb1e Test Batch iterator 2020-10-31 11:11:12 +01:00
gwenn
f3c2b63836 Get rid of fallible iterator trait 2020-10-31 10:47:44 +01:00
gwenn
73323b6b92 Remove Iterator implementation for Batch
If Batch implements both `Iterator` and `FaillibleIterator`, `next`
method is ambiguous and must be qualified...
2020-10-29 20:06:47 +01:00
gwenn
b73ca079a8 Implement Iterator for Batch 2020-10-29 20:01:46 +01:00
gwenn
5f5943435e Remove lazy_static block where possible 2020-10-29 19:51:51 +01:00
Nick Hynes
749266cae9 Reduce required lifetime in create_scalar_function 2020-10-28 23:33:00 -07:00
gwenn
d1ec46182f Fix Clippy warning 2020-10-28 21:26:36 +01:00
gwenn
b448d95510 Merge remote-tracking branch 'upstream/master' into progress_handler 2020-10-28 21:21:19 +01:00
gwenn
76ad2bf19c Rustfmt 2020-10-28 21:12:29 +01:00
gwenn
5ce81024c8 Introduce Batch fallible iterator 2020-10-28 21:10:13 +01:00
gwenn
e1072b7f75 Reduce required lifetime
Revert lifetime change on table_filter
2020-10-28 20:16:53 +01:00
gwenn
926977846f Reduce required lifetime
Extends #825 to
 - create_collation
 - commit_hook
 - rollback_hook
 - update_hook
 - table_filter
2020-10-28 19:20:05 +01:00
Tim Hutt
b0ade73f43 Add ToSql implementations for u64 and usize 2020-10-26 23:28:25 -07:00
gwenn
9c954b8cb5 Rustfmt 2020-10-25 12:28:03 +01:00
gwenn
49325296a9 Expose query progress information
Add unit tests
2020-10-25 12:20:15 +01:00
gwenn
f5c83af863 Expose query progress information 2020-10-25 11:58:47 +01:00
Tim Hutt
8841187717 Silence clippy 2020-10-24 09:52:05 -07:00
Tim Hutt
f264873999 Cargo format 2020-10-24 09:52:05 -07:00
Tim Hutt
ebcec59969 Implement From/ToSql for more types
This implements `FromSql` for `u64`, `usize` and `f32`, and `ToSql` for `f32`.

I also updated the documentation to describe how it currently works, and changed the implementation to use `try_from` for integral casts rather rather than custom code.

Test added.
2020-10-24 09:52:05 -07:00
gwenn
6ae9802fa3 Feature ptr_offset_from #41079 available in 1.47 2020-10-08 21:12:46 +02:00
Thom Chiovoloni
084d1f535d Replace lru-cache with hashlink 2020-10-06 00:10:22 -07:00
Thom Chiovoloni
587fdeb185 Add write_all_at for compatibility with FileExt, improve docs a little 2020-10-04 15:48:10 -07:00
Thom Chiovoloni
d61fe36237 Improve pos io test coverage 2020-10-04 15:48:10 -07:00
Thom Chiovoloni
67ee5a0586 Add test coverage for positional blob io 2020-10-04 15:48:10 -07:00
Thom Chiovoloni
7cd909fc14 Add positional blob i/o and adjust blob i/o example docs 2020-10-04 15:48:10 -07:00
gwenn
799b5d3f7b Rustfmt 2020-10-04 07:39:35 +02:00
gwenn
d2dcc2d987 Fix clippy warning 2020-10-04 07:38:52 +02:00
Michael Sproul
d7e0536b41
Add must_use attribute to iterators 2020-09-02 16:15:25 +10:00
gwenn
2a7b11320f Fix clippy warnings 2020-08-17 20:07:56 +02:00
gwenn
a4691db6d0 pragma_update fails with ExecuteReturnedResults
Ideally, while executing a batch, we should fail if it contains a SELECT
statement. But currently there is no way to make the distinction between
a SELECT and a PRAGMA which both updates and returns a row.
So we fail only when `extra_check` feature is activated.
2020-08-17 19:30:24 +02:00
Nikhil Benesch
b83d22e2b7 Upgrade to time v0.2 and put it behind a feature flag
This also removes the usage of time in the crate's top-level
documentation example, as was done for the README in #625.

Fix #653.
2020-07-24 11:28:19 -07: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
Thom Chiovoloni
f79a9ca3ef Publically expose Map 2020-06-29 09:36:13 -07:00
gwenn
024e2e6bf0
Merge pull request #773 from gwenn/execute_batch
Implement our own sqlite3_exec
2020-06-28 06:18:56 +02: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
4114c94585 Clippy 2020-06-26 19:22:20 +02:00
gwenn
57db338537 Rustfmt 2020-06-25 09:45:49 -07: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
1c9e381a21 Clippy fixes 2020-06-07 19:18:46 -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
c577a9d801 Lifetime elision 2020-06-01 18:44:02 +02:00
gwenn
52a80f95f7
Merge pull request #754 from gwenn/phantom_data
Fix some PhantomData declarations
2020-06-01 11:48:02 +02:00
gwenn
265020e589 Fix some PhantomData declarations
Specify the expected type instead of () even if only the lifetime
matters
2020-06-01 10:11:34 +02:00
gwenn
2af75d1f13 VTabCursor lifetime should be bound to VTab lifetime
```c
struct sqlite3_vtab_cursor {
  sqlite3_vtab *pVtab;      /* Virtual table of this cursor */
```
It seems that we need to introduce a lifetime on `VTab` trait
to express such constraint:
https://users.rust-lang.org/t/associated-type-with-lifetime-bound/7256
But there may be another/new way to do it.
2020-06-01 09:48:49 +02:00
Evgeniy A. Dushistov
d16748ac9f adding ability to work with sqlite compiled with -DSQLITE_OMIT_DECLTYPE
fix #751
2020-06-01 06:31:27 +03:00
gwenn
8cb5b2e585 Document Rows::map and FallibleStreamingIterator impl
See
https://www.reddit.com/r/rust/comments/gov817/rusqlite_only_getting_ok_entries_from_query_map/
```
let mut stmt = self
    .db
    .prepare("SELECT tag FROM tags WHERE tags.entry_id = ?1")?;

let tags = stmt.query(params![id])?;

tags
    .map(|res| res.get(0))
    .collect()
```
2020-05-24 20:53:52 +02:00
gwenn
e664f82630 Add still missing docs in session module 2020-05-21 00:48:06 -07:00
gwenn
5ebba26a7e Add missing docs in session module 2020-05-21 00:48:06 -07:00
gwenn
76fc22c653 Fix missing docs 2020-05-21 00:48:06 -07:00
Martin Habovstiak
8a08dff115 Clippy reports redundant closures even in cases in which removing the
closure is impossible. See
https://github.com/rust-lang/rust-clippy/issues/5594

Allow this lint until the issue is resolved in clippy or the compiler.
2020-05-21 00:47:52 -07:00
Martin Habovstiak
c5b2efc099 impl TryFrom<&Row<'_>> for (...)
This change implements `TryFrom<&Row>` for tuples up to 16 fields. This
is a convenience function that can be used to map rows more easily.

The change includes tests for 1-tuple, 2-tuple and 16-tuple.
2020-05-21 00:47:52 -07:00
gwenn
5565ae5629
Merge pull request #735 from gwenn/extended_result_codes
Activate extended result codes asap
2020-05-17 09:53:25 +02:00
gwenn
0060ff8a44 Activate extended result codes asap 2020-05-16 11:01:30 +02:00
gwenn
ceb9f11de8 Replace pub(crate) by pub(super) visibilty 2020-05-16 10:18:25 +02:00
Thom Chiovoloni
12cb228c9c Fix SqliteMallocString::from_str on arm32 2020-04-23 13:58:50 -07:00
Thom Chiovoloni
d88fe1c1b1 Remove parameter count caching -- should be cheap (if statically linked at least...) 2020-04-16 12:05:56 -07:00
Thom Chiovoloni
a776f460e8 Cache param count and make statement cache more effective 2020-04-16 12:05:56 -07:00
Thom Chiovoloni
6485b324d7 Name fields of RawStatement 2020-04-16 12:05:56 -07:00
Thom Chiovoloni
1207a7cc06 Make clippy behave slightly more reasonably 2020-04-16 08:21:43 -07: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
45fd77ee43 UnlockNotification should hold mutex when calling condvar 2020-04-15 13:52:19 -07:00
Thom Chiovoloni
c9ef5bd63c Make VTab / VTabCursor unsafe trait as implmenting them on the wrong type is unsound 2020-04-15 10:33:04 -07:00
Thom Chiovoloni
3c6b57fe1b Fix vtab::Module lifetime 2020-04-15 10:33:04 -07:00
Thom Chiovoloni
2327d3b774 Fix format string error in rusqlite::trace::log 2020-04-14 12:23:15 -07:00
Thom Chiovoloni
abbab7216a Better docs and cleaner SmallCString 2020-04-14 10:26:41 -07:00
Thom Chiovoloni
ac30e169ae Use SmallCString in most places 2020-04-14 10:26:41 -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
Thom Chiovoloni
1b27ce0541 Docs for new aux api 2020-04-14 08:06:37 -07:00
Thom Chiovoloni
2ef3628dac Actually fix auxdata api... 2020-04-14 08:06:37 -07:00
Thom Chiovoloni
71b2f5187b Ensure type use for auxdata is repr(C) 2020-04-14 08:06:37 -07:00
Thom Chiovoloni
38aea89809 Remove implementations of std::error::Error::description 2020-04-12 12:06:53 -07:00
Thom Chiovoloni
5a8108bd86 Implement source and not cause for FromSqlError 2020-04-12 12:06:53 -07:00
gwenn
611c8e8b02 Rustfmt 2020-04-11 22:18:22 -07:00
gwenn
4dbfdc85fe Fix ValueRef::from_value
Handle text with internal nuls (#657)
2020-04-11 22:18:22 -07:00
Thom Chiovoloni
e04426176f
Merge pull request #693 from thomcc/unchecked-transaction
Allow opting out of compile-time transaction checking
2020-04-10 10:06:37 -07:00
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
gwenn
147168184f rustdoc: example for Connection::open file 2019-06-24 20:05:36 +02:00
gwenn
f6199df9f9 Add binding to sqlite3_collation_needed 2019-06-18 19:03:13 +02:00
gwenn
bb7ae7f215 Add binding to sqlite3_create_collation_v2 2019-06-17 19:20:53 +02:00
Joshua C. Randall
1ae02726cf add ability to open with specified vfs 2019-06-17 10:42:54 +01:00
gwenn
031bffffa5 Add query_row_named for prepared statement. 2019-06-12 19:18:57 +02:00
gwenn
ec319b32bb
Merge pull request #526 from gwenn/fix-nightly-build
Fix nightly build
2019-06-02 09:28:34 +02:00
gwenn
bb70718ca1 Fix nightly build
error[E0277]: the type
`std::cell::UnsafeCell<std::option::Option<std::boxed::Box<std::cell::RefCell<regex::exec::ProgramCacheInner>>>>`
may contain interior mutability and a reference may not be safely
transferrable across a catch_unwind boundary
2019-06-02 09:04:47 +02:00
gwenn
93b5c10816 Fix warning: the item X is imported redundantly 2019-06-02 08:36:16 +02:00
gwenn
860cf69660 [ci skip] Fix rustdoc
"impl ToSql for NaiveDateTime" documentation is slightly inconsistent
with behavior #519
2019-05-11 13:05:15 +02:00
Richard Dodd
6c837a3f51 Fix other failing case 2019-04-26 15:30:49 +01:00
Richard Dodd (dodj)
5430715982
Fix error when building with uuid and functions features. 2019-04-26 15:15:07 +01:00
Simon Bernier St-Pierre
c42175a424 add support for Uuid 2019-04-08 14:19:42 -04:00
Thom Chiovoloni
d8074b1ece impl ToSql for Box<dyn ToSql>. Fixes #500 2019-03-27 19:36:11 -07:00
Konrad Borowski
f5072b8e0f Allow non-Unicode file names on Unix-like platforms 2019-03-26 10:20:22 +01:00
gwenn
80205da623 Rustfmt + clippy 2019-03-21 19:13:55 +01:00
gwenn
98ca4ad6f4 Try to fix CI builds 2019-03-19 21:01:30 +01:00
gwenn
ceb1ce4a55 Rustfmt 2019-03-19 20:45:04 +01:00
gwenn
4703358866 Fix module visibility 2019-03-19 20:43:40 +01:00
gwenn
38e92159fb Introduce Statement::columns
Return Columns name and type. (#494)
2019-03-19 20:33:36 +01:00
gwenn
ac0baecfe2
Merge pull request #478 from gwenn/fallible-iterator
Make `Rows` implement `FallibleStreamingIterator`
2019-03-10 13:13:34 +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
5ba6909921 Add optional support for rust-url 2019-03-09 19:16:37 -08:00
gwenn
d94acdc3f4
Merge pull request #476 from gwenn/pragma
Ease PRAGMA usage (#273 and #265)
2019-02-27 18:03:35 +01:00
Thom Chiovoloni
04f900059d Avoid unnecessary copies/allocations when passing strings to sqlite 2019-02-26 19:47:17 -08:00
gwenn
32881d7a76 Unify callback parameter signature 2019-02-21 21:14:55 +01:00
gwenn
7be87e950d Merge remote-tracking branch 'jgallagher/master' into pragma 2019-02-21 21:07:18 +01: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
fcaf5b9dd8 Fix typos 2019-02-21 18:55:51 +01:00
gwenn
1775688ac2
Merge branch 'master' into pragma 2019-02-16 18:52:03 +01:00
gwenn
c1f12c7380 Revert change related to #460 2019-02-16 17:24:56 +01:00
gwenn
364e885b89 Fix warning 2019-02-14 20:53:00 +01:00
gwenn
6ce5c9ddcc Suggest users to use PRAGMA function instead 2019-02-14 20:24:16 +01:00
gwenn
333cc49523
Merge pull request #481 from gwenn/rm-unwrap
Remove unwrap from examples
2019-02-10 09:05:35 +01:00
gwenn
a8b9142d47 Fix Blob example 2019-02-09 08:54:53 +01:00
gwenn
d70286e98a Remove unwrap from examples 2019-02-09 07:16:05 +01:00
gwenn
2c1483f2e7 Merge remote-tracking branch 'jgallagher/master' into fallible-iterator 2019-02-09 06:47:57 +01:00
gwenn
1b3a917ac8 Fix nightly warning 2019-02-09 06:42:33 +01:00
gwenn
8abaf6eefe Fix rustdoc examples 2019-02-09 06:38:24 +01:00
gwenn
7c5bfb7cc3
Merge pull request #475 from gwenn/db-config
Support for sqlite3_db_config #468
2019-02-08 21:38:01 +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
9c00dd01a2 Draft to ease PRAGMA usage (#273 and #265) 2019-02-03 09:17:37 +01:00
gwenn
519ef9dc84 Fix rustdoc warnings 2019-02-02 15:18:11 +01:00
gwenn
176e4c232b Support for sqlite3_db_config #468 2019-02-02 15:17:20 +01:00
gwenn
e8e76852bd Merge remote-tracking branch 'jgallagher/master' into tail 2019-02-02 13:22:40 +01:00
gwenn
c2614b54df Move InnerConnection in its own module 2019-02-02 12:46:52 +01:00
gwenn
8862b17340 Fix clippy warnings 2019-02-02 11:37:26 +01:00
gwenn
f695f185c2 Fix/suppress warning 'deprecated' 2019-02-02 11:10:58 +01:00
gwenn
20fed1956e Rename some static variables 2019-02-02 11:10:08 +01:00
gwenn
be98290bbd Replace assert! by assert_eq! 2019-02-02 11:09:00 +01:00
gwenn
4c4578851b Remove needless lifetimes 2019-02-02 11:08:04 +01:00
gwenn
62d5ffe678 Fix some enum representation 2019-02-02 11:04:46 +01:00
gwenn
0a46a34e3d Clean examples
Remove `extern crate` usages.
Rustfmt.
2019-01-30 20:14:46 +01:00
gwenn
dbc48fcde9
Merge pull request #470 from rainhead/master
Derive Debug for Transaction
2019-01-30 19:08:53 +01:00
gwenn
6e0b1e2751
Merge pull request #471 from thomcc/params-macro
Add params/named_params macro, and expose ToSql from top level
2019-01-30 18:35:41 +01:00
Thom Chiovoloni
d7c8d43fb4 Add params/named_params macro, and expose ToSql from top level 2019-01-29 15:33:57 -08:00
Thom Chiovoloni
ef757240c1 Use rusqlite::ffi instead of extern crate libsqlite3_sys 2019-01-29 14:59:41 -08:00
Peter Abrahamsen
a160f360d0 Test that Transaction can be removed from an Rc 2019-01-29 11:01:09 -08:00
Peter Abrahamsen
65c6bff73b
Derive Debug for Transaction 2019-01-26 21:29:42 -08:00
Thom Chiovoloni
9478c490fb Make the libsqlite3_sys as ffi export pub 2019-01-26 14:30:27 -08:00
gwenn
18b8c390ab
Merge pull request #467 from gwenn/changes
Expose sqlite3_changes()
2019-01-26 11:40:24 +01:00
gwenn
4be7900bab Rustfmt 2019-01-26 11:02:34 +01:00
gwenn
e4c1f541ae Expose sqlite3_changes() #460 2019-01-26 11:01:51 +01:00
gwenn
94d5fe55c8 Cargo fix 2019-01-26 10:55:14 +01:00
gwenn
36846387be
Merge pull request #463 from thomcc/safe-get-aux
Make get_aux safe by storing the TypeId with the data.
2019-01-26 10:28:51 +01:00
gwenn
274ea8aec5 Merge remote-tracking branch 'jgallagher/master' into from_handle 2019-01-26 09:59:00 +01:00
Thom Chiovoloni
b6539a0fbf Make get_aux safe by storing the TypeId 2019-01-26 00:52:50 -08:00
gwenn
2603cce5db Rustfmt 2019-01-26 08:17:45 +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
35e319a62a Fix unused imports in context and session tests 2019-01-20 19:41:33 +01:00
gwenn
dbc4eef657
Session extension (#459)
Session extension bindings
2019-01-13 12:46:19 +01:00
gwenn
92a22b7842 sqlite3_db_filename is available in SQLite >= 3.7.10 2019-01-06 14:01:17 +01:00
gwenn
0042f2514f Introduce Connection::from_handle 2019-01-06 12:58:46 +01:00
gwenn
747a8d36ed
Err partial eq (#452)
Impl PartialEq for Error
2018-12-19 21:58:33 +01:00
gwenn
9381e5a11b
Merge pull request #449 from gwenn/catch_unwind
Callbacks must not be able to unwind into sqlite code
2018-12-16 18:10:55 +01:00
gwenn
c926a8a850
Merge pull request #448 from gwenn/i128
Fix compilation error with `functions` and `i128` features
2018-12-16 17:55:48 +01:00
gwenn
5c7104c12f Improve doc 2018-12-16 11:55:04 +01:00
gwenn
e0db3d16dd Introduce OptionalExtension
Like in Diesel.
2018-12-16 11:15:21 +01:00
gwenn
bd9b850c43 Callbacks must not be able to unwind into sqlite code 2018-12-16 09:40:14 +01:00
gwenn
9dfc56811b Fix compilation error with functions and i128 features 2018-12-16 08:19:54 +01:00
gwenn
75c0fe349a Add xShadowName only if bundled or vtab_v3 activated 2018-12-15 11:53:41 +01:00
gwenn
287e2f5dbc Fix vtab modules
`xShadowName` added
2018-12-15 10:51:02 +01:00
gwenn
d874180333 Rust 2018 idioms 2018-12-07 21:57:04 +01:00