Commit Graph

221 Commits

Author SHA1 Message Date
Gwenael Treguier
6f0f121d61 Merge remote-tracking branch 'remotes/jgallagher/master' into blob 2015-12-13 10:53:29 +01:00
John Gallagher
6bcc3edccd BREAKING CHANGE: Remove common prefix on TransactionBehavior case names. 2015-12-12 14:22:50 -05:00
John Gallagher
b1cde705be Rename SqliteLoadExtensionGuard -> LoadExtensionGuard. 2015-12-12 14:20:11 -05:00
John Gallagher
3d15a8a15c Rename SqliteTransaction* -> Transaction*. 2015-12-12 14:17:43 -05:00
John Gallagher
9cac56d6a2 Rename SqliteOpenFlags -> OpenFlags. 2015-12-12 14:13:29 -05:00
John Gallagher
ea5cb41bbf Rename SqliteRow -> Row. 2015-12-12 14:11:24 -05:00
John Gallagher
b932640181 Rename SqliteRows -> Rows. 2015-12-12 14:09:37 -05:00
John Gallagher
ec654352d9 Rename SqliteStatement -> Statement. 2015-12-12 14:08:04 -05:00
John Gallagher
eb60bb3111 Rename SqliteResult -> Result. 2015-12-12 14:06:03 -05:00
John Gallagher
f0b6bf9152 Rename SqliteError -> Error. 2015-12-12 13:53:58 -05:00
John Gallagher
4327a84edb Rename SqliteConnection -> Connection.
Leave old name in as a (deprecated) typealias.
2015-12-12 13:53:34 -05:00
John Gallagher
4830b0a648 Add unit test for function with variable number of arguments 2015-12-12 10:44:08 -05:00
John Gallagher
5039e57637 Merge branch 'master' into gwenn-functions
Conflicts:
	Changelog.md
2015-12-11 19:21:39 -05:00
John Gallagher
5fdb2e1fda Allow named parameters to be omitted.
If the parameters have never been bound, they default to `NULL`. If they
have previously been bound, they keep the existing value.
2015-12-11 16:36:49 -05:00
John Gallagher
3bcde498bd Expand comments. 2015-12-11 16:27:39 -05:00
John Gallagher
ecef092303 Add remove_function to clear a user-defined function. 2015-12-11 15:47:52 -05:00
John Gallagher
3baf7b10f8 Add unit test demonstrating a closure-based UDF. 2015-12-11 15:35:59 -05:00
John Gallagher
3913e89f94 Allow user scalar functions to return results.
This removes the need for scalar functions to have direct access to the
context (in order to set the return value).
2015-12-11 15:08:40 -05:00
John Gallagher
81ec7fe7cd Add get to function::Context.
This allows user-defined functions to now only accept a `Context`, as it
embeds the arguments inside itself.
2015-12-11 14:46:28 -05:00
John Gallagher
94d40c41c7 Introduce Context wrapper for user-defined functions.
This commit adds get/set auxilliary data for arguments; more to come.
2015-12-11 13:54:08 -05:00
John Gallagher
29494f46f6 Let create_scalar_function take an FnMut instead of a extern "C" fn. 2015-12-11 12:01:05 -05:00
John Gallagher
aae431760e rustfmt - no code changes 2015-12-11 11:41:40 -05:00
John Gallagher
0c3575e845 Fix segfault in regexp user function test 2015-12-11 11:40:53 -05:00
John Gallagher
9f5f4ac385 Merge branch 'functions' of https://github.com/gwenn/rusqlite into gwenn-functions
Conflicts:
	Cargo.toml
	src/lib.rs
2015-12-11 11:31:25 -05:00
John Gallagher
599e30f372 Rename bind_named_parameters -> bind_parameters_named. 2015-12-10 20:49:47 -05:00
John Gallagher
0051ff47a6 Refactor: Extract match to get an expected row into its own method. 2015-12-10 20:48:38 -05:00
John Gallagher
b7468b2c4b Make parameter_index return a Result<Option<_>> instead of squashing
string conversion errors into None.
2015-12-10 20:41:31 -05:00
John Gallagher
186cb5893b Rename query_named_row -> query_row_named.
I think this is more consistent with Rust's tendency to group similar
methods like `iter`, `iter_mut` by appending the difference as a suffix.
2015-12-10 20:31:07 -05:00
John Gallagher
8d4b3e6a31 Remove commented-out code 2015-12-10 20:30:43 -05:00
John Gallagher
21528452d7 Clean up comments on named parameter methods 2015-12-10 20:30:05 -05:00
John Gallagher
7338f23d4b Add extra assertions around binding named parameters 2015-12-10 20:27:09 -05:00
John Gallagher
2f220161a5 Add extra check to named-parameter insertion unit test 2015-12-10 20:16:46 -05:00
John Gallagher
ab6ab3b2e9 Run rustfmt on named_params.rs 2015-12-10 17:01:19 -05:00
John Gallagher
53979407c5 Merge branch 'named-param' of https://github.com/gwenn/rusqlite into gwenn-named-param
Conflicts:
	Cargo.toml
	src/lib.rs
2015-12-10 16:53:43 -05:00
John Gallagher
a1f1480b18 Run rustfmt on all crate files 2015-12-10 16:48:09 -05:00
John Gallagher
49951ca3be Add backup and restore methods to SqliteConnection (behind backup Cargo feature) 2015-12-10 16:20:46 -05:00
John Gallagher
3781b8f47f rustfmt backup.rs 2015-12-10 16:20:46 -05:00
John Gallagher
8c2e0a0da7 Rename BackupName -> DatabaseName 2015-12-10 16:20:45 -05:00
John Gallagher
5ebbf5a1a2 Use &str instead of String inside BackupName 2015-12-09 00:48:40 -05:00
John Gallagher
e2f8e73635 Initial implementation of the online backup API. 2015-12-09 00:19:59 -05:00
John Gallagher
51a542c0f7 Fix broken load_extension feature 2015-12-08 21:15:23 -05:00
Gwenael Treguier
fe6afe2a94 Merge branch 'master' of https://github.com/jgallagher/rusqlite into functions 2015-12-06 21:33:21 +01:00
Gwenael Treguier
da69584b9f Add Example and Failure documentation 2015-12-05 13:43:03 +01:00
Gwenael Treguier
5b86871d76 Merge branch 'master' of https://github.com/jgallagher/rusqlite into named-param 2015-12-05 12:32:16 +01:00
Gwenael Treguier
2cf0455f8d Add Failure documentation 2015-12-05 11:28:33 +01:00
Gwenael Treguier
cef1d3285e Merge branch 'master' of https://github.com/jgallagher/rusqlite into blob 2015-12-05 11:11:23 +01:00
John Gallagher
ac08a18c43 Merge pull request #86 from jgallagher/gwenn-trace_extension
Add Rust interface to SQLite's logging, tracing, and profiling hooks
2015-12-01 13:19:43 -05:00
John Gallagher
3d654aeed1 Add more documentation for failure modes of functions that return s 2015-12-01 12:05:29 -05:00
John Gallagher
1af3fcd053 Fix error messages when failing to convert paths and strings to C-compatible versions 2015-12-01 11:47:55 -05:00
John Gallagher
49cb1efe62 Merge branch 'master' into gwenn-trace_extension 2015-12-01 11:13:23 -05:00
John Gallagher
635616842c Remove 'static requirement on output of closure given to query_map and query_and_then.
The 'static bound was there to prevent callers from being able to save
off the `SqliteRow` handles passed into the closure. This PR changes the
closure to take `&SqliteRow`s instead, which provides the same feature
without restricting the output of the closure.
2015-12-01 10:58:32 -05:00
John Gallagher
e6fef5107d Change profile() to take a Rust fn instead of an extern "C" fn. 2015-12-01 10:34:18 -05:00
John Gallagher
ace5b1ebdc Change trace() to take a Rust fn instead of an extern "C" fn. 2015-11-30 21:08:39 -05:00
John Gallagher
dbfa6ca31f Change config_log to take a Rust fn instead of an extern "C" fn.
Moves the unit test for config_log out of #[ignore] and into its own
test file since it affects the entire process.
2015-11-30 21:08:39 -05:00
John Gallagher
eaf080261b Merge branch 'trace_extension' of https://github.com/gwenn/rusqlite into gwenn-trace_extension 2015-11-30 13:13:43 -05:00
Gwenael Treguier
0729e195c3 Use debug_struct for formatting. 2015-11-30 12:16:09 -05:00
Gwenael Treguier
20c1213482 Remove feature duration. 2015-11-11 15:03:07 +01:00
Gwenael Treguier
a2327fb048 Revert "Remove usage of unstable library feature 'duration'"
This reverts commit 9c415f9c9e.
2015-11-11 15:00:39 +01:00
Gwenael Treguier
ddd976c158 Cleanup use statements. 2015-11-11 14:39:54 +01:00
Gwenael Treguier
db7345624f Merge remote-tracking branch 'jgallagher/master' into named-param 2015-11-11 14:39:15 +01:00
Gwenael Treguier
50bfba1e1d Ignore test_log. 2015-11-11 14:29:40 +01:00
Gwenael Treguier
8bff40b6d6 Merge remote-tracking branch 'jgallagher/master' into trace_extension 2015-11-11 14:28:21 +01:00
John Gallagher
420c4d4d9f Address RFC 1214 warning 2015-11-03 11:27:52 -05:00
John Gallagher
b1350c4c14 Merge branch 'master' into gwenn-reset_asap 2015-09-22 10:16:52 -07:00
John Gallagher
d23667870e Merge pull request #70 from jgallagher/pfernie-master
Replace get_opt with get_checked. Add query_and_then and query_row_and_then.
2015-09-21 10:38:07 -04:00
John Gallagher
7ee69fe103 Remove get_opt (superceded by get_checked). 2015-09-21 10:31:11 -04:00
John Gallagher
1918dc14d0 Add tests for query_row_and_then(). 2015-09-20 21:30:40 -04:00
John Gallagher
072a336b33 Refactor: Reduce duplication across query_and_then tests. 2015-09-20 21:28:50 -04:00
John Gallagher
0cbb2743e3 Merge branch 'master' of https://github.com/pfernie/rusqlite into pfernie-master 2015-09-20 21:07:39 -04:00
John Gallagher
59a3b0ddb5 Merge pull request #62 from gwenn/too-big
Check Rust str length before binding.
2015-09-20 20:57:28 -04:00
John Gallagher
d07c7ec8a6 Add basic unit test of statement debug including SQL 2015-09-20 20:44:51 -04:00
gwenn
05669082a3 Debug db path and stmt sql. 2015-09-20 20:41:13 -04:00
John Gallagher
43b0c1c98a Merge branch 'reset_asap' of https://github.com/gwenn/rusqlite into gwenn-reset_asap 2015-09-20 20:30:59 -04:00
John Gallagher
36f577aea6 Merge pull request #53 from gwenn/exec_check
Extra check in SqliteStatement.execute
2015-09-20 20:29:12 -04:00
Huon Wilson
b7efb37b35 Relax uses of P: AsRef<...> from &P to P.
This means that one can pass `AsRef` types directly, without having to
insert a `&`, e.g. `SqliteConnection::open("foo.db")` (new)
vs. `SqliteConnection::open(&"foo.db")` (old).

This should be backwards compatible, since there is an impl in the
standard library:

    impl<'a, T, U> AsRef<U> for &'a T where U: ?Sized, T: AsRef<U> + ?Sized

I.e. the old `&P` satisfies the new bound still. (Taking `P` directly is
what the standard library does with similar functions, like
`File::open`.)
2015-09-08 18:11:50 +10:00
Patrick Fernie
e4eda2041e Implement SqliteConnection::query_row_and_then() 2015-08-27 14:47:48 -04:00
Patrick Fernie
29072e585b Implement SqliteStatement::query_and_then()
Allows for more ergonomic unification of error types
2015-08-27 13:43:43 -04:00
Patrick Fernie
e1532f5edf Correct idx-checking behavior for SqliteRow::get_checked() 2015-08-27 10:44:24 -04:00
Gwenael Treguier
b9ab3350ea Add regexp() function implementation 2015-08-09 13:06:23 +02:00
Gwenael Treguier
0a454eed79 Add support to user defined scalar functions 2015-08-09 09:52:53 +02:00
Gwenael Treguier
eb7f670ce1 Make named_params module private 2015-08-08 16:19:05 +02:00
Gwenael Treguier
3b830b4bce Add documentation 2015-08-08 16:11:31 +02:00
Gwenael Treguier
59a4c5593a Improve documentation. 2015-08-08 09:57:07 +02:00
Gwenael Treguier
d1f5ce2435 Check when buffer is too long. 2015-08-08 09:39:35 +02:00
Gwenael Treguier
6bc1a8bb59 Check when statement is too long. 2015-08-08 09:30:50 +02:00
Gwenael Treguier
3b673a74b2 Add SqliteConnection.execute_named,query_named_row. 2015-08-07 02:19:57 +02:00
Gwenael Treguier
9c63b9f37a Check Rust blob length before binding. 2015-08-06 21:45:54 +02:00
Gwenael Treguier
7b8051dc7e Check Rust str length before binding. 2015-08-06 21:15:30 +02:00
Gwenael Treguier
7ff9d4056b Add SqliteStatement.named_query. 2015-08-05 22:07:49 +02:00
Gwenael Treguier
e81757e86d Add Stmt::named_execute and Stmt::parameter_index. 2015-08-04 21:48:54 +02:00
Gwenael Treguier
8bb624cccc Factorize code 2015-08-04 18:52:57 +02:00
Gwenael Treguier
9c415f9c9e Remove usage of unstable library feature 'duration' 2015-08-02 12:16:01 +02:00
gwenn
ef254fdca0 Rename feature to 'trace' 2015-08-01 18:58:04 +02:00
gwenn
1bf12f8150 Feature blob IO. 2015-08-01 18:51:02 +02:00
gwenn
4a7e83f0af Feature sqlite3_{log,trace,profile}. 2015-08-01 17:21:41 +02:00
gwenn
4fa6d3c020 Reset as soon as possible. 2015-08-01 10:18:06 +02:00
gwenn
f91db1b350 Cache column_count (I am not sure it's worth it) 2015-08-01 10:08:28 +02:00
gwenn
c31c68d5e3 Only check column count when DONE. 2015-08-01 09:11:31 +02:00
gwenn
1dc144c8c1 Add test_execute_select. 2015-08-01 08:09:59 +02:00
John Gallagher
e7eb6454d9 Merge pull request #51 from Yuhta/colnames
Add column_names to SqliteStatement
2015-07-26 13:55:15 -04:00