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
77cb50e000
Check that only one statement is provided ( #397 )
...
Connection.execute
Connection.execute_named
Connection.quer_row
Connection.quer_row_named
2018-10-28 10:29:34 +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 Send
able
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
gwenn
e040dc9e1f
Remove int_array module
...
Replaced by array module.
2018-06-11 21:33:54 +02:00
gwenn
1a1d41b4e4
Carray module ported to Rust
2018-06-11 21:30:55 +02:00
gwenn
9a96e3a494
Reduce visibility of unsafe methods
2018-06-11 19:51:13 +02:00
gwenn
b8594a0f83
Fix regressions
2018-06-10 19:21:55 +02:00
gwenn
d72c4582d9
Merge remote-tracking branch 'jgallagher/master' into vtab
2018-06-10 19:16:20 +02:00
gwenn
e1ba89c310
Merge remote-tracking branch 'jgallagher/master' into vtab
2018-06-10 18:49:40 +02:00
gwenn
fa64a4d0bf
Draft for carray module in Rust
...
Incomplete support for sqlite3_bind_pointer.
Make Context::set_result return a Result.
Add Values::get_array.
2018-06-10 18:29:38 +02:00
gwenn
0d0a7bf81f
Replace row changes/count type (i32) with usize
...
Breaking change
2018-05-23 21:23:28 +02:00
gwenn
c6f4ae632a
Replace column index/count type (i32) with usize
...
Breaking change
2018-05-23 21:04:13 +02:00
gwenn
5c44ed79d3
Fix tests
2018-05-23 20:18:18 +02:00
gwenn
b89b574f81
csvtab: use columns
when specified
2018-05-14 19:23:17 +02:00
gwenn
b60ffe1940
Sync series with original impl
2018-05-13 19:49:11 +02:00
gwenn
88a7ed5812
Fix clippy warnings
2018-05-13 19:16:12 +02:00
gwenn
370740b17f
Oops
2018-05-13 13:03:05 +02:00
gwenn
33b1b19d92
Upgrade to csv 1.0
2018-05-13 12:21:58 +02:00
gwenn
6cbeb6ef59
Introduce context module
...
To make `set_result` and `report_error` in functions module
visible to vtab module.
2018-05-13 11:44:31 +02:00
gwenn
6855b5052d
Ensure connection can be safely returned to a pool ( #353 )
...
* Add binding to sqlite3_get_autocommit.
* Add binding to sqlite3_stmt_busy.
* Disable test_is_busy by default
2018-05-12 18:35:08 +02:00
gwenn
f4beb18904
Merge remote-tracking branch 'jgallagher/master' into vtab
2018-05-12 15:31:16 +02:00
gwenn
89f38b4098
Merge pull request #352 from jgallagher/fix-coherence-issue
...
merge coherence issue fix
2018-05-12 10:30:57 +02:00
gwenn
58b8b4c95d
Introduce Aux associated type
2018-05-06 18:05:02 +02:00
gwenn
2e2b5c41f4
Rustfmt
2018-05-06 17:21:36 +02:00
gwenn
8e6ea05efa
Use associated types instead of generics
2018-05-06 17:19:19 +02:00
gwenn
10ba0514e6
Change arguments parsing of CSV module
2018-05-06 12:41:42 +02:00
gwenn
5fa3810a4b
Fix Clippy warnings
2018-05-06 08:45:56 +02:00
gwenn
1e3dc542a4
Merge remote-tracking branch 'jgallagher/master' into vtab
2018-05-06 08:00:12 +02:00
gwenn
702e58f744
Fix non-eponymous virtual table declaration
...
Ensure that xCreate is different from xConnect for non-eponymous
virtual tables (even when the implementation is the same).
2018-05-05 10:33:05 +02:00
gwenn
88f2f3e4bd
Merge pull request #350 from jgallagher/clippy
...
Fix clippy warnings
2018-05-04 20:44:34 +02:00
gwenn
994d40da26
Fix clippy warnings
2018-05-04 19:55:55 +02:00
gwenn
403e840c4a
Fix clippy warnings
2018-05-04 19:05:48 +02:00
gwenn
b0e22fc372
Wait in a loop
2018-05-04 18:07:11 +02:00
gwenn
fee4bfcc86
Merge remote-tracking branch 'jgallagher/master' into unlock-notify
2018-05-04 18:06:41 +02:00
gwenn
30e23cf0a0
Fix features dependencies
2018-04-30 22:09:41 +02:00
gwenn
9c5c9e3c7e
Merge remote-tracking branch 'jgallagher/master' into vtab
2018-04-30 22:02:14 +02:00
gwenn
83775ee62d
Remove second field from RawStatement
...
Use sqlite3_db_handle instead
2018-04-03 20:18:51 +02:00
gwenn
7f6d7f3346
Merge pull request #319 from traviscross/fix/datetime-format-rfc3339
...
Fix date/time format for SQLite, use RFC 3339
2018-04-03 19:45:44 +02:00
gwenn
a0151f9073
Introduce is_locked
2018-03-31 10:22:19 +02:00
gwenn
cccdf9735f
Factorize check on code returned by prepare/step.
2018-03-27 21:49:09 +02:00
gwenn
78511d6257
Merge pull request #334 from gwenn/stmt-cache
...
Fix statement cache
2018-03-27 21:26:42 +02:00
gwenn
50d379b564
Make Statement::column_index case insensitive
...
Fix #330
2018-03-27 20:07:46 +02:00
gwenn
83c8db2d21
Fix Connection::open documentation ( #332 )
2018-03-24 10:58:42 +01:00
gwenn
d962ebab55
Merge pull request #325 from rnewman/rnewman/panic
...
Add DropBehavior::Panic to enforce intentional commit or rollback.
2018-03-24 10:29:02 +01:00
gwenn
c612a44207
Fix errors relative to OpenFlags
...
Also handle extended error codes.
2018-03-24 10:15:10 +01:00
gwenn
5fd76aa54b
Unlock notification
...
Test added
2018-03-24 08:06:30 +01:00
gwenn
154a70d41b
WIP: Unlock Notification
...
To be tested
2018-03-24 08:06:30 +01:00
gwenn
455e7d4060
WIP: Unlock Notification
...
To do: unlock_notify_cb
2018-03-24 08:06:30 +01:00
gwenn
5d91fb088f
Unlock notification
2018-03-24 08:03:21 +01:00
gwenn
0b85c5a1f2
Merge pull request #266 from gwenn/hooks
...
Implementation of sqlite3_update_hook #260
2018-03-24 07:33:29 +01:00
gwenn
718b985d86
Merge pull request #338 from gwenn/future-compatibility
...
Fix tyvar_behind_raw_pointer warnings
2018-03-24 03:14:16 +01:00
gwenn
d2a71a1352
Improve error message when we can't open a database
...
Ensure the error message contains the database path
2018-03-10 19:17:22 +01:00
gwenn
3b5e224f82
Fix tyvar_behind_raw_pointer warnings
2018-03-10 18:07:30 +01:00
gwenn
db87de4086
Inline csv dependency
2018-03-10 17:05:22 +01:00
gwenn
96e5cf2239
Fix statement cache
...
SQLite ignores the SQL tail (whitespaces, comments).
We can easily ignore whitespaces by trimming the SQL.
2018-02-17 10:28:20 +01:00
gwenn
4357471197
Fix build errors related to bitflags
2018-01-27 10:32:58 +01:00
gwenn
3aaab1e36f
Merge remote-tracking branch 'remotes/jgallagher/master' into vtab
2018-01-20 12:29:07 +01:00
gwenn
96103b0662
Merge remote-tracking branch 'jgallagher/master' into hooks
2018-01-20 10:08:40 +01:00
Richard Newman
2a03c1ad4d
Add DropBehavior::Panic to enforce intentional commit or rollback.
2018-01-11 16:52:32 -08:00
Travis Cross
7e280d4e64
Add comment to justify &mut Connection
in Transaction
...
The `Transaction` implementation never actually mutates the
`Connection` reference we give it. In fact, the `Transaction`
structure itself only requires an immutable connection. So it can be
surprising to readers that the constructor requires a `&mut
Connection`. We do this so as to prevent at compile-time nested or
concurrent transactions on the same connection as these are not
allowed by SQLite.
In this commit, we add a comment explaining this nuance.
2017-12-31 10:30:23 +00:00
Travis Cross
5d8a840b5d
Fix date/time format for SQLite, use RFC 3339
...
We implement `ToSql` and `FromSql` for `time::Timespec` values. Our
documentation indicates that we store the value in the same format
used by SQLite's built-in date/time functions, but this was not
correct.
We were using the format:
%Y-%m-%d %H:%M:%S:%f %Z
This format cannot be interpreted at all by SQLite's built-in
date/time functions. There are three reasons for this:
- SQLite supports only two timezone formats: `[+-]HH:MM` and the
literal character `Z` (indicating UTC)
- SQLite does not support a space before the timezone indicator
- SQLite supports a period (`.`) between the seconds field and the
fractional seconds field, but not a colon (`:`)
SQLite does support the RFC 3339 date/time format, which is standard
in many other places. As we're always storing a UTC value, we'll
simply use a trailing `Z` to indicate the timezone, as allowed by RFC
3339. The new format is:
%Y-%m-%dT%H:%M:%S.%fZ
To avoid breaking applications using databases with values in the old
format, we'll continue to support it as a fallback for `FromSql`.
[1] https://www.sqlite.org/lang_datefunc.html
[2] https://tools.ietf.org/html/rfc3339
2017-12-24 22:15:31 +00:00
John Gallagher
aa64e2fb33
Remove potentially conflicting impl of ToSqlOutput.
...
Replace with manual implementations of all the types we provided impls
for before.
2017-12-05 19:40:09 -05:00
John Gallagher
4bfbb5f1fe
Fix handful of clippy warnings.
2017-11-17 11:37:23 -07:00
John Gallagher
5f800eb285
Merge pull request #306 from jgallagher/twistedfall-master
...
Export RowIndex trait to allow external code to be generic over what can index be
2017-11-13 11:33:12 -07:00
John Gallagher
ccf9e6fe6c
Merge branch 'master' of https://github.com/twistedfall/rusqlite into twistedfall-master
2017-11-13 08:30:29 -07:00
John Gallagher
6b81979eea
Merge branch 'master' of https://github.com/lgarczyn/rusqlite into lgarczyn-master
2017-11-13 08:27:33 -07:00
John Gallagher
217e12fcee
Merge pull request #304 from jgallagher/gwenn-clippy
...
Fix some clippy warnings
2017-11-13 08:23:52 -07:00
John Gallagher
498faac4db
Merge branch 'clippy' of https://github.com/gwenn/rusqlite into gwenn-clippy
2017-11-12 16:27:42 -07:00
John Gallagher
d000aa52d7
Merge branch 'flush_prepared_cached' of https://github.com/edelangh/rusqlite into edelangh-flush_prepared_cached
2017-11-12 16:23:59 -07:00
John Gallagher
4852d826c8
Merge branch 'update-deps' of https://github.com/oherrala/rusqlite into oherrala-update-deps
2017-11-12 15:07:31 -07:00
John Gallagher
08228ec7c6
Merge pull request #283 from king6cong/master
...
code indent
2017-11-12 15:03:31 -07:00
John Gallagher
b5f57c14c5
Merge pull request #276 from cactorium/master
...
Add Other variant for the Error type
2017-11-12 15:02:41 -07:00
Ossi Herrala
28d58529b7
Update dependencies
...
* Gcc crate has been renamed to cc.
* Chrono::UTC has been renamed to Chrono::Utc.
* bitflags 1.0 uses associated constants. So prefix OpenFlags.
2017-10-09 23:25:40 +03:00
Pro
c08ee8be82
Export RowIndex trait to allow external code to be generic over what can index be
2017-09-20 15:34:06 +02:00
gwenn
c842e789bd
Merge remote-tracking branch 'jgallagher/master' into vtab
2017-09-11 19:45:22 +02:00
edelangh
ab643c90ce
review panic in InnerConnection.drop
2017-09-06 16:50:21 +02:00
gwenn
148dc0baf0
Fix more clippy warnings
2017-08-18 21:26:44 +02:00
edelangh
0d1907887e
add cfg for test
2017-07-20 16:40:24 +02:00
gwenn
f7c1a8e7b8
Fix some clippy warnings
2017-07-19 21:26:39 +02:00
edelangh
bdd4f9a1a9
Added drop for Connection to prevent fd leak
...
Added call to flush_prepared_statement_cache
otherwise InnerConnection receives DatabaseBusy on sqlite3_close
2017-07-19 12:22:31 +02:00
louis
301634add7
fixed timezone issue
2017-07-18 09:56:02 -06:00
louis
6188a6a97c
added more tests
2017-07-18 17:46:49 +02:00
louis
8bc97972f8
fixed %F instead of %F:%s
2017-07-18 17:43:25 +02:00
louis
0a114c4436
Fixed loss of time information during string conversion
2017-07-11 17:15:07 +02:00
louis
0d001583b2
Fixed loss of time information during string conversion
2017-07-11 17:01:25 +02:00
king6cong
13a32e4004
code indent
2017-06-02 17:19:39 +08:00
Kelvin Ly
dde762bf0e
Rename Error::Other to Error::ToSqlConversionFailure
2017-05-30 19:22:14 -04:00
John Gallagher
20de96083a
Merge pull request #280 from jgallagher/to-sql-str-u8
...
Add ToSql impls for str and [u8].
2017-05-29 13:39:35 -04:00
John Gallagher
3827a835ef
Add ToSql impls for str and [u8].
2017-05-29 11:20:52 -04:00
John Gallagher
4623064f4d
Update to bitflags 0.9.
2017-05-29 10:52:19 -04:00
John Gallagher
6b360a11c2
Merge pull request #258 from gwenn/constants
...
Constants
2017-05-29 10:37:26 -04:00
Kelvin Ly
022f1e8671
Add Other variant for the Error type
2017-05-19 23:48:06 -04:00
gwenn
94670c0119
Rustfmt
2017-05-12 19:18:42 +02:00
gwenn
dfdd42fd09
Bind sqlite3_commit_hook and sqlite3_rollback_hook
2017-05-12 19:14:34 +02:00
gwenn
466b8aab2f
Rename row
parameter to row_id
2017-05-12 19:12:10 +02:00
gwenn
3e6fffaf94
Due to rust monophormisation, there is no need for double indirection
2017-04-27 18:05:12 +02:00
gwenn
63a444a95f
Fix memory leak and add test
2017-04-26 20:12:48 +02:00
gwenn
6eb98afd67
SQLITE_RECURSIVE is not available with SQLite 3.6.8
2017-04-25 21:08:41 +02:00
gwenn
3b575c3b4a
Implementation of sqlite3_update_hook #260
...
First draft (no tested and a memory leak)
2017-04-25 20:58:22 +02:00
gwenn
197d1161c3
Field estimatedRows is not available with SQLite 3.7.7
2017-04-21 21:50:38 +02:00
gwenn
1d684ae653
Merge remote-tracking branch 'jgallagher/master' into vtab
2017-04-21 20:01:04 +02:00
gwenn
9ea48db46f
Some open flags are not available in 3.6.8
2017-04-20 20:59:07 +02:00
Aidan Hobson Sayers
7bd969b8fd
Fix functions for empty blobs
...
Expands fix from #175
2017-04-16 16:49:28 +01:00
gwenn
08f96a678e
Rustfmt
2017-04-07 19:43:24 +02:00
gwenn
4e5b64fbca
Use constants generated by bindgen where possible
2017-04-07 19:36:31 +02:00
John Gallagher
401d1f81e1
Merge pull request #255 from jgallagher/fix-duplicated-constants
...
Avoid publicly exporting constants from libsqlite3-sys multiple times.
2017-04-05 14:31:31 -04:00
John Gallagher
549373f764
Fix incorrect ffi constant accesses.
2017-04-05 13:58:33 -04:00
John Gallagher
76363cca7e
Merge pull request #253 from jgallagher/fix-unused-macro-warning
...
Fix unused macro warning when compiling tests without `trace` feature.
2017-04-05 13:30:46 -04:00
John Gallagher
4b2a6d2207
Fix unused macro warning when compiling tests without trace
feature.
2017-04-05 12:54:58 -04:00
John Gallagher
a1206d5076
Add FromSql/ToSql impls for isize.
2017-04-05 12:52:37 -04:00
gwenn
3889c8d3e0
Merge remote-tracking branch 'jgallagher/master' into vtab
2017-03-09 19:24:43 +01:00
John Gallagher
ec78a2b5fa
Reorganize: Extract Row/Rows and helper types into their own mod files.
2017-03-08 17:03:31 -05:00
gwenn
7f0082e44e
Merge remote-tracking branch 'jgallagher/master' into vtab
2017-03-08 20:35:07 +01:00
John Gallagher
6bd8516511
Roll convenient.rs into statement.rs.
2017-03-08 11:26:25 -05:00
John Gallagher
5bd7cb37c7
Move named_params.rs into statement.rs, greatly reducing the StatementCrateImpl trait size.
2017-03-08 11:20:43 -05:00
John Gallagher
59159fcb25
Rename execute_() to execute_with_bound_parameters().
2017-03-08 11:11:05 -05:00
John Gallagher
723fc91a09
Minor refactor to avoid needing to expose Statement::decode_result().
2017-03-08 11:04:22 -05:00
John Gallagher
38c9a4a159
Reorganize: Extract Statement and its impl into its own module.
2017-03-08 10:48:14 -05:00
gwenn
faa94d1246
Fix clippy warnings
...
And fix bench.
2017-02-24 20:10:51 +01:00
John Gallagher
39d71810ce
Merge branch 'master' into semver-check
2017-02-23 15:36:54 -05:00
Sean Griffin
2c58b3f804
Remove the dependency on libc
...
Recent versions of bindgen use `std::os::raw` over `libc`, but currently
`libsqlite3-sys` is overriding that. `std::os::raw` is a subset of
`libc` that exports only the relevant type definitions, but not any
functions which require additional linking. This enables
`libsqlite3-sys` to be more easily used on targets that may not have a
libc available (presumably sqlite itself would have been compiled with
musl in that case)
2017-02-16 11:17:24 -05:00
Dominik Miedziński
1b1573c5b2
Fix URL Markdown syntax in Connection docs
2017-02-11 10:50:13 +01:00
John Gallagher
56eee2c13c
Perform a runtime check that the SQLite version isn't older than the one we found at build time.
2017-02-09 20:56:51 -05:00
John Gallagher
358cca1638
Clarify support of older SQLite versions.
2017-02-09 20:23:17 -05:00
John Gallagher
4216671fe6
Update for new bindgen output.
2017-02-08 20:40:30 -05:00
John Gallagher
e2d2a689f8
Minor cleanup from rustfmt pass
2017-02-08 19:38:50 -05:00
gwenn
80f822db28
rustfmt v0.7.1
2017-02-08 21:11:15 +01:00
John Gallagher
01b926c27e
Trivial tweaks
2017-02-07 19:43:54 -05:00
John Gallagher
509257dfa8
Merge branch 'limits' of https://github.com/gwenn/rusqlite into gwenn-limits
2017-02-07 19:41:30 -05:00
gwenn
7014dd6260
Oops
2017-02-07 19:52:52 +01:00
gwenn
59111b783d
Fix tests with old SQLite version (< 3.8.7)
2017-02-07 18:41:14 +01:00
John Gallagher
eb099952ac
Expose version(), version_number(), and source_id() functions.
2017-02-06 20:23:16 -05:00
John Gallagher
98da52ce8f
Merge branch 'err-code' of https://github.com/gwenn/rusqlite into gwenn-err-code
2017-02-06 19:53:31 -05:00
gwenn
bbd6c73daa
Rename get_limit to limit
...
And do not test default limits, only updated ones
2017-02-06 17:43:32 +01:00
John Gallagher
60e1f3c02f
Add more explicit types in unit tests.
2017-02-05 17:30:53 -05:00
gwenn
307431911c
Exporting libsqlite3_sys::error::ErrorCode ( #218 )
2017-02-04 11:33:23 +01:00
gwenn
359ec914d2
Expose limits ( #220 )
2017-02-04 11:01:38 +01:00
John Gallagher
8054ea4ab8
Derive Clone, Debug, and PartialEq on ToSqlOutput.
2017-01-26 22:02:20 -05:00
reddraggone9
57750fe6a6
Fix doc comment example of FromSql/ToSql
...
Update a doc test so that it compiles on master. Also remove the ignore
directive so that it runs with the rest of the test suite.
2017-01-24 22:57:42 -06:00
John Gallagher
06583aadf2
fix clippy warnings
2017-01-23 19:46:49 -05:00
John Gallagher
aa6c542202
Add impl ToSql for ToSqlOutput.
2017-01-23 19:42:02 -05:00
John Gallagher
e180ab15ce
Fix incomplete match under functions
feature
2017-01-22 20:05:06 -05:00
John Gallagher
7c072bf55e
impl ToSql for i8,i16,u8,u16,u32
2017-01-22 19:55:49 -05:00
John Gallagher
68ae7de1d5
Update docs on Row::get
2017-01-22 19:42:51 -05:00
John Gallagher
846a59695c
Add range-checked FromSql impls for i8, i16, u8, u16, u32.
2017-01-22 19:40:48 -05:00
John Gallagher
1974ee573c
Add range checks for i32's FromSql impl.
2017-01-22 19:26:19 -05:00
gwenn
8b9437ff35
Merge remote-tracking branch 'jgallagher/master' into vtab
2017-01-13 21:43:10 +01:00
John Gallagher
b49e1d1a1c
Merge pull request #205 from jgallagher/fix-retry-close-failure
...
Fix close() returning a useful connection on failure.
2017-01-07 12:25:47 -05:00
John Gallagher
6709207453
Fix close() returning a useful connection on failure.
2017-01-06 14:32:27 -05:00
John Gallagher
f30edaf563
Silence another deprecation reexport warning.
2017-01-06 14:25:55 -05:00
gwenn
685694255b
Merge remote-tracking branch 'jgallagher/master' into vtab
2017-01-06 18:34:54 +01:00
John Gallagher
0b5d8339e1
Silence warnings about deprecations when exporting deprecated types.
2017-01-06 01:23:51 -05:00
John Gallagher
3af91b36bf
Make Connection::close() return the connection on failure.
2017-01-03 20:00:29 -05:00
gwenn
46df930881
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-12-31 09:15:26 +01:00
John Gallagher
4c8b0ab6dd
Merge pull request #181 from gwenn/clippy
...
Fix clippy warnings
2016-12-31 01:23:40 -05:00
John Gallagher
2e140d0684
FromSqlError::cause() returns other error's cause directly (possibly None).
2016-12-31 00:36:52 -05:00
John Gallagher
4181441d63
Merge branch 'master' into gwenn-invalid-column-type
2016-12-31 00:35:47 -05:00
gwenn
bc71c58387
Add Statement.query_row convenient method ( #179 )
2016-12-31 00:03:55 -05:00
John Gallagher
08d88177e7
Merge branch 'flush-cache' of https://github.com/gwenn/rusqlite into gwenn-flush-cache
2016-12-30 23:55:19 -05:00
John Gallagher
f17fc14a59
Update query_row_named so its closure also takes a &Row instead of a Row
2016-12-30 23:48:04 -05:00
John Gallagher
3815b6beef
Merge branch 'query_row' of https://github.com/pfernie/rusqlite into pfernie-query_row
2016-12-30 23:42:38 -05:00
John Gallagher
d1ad61dc41
Merge pull request #178 from gwenn/varparam-usage
...
Fix issue #177
2016-12-30 23:38:50 -05:00
John Gallagher
4f5abc705a
Remove workaround for issue fixed in Rust 1.9.
2016-12-30 23:25:21 -05:00
John Gallagher
0d685af2d5
Merge branch 'master' into safe-tosql
2016-12-30 23:18:32 -05:00
gwenn
8c6f585d52
Fix clippy warnings
2016-12-04 10:18:56 +01:00
gwenn
ffe605150a
Ensure cache is flushed when closing the connection
...
Fix #186
2016-11-04 20:47:28 +01:00
Patrick Fernie
ece7c041e8
change query_row* fns to take Row by reference instead of moving
2016-10-07 12:42:27 -04:00
gwenn
58b7d62517
Introduce IndexConstraintUsage
2016-08-20 12:06:24 +02:00
gwenn
b11a4b1c73
Make index constraints and values iterable
2016-08-20 09:55:25 +02:00
gwenn
8f28ff17b8
Fix rustdoc warnings
2016-08-15 12:41:15 +02:00
gwenn
1d342ef5f3
Test series virtual table
2016-08-15 09:09:38 +02:00
gwenn
b4db5666b6
Misc
2016-08-14 19:57:39 +02:00
gwenn
424a6c0cc8
Add series table-valued-function.
2016-08-14 19:53:47 +02:00
gwenn
3b5bd7abab
Introduce IndexConstraintOp
2016-08-14 12:26:05 +02:00
gwenn
4d2e881706
Partial IndexInfo implementation
2016-08-14 11:22:12 +02:00
gwenn
438312c132
Change signature of VTab::best_index
2016-08-14 09:44:37 +02:00
gwenn
505abc0331
Change signature of VTabCursor::filter
2016-08-14 09:31:53 +02:00
gwenn
a90388e6bf
Change signature of VTab::best_index
2016-08-14 09:08:42 +02:00
gwenn
c8b09e2ee7
Change VTabCursor::column signature
2016-08-13 17:46:49 +02:00
gwenn
8f079819f7
Change VTabCursor::filter signature
2016-08-13 13:55:30 +02:00
gwenn
0a19cbd16a
Change VTabCursor::filter signature
2016-08-13 13:12:48 +02:00
gwenn
59ad638875
Change VTab::create signature
2016-08-13 11:54:19 +02:00
gwenn
b10c52f32f
Fix clippy warnings
2016-08-08 15:23:55 +02:00
gwenn
3f55a4583c
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-07-02 11:51:42 +02:00
gwenn
038ef2de42
Revert all InvalidColumnType stuff
2016-07-02 11:50:39 +02:00
gwenn
3eb3b22ad5
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-07-02 11:28:59 +02:00
gwenn
a7d27098b7
Fix issue #177
2016-07-02 10:22:47 +02:00
gwenn
9f05147660
Fix issue jgallagher/rusqlite#174
2016-06-13 20:32:39 +02:00
gwenn
95050f10a8
Add test with empty blob (issue #174 ).
2016-06-13 20:22:21 +02:00
gwenn
e2cf171192
Introduce FromSqlError
as specified by John Gallagher
2016-06-02 21:03:25 +02:00
John Gallagher
58b7aea4f7
Merge branch 'release-0.7' into merge-0.7.3
2016-06-01 21:31:26 -04:00
John Gallagher
ad0b823560
Remove sanity check in insert()
that could return StatementFailedToInsertRow
.
...
This was intended to detect an `UPDATE` query passed to `insert`, but
incorrectly failed if inserts to different tables caused the same row ID
to be returned from both. `UPDATE`s are no longer detectable.
2016-06-01 20:52:22 -04:00
gwenn
91dc30b04d
Simplify InvalidType
2016-05-30 21:20:07 +02:00
gwenn
fb19e718cf
Introduce an intermediary InvalidType error.
...
InvalidType is used where the column/parameter index is not known.
2016-05-30 20:35:56 +02:00
John Gallagher
d43a1abc78
Merge branch 'master' into rust-1.9-reexported-trait-bugfix
2016-05-29 23:54:47 -04:00
John Gallagher
326d8999e8
Merge pull request #169 from jgallagher/deprecated
...
Use new Rust 1.9 attribute: #[deprecated(since = "...", note = "...")]
2016-05-29 23:42:22 -04:00
John Gallagher
b1b438158d
Remove workaround for Rust compiler bug that was fixed in 1.9.
2016-05-29 20:38:46 -04:00
John Gallagher
7c0eba0475
Add since
and note
for all deprecation tags.
2016-05-29 20:36:20 -04:00
gwenn
6a4eacc927
Simply use cargo clippy
2016-05-28 11:16:55 +02:00
gwenn
f817ec86bc
Use new Rust 1.9 attribute: #[deprecated].
2016-05-26 21:16:09 +02:00
gwenn
cabcaf3dcb
Better error reporting on invalid column type.
2016-05-26 21:03:05 +02:00
John Gallagher
bafa85a1a0
Fix clippy warnings.
2016-05-26 00:30:01 -04:00
John Gallagher
f3693a993e
rustfmt
2016-05-26 00:28:18 -04:00
John Gallagher
9a6e17b478
Add doc comments to ToSqlOutput.
2016-05-26 00:14:46 -04:00
John Gallagher
2b830fde2d
Remove pub re-export of FFI helpers from functions
.
2016-05-26 00:14:45 -04:00
John Gallagher
6467815d02
Replace functions::ToResult with ToSql.
2016-05-26 00:14:45 -04:00
John Gallagher
13bff6fab6
Add ToSql impl for bool
.
2016-05-26 00:14:45 -04:00
John Gallagher
9125826534
Move types::Value into its own module.
2016-05-26 00:14:45 -04:00
John Gallagher
e4926ac0d7
Rework ToSql to be implementable without unsafe
.
2016-05-26 00:14:45 -04:00
John Gallagher
8adb96131b
Remove now-unnecessary FFI re-exports.
2016-05-25 19:53:18 -04:00
John Gallagher
2f4990dafd
Rename BorrowedValue -> ValueRef.
2016-05-24 21:34:18 -04:00
John Gallagher
d9df23ca90
Fix doc comment example of FromSql implementation.
2016-05-24 20:12:29 -04:00
John Gallagher
0fbfad2452
Remove functions::FromValue.
...
With the new definition of FromSql, we can reuse it since we can convert
a sqlite3_value into a BorrowedValue.
2016-05-24 20:08:12 -04:00
John Gallagher
4662b9b932
Allow FromSql::<f64> to work on SQLite integer values.
2016-05-24 20:05:32 -04:00
John Gallagher
9d47d5109a
Add doc comments for BorrowedValue and friends.
2016-05-24 19:48:26 -04:00
John Gallagher
734f18c985
Impl From
for converting Value <-> BorrowedValue
2016-05-24 19:36:38 -04:00
John Gallagher
5b0cdbaa56
Redo FromSql to make implementing it not unsafe
.
...
Pass implementers a BorrowedValue instead of relying on them to use
the FFI interface. We take the responsibility of converting the raw
statement and column index into a BorrowedValue.
2016-05-23 21:49:54 -04:00
John Gallagher
c90cd37c00
Add types::BorrowedValue.
2016-05-23 21:48:56 -04:00
John Gallagher
efc6c89370
Add RawStatement::column_type.
2016-05-23 21:46:51 -04:00
John Gallagher
dccfd7e801
Refactor: Extract ToSql into its own module.
2016-05-22 20:16:54 -04:00
John Gallagher
0e96e2269c
Refactor: Extract FromSql into its own module.
2016-05-22 20:01:03 -04:00
gwenn
cbc479c484
Rustfmt
2016-05-20 18:36:44 +02:00
gwenn
0740620ffe
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-05-20 18:31:30 +02:00
John Gallagher
8ce2f5888f
Document CachedStatement::discard.
2016-05-19 20:36:41 -05:00
John Gallagher
dc1b0e39ed
Re-export DropBehavior and SqliteTransactionBehavior.
2016-05-19 20:35:27 -05:00
John Gallagher
d27ed0de63
Re-export Savepoint.
2016-05-19 20:32:17 -05:00
John Gallagher
c4417bee0e
Manual fixes for rustfmt overly long lines.
2016-05-19 20:09:40 -05:00
John Gallagher
71aa41c27a
rustfmt
2016-05-19 20:04:33 -05:00
gwenn
ef6fcc8976
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-05-19 22:10:58 +02:00
John Gallagher
57d2ae42cf
Fix clippy needless_borrow warning
2016-05-19 15:03:01 -05:00
John Gallagher
6f8f2f3910
Fix clippy match_same_arms warning
2016-05-19 15:02:06 -05:00
John Gallagher
342b00303a
Merge pull request #155 from jgallagher/fix-nightly-test-failures
...
Fix doctest failures on rust nightly.
2016-05-19 14:57:16 -05:00
John Gallagher
cacda916f9
Fix doctest failures on rust nightly.
...
These should've been failing on stable too as they were all wrong.
Closes #154 .
2016-05-19 14:25:39 -05:00
gwenn
1bb177047e
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-05-19 21:24:17 +02:00
John Gallagher
d608956bd0
Merge branch 'master' into remove-rows-iterator-impl
2016-05-19 14:06:56 -05:00
John Gallagher
0e6e78e81a
Merge branch 'master' into savepoint-improvements
2016-05-19 13:49:02 -05:00
John Gallagher
74b57ee47a
Add test and fix for invalid cached column_count.
...
Issue raised in
https://github.com/jgallagher/rusqlite/pull/113#issuecomment-220122048 .
2016-05-18 22:19:04 -05:00
John Gallagher
d5bbbbd763
Add query_map_named and query_and_then_named to Statement.
2016-05-18 22:01:08 -05:00
John Gallagher
703cf22b52
Separate Savepoint out from Transaction.
...
Replaces `set_commit` and `set_rollback` with `set_drop_behavior`.
Allows specification of savepoint names.
Savepoint::rollback() does not consume the savepoint;
Transaction::rollback() does consume the transaction.
2016-05-18 16:38:09 -05:00
John Gallagher
678b301494
Make rollback take (&mut self) instead of (self)
2016-05-18 14:25:57 -05:00
gwenn
42d95f042f
Fix tests and improve InvalidColumnType error message.
2016-05-18 21:25:13 +02:00
John Gallagher
30733a3688
Modify Rows::next to tie its lifetime to the returned Row.
...
This means Rows no longer implements Iterator, but it is no longer
possible to misuse it by accessing a stale Row handle.
2016-05-18 11:41:22 -05:00
John Gallagher
437a06fca3
Merge branch 'master' into gwenn-stmt-cache
2016-05-17 20:52:52 -05:00
John Gallagher
599bf5acfe
Add test and fix for nested savepoint rollbacks.
...
This requires giving savepoints distinct names.
2016-05-17 20:19:44 -05:00
John Gallagher
92834951e3
Make the creation of transactions and savepoints take &mut self.
...
Transactions in SQLite are nested, but the previous API allowed rusqlite
transaction wrappers to be created as "siblings". This resulted in
unexpected (and usually wrong) behavior.
2016-05-17 19:53:53 -05:00
John Gallagher
e71c3c5207
Add Connection::set_prepared_statement_cache_capacity.
2016-05-17 14:20:56 -05:00
John Gallagher
d923d8c670
Use a real LruCache instead of a VecDeque.
2016-05-17 13:35:23 -05:00
John Gallagher
20b93bdb96
rustfmt
2016-05-17 13:35:23 -05:00
John Gallagher
bd81b727f0
Simplify CachedStatement lifetimes
2016-05-17 13:35:21 -05:00
John Gallagher
3c15eb0218
Add Connection::prepare_cached.
2016-05-17 13:34:54 -05:00
John Gallagher
ed72da92ef
Remove cache feature
2016-05-17 12:01:55 -05:00
John Gallagher
0ab9421e6a
Detach StatementCache from Connection so we can embed it (coming later)
2016-05-17 11:59:54 -05:00
John Gallagher
1978568d01
Make StatementCache hold RawStatements instead of Statements.
2016-05-17 11:55:10 -05:00
John Gallagher
f6aba80f4b
Extract RawStatement wrapper around *mut sqlite3_stmt.
2016-05-17 11:27:29 -05:00
John Gallagher
b76196ae1a
Merge branch 'master' into gwenn-stmt-cache
2016-05-17 08:54:47 -05:00
gwenn
29373e7d0d
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-05-16 22:30:58 +02:00
John Gallagher
63e5570ca9
Merge pull request #149 from jgallagher/gwenn-reset
...
Reset statements ASAP.
2016-05-16 15:19:03 -05:00
John Gallagher
1262d3bb17
Call sqlite3_reset on a statement ASAP inside Rows
's Iterator
impl.
2016-05-16 14:39:14 -05:00
John Gallagher
8e1ce5cf9c
Fuse a Rows
iterator once it fetches the final row.
2016-05-16 14:11:44 -05:00
John Gallagher
4a6c7b5329
Reset in Rows's drop impl instead of waiting for the next query
2016-05-16 14:02:39 -05:00
gwenn
3a52dd65f0
Rustfmt
2016-05-16 19:52:17 +02:00
gwenn
9fefa372db
Reset as soon as possible.
2016-05-16 19:51:31 +02:00
John Gallagher
ba7b1ea45e
Merge pull request #147 from jgallagher/update-to-latest-bitflags
...
Update to latest bitflags crate.
2016-05-16 12:20:26 -05:00
gwenn
94b4b7595c
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-05-16 18:58:56 +02:00
gwenn
f1e0e10138
Merge remote-tracking branch 'jgallagher/master' into vtab
2016-05-16 18:38:15 +02:00
John Gallagher
f77ae8816d
Update to latest bitflags crate.
...
Closes #139 .
2016-05-16 11:36:48 -05:00
John Gallagher
757a1f40dc
rustfmt
2016-05-16 11:18:38 -05:00
John Gallagher
493446e6d1
Implement exists
using query
instead of FFI.
2016-05-16 11:18:15 -05:00
John Gallagher
7b174c97f8
Add sanity check for insert
that does not do an insertion
2016-05-16 11:15:07 -05:00
John Gallagher
504b16dc98
Merge branch 'master' into gwenn-convenient
2016-05-16 11:02:56 -05:00
John Gallagher
8124953882
rustfmt
2016-05-16 10:17:25 -05:00
John Gallagher
b47b644246
Merge branch 'master' into gwenn-json
2016-05-16 10:14:09 -05:00
John Gallagher
68256a54ad
Merge pull request #144 from jgallagher/gwenn-chrono
...
From/ToSql for chrono types.
2016-05-16 10:13:42 -05:00
John Gallagher
4924c0b38b
rustfmt
2016-05-16 10:02:07 -05:00
John Gallagher
6a4abff462
Restore support for full RFC3339 timestamps with a space seperator
2016-05-16 09:27:50 -05:00
John Gallagher
6d9b268776
Add tests confirming DateTime works with " " seperator instead of "T"
2016-05-16 09:13:45 -05:00