74 Commits

Author SHA1 Message Date
Ryan Leckey
4448c0e629 feat: add should_flush and only spawn on drop for PoolConnection if we need to flush 2020-06-21 03:55:31 -07:00
Ryan Leckey
6cfe5ac811 refactor: tweak type name display to use TypeInfo::name 2020-06-21 03:55:31 -07:00
Ryan Leckey
aaa475cc33 refactor: move Decode::accepts to Type::compatible 2020-06-21 03:55:31 -07:00
Ryan Leckey
e10c7c723f refactor: remove impl of Encode::produces where it doesn't make sense
produces is meant as a value-dependent override, it only makes sense
currently for MSSQL or in generic contexts
2020-06-13 10:18:04 -07:00
Caio
d4329e98d4 refactor: prepare to support postgres ranges
- Remove Type bound from Encode + Decode which removes the defaults 
   for produces() and accepts(). This allows custom type implementations
   to be more flexible.
2020-06-12 15:33:19 -07:00
Pirmin Kalberer
e5a7619344 Allow queries on virtual tables 2020-06-11 03:36:58 -07:00
Ryan Leckey
8359c01b76 fix(sqlite): set a busy timeout to handle SQLITE_BUSY 2020-06-10 01:02:41 -07:00
Ryan Leckey
ec1cfc11e6 refactor(core): rename try_stream2 to try_stream (after removal of conflicting async-stream package) 2020-06-09 23:15:54 -07:00
Ryan Leckey
e1d22a1840 fix(core): async-stream crate seems to lose the stream if the stream owns the object we are streaming
hand-rolled a copy of the idea behind AsyncStream and things seem to work
2020-06-09 02:16:47 -07:00
Ryan Leckey
9233cb5812 fix(sqlite): minor typo when encode for Option<T> became a macro 2020-06-07 02:15:48 -07:00
Ryan Leckey
ef2527ff3e feat(mssql): fix a few bugs and implement Connection::describe 2020-06-07 02:00:31 -07:00
Ryan Leckey
3fcd4cd80e
style(core): apply more clippy suggestions 2020-05-30 18:28:55 -07:00
Ryan Leckey
e08f05b879
feat: re-introduce error downcasting 2020-05-30 17:51:56 -07:00
Ryan Leckey
e5b6047009
feat: introduce docker-compose based testing for running locally against many database combinations 2020-05-30 17:51:55 -07:00
Ryan Leckey
0a04abdb3e
feat: Pool is now generic over Database, as opposed to Connection
this fixes an unfortunate interaction with HRTBs where the compiler would
produce infinitely nested PoolConnection<PoolConnection<....
2020-05-30 17:51:55 -07:00
Ryan Leckey
cf7606be1b
fix: Transaction now to rollbacks on drop (again) 2020-05-30 17:51:55 -07:00
Ryan Leckey
bb3b571a57
fix: tweak lifetimes in Executor to limit the scope for the borrow on the query to the single execution 2020-05-30 17:51:55 -07:00
Ryan Leckey
cc9d443434
feat: re-introduce Transaction
* Transaction now wraps `&mut Connection` instead of `Connection`
2020-05-30 17:51:55 -07:00
Ryan Leckey
9d2a0141cb
feat: introduce IntoArguments, query_with, query_as_with, and query_scalar_with 2020-05-30 17:51:55 -07:00
Ryan Leckey
37a69e0ac3
refactor(sqlite): adapt to the 0.4.x core refactor
* massive (~20x) performance improvement
2020-05-30 16:09:50 -07:00
Austin Bonander
6913695588 add support for building in "decoupled" mode 2020-05-30 16:02:37 -07:00
Hasan Ali
3e2ed00b60 Drop all statements before closing sqlite connection 2020-04-27 10:20:57 -07:00
Josh Holmer
16229fd0ad Add basic query logging
Prints each query performed at DEBUG level,
along with a timing of how long the query took
to execute.

Slow queries will be printed at WARN level.
Currently the slow query threshold is
hardcoded to 1 second.
2020-04-17 22:49:33 -07:00
George Kaplan
7df6d4dbcf undo URL percent-encoding for SQLite connection strings 2020-04-17 18:23:33 -07:00
Ryan Leckey
cd6735b5d7 fix(sqlite): handle empty statements, fixes #231 2020-04-08 02:13:37 -07:00
kosyak
6c9241a3a9 Fixed types of variables that interact with libsqlite3 2020-04-07 04:10:47 -07:00
Ryan Leckey
4b9a615b32 sqlite: remove SqliteTypeInfo from sqlite::types 2020-03-29 15:57:59 -07:00
Ryan Leckey
b8537d0a87 sqlite: condense allow(unsafe_code) 2020-03-29 15:55:09 -07:00
Ryan Leckey
2b06386bf1 sqlite: remove two unused imports 2020-03-29 15:53:04 -07:00
Austin Bonander
73a9155b46 fix import of from_utf8_unchecked() 2020-03-28 17:50:27 -07:00
Austin Bonander
4ffa7f0e01 SQLite: implement column nullability checking 2020-03-28 17:50:27 -07:00
Austin Bonander
fe00c0d619 sqlite/statement.rs: lift #[allow(unsafe_code)] to module 2020-03-28 17:50:27 -07:00
Austin Bonander
e99a863288 remove now-unused imports and reformat 2020-03-25 21:37:11 -07:00
Austin Bonander
6e3fa49ad5 add unit tests for DatabaseError downcasting 2020-03-25 18:26:57 -07:00
Austin Bonander
673f133cab un-generify Error and support downcasting in DatabaseError 2020-03-25 18:13:56 -07:00
Ryan Leckey
41608c3f60 rename {DB}Error -> {DB}DatabaseError 2020-03-25 04:50:27 -07:00
Ryan Leckey
6049f976f9 opt out of compatible type check for null values 2020-03-25 04:25:38 -07:00
Ryan Leckey
2f6bab396a Add PartialEq for PgTypeInfo and SqliteTypeInfo 2020-03-25 03:59:29 -07:00
Ryan Leckey
985d62009c sqlite: adjust for recent changes with RawValue 2020-03-25 02:37:10 -07:00
Ryan Leckey
fa4138b25c add docs to explain the SQL <-> Rust mapping 2020-03-24 02:56:52 -07:00
Ryan Leckey
412f7125fb document Cursor 2020-03-24 01:53:56 -07:00
Ryan Leckey
1940b685d3 fix warnings from rustdoc 2020-03-24 01:36:17 -07:00
Ryan Leckey
792acdd554 audit Row, FromRow, and ColumnIndex
* tweak FromRow to accept Row by reference, should make it easier to compose FromRow impls
 * rename ColumnIndex::resolve to ColumnIndex::index
 * document behaviors
2020-03-24 01:24:10 -07:00
Ryan Leckey
a0bf61cc4a Declare ColumnIndex over Row instead of over Database 2020-03-23 21:21:59 -07:00
Ryan Leckey
cb2e3220e0 simplify lifetimes on Row 2020-03-21 03:25:17 -07:00
Daniel Akhterov
cbdc1bbfb2 Refactor the error to be generic over database 2020-03-20 23:51:45 -07:00
Ryan Leckey
2a8906d1e5 add more documentation 2020-03-18 22:46:44 -07:00
Ryan Leckey
6f4c478fb7 sqlite: fix NULL handling 2020-03-18 16:52:27 -07:00
Ryan Leckey
d380f4b4a8 remove is_null_type and use Option<TypeInfo> 2020-03-17 21:43:41 -07:00
Ryan Leckey
b04f2cbd4d sqlite: fix detection of INT and CHAR types 2020-03-17 21:34:01 -07:00