Kristy Brambila
0e61642165
Make postgres type name resolution case-insensitive
2020-04-08 01:22:37 -07:00
Ryan Leckey
d3eb9c7800
postgres: use PgStream::receive over PgStream::read to handle errors
...
* PgStream::read should probably be named better; maybe PgStream::raw_receive
Fixes #203
2020-03-30 18:38:31 -07:00
Austin Bonander
e594a7fdca
Postgres: don't cache failed statement
2020-03-27 15:54:28 -07:00
Ryan Leckey
3103d50be8
postgres: implement PgTypeInfo::with_name
...
- remove PgTypeInfo::with_oid
- use a new PgRawBuffer type instead of Vec<u8> for encoding
2020-03-26 19:29:49 -07:00
Austin Bonander
673f133cab
un-generify Error and support downcasting in DatabaseError
2020-03-25 18:13:56 -07:00
Ryan Leckey
1dc582edd0
postgres: have PgValue remember its type OID
...
this is in preparation of doing type compatibility checks
2020-03-25 01:46:13 -07:00
Ryan Leckey
1940b685d3
fix warnings from rustdoc
2020-03-24 01:36:17 -07:00
Daniel Akhterov
cbdc1bbfb2
Refactor the error to be generic over database
2020-03-20 23:51:45 -07:00
Ryan Leckey
d380f4b4a8
remove is_null_type and use Option<TypeInfo>
2020-03-17 21:43:41 -07:00
Ryan Leckey
b80080a95b
postgres: Stream::read -> Stream::receive and extract "just reading" to Stream::read
2020-03-16 18:30:45 -07:00
Ryan Leckey
751efdf31b
generalize MaybeOwnedConnection and clean up the connection file
2020-03-14 17:43:44 -07:00
Ryan Leckey
7a98253840
postgres: clean up protocol
2020-03-14 17:43:06 -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
Ryan Leckey
672f83c00e
use pin-project and fix impl of GuardedFlush
2020-03-11 01:47:29 -07:00
Austin Bonander
4163388298
add nullability info to Describe
...
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 #107
closes #17
Co-Authored-By: Anthony Dodd <Dodd.AnthonyJosiah@gmail.com>
2020-03-11 01:46:06 -07:00
Ryan Leckey
b8cd2e9388
remove unused imports
2020-03-11 01:45:04 -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
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
Austin Bonander
0cb7bd1185
make macros work again
2020-03-11 01:43:27 -07:00
Ryan Leckey
55ffd989e1
postgres: add support for simple queries (that do not return results)
2020-03-11 01:43:17 -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
3795d15e1c
postgres: break out TLS and SASL into their own files
2020-03-11 01:43:04 -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
Ryan Leckey
d00c18ec75
Fix query! for the no results case in Postgres and MySQL
2020-01-18 00:43:59 -08:00
Ryan Leckey
6b22fb7489
Refactor HasSqlType to provide an array of compatible types.
...
* 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.
2020-01-14 23:27:42 -08:00
Austin Bonander
589d06ec66
change UnexpectedEof to ConnectionAborted
2020-01-03 19:06:00 -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
5192983093
implement Executor::send()
2019-12-19 18:46:37 -08:00
Austin Bonander
8aa931356f
WIP implement statement caching for MySQL, perform discussed refactors
2019-12-18 23:02:01 -08:00
Austin Bonander
d8d93867b7
implement prepared statement caching for postgres
2019-12-18 23:02:01 -08:00
Austin Bonander
b0a36ddd5c
fix Executor::describe() for MariaDB
...
prevent exhaustive match of `describe` structs
2019-12-04 18:13:10 -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
6925d5999c
Fix mariadb compile errors and remove useless Row wrapper
2019-12-02 21:11:49 -08:00
Ryan Leckey
2227303f20
Have Backend require Executor and de-duplicate some logic
2019-11-27 23:26:20 -08:00