Ryan Leckey
dcea3f0586
fix FromRow derive to take &Row
2020-03-24 03:08:58 -07:00
Ryan Leckey
aa1cb24de9
remove DecodeOwned
2020-03-24 03:03:04 -07:00
Ryan Leckey
fa4138b25c
add docs to explain the SQL <-> Rust mapping
2020-03-24 02:56:52 -07:00
Ryan Leckey
43a72657f9
add a hack so bigdecimal can be the package name and the feature name
2020-03-24 02:56:14 -07:00
Ryan Leckey
f2ca42256b
Add more documentation for Connection and Transaction
2020-03-24 02:12:42 -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
0182ce92f2
make sqlx_core::runtime private and add a runtime module to sqlx-macros
2020-03-24 01:19:03 -07:00
Ryan Leckey
ba86bc5555
Tweak doc on Cursor::next
2020-03-23 21:22:09 -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
Ryan Leckey
200d534b8a
Fix time/chrono decode tests
2020-03-21 03:01:23 -07:00
Ryan Leckey
0ef1ef3c4f
time: we need std feature
2020-03-21 02:42:32 -07:00
Ryan Leckey
db543f8391
clean up Time impl, impl for text modes
2020-03-21 02:34:21 -07:00
Ryan Leckey
4a98a51a19
Merge remote-tracking branch 'utter-step/time-rs'
2020-03-21 01:25:00 -07:00
Ryan Leckey
05d8ac2747
Finish up JSON/JSONB support for Postgres
...
* implement for &serde_json::RawValue
* sqlx::types::Json<T> is a common type that all JSON-compatible databases can implement for,
postgres implements Json<T> as JSONB
* sqlx::postgres::types::PgJson<T> resolves to JSON
* sqlx::postgres::types::PgJsonB<T> resolves to JSONB
2020-03-21 01:16:34 -07:00
Oliver Bøving
b7e53e885a
First draft of JSON/JSONB support for postgres
...
This introduces two new wrapper types `Json` and `Jsonb`, currently
exported by `sqlx::postgres::{Json, Jsonb}` and adds serde and
serde_json as optional dependencies, under the feature flag `json`.
Wrapping types in `Json[b]` that implement `serde::Deserialize` and
`serde::Serialize` allows them to be decoded and encoded respectivly.
2020-03-20 23:59:25 -07:00
Daniel Akhterov
cbdc1bbfb2
Refactor the error to be generic over database
2020-03-20 23:51:45 -07:00
Ryan Leckey
f86f80d8b9
mysql: ping now follows the normal stream lifecycle
...
fixes test introduced by #142
Co-authored-by: Daniel Akhterov <daniel@launchbadge.com>
2020-03-20 20:47:30 -07:00
Ryan Leckey
ec27b65b26
postgres: change types in macros
...
Co-authored-by: Oliver Bøving <oliverboving@gmail.com>
2020-03-20 20:07:52 -07:00
Ryan Leckey
e42a995fd9
Extract a PgSequenceDecoder from ArrayDecoder and RecordDecoder and improve to support mutual nesting
2020-03-20 19:56:25 -07:00
Ryan Leckey
13997ce957
Change HasSqlType to Type
2020-03-20 19:55:47 -07:00
Ryan Leckey
9973fa6357
Add decode_err! to help with formatted decode error generation
2020-03-20 19:55:00 -07:00
Ryan Leckey
24d62dd464
Add DecodeOwned to help with trait bounds on owned data
2020-03-20 19:54:44 -07:00
Ryan Leckey
f562e919b7
Merge branch '1d-array-pg-support' of https://github.com/oeb25/sqlx into oeb25-1d-array-pg-support
2020-03-20 10:11:02 -07:00
Ryan Leckey
50c3e5fefb
Merge pull request #138 from PoiScript/master
...
postgres: ipnetwork support
2020-03-20 09:54:43 -07:00
Ryan Leckey
a017150890
postgres: tls: accept invalid certificates and mismatched hostnames under "prefer"
2020-03-20 09:47:18 -07:00
PoiScript
fbbae16a74
update decoding and encoding
2020-03-20 11:10:36 +08:00
PoiScript
3014ab4750
fix typo in Cargo.toml
2020-03-20 10:51:47 +08:00
PoiScript
7ab76ba84e
make inet and cidr compatible
2020-03-20 10:19:14 +08:00
PoiScript
c9cca27e65
rename feature gate to ipnetwork
2020-03-20 10:19:14 +08:00
PoiScript
060c5d2b66
postgres: ipnetwork support
2020-03-19 18:21:09 +08:00
Ryan Leckey
9be1512833
mysql: use double literals in test
2020-03-18 23:16:56 -07:00
Ryan Leckey
2a8906d1e5
add more documentation
2020-03-18 22:46:44 -07:00
Ryan Leckey
1fc18460b0
transaction: document, test, and fix operation of nested transactions
2020-03-18 22:46:44 -07:00
Ryan Leckey
829f37793a
Re-export PgRecordEncoder and PgRecordDecoder
2020-03-18 22:11:02 -07:00
Ryan Leckey
5809f8687c
Merge remote-tracking branch 'origin/ab/bigdecimal'
2020-03-18 22:09:27 -07:00
Ryan Leckey
dfb313f0c6
Add Postgres <-> Rust type documentation
2020-03-18 22:08:32 -07:00
Ryan Leckey
cb67ed0300
Make PgTypeInfo::oid doc(hidden)
2020-03-18 22:08:18 -07:00
Austin Bonander
33677e86a8
move PgNumeric[Sign], PgRecord[Encoder,Decoder] to hidden postgres::types::raw
...
fix errors
2020-03-18 19:36:54 -07:00
Austin Bonander
7ffec2fef8
remove .expect()
in impl TryFrom<PgNumeric> for BigDecimal
2020-03-18 19:12:14 -07:00
Austin Bonander
979c5cc944
remove unnecessary comment and update Cargo.lock
2020-03-18 19:09:10 -07:00
Austin Bonander
3a43e939e3
refactor PgNumeric
so NaN can't be misinterpreted, document types
2020-03-18 19:06:14 -07:00
Austin Bonander
b7aabaa0ec
numeric/bigdecimal modules: fix warnings
2020-03-18 19:06:14 -07:00
Austin Bonander
3cb42def3b
macros: add support for Postgres + BigDecimal
2020-03-18 19:06:14 -07:00
Austin Bonander
94c40b3eb7
Postgres: implement numeric and BigDecimal support
2020-03-18 19:06:14 -07:00
Ryan Leckey
06be59f7f0
Remove MaybeOwned
2020-03-18 17:08:44 -07:00
Ryan Leckey
d1af2fe1b0
Prepare v0.3.0-alpha.1
2020-03-18 16:58:42 -07:00
Ryan Leckey
9d9d2bbfd4
Update dependencies
2020-03-18 16:56:24 -07:00
Ryan Leckey
6f4c478fb7
sqlite: fix NULL handling
2020-03-18 16:52:27 -07:00
Ryan Leckey
2f78ce094c
mysql: use correct default port
2020-03-17 22:02:01 -07:00
Ryan Leckey
d380f4b4a8
remove is_null_type and use Option<TypeInfo>
2020-03-17 21:43:41 -07:00
Ryan Leckey
927e2b1586
describe: fix Debug of Column
2020-03-17 21:34:12 -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
2a76123bc3
Merge pull request #134 from launchbadge/derives
...
Add derives to support custom types
2020-03-17 20:04:19 -07:00
Ryan Leckey
21059620dc
mysql: support understanding ENUM as TEXT
2020-03-17 19:26:31 -07:00
Ryan Leckey
c1e6b2045c
postgres: support null in a record
2020-03-17 19:26:15 -07:00
Brian Misiak
459828ee3d
postgres: remove IntervalStyle to fix #130
...
Support more server versions, including CockroachDB, which only supports the `postgres` style.
2020-03-17 17:55:27 -07:00
Ryan Leckey
100602187f
memo: add more documentation to the database module
2020-03-17 16:33:44 -07:00
Ryan Leckey
602e61ab27
postgres: add support for decoding anonymous tuples and more fully test encoding/decoding records
2020-03-17 02:47:37 -07:00
Ryan Leckey
4e7b1b51e0
sqlite: handle encoding nulls
2020-03-17 01:13:32 -07:00
Ryan Leckey
a5d17eab00
add derive(Debug) for PgValue
2020-03-17 01:13:15 -07:00
Ryan Leckey
ced6713f57
add trailing newline
2020-03-17 01:11:15 -07:00
Tom Dohrmann
8841f83e68
removed unused imports
2020-03-16 22:58:31 -07:00
Tom Dohrmann
4cd179d42b
move decode_struct_field and encode_struct_field to sqlx-core
2020-03-16 22:58:31 -07:00
Tom Dohrmann
c3aeb275c2
add derive macros for weak & strong enums and structs
2020-03-16 22:58:25 -07:00
Ryan Leckey
ada57fa566
postgres depends on Sink from futures
2020-03-16 22:55:25 -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
d8f3953d9d
depend on std feature in futures-channel
2020-03-16 20:32:36 -07:00
Ryan Leckey
4869f48f84
sqlite: don't leak on connection failure
2020-03-16 20:30:28 -07:00
Ryan Leckey
48714e8ea9
Remove unused import in postgres/listen.rs
2020-03-16 20:00:36 -07:00
Ryan Leckey
0e3eb7ce39
postgres: listen: go back to Vec<String> for channels
2020-03-16 19:54:38 -07:00
Ryan Leckey
57d414f15c
sqlite: fix impl of DatabaseError
2020-03-16 19:54:24 -07:00
Ryan Leckey
e99e80cf94
listen: merge PgListener and PgPoolListener; allow PgListener to be used as an Executor; allow channels to be adjusted at run-time
2020-03-16 18:35:37 -07:00
Ryan Leckey
ed9d6c3b62
pool: handle reconnects during "boot"
2020-03-16 18:34:09 -07:00
Ryan Leckey
f677748a3b
postgres: Add lifetime to NotificationResponse
2020-03-16 18:31:09 -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
0ecacfaf1d
io: forward lifetime properly in Buf trait
2020-03-16 18:29:54 -07:00
Ryan Leckey
1d0100b35d
Add DatabaseError::code
2020-03-16 18:29:41 -07:00
Ryan Leckey
5cb0d9d9cc
connection: remove unused import for MaybeOwned
2020-03-16 18:27:22 -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
4419aea619
update postgres/listen.rs for internal changes
2020-03-15 02:17:14 -07:00
Anthony Dodd
3db54dd724
Remove the Drop impl for PgPoolListener.
...
This is being removed as it was causing undesired behavior under some
contexts.
2020-03-15 02:17:14 -07:00
Anthony Dodd
82923a1aaa
Update stream impls.
...
The basic PgListener stream impl now yields `Result<PgNotification>`
elements without an `Option` in the result. The option condition
originally represented the closure of the underlying connection. Now
such conditions will terminate the stream, as one would expect. The
`PgListener.recv()` method signature has not been changed.
PgPoolListener has also been updated. The interfaces on this struct will
never yield an inner `Option` as it will instead acquire a new
connection and continue its work. Both the stream impl & the `recv`
method have received an update to their signatures.
2020-03-15 02:17:14 -07:00
Anthony Dodd
608556f91a
Impl Drop for PgPoolListener & add to exports.
2020-03-15 02:17:14 -07:00
Anthony Dodd
ae7e15cbe3
Added demo program to show use of LISTEN/NOTIFY.
2020-03-15 02:17:14 -07:00
Anthony Dodd
a0da99e128
A good bit of refactoring.
...
Broke up PgListener into two types. PgListener for basic one-off
connections, and PgPoolListener for the listener created from the
PgPool.
The API is a bit more clear now with this change in terms of reconnect
behavior and the like.
Update `fn stream` to be `fn into_stream`, as that nomenclature is a bit
more normative in the Rust ecosystem.
2020-03-15 02:17:14 -07:00
Anthony Dodd
f83180861b
Impl a few features & refactor some code based on design discussion.
...
Extension traits are now being used for PgConnection, PgPoolConnection &
PgPool for listen/notify functionality. Only two extension traits were
introduced.
Only a single trait method is present on the extension traits and it
works for single or multi channel listening setups.
Automatic reconnect behavior is implemented for PgPool based listeners.
All logic has been cut over to the `recv` impls for the PgListener
variants.
Use async-stream for a nice Stream interface.
2020-03-15 02:17:14 -07:00
Anthony Dodd
cb186e6a13
Updates from review and from testing.
2020-03-15 02:17:14 -07:00
Anthony Dodd
a52f36468b
Implement Postgres LISTEN interface.
...
This changeset introduces an interface for using PostgreSQL's LISTEN
functionality from within sqlx.
The listen interface is implemented over the PgConnection, PgPool & the
PgPoolConnection types for ease of use. In the case of PgPool, a new
connection is acquired, and is then used for LISTEN functionality.
Closes #87
2020-03-15 02:17:14 -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
Ryan Leckey
97b50b95c0
sqlite: ensure that we additionally clear the bindings when resetting the statement
2020-03-14 23:48:00 -07:00
Ryan Leckey
2abc451655
sqlite: re-order Executor methods
2020-03-14 23:45:14 -07:00
Ryan Leckey
21097e1436
sqlite: clarlify Sync guarantee
2020-03-14 23:45:03 -07:00
Ryan Leckey
dd99fc351c
suppress unused warnings
2020-03-14 19:54:19 -07:00
Ryan Leckey
cddaf1b34e
remove unused import for spawn_blocking
2020-03-14 19:47:36 -07:00
Ryan Leckey
69ea41de1e
sqlite: make the implementation far less naive
...
* WAL
* sync = NORMAL, thought on this for awhile, all signs point to this being a very good default for WAL usage
* separate worker thread per SQLite connection
2020-03-14 19:45:01 -07:00
Ryan Leckey
63ef32189d
sqlite: implement support for multiple statements
2020-03-14 17:43:44 -07:00
Ryan Leckey
0130fe1479
sqlite: implement describe
2020-03-14 17:43:44 -07:00
Ryan Leckey
5f27026459
sqlite: implement remainder of query API
2020-03-14 17:43:44 -07:00
Ryan Leckey
a3799c3496
sqlite: implement command execution
2020-03-14 17:43:44 -07:00
Ryan Leckey
751efdf31b
generalize MaybeOwnedConnection and clean up the connection file
2020-03-14 17:43:44 -07:00
Ryan Leckey
444ffff127
Run rustfmt
2020-03-14 17:43:44 -07:00
Ryan Leckey
30897dd6d9
Add additional notes to Executor
2020-03-14 17:43:44 -07:00
Ryan Leckey
0421c9fb42
Add explicit life times to Cursor
2020-03-14 17:43:44 -07:00
Ryan Leckey
1a48cf3b2c
Reduce some duplication in type parsing
2020-03-14 17:43:44 -07:00
Ryan Leckey
7ab07016da
sqlite: initial work in connection
2020-03-14 17:43:44 -07:00
Ryan Leckey
5d042e35b1
sqlite: stub
2020-03-14 17:43:44 -07:00
Ryan Leckey
553f03fa05
Add Database::RawBuffer to parameterize Encode
2020-03-14 17:43:44 -07:00
Ryan Leckey
cca096355f
Run rustfmt
2020-03-14 17:43:44 -07:00
Ryan Leckey
27cd552a8c
mysql: clean up protocol
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
c7d416a1c3
Add Connection::begin
2020-03-14 17:43:06 -07:00
Ryan Leckey
cc88efe436
mysql: handle EOF packets if the server still requires them (MariaDB 10.1)
2020-03-14 17:29:59 -07:00
Ryan Leckey
12fa401556
log: trace the MySQL capability flags
2020-03-14 17:29:22 -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
Ryan Leckey
9609a62ed1
Run rustfmt
2020-03-11 02:51:24 -07:00
Ryan Leckey
c14338d329
remove unused imports
2020-03-11 02:29:20 -07:00
Ryan Leckey
0eed8c5866
mysql: fix handling of multiple query statements for affected_rows
2020-03-11 02:18:45 -07:00
Ryan Leckey
69489caa4b
mysql: initialize sql-mode and other options on establish
2020-03-11 02:18:27 -07:00
Ryan Leckey
e047f7c353
Remove custom Execute impl (no longer needed)
2020-03-11 01:55:18 -07:00
Ryan Leckey
e701aef9af
Annotate the DB type for Decode in Decode for String
2020-03-11 01:55:06 -07:00
Ryan Leckey
038a6f2d30
Fix tests for MySQL chrono
2020-03-11 01:54:46 -07:00
Ryan Leckey
d6ce866c4b
Fix TLS refactors for MySQL
2020-03-11 01:54:33 -07:00
Ryan Leckey
a9c3d9f44c
Run rustfmt
2020-03-11 01:49:47 -07:00
Ryan Leckey
c9df8acc41
Add zero-allocation to MySQL query execution
...
WIP mysql compiles with types and executor commented out
2020-03-11 01:47:29 -07:00
Austin Bonander
de14a206ff
remove pin-project
workaround
2020-03-11 01:47:29 -07:00
Ryan Leckey
672f83c00e
use pin-project and fix impl of GuardedFlush
2020-03-11 01:47:29 -07:00
Austin Bonander
f3fe264478
implement guarded flush for BufStream
...
closes #122
2020-03-11 01:47:29 -07:00
Austin Bonander
9cd3f5e75b
rename Query::map()
to try_map()
and nail down some semantics
2020-03-11 01:47:29 -07:00
Austin Bonander
800af574c5
query_macros: allow Option<&str>
to be passed in place of String
...
closes #93
2020-03-11 01:47:16 -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
59cf900348
impl RefExecutor for &mut E ( where E is RefExecutor ) to allow &mut &Pool to continue working in 0.3
2020-03-11 01:46:06 -07:00
Ryan Leckey
13caade571
silence some unused warnings in postgres/tls with tls not compiled in
2020-03-11 01:46:06 -07:00
Ryan Leckey
6ffcf41b0f
implement RefExecutor ( allow Query/QueryAs ) for Transaction
2020-03-11 01:46:06 -07:00
Ryan Leckey
10d2b45d9c
update dependencies and clean up some more unused imports
2020-03-11 01:46:06 -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
f337f1c602
postgres: implement text mode for chrono and clean up type tests
2020-03-11 01:44:41 -07:00
Ryan Leckey
7fbc26de05
tls: update tls module for postgres
2020-03-11 01:44:41 -07:00
Ryan Leckey
370ad81b8e
remove now unused pieces of ConnectionSource and MaybeOwnedConnection
2020-03-11 01:44:41 -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
f18ab2fecb
tweak type decoding in text mode for floats
2020-03-11 01:44:06 -07:00
Ryan Leckey
4c102f7b0e
Database::Connection requires a Connection that can be connected
2020-03-11 01:44:06 -07:00
Ryan Leckey
8e8cf6db20
postgres: fix various issues and add more tests
2020-03-11 01:44:06 -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
9f1cf953c0
decode: use HasRawValue
2020-03-11 01:43:27 -07:00
Ryan Leckey
dd5f250e5e
decode: add lifetime to Decode; impl Decode for &str and &[u8]; remove DecodeError
2020-03-11 01:43:27 -07:00
Ryan Leckey
d257c32946
postgres: handle NoticeResponse
2020-03-11 01:43:27 -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
817d07c081
Use non_exhaustive on sqlx::Error
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
Ryan Leckey
d981262e7e
row: RowIndex -> ColumnIndex and de-duplicate logic with macros
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
bb17ebfbbd
make Connect extend Connection to simplify bounds
2020-03-11 01:42:34 -07:00
Ryan Leckey
d3d58ef0cf
remove unused methods from Arguments: is_empty, len, size
2020-03-11 01:42:34 -07:00
Ryan Leckey
05bc3ba987
Prepare v0.2.6
2020-03-10 15:40:33 -07:00
Wesley Norris
737dd038c5
Fix null bitmap being cleared
2020-03-09 20:31:49 -04:00
Vlad Stepanov
b785f83fc2
[fix] naming + unneeded cast
2020-03-01 18:02:36 +03:00
Vlad Stepanov
0656c880cc
cargo fmt
2020-03-01 13:23:57 +03:00
Vlad Stepanov
b2f50de16f
review fixes: change test attributes, fix tests, add time encoding-decoding tests
2020-03-01 13:20:24 +03:00
Vlad Stepanov
1975486baa
cargo fmt
2020-03-01 00:05:14 +03:00
Vlad Stepanov
084add9cdb
#115 : implement time-rs support
2020-02-29 22:38:48 +03:00
Oliver Bøving
0de4b5186b
Add the array types to the query! macro
...
This still needs some work, as the inferance and error messages are not
quite where we want them to be
2020-02-25 21:56:07 +01:00
Oliver Bøving
11b36fc7e5
Remove unused method extend
on ArrayEncoder
2020-02-21 14:18:20 +01:00
Oliver Bøving
521570d8a7
Remember use std::marker::PhantomData
2020-02-21 14:16:02 +01:00
Oliver Bøving
c9c87b6081
Implement support for 1-dim arrays for PostgreSQL
2020-02-21 14:10:12 +01:00
Ryan Leckey
f8e112f4d9
Prepare v0.2.5
2020-02-01 00:49:27 -08:00
Ryan Leckey
7201f637bf
Fix #104 , need to advance buffer index to account for the null (one 32-bit length val of -1)
2020-02-01 00:33:59 -08:00
Austin Bonander
eff7c9e125
fix Pool
to remove possibility of "leaking" connections ( #84 )
...
* fix `Pool` to reduce possibility of "leaking" connections
now uses RAII guards to control `SharedPool::size`
* add smoke test for `Pool` to both Postgres and MySQL tests
add `Pool::is_closed()`
* fix documentation re: pool
* refactor pool implementation to not use futures oneshot channels
https://github.com/launchbadge/sqlx/pull/84#issuecomment-580476223
* run cargo fmt
* Pool: remove superfluous guard struct, document some internal methods
2020-01-31 23:33:42 -08:00
Austin Bonander
2349978417
fix and test floats in MySQL
2020-01-30 12:17:32 -08:00
Jane Lusby
7d3772e23b
Resolve PR comments
2020-01-22 20:49:22 -08:00
Jane Lusby
ea03fa47e7
Initial commit with doc_cfg changes
2020-01-22 13:10:10 -08:00
Ryan Leckey
24d6c696f8
Merge pull request #70 from launchbadge/ab/idents-fix
...
sqlx-macros: fix handling of invalid idents
2020-01-21 16:01:56 -08:00
Wesley Norris
1461891901
Fix passwords not being percent decoded
...
The password portion of the `Url` type is post-percent encoding
and needs to be manually decoded before processing and being
sent to the server.
2020-01-21 18:53:07 -05:00
Austin Bonander
d55e4568b8
fix build with tls
and runtime-tokio
features on
2020-01-21 12:24:54 -08:00
Austin Bonander
831ce2d615
fix build with TLS feature on
2020-01-21 11:57:01 -08:00
Austin Bonander
efed9b3d6d
sqlx-macros: fix handling of invalid idents
...
add regression test with Trybuild
fix lint warnings as otherwise Trybuild wanted to include them
2020-01-21 01:52:57 -08:00
Jonas Platte
f93beb460a
Add PgTypeInfo::with_oid
2020-01-18 14:04:17 +01:00
Ryan Leckey
3e6efc57b6
Prepare v0.2.4
2020-01-18 01:22:14 -08:00
Ryan Leckey
60d45ac44b
Fix (again) the handling of nulls in mysql and add an integration test for it
2020-01-18 01:20:26 -08:00
Ryan Leckey
ac9aeb2e26
Prepare v0.2.3
2020-01-18 00:47:26 -08: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
3b91b06828
Prepare v0.2.2
2020-01-16 18:31:48 -08:00
Ryan Leckey
35c5556512
Update dependencies
2020-01-16 18:29:58 -08:00
Austin Bonander
beba141aec
PgConnection: clear buffers after TLS upgrade
2020-01-16 13:30:48 -08:00
Ryan Leckey
d46acb0e0e
default sqlx-core and sqlx-macros to runtime-async-std as well to make "cargo c" work during dev
2020-01-16 12:51:08 -08:00
Ryan Leckey
fe3225a8b8
Prepare v0.2.1
2020-01-16 01:52:47 -08:00
Daniel Akhterov
5ad09887e0
Fix mysql null bitmap not starting at bit 3
2020-01-16 01:44:20 -08:00
Ryan Leckey
62e1df5ad9
Prepare v0.2.0
2020-01-15 02:20:19 -08:00
Ryan Leckey
809bc3964c
Run rustfmt
2020-01-15 01:34:20 -08:00
Ryan Leckey
ae4fcd1406
Work around bug with format! and await on stable
2020-01-15 01:32:16 -08:00
Ryan Leckey
daf7f6c556
Be explicit with features for docs.rs
2020-01-15 01:27:07 -08:00
Ryan Leckey
92f12e11aa
Add support for Tokio
2020-01-15 01:17:33 -08:00
Ryan Leckey
96f14c0700
Merge remote-tracking branch 'origin/ab/proc-macro-unhack-sort-of' into rl-transaction-1
2020-01-15 00:29:43 -08:00
Ryan Leckey
6ddf3184de
Run rustfmt
2020-01-15 00:27:19 -08:00
Ryan Leckey
2e5e273565
Fix Pool alias with Pool changes
2020-01-15 00:26:22 -08:00
Ryan Leckey
b1a27ddac2
Add a Transaction type to simplify dealing with Transactions
2020-01-15 00:22:01 -08:00
Austin Bonander
0fdb875c20
support arbitrary numbers of bind parameters in query!()
et al
2020-01-15 00:05:34 -08:00
Ryan Leckey
28ed854b03
Extract Connection::open into a new trait Connect::connect
2020-01-14 23:58:17 -08:00
Ryan Leckey
3183413e9e
Merge pull request #50 from launchbadge/rl-refactor-types
...
Refactor HasSqlType to provide an array of compatible types
2020-01-14 23:32:45 -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
114aaa5dfc
MySqlConnection: warn if server does not support SSL
2020-01-14 12:14:01 -08:00
Austin Bonander
fc66c8fa3f
give examples of connection strings enabling SSL
2020-01-14 12:07:43 -08:00
Ryan Leckey
330b1e2b4e
Fix serialization test for postgres
2020-01-14 10:43:54 -08:00
Ryan Leckey
0a5b527d79
fix import errors and run rustfmt
2020-01-14 10:35:50 -08:00
Ryan Leckey
cb1dbff544
mysql: if in a TLS stream, sha2 auth is just "send a clear text password"
2020-01-14 10:32:59 -08:00
Austin Bonander
6682d4dce7
Pool::new(): forward to connection types for string syntax
2020-01-13 20:43:32 -08:00
Austin Bonander
c92ee619c3
fix some behaviors with TLS in MySQL
2020-01-13 20:42:49 -08:00
Austin Bonander
a014accf08
document TLS options for MySQL
2020-01-13 14:58:37 -08:00
Austin Bonander
f04e4bdbeb
document TLS options for Postgres
2020-01-13 14:54:29 -08:00
Austin Bonander
ff219061b2
implement TLS for MySQL
2020-01-13 12:34:05 -08:00
Austin Bonander
638852a2dd
implement TLS support for Postgres
2020-01-13 11:52:09 -08:00
Ryan Leckey
fe98b0b612
Turn on neccessary feature flags of futures-channel and async-std
2020-01-11 04:06:33 -08:00
Ryan Leckey
1d20926189
Use '+00:00' over UTC for MySQL timezone
2020-01-11 03:54:04 -08:00
Ryan Leckey
9b50dccfce
Run rustfmt
2020-01-11 03:52:17 -08:00
Ryan Leckey
c4a0ac50df
Indicate that we support both forms of SCRAM (just always reject channel binding for now)
2020-01-11 03:52:12 -08:00
Ryan Leckey
4f28590def
Downgrade generic-array to match digest
2020-01-11 03:35:38 -08:00
Daniel Akhterov
db230e2ce0
Resolve Comments
...
- Remove `hex` from root `Cargo.toml`
- Make `hmac` crate optional
- Clean up checking mechanisms for "SCRAM-SHA-256"
- Use `str::from_utf8` instead of `String::from_utf8_lossyf
- Update `Sasl*Response` structs be tuple structs
- Factor out `len` in `SaslInitialResponse.encode()`
- Use `protocol_err` instead of `expect` when constructing `Hmacf
instances
- Remove `it_connects_to_database_user` test as it was too fragile
- Move `sasl_auth` function into `postgres/connection` as it more
related to `Connection` rather than `protocl`
- Return an error when decoding base64 salt rather than panicing
in `Authentication::SaslContinue`
2020-01-11 03:33:38 -08:00
Daniel Akhterov
507d988fc4
Implememnt SASL Authentication
2020-01-11 03:33:21 -08:00
Ryan Leckey
fec6101e1a
Use timeout over .timeout to stay off unstable
2020-01-11 03:31:55 -08:00
Ryan Leckey
619de5aac2
Update dependencies
2020-01-11 03:30:03 -08:00
Ryan Leckey
95fac72abf
Use crossbeam queues to achieve fairness in the pool
2020-01-11 03:26:48 -08:00
Ryan Leckey
03251b719b
Refactor pool to fix liveness and consistently check
2020-01-11 01:02:03 -08:00
Ryan Leckey
132f7b2944
Add test_on_acquire option to the Pool
2020-01-11 01:01:21 -08:00
Ryan Leckey
42d0a9bc3d
has_columns is only used for postgres
2020-01-11 01:00:24 -08:00
Andrey Kuznetsov
e7026ce92d
derive Debug for Pool
2020-01-10 23:36:50 +00:00
Kris
7464d35803
Check if enough bytes was received
2020-01-07 11:44:15 +01:00
Kris
bad21b1567
Build docs for all features ( #32 )
2020-01-06 23:57:55 -08:00
Ryan Leckey
6d525b23ed
(cargo-release) sqlx-core: v0.1.3
2020-01-06 11:10:24 -08:00
Ryan Leckey
280f12ea71
Configure release.toml so we can easily release sub crates
2020-01-06 11:10:20 -08:00
Ryan Leckey
92f3f8cf6f
Finish reallocation strategy for BufStream
...
Fixes #30
2020-01-06 10:53:56 -08:00
Ryan Leckey
5c532a8ecc
[sqlx-core] prepare v0.1.2
2020-01-05 22:00:56 -08:00
Austin Bonander
589d06ec66
change UnexpectedEof
to ConnectionAborted
2020-01-03 19:06:00 -08:00
Ryan Leckey
054d3ed838
Run rustfmt on auth_plugin
2020-01-03 17:55:34 -08:00
Ryan Leckey
d8df21e280
Tweak mysql connection to work with MariaDb
...
SECURE_CONNECTION has the wrong value in the mariadb docs and that had me stumped for too long
2020-01-03 17:53:24 -08:00
Ryan Leckey
8d8fea874a
Use forbid(unsafe_code) over deny(unsafe_code)
2020-01-03 11:45:18 -08:00
Ryan Leckey
ed8cb40245
Remove more unused imports
2020-01-02 23:49:42 -08:00
Ryan Leckey
4ced4058ac
Remove unused imports and a couple unused muts
2020-01-02 23:47:49 -08:00
Ryan Leckey
ce343dee9c
[MySQL] Add initial support for authenticationSupports caching_sha2_password and sha256_password
2020-01-02 23:22:46 -08:00
Ryan Leckey
e591f0f021
Run rustfmt
2019-12-30 02:11:14 -08:00
Ryan Leckey
19e38ab8d3
[MySQL] [Postgres] Add support for BLOB and BYTEA types
2019-12-30 02:10:09 -08:00
Ryan Leckey
27759a12c7
[MySQL] Allow not specifying database on initial connect
2019-12-30 02:10:09 -08:00
Ryan Leckey
c325feaf9a
[MySQL] Configure connection on open
2019-12-30 02:10:09 -08:00
Ryan Leckey
2a42ff9f0d
[MySQL] Add an integration tests for chrono + MySQL and fix issues
2019-12-30 02:10:09 -08:00
Ryan Leckey
e161787952
[MySQL] Rename ty.flag to ty.is_unsigned
2019-12-30 02:10:09 -08:00
Ryan Leckey
3a645a1824
[MySQL] Don't adjust the raw bytes coming to the Decode trait
...
This is a minor adjustment that keeps parity between Encode and Decode
2019-12-30 02:10:09 -08:00
Ryan Leckey
2068f05482
Update dependencies
2019-12-28 04:02:52 -08:00
Ryan Leckey
5e719917c0
Run rustfmt
2019-12-28 03:45:47 -08:00
Ryan Leckey
f67872cbcf
Add some ground work for #1
2019-12-28 03:45:37 -08:00
Ryan Leckey
86ac601872
Prepare v0.1.1
2019-12-28 02:42:51 -08:00
Austin Bonander
c98c49ad47
fix docs and guarantees for pool
2019-12-28 02:02:29 -08:00
Ryan Leckey
dc43d3ee2f
Merge branch 'master' of ssh://github.com/mehcode/sqlx
2019-12-28 01:01:50 -08:00
Ryan Leckey
e16c043bf9
Add basic docs to MySql and Postgres Connection
2019-12-28 01:01:45 -08:00
Austin Bonander
af4b5b753d
fixup docs for Query
/QueryAs
/Executor
2019-12-28 00:56:55 -08:00
Ryan Leckey
7b8ef0f46b
Add more authors
2019-12-28 00:36:37 -08:00
Ryan Leckey
ef98ff2828
Add repo/desc to sub crates
2019-12-28 00:25:04 -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
Ryan Leckey
a23bfb60eb
Clean up the example a touch
2019-12-27 21:50:13 -08:00
Ryan Leckey
017ee38725
De-duplicate error impls and forward MySqlConnection/PgConnection to crate root
2019-12-27 21:50:13 -08:00
Austin Bonander
7d745f98ea
implement query_as!()
et al, document query macros
2019-12-27 21:45:31 -08:00
Ryan Leckey
56a82346f2
Run cargo fmt
2019-12-27 20:44:03 -08:00
Ryan Leckey
d76b1357da
Audit MySql and Postgres protocols
2019-12-27 17:31:01 -08:00
Austin Bonander
b85618e5f8
fix errors from .send_raw()
additions that I didn't catch
2019-12-19 23:26:59 -08:00
Austin Bonander
892a179787
set default max_lifetime in pool::Options to 30 minutes and explain why
2019-12-19 23:26:59 -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
56875a8931
finish discussed refactors
2019-12-18 23:02:01 -08:00
Austin Bonander
8aa931356f
WIP implement statement caching for MySQL, perform discussed refactors
2019-12-18 23:02:01 -08:00
Austin Bonander
e11f5bcaa7
allow chrono to be used with query!()
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
ca3fbd740a
implement support for chrono
...
fix tests
2019-12-11 19:59:41 -08:00
Daniel Akhterov
918657638b
Test all number types and String type
2019-12-05 21:36:09 -08:00
Daniel Akhterov
fdd60eb9b1
Fix null_bitmap size in MariaDb
2019-12-05 19:39:28 -08:00
Daniel Akhterov
6cac5383e3
Fix renamed functions/ response types
2019-12-05 18:29:35 -08:00
Austin Bonander
b0a36ddd5c
fix Executor::describe()
for MariaDB
...
prevent exhaustive match of `describe` structs
2019-12-04 18:13:10 -08:00
Daniel Akhterov
4d28424af5
Fix maraidb build errors
2019-12-04 14:18:43 -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
871183d23b
Minor fixes and run rustfmt
2019-12-03 00:22:02 -08:00
Ryan Leckey
f16c805f4c
Try and trim down the features a bit
2019-12-03 00:14:59 -08:00
Ryan Leckey
9558ab1c50
Remove bytes usage and update dependencies
2019-12-02 23:26:44 -08:00
Ryan Leckey
bf4f65ea2f
[MySQL] Add fetch_optional, fix encode/decode for integers
2019-12-02 22:14:41 -08:00
Ryan Leckey
6925d5999c
Fix mariadb compile errors and remove useless Row wrapper
2019-12-02 21:11:49 -08:00
Daniel Akhterov
55da9daaf1
WIP: MariaDb fetch
2019-12-02 20:47:38 -08:00
Ryan Leckey
f8f71b1b70
Merge remote-tracking branch 'origin/ab/conn-timeout'
2019-11-27 23:31:24 -08:00
Ryan Leckey
2227303f20
Have Backend require Executor and de-duplicate some logic
2019-11-27 23:26:20 -08:00
Daniel Akhterov
56ca61a22e
WIP: MariaDb fetch
2019-11-27 20:19:53 -08:00
Ryan Leckey
f1fa802837
Allow Query::bind to forward the type inference used for FromRow
2019-11-27 15:21:29 -08:00
Austin Bonander
279e329f27
break up pool.rs
into multiple files
2019-11-26 10:12:47 -08:00
Austin Bonander
8d9e949cc2
implement pool idle reaper, format relevant files
2019-11-26 10:09:59 -08:00
Austin Bonander
e155aa7aea
implement pool closing
2019-11-26 10:09:59 -08:00
Austin Bonander
812c0bee61
implement connection timeouts
2019-11-26 10:09:59 -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
Ryan Leckey
b14d3da2ee
Add sqlx::Row
...
- Rename the existing trait to an internal RawRow trait
- Row is used for selecting a dyn and deferring pulling its values out till later
- FromSqlRow -> FromRow
2019-11-22 18:34:29 +00:00
Austin Bonander
4d033963ce
use protocol_err!
instead of InvalidData
in more places
2019-11-22 17:57:00 +00:00
Austin Bonander
905320ff39
return Error::Protocol
instead of io::ErrorKind::InvalidData
2019-11-22 17:33:44 +00:00
Austin Bonander
a9fb263520
simplify pool implementation, run rustfmt
2019-11-22 17:06:32 +00:00
Ryan Leckey
8bd768afe8
Merge pull request #24 from mehcode/ab/codec
...
rename `FromSql/ToSql` -> `Decode/Encode`
2019-11-22 13:40:45 +00:00
Ryan Leckey
f394acdb1c
Minor cargo.toml cleanup
2019-11-22 11:52:03 +00:00
Ryan Leckey
061b7819ab
Remove the RawConnection concept and fold into Backend
2019-11-22 11:48:49 +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
Ryan Leckey
04f56570a4
Collapse into 1 crate
2019-07-25 23:41:50 -07:00
Ryan Leckey
aa0b27af35
Minor clean up
2019-06-28 21:36:46 -07:00
Ryan Leckey
5c73e220b6
Set up a connection benchmark using a mocked pg server
2019-06-26 12:49:08 -07:00
Ryan Leckey
22f71df7c7
mason -> sqlx
2019-06-22 20:54:43 -07:00