Commit Graph

78 Commits

Author SHA1 Message Date
Steven Fackler
4a5a277878 query_opt test 2019-12-10 16:34:04 -08:00
Steven Fackler
bf8b335d2b Move binary copy stuff directly into main crate 2019-12-08 18:30:47 -08:00
Steven Fackler
5c33bf8b30 Don't take parameters in copy_in and copy_out
Postgres doesn't support them, so we may as well not provide the option!

Closes #523
2019-12-04 18:51:59 -08:00
Steven Fackler
b4694471ad Add query_opt
Closes #510
2019-11-30 18:18:50 -05:00
Steven Fackler
e5e03b0064 Change the copy_in interface
Rather than taking in a Stream and advancing it internally, return a
Sink that can be advanced by the calling code. This significantly
simplifies encoding logic for things like tokio-postgres-binary-copy.

Similarly, the blocking interface returns a Writer.

Closes #489
2019-11-30 11:04:59 -05:00
Steven Fackler
12c2ef79b6 Upgrade to tokio 0.2/futures 0.3 2019-11-26 16:32:36 -08:00
Steven Fackler
dc9d07e246 Return a custom TlsStream rather than a ChannelBinding up front 2019-10-27 14:25:58 -07:00
mibac138
a943a0e666 Support uuid 0.8 2019-10-19 19:52:07 +02:00
Steven Fackler
ffd7245e54 Use BytesMut for messages
Benchmarks indicate that malloc accounts for a significant amount of the
runtime of queries. The message buffer accounts for ~half of that (the
other being channels), and this change should eliminate it.
2019-10-12 16:30:27 -07:00
Steven Fackler
01cc7e4715 Clean up derived code 2019-10-10 16:03:48 -07:00
Steven Fackler
31855141d2 Add query_one 2019-10-09 17:45:53 -07:00
Steven Fackler
8c28f8b363 Overhaul simple_query 2019-10-09 17:04:24 -07:00
Steven Fackler
a3f611d609 Overhaul copy_out 2019-10-08 19:01:34 -07:00
Steven Fackler
b8577b45b1 Overhaul query_portal 2019-10-08 17:22:56 -07:00
Steven Fackler
2517100132 Overhaul query
This is the template that we'll use for all other methods taking
parameters. The `foo_raw` variant is the most flexible (but annoying to
use), while `foo` covers the expected common case.
2019-10-08 17:15:41 -07:00
Steven Fackler
0d2d554122 Add a ToStatement trait in tokio-postgres 2019-10-08 19:36:24 -04:00
Steven Fackler
286ecdb5b9 Start on borrow overhaul 2019-10-08 19:34:48 -04:00
Steven Fackler
4b5bcbb602 Split ToSql/FromSql out to a separate crate
Prep for a `derive` feature.
2019-10-07 17:14:18 -07:00
Steven Fackler
de20f0fcd6 Fix bit-vec-support 2019-09-26 18:31:51 -07:00
Steven Fackler
427340d748 Ensure connect future is Send 2019-09-25 18:30:00 -07:00
Steven Fackler
680f7b8ecb Start prepping for futures closing over parameters
Change the slice-consuming methods to requiring &(dyn ToSql + Sync),
which makes the overall value Send. If you have non-Sync values for
whatever reason, you can still use the iterator-based methods.
2019-09-25 18:22:59 -07:00
Steven Fackler
6c3a4ab192 Add channel_binding=disable/prefer/require to config
Closes #487
2019-09-24 17:03:37 -07:00
Steven Fackler
e2d305033e Remove vec workaround in tests 2019-09-23 15:57:58 -07:00
Steven Fackler
b7fe6bece5 Update to newest nightly 2019-09-11 22:20:22 -04:00
Steven Fackler
2a2b76d1b8 Upgrade to tokio alpha.4 2019-08-29 18:10:58 -07:00
Steven Fackler
c026644820 async_await is stable on nightly now 2019-08-21 07:48:36 -04:00
Steven Fackler
2a97c20bf2 Clean up old test 2019-08-02 20:31:15 -07:00
Steven Fackler
26a17ac4ed Support portals 2019-08-01 20:43:13 -07:00
Steven Fackler
5dccb9988a Test notifications 2019-07-31 21:19:56 -07:00
Steven Fackler
9c178ad816 Support copy_out 2019-07-31 20:15:17 -07:00
Steven Fackler
beb509f3f3 rustfmt 2019-07-30 21:29:18 -07:00
Steven Fackler
f45884711f Support copy_in 2019-07-30 21:25:30 -07:00
Steven Fackler
4afd5235db Transaction support 2019-07-30 19:54:30 -07:00
Steven Fackler
88399a790c Cancel query support 2019-07-29 21:36:07 -07:00
Steven Fackler
00ef0bfd84 Use smoke_test for target_session_attrs_ok 2019-07-28 17:50:46 -07:00
Steven Fackler
dea6c3ebc5 Fix target_session_attrs handling 2019-07-28 17:48:32 -07:00
Steven Fackler
9938ffff1a Test and fix simple_query 2019-07-28 16:34:07 -07:00
Steven Fackler
07e5930ddb Handle target_session_attrs 2019-07-28 16:02:34 -07:00
Steven Fackler
e77b0fd009 Add simple_query and batch_execute 2019-07-28 15:52:46 -07:00
Steven Fackler
51f02c89ee Fully working prepare 2019-07-28 09:26:04 -07:00
Steven Fackler
4396f38fcc Setup socket 2019-07-25 07:21:53 -07:00
Steven Fackler
77caff91ef Add query/select 2019-07-24 21:28:52 -07:00
Steven Fackler
90eb58dc8e Some prep for custom type lookup 2019-07-23 20:16:31 -07:00
Steven Fackler
f9e46510ba Implement prepare 2019-07-23 19:54:22 -07:00
Steven Fackler
2480fefd2c Connection IO logic 2019-07-22 21:27:21 -07:00
Steven Fackler
32fe52490e Runtime connect 2019-07-22 20:17:29 -07:00
Steven Fackler
89501f66d9 Start on std::futures rewrite
connect_raw works!
2019-07-21 21:44:43 -07:00
Steven Fackler
db462eb018 Avoid copies in copy_in
copy_in data was previously copied ~3 times - once into the copy_in
buffer, once more to frame it into a CopyData frame, and once to write
that into the stream.

Our Codec is now a bit more interesting. Rather than just writing out
pre-encoded data, we can also send along unencoded CopyData so they can
be framed directly into the stream output buffer. In the future we can
extend this to e.g. avoid allocating for simple commands like Sync.

This also allows us to directly pass large copy_in input directly
through without rebuffering it.
2019-06-25 18:54:17 -07:00
Steven Fackler
956ba12b54 Conversions from INET to IpAddr
We ignore the netmask when deserializing and use /32 or /128 when
serializing.

Closes #430
2019-04-03 21:30:49 -07:00
Steven Fackler
e549f8d635 Fix features 2019-03-05 21:47:34 -08:00