Commit Graph

720 Commits

Author SHA1 Message Date
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
gwenn
dc49b28520 Fix some clippy warnings 2018-12-06 19:00:55 +01:00
gwenn
626118ce07 Merge remote-tracking branch 'jgallagher/master' into 2018 2018-12-06 18:50:21 +01:00
gwenn
000566811f Clippy 2018-11-22 16:53:44 +01:00
gwenn
2b8eee2b83 Fix Timespec FromSql implementations (#431)
Make sure SQLite built-in CURRENT_TIMESTAMP output is
supported.
2018-11-22 16:50:10 +01:00
gwenn
3a178d6d17 Check chrono FromSql implementations
Make sure SQLite built-in CURRENT_DATE/TIME/TIMESTAMP output is
supported.
2018-11-22 16:43:19 +01:00
gwenn
bcaa929748 Merge remote-tracking branch 'jgallagher/master' into 2018
# Conflicts:
#	src/lib.rs
#	src/statement.rs
2018-11-05 20:04:04 +01:00
gwenn
ccf52b2daa Replace try! by ? 2018-11-05 19:09:41 +01:00
gwenn
d44203116a
Merge pull request #426 from gwenn/deprecated
Remove deprecated stuff
2018-11-01 11:05:40 +01:00
gwenn
2357acd79e Remove deprecated stuff 2018-11-01 10:30:18 +01:00
gwenn
e7d3920579 Scoped lints are experimental 2018-11-01 09:56:38 +01:00
gwenn
495f1d529a Clippy 2018-11-01 09:40:56 +01:00
gwenn
1262238229 Rustfmt 2018-10-30 20:15:19 +01:00
gwenn
f04047db01 Rust 2018 2018-10-30 20:15:08 +01:00
gwenn
47d3ac7027 Try to fix test_interrupt #415
Use a scalar function to make sure the interrupt is performed
while the statement is running.
2018-10-28 09:54:30 +01:00
gwenn
1598d4bc30 Rustfmt 2018-10-28 08:51:02 +01:00
gwenn
0d08bf5e05
Merge pull request #411 from thomcc/i128_blob
Add a feature for storing i128 as blobs.
2018-10-19 21:49:09 +02:00
Thom Chiovoloni
3d82f7199a Allow getting a ValueRef out of Row and Context, fixes #259 2018-10-18 12:14:38 -07:00
Joe
e109554819
Remove version check when bundled 2018-10-16 01:30:35 +00:00
Thom Chiovoloni
572471c40f Add a feature for storing i128 as blobs.
This is behind the `i128_blob` feature.

Blobs are stored as 16 byte big-endian values, with their most significant bit
flipped. This is so that sorting, comparison, etc all work properly, even with
negative numbers. This also allows the representation to be stable across
different computers.

It's possible that the `FromSql` implementation should handle the case that the
real value is stored in an integer. I didn't do this, but would be willing to
make the change. I don't think we should store them this way though, since I
don't think users would be able to sort/compare them sanely.

Support for `u128` is not implemented, as comparison with i128 values would work
strangely. This also is consistent with `u64` not being allowed, not that I
think that would be reason enough on it's own.

The `byteorder` crate is used if this feature is flipped, as it's quite small
and implements things more or less optimally. If/when `i128::{to,from}_be_bytes`
gets stabilized (https://github.com/rust-lang/rust/issues/52963), we should
probably use that instead.
2018-10-08 12:22:28 -07:00
gwenn
7176be2d6d
Merge pull request #408 from thomcc/interrupt_handle
Add a method of interrupting a query executing on a separate thread, fixes #407
2018-10-08 18:37:30 +02:00
Thom Chiovoloni
b4565f565a Add a method of interrupting a query executing on a separate thread, fixes #407 2018-09-26 13:42:30 -07:00
gwenn
e7e03c3443 Introduce NO_PARAMS constant
As suggested here:
https://users.rust-lang.org/t/sql-parameter-values/20469/2
2018-09-16 11:10:19 +02:00
gwenn
c4ae541eac Take IntoIterator rather than &[&ToSql] (#312) 2018-09-16 09:49:23 +02:00
gwenn
70b59f9c2c Impossible to execute a pragma in 0.14.0 #400
sqlite3_stmt_readonly does not work for PRAGMA.
2018-09-12 22:16:22 +02:00
gwenn
b38fe372b6 [ci skip] fix doc 2018-09-08 11:10:08 +02:00
gwenn
d6b6058849
[ci skip] Fix Transaction doc 2018-09-05 18:08:39 +02:00
gwenn
5e9c7bac4e Rustfmt 2018-08-16 18:29:46 +02:00
gwenn
8c6ce46c17 Make sure scalar functions and hooks outlive the connection 2018-08-15 20:04:01 +02:00
gwenn
4770060396 Make sure scalar functions and hooks are Sendable 2018-08-15 18:30:18 +02:00
gwenn
ec53f19be1 Backup progress callback can be Fn. 2018-08-15 18:00:58 +02:00
gwenn
0ccf98d214 Merge remote-tracking branch 'jgallagher/master' into vtab 2018-08-11 13:37:56 +02:00
gwenn
c925d1aa97 Rustfmt 2018-08-11 12:48:21 +02:00
gwenn
57df0ac3d5
Merge pull request #378 from gwenn/callback
Fix hooks
2018-08-11 12:02:45 +02:00
gwenn
2a29717c5a Fix hooks 2018-08-11 11:14:17 +02:00
gwenn
4c3fa7bd53 Add binding to sqlite3_expanded_sql 2018-08-10 20:52:11 +02:00
gwenn
31de0187a2 Return an InvalidQuery error when SQL is not read only 2018-08-10 20:48:13 +02:00
gwenn
40ef85c2af Fix array module 2018-08-07 19:58:26 +02:00
gwenn
87a0c3abca Merge remote-tracking branch 'jgallagher/master' into callback 2018-08-05 19:51:16 +02:00
gwenn
e8dc412af1 [ci skip] Make test_array_module fails without sanitizer 2018-08-05 16:56:30 +02:00
gwenn
3aca24792c Merge remote-tracking branch 'jgallagher/master' into vtab 2018-08-05 13:26:45 +02:00
gwenn
cea8e5cea2 [ci skip] Array module is buggy
AddressSanitizer: heap-use-after-free on address
2018-08-05 13:22:04 +02:00
gwenn
15ab96bceb [ci skip] Ignore unstable busy tests by default 2018-08-05 11:39:46 +02:00
gwenn
437f7dab42 Refactor hooks 2018-08-05 10:58:00 +02:00
gwenn
7310cac6f5 Use pub(crate) 2018-07-31 22:17:17 +02:00
gwenn
a5403eb05f Replace PRAGMA call by Rust busy_timeout function 2018-07-28 17:04:10 +02:00
gwenn
73ebce5f98 Add binding to sqlite3_busy_timeout and sqlite3_busy_handler. 2018-07-28 17:04:10 +02:00
gwenn
fc37b324b8 Merge remote-tracking branch 'jgallagher/master' into vtab 2018-07-28 16:56:21 +02:00
gwenn
9ecb1eef55
Merge pull request #369 from gwenn/busy
Add binding to sqlite3_busy_timeout and sqlite3_busy_handler.
2018-07-28 16:39:38 +02:00
gwenn
5e1e805b4f Use sqlite3_get_autocommit instead of our own flag/status 2018-07-28 16:04:42 +02:00
gwenn
18953a8798
Merge pull request #367 from kornelski/master
Roll back uncommitable transactions
2018-07-28 15:39:45 +02:00
Kornel
b075592147 Test transaction recovery from sqlite busy error 2018-07-28 12:58:05 +01:00
gwenn
558104de4d Add binding to sqlite3_busy_timeout and sqlite3_busy_handler. 2018-07-28 12:10:57 +02:00
gwenn
5351d88bc0 Cow<str> now implements ToSql. 2018-07-28 08:01:24 +02:00
Kornel
2487b18db0 Avoid keeping transactions unexpectedly open
If transaction can't be automatically committed, roll it back to prevent transaction staying open past the lifetime of the Transaction object

Fixes #366
2018-07-27 17:18:47 +01:00
Kornel
1e29cf4a0f Mark self.committed only after command succeeds
Fixes #366
2018-07-27 17:18:39 +01:00
gwenn
ce9d325ba0 Remove Table associated type in VTabCursor trait 2018-07-22 10:02:59 +02:00
gwenn
b82a155429 Introduces CreateVTab for non-eponymous VTab 2018-07-22 09:51:06 +02:00
gwenn
b93b005604 Add some TODOs 2018-07-17 21:06:08 +02:00
gwenn
669663304e Refactoring
Introduce VTab::destroy.
Let implementation specify the iVersion.
Rename simple_module into read_only_module.
2018-07-16 20:17:53 +02:00
gwenn
849dbda5e8 Remove direct dependency on libsqlite3_sys 2018-07-15 16:15:55 +02:00
gwenn
fe64d51422 Doc 2018-07-15 10:19:18 +02:00
gwenn
45624dc60b Clean up 2018-07-14 19:27:45 +02:00
gwenn
ed1bdc0e68 Rustfmt 2018-07-14 19:21:03 +02:00
gwenn
0c371834aa Remove vtab() function from VTabCursor trait 2018-07-14 19:10:28 +02:00
gwenn
e2df03f474 Remove macros 2018-07-14 18:47:52 +02:00
gwenn
823f3c96aa Ensure Virtual tables can be declared outside rusqlite crate
Not sure it is the way to go.
2018-07-14 11:01:19 +02:00
gwenn
ce39b9a3c0 Introduce VTabConnection and OrderBy 2018-07-09 18:53:52 +02:00
gwenn
ce0c9a6344 Fix clippy warnings 2018-06-28 21:07:05 +02:00
gwenn
3b0423353d Merge remote-tracking branch 'jgallagher/master' into vtab 2018-06-28 21:01:53 +02:00
gwenn
bb6fa61e68 Merge remote-tracking branch 'jgallagher/master' into vtab 2018-06-28 20:54:32 +02:00
gwenn
2ea17d0b54 Fix clippy warnings
Calling OpenFlags::default() is more clear than this expression
2018-06-28 20:46:28 +02:00
gwenn
6463db906d Make connect/create return a tuple 2018-06-22 17:20:47 +02:00
gwenn
861e8edb96 Move declare_vtab into Module trait 2018-06-20 20:29:55 +02:00
gwenn
eaee342025 Make connect/create/declare_vtab safe 2018-06-20 20:21:26 +02:00
gwenn
afeb5d4d47 Introduce Module trait to make create_module type safe 2018-06-20 20:01:38 +02:00
gwenn
2a684384fd Fix clippy warning 2018-06-20 19:12:02 +02:00
gwenn
9c7a5583b9 Fix some clippy warnings
* Rows cannot implement iterator
* DatabaseName is passed by value => Copy ?
2018-06-20 19:07:23 +02:00
gwenn
b135c6d871 Minalist check that there is no memory leak. 2018-06-11 21:39:08 +02:00