Ryan Leckey
3fcd4cd80e
style(core): apply more clippy suggestions
2020-05-30 18:28:55 -07:00
Ryan Leckey
9b299d9f09
style(core): apply future-incompatible suggestions
2020-05-30 18:06:21 -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
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
9d2a0141cb
feat: introduce IntoArguments, query_with, query_as_with, and query_scalar_with
2020-05-30 17:51:55 -07:00
Ryan Leckey
757a930e21
refactor(core): remove the HRTB (higher rank trait bound) on Row in the aim of improving ergonomics
...
* removes the lifetime from Row
* removes MySqlQueryAs, SqliteQueryAs, etc. (no longer needed)
* introduce query_scalar
* introduce Decode::accepts to allow overriding runtime type checking
per-type (replaces TypeInfo::compatible)
* introduce Encode::produces to allow overriding the encoded type per-value
* adds a lifetime to Arguments (and introduce the HRTB HasArguments)
to support zero-copy encoding with SQLite
* renames Database::RawBuffer to HasArguments::ArgumentBuffer
* introduce Connect::connect_with to provide an ConnectOptions type
explicitly to opt-out of connection string parsing
* introduce Value and ValueRef traits to allow decoding-deferred
extraction of values from Rows
* introduce Encode::encode_by_ref and change Encode::encode to take
by-value to try and re-use memory where possible
* use thiserror to generate sqlx::Error
* [!] temporarily removes query logging
* [!] temporarily removes transactions
2020-05-30 16:09:08 -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
Austin Bonander
80eb2cc7d2
make the stream returned from Map::fetch() Unpin
...
closes #244
2020-04-11 03:04:21 -07:00
Jon Pacheco
ccc2bfa0a6
Mark several types as #[must_use]
2020-03-31 14:39:29 +01:00
Austin Bonander
673f133cab
un-generify Error and support downcasting in DatabaseError
2020-03-25 18:13:56 -07:00
Ryan Leckey
918a797581
move HasX types into the module where X is
2020-03-25 01:44:00 -07:00
Daniel Akhterov
cbdc1bbfb2
Refactor the error to be generic over database
2020-03-20 23:51:45 -07:00
Ryan Leckey
0a7415f542
Run rustfmt
2020-03-11 03:34:51 -07:00
Ryan Leckey
a165615f53
row: Row::get panics, Row::try_get is fallible, Query::map panics, Query::try_map is fallible
2020-03-11 03:32:52 -07:00
Austin Bonander
9cd3f5e75b
rename Query::map() to try_map() and nail down some semantics
2020-03-11 01:47:29 -07:00
Ryan Leckey
b8cd2e9388
remove unused imports
2020-03-11 01:45:04 -07:00
Ryan Leckey
10232a2cdc
remove re-exports from sqlx-core and let sqlx fully define the module layout
2020-03-11 01:45:04 -07:00
Ryan Leckey
47f3d77e59
query_as: fully implement query_as, required a db-specific ext trait
2020-03-11 01:44:41 -07:00
Ryan Leckey
433aab1e5b
postgres: use RawValue in Decode and implement row-returning simple queries
2020-03-11 01:44:06 -07:00
Ryan Leckey
09f30067a0
Error::NotFound -> Error::RowNotFound and remove Error::FoundMoreThanOne
2020-03-11 01:43:27 -07:00
Ryan Leckey
e0fa55f241
Add additional docs to Query::bind
2020-03-11 01:43:27 -07:00
Ryan Leckey
f462343787
Split Executor into Executor and RefExecutor
...
* Allow `conn.fetch(" ... ")` to be called where `conn` is an owned Connection
* Executor::fetch -> RefExecutor::fetch_by_ref
* Executor::fetch_by_ref -> Executor::fetch
* Move `Connection::describe` to `Executor::describe`
* `Transaction` is no longer a `Connection`
* `Connection` has `Executor` as a super-trait again which greatly simplifies bounds
2020-03-11 01:43:27 -07:00
Ryan Leckey
0afcf33395
rename Executor::execute to Executor::fetch
2020-03-11 01:43:27 -07:00
Ryan Leckey
72b60e8a7d
remove the DB type parameter from HasCursor and push to an associated type; remove Cursor::first
2020-03-11 01:43:27 -07:00
Austin Bonander
0cb7bd1185
make macros work again
2020-03-11 01:43:27 -07:00
Ryan Leckey
7404708bab
adjust Cursor::map to work through black magic hacks and hope we get GATs soon
2020-03-11 01:43:17 -07:00
Ryan Leckey
a374c18a18
postgres: rewrite protocol in more iterative and lazy fashion
2020-03-11 01:43:17 -07:00
Ryan Leckey
ea1a4fb042
add Cursor and rewrite Executor/Query over it
...
* this breaks a lot internally as-is
* mysql needs a restructure
2020-03-11 01:43:04 -07:00
Austin Bonander
af4b5b753d
fixup docs for Query/QueryAs/Executor
2019-12-28 00:56:55 -08:00
Ryan Leckey
98269ddd20
Fix several nits from Clippy and add back chrono support for MySql
2019-12-27 23:16:13 -08:00
Ryan Leckey
9b0f34b0ce
Fix a couple minor nits with Pool and run rustfmt
2019-12-27 22:47:25 -08:00
Austin Bonander
7d745f98ea
implement query_as!() et al, document query macros
2019-12-27 21:45:31 -08:00
Ryan Leckey
d76b1357da
Audit MySql and Postgres protocols
2019-12-27 17:31:01 -08:00
Austin Bonander
786deecc36
replace bitflags::_core with std
...
for some reason IntelliJ-Rust reaches for this first
2019-12-19 18:46:37 -08:00
Austin Bonander
193e79569a
query refactors
2019-12-04 13:30:19 -08:00
Austin Bonander
acca40c88e
make query!() output anonymous records
2019-12-03 21:30:53 -08:00
Ryan Leckey
2227303f20
Have Backend require Executor and de-duplicate some logic
2019-11-27 23:26:20 -08:00
Ryan Leckey
f1fa802837
Allow Query::bind to forward the type inference used for FromRow
2019-11-27 15:21:29 -08:00
Ryan Leckey
73ca673bf2
Integrate FromRow while maintaining type fallback for query!
2019-11-25 23:51:04 -08:00
Ryan Leckey
b87edd5a9a
Unify sqlx::CompiledSql and sqlx::SqlQuery into sqlx::Query as a common return type between sqlx::query and sqlx::query!
2019-11-22 22:41:37 +00:00
Austin Bonander
d332558b25
rename FromSql/ToSql -> Decode/Encode
...
closes #18
2019-11-22 11:05:17 +00:00
Austin Bonander
fc07830639
implement facade crate so macros can be used from same namespace
2019-11-22 10:30:16 +00:00