61 Commits

Author SHA1 Message Date
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
Austin Bonander
6cea7e2c1b macros: add proper test for sqlite using database file 2020-03-17 21:10:19 -07:00
Austin Bonander
8328e07c97 macros + sqlite: fix error for null-typed columns 2020-03-17 21:10:19 -07:00
Ryan Leckey
4e7b1b51e0 sqlite: handle encoding nulls 2020-03-17 01:13:32 -07:00
Ryan Leckey
e0ca521889 cursor: for now, add #[doc(hidden)] to from_connection and from_pool as we look for ways to remove them 2020-03-16 22:51:55 -07:00
Ryan Leckey
4869f48f84 sqlite: don't leak on connection failure 2020-03-16 20:30:28 -07:00
Ryan Leckey
57d414f15c sqlite: fix impl of DatabaseError 2020-03-16 19:54:24 -07:00
Ryan Leckey
1d0100b35d Add DatabaseError::code 2020-03-16 18:29:41 -07:00
Ryan Leckey
12e250b52c Inline MaybeOwned in ConnectionSource and add another variant to store owned or ref connections 2020-03-15 02:58:41 -07:00
Ryan Leckey
ab20db14a2 Remove Sqlite prefix from SqliteStatement as it is an internal API 2020-03-15 02:16:31 -07:00
Ryan Leckey
68d4a0d258 sqlite: produce connection specific errors
postgres, mysql: use derive for Debug for error types
2020-03-15 02:14:23 -07:00
Ryan Leckey
f667910cbf sqlite: SqliteResultValue -> SqliteValue to match other drivers 2020-03-15 01:54:43 -07:00
Ryan Leckey
426361f361 sqlite: make SqliteConnection and Statement !Sync 2020-03-15 01:48:51 -07:00
Ryan Leckey
69b1d7feaa sqlite: add even more notes about Send/Sync 2020-03-15 00:34:13 -07:00