* 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
implement nullability check for Postgres as a query on pg_attribute
implement type name fetching for Postgres as part of `describe()`
add nullability for describe() to MySQL
improve errors with unknown result column type IDs in `query!()`
run cargo fmt and fix warnings
improve error when feature gates for chrono/uuid types is not turned on
workflows/rust: add step to UI-test missing optional features
improve error for unsupported/feature-gated input parameter types
fix `PgConnection::get_type_names()` for empty type IDs list
fix `tests::mysql::test_describe()` on MariaDB 10.4
copy-edit unsupported/feature-gated type errors in `query!()`
Postgres: fix SQL type of string array
closes#107closes#17
Co-Authored-By: Anthony Dodd <Dodd.AnthonyJosiah@gmail.com>
* Intending to use in a new Row type to check types at runtime for
dynamic queries and to guard against schema changes
* Hoping the query! macro can utilize this to allow accepting N
rust types for 1 sql type and returning N rust types for 1 sql
type.