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
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
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