Commit Graph

2074 Commits

Author SHA1 Message Date
Steven Fackler
e9db2bf284 Defer message sends until first poll
This matches up generally with the "futures do nothing until polled"
model.
2018-06-19 19:51:30 -04:00
Steven Fackler
9d5a36e173 Only flush if necessary
If poll_write was blocked trying to write a request out to the socket,
it's because the write triggered a flush and the socket wasn't ready. We
don't want to try to flush again, since it's at best a waste of time and
at worst can cause a deadlock if the socket becomes available after the
poll_write and before the poll_flush. If that happens, we should be in
poll_write again writing more data but that wouldn't happen.
2018-06-18 22:49:53 -04:00
Steven Fackler
13fcea7ae2 Working statement preparation 2018-06-18 22:34:25 -04:00
Steven Fackler
0d0435fc2e Start on prepare 2018-06-18 08:18:04 -04:00
Steven Fackler
8c3770bd57 Start on tokio-postgres rewrite 2018-06-16 21:29:27 -07:00
Steven Fackler
5ad7850009
Merge pull request #360 from sfackler/channel-binding
Support SCRAM channel binding for Postgres 11
2018-06-02 16:40:29 -07:00
Steven Fackler
11ffcac087 Support SCRAM channel binding for Postgres 11 2018-06-01 23:07:33 -07:00
Steven Fackler
9762eb609f
Merge pull request #358 from sfackler/split-tls
Split out TLS implementations
2018-05-28 10:47:16 -07:00
Steven Fackler
c70a03f9e6 Split out TLS implementations
This provides a lot more flexibility around version support, and unlike
the ToSql/FromSql implementations, these don't actually need to be in
postgres itself.
2018-05-28 10:42:21 -07:00
Steven Fackler
374d0ca32e
Merge pull request #354 from paulbort/master
Change example to avoid compiler warning
2018-05-20 09:11:43 -07:00
paulbort
37d3982bd1
Change example to avoid compiler warning
Added person.id to output so that the compiler won't complain that the id field in the structure is never used.
2018-05-20 12:02:28 -04:00
Steven Fackler
9ab7218edf More test downgrades 2018-05-19 15:29:12 -07:00
Steven Fackler
19f59ae9d7 Avoid build break 2018-05-19 15:25:42 -07:00
Steven Fackler
b33fdcd0e5
Merge pull request #304 from jwilm/simple-query-api
Implement simple query API
2018-05-19 13:21:12 -07:00
Joe Wilm
39a4cdfa82 Deprecate batch_execute
It's being replaced by the more capable `simple_query` API.
2018-05-18 17:33:29 -07:00
Joe Wilm
aeaea5e38e simple_query generate error on unexpected message 2018-05-03 08:06:39 -07:00
Joe Wilm
d21090d929 Add docs for TextRow getters 2018-05-03 08:04:22 -07:00
Steven Fackler
993f2fc34c
Merge pull request #351 from khuey/debug
Derive Debug on Notifications.
2018-05-02 09:36:13 -07:00
Kyle Huey
e9c773c317 Derive Debug on Notifications. 2018-05-02 09:28:09 -07:00
Steven Fackler
7ced104a4f Upgrade phf 2018-04-29 15:17:52 -07:00
Steven Fackler
ad2fcf3e83
Merge pull request #349 from sfackler/type-versions
SystemTime impls
2018-04-29 15:08:31 -07:00
Steven Fackler
6d61b05925 SystemTime impls 2018-04-29 14:58:41 -07:00
Steven Fackler
d1660e1c14
Merge pull request #348 from sfackler/type-versions
Upgrade type crate versions
2018-04-29 13:18:05 -07:00
Steven Fackler
15b6cd57f5 Upgrade type crate versions
Also add the version number to the feature name. This both makes it more
obvious when using them and opens the window for support of multiple
versions simultaneously in the future.
2018-04-29 13:12:58 -07:00
Joe Wilm
a1d759a2f4 Add test for simple query 2018-04-27 17:34:24 -07:00
Joe Wilm
20d4d8a71a Fix docs for simple_query
Also fixes the return type to be consistent with regular "Rows" API.
2018-04-27 17:34:24 -07:00
Joe Wilm
3b1b9aeace Add docs for simple_query method on Connections 2018-04-27 17:34:24 -07:00
Joe Wilm
815175ffd8 Remove expect on utf8
Should always be utf8 in practice, but there's no point in panicking.
2018-04-27 17:34:24 -07:00
Joe Wilm
8a0eab0502 Handle option being None 2018-04-27 17:34:24 -07:00
Joe Wilm
99ebda2296 Implement simple query API
The simple query API is a more robust version of `batch_execute`. Like
that method, `simple_query` allows passing a `&str` of semicolon
delimited queries. Divergence from `batch_execute` is in the return
type; instead of nothing, a `Vec<TextRows>` is returned. Each entry in
this `Vec` is the result set of one query in the query string. Thus if
there are two semicolon delimited queries, there will be two entries in
this `Vec`.

The `TextRows` and `TextRow` types returned from `simple_query` closely
mirror existing `Rows` and `Row` types with one major difference: only
string values can be retrieved from them.

There are a few TODOs in the code:

* Are text values in this case guaranteed to be utf-8 encoded?
* unwrap call in simple_query which assumes RowDescription is always
  sent
* documentation (denoted with either STUB or TODO)
2018-04-27 17:34:24 -07:00
Steven Fackler
2200286bba
Merge pull request #345 from sfackler/prepare-typed
Add Connection::prepare_typed
2018-04-22 21:23:48 -07:00
Steven Fackler
44222e591f Add Connection::prepare_typed
Closes #300
2018-04-22 21:16:11 -07:00
Steven Fackler
198bf0780b Little cleanup 2018-04-22 19:47:36 -07:00
Steven Fackler
a33bcb8d55
Merge pull request #344 from sfackler/auto-flags
Automatically determine flags for array serialization
2018-04-22 19:07:08 -07:00
Steven Fackler
bfdb557cf2 Automatically determine flags for array serialization
This way it automatically works with versions of postgres that didn't
support null array entries as long as the data doesn't actually have a
null
2018-04-22 19:02:48 -07:00
Steven Fackler
77b3f77468
Merge pull request #343 from sfackler/assoc-const
Make constants associated
2018-04-22 15:07:07 -07:00
Steven Fackler
2777703ef3 Make constants associated 2018-04-22 15:01:55 -07:00
Steven Fackler
165a3342b9
Merge pull request #342 from sfackler/borrowed
Allow FromSql to borrow from the buffer
2018-04-22 14:16:28 -07:00
Steven Fackler
fcbed9175b Allow FromSql to borrow from the buffer
This allows for in-place deserialization of text and bytea values in
particular.

Row::get_bytes is removed since it previously existed for this use case.

Closes #281
2018-04-22 13:16:34 -07:00
Steven Fackler
520aacab7e
Merge pull request #339 from sfackler/keepalive
Support TCP keepalive
2018-04-16 20:27:55 -07:00
Steven Fackler
d0c111dc4a Use released socket2 2018-04-16 20:22:56 -07:00
Steven Fackler
b210624800 Fix minimum tokio-core version 2018-04-15 14:38:58 -07:00
Steven Fackler
06bcde2da1 Keepalive support in tokio-postgres 2018-04-15 14:38:01 -07:00
Steven Fackler
9139282344 Don't explicity disable keepalive
We want to use the OS default normally
2018-04-15 14:31:32 -07:00
Steven Fackler
fd53c56363 Clean up syntax 2018-04-15 14:30:15 -07:00
Steven Fackler
594606ad9f Support TCP keepalive
Closes #335
2018-04-15 14:30:15 -07:00
Steven Fackler
01e820633c
Merge pull request #340 from sfackler/deps
Upgrade dependencies
2018-04-15 14:29:48 -07:00
Steven Fackler
8970fd958c Fix warning 2018-04-15 14:26:02 -07:00
Steven Fackler
1d4345543c bump rust version 2018-04-15 14:23:14 -07:00
Steven Fackler
ec7db287e1 Upgrade dependencies 2018-04-15 13:59:48 -07:00