Steven Fackler
e0d113791c
Rename raw cancel query
2019-01-06 11:33:22 -08:00
Steven Fackler
940cbb8d4b
Remove future from MakeTlsMode
...
It's unlikely to be useful in practice, and just introduces more
complexity.
2019-01-05 22:07:20 -08:00
Steven Fackler
0ae7670e05
tokio-postgres crate root docs
2019-01-05 21:39:08 -08:00
Steven Fackler
b55c2ea3c4
Regenerate phf map for new release
2019-01-04 16:57:15 -08:00
Steven Fackler
b2f1d51451
cleanup
2019-01-03 21:14:34 -08:00
Steven Fackler
9e25e47fe0
cleanup
2019-01-01 12:20:41 -08:00
Steven Fackler
8dcad81224
Support URL-style configuration strings
2019-01-01 12:11:30 -08:00
Steven Fackler
272f1a88b9
Fix warning
2018-12-30 20:15:42 -08:00
Steven Fackler
a675b0b50a
Accept a limited set of parameters in Config
...
This matches with libpq's behavior, which doesn't allow arbitrary
parameters. You can still set arbitrary parameters, just through the
`options` field.
2018-12-30 20:07:03 -08:00
Steven Fackler
45444d6c51
Support target_session_attrs
...
Closes #399
2018-12-30 11:50:15 -08:00
Steven Fackler
38db34eb6a
Support TCP keepalive
2018-12-30 09:38:12 -08:00
Steven Fackler
9116147aee
Rename Builder to Config
2018-12-29 21:00:58 -08:00
Steven Fackler
6ae93a0634
Add a convenience connect free function
2018-12-29 13:28:38 -08:00
Steven Fackler
23552b44a4
Simplify unix path handling a bit
2018-12-28 14:33:27 -05:00
Steven Fackler
634d24a951
Wrap Builder in an Arc
...
The builder ends up being cloned a couple of times per connection, so
use Arc::get_mut to make that faster.
2018-12-28 14:16:38 -05:00
Steven Fackler
540bcc5556
Remove unused type
2018-12-28 13:55:09 -05:00
Steven Fackler
635e6381b3
A less stringy builder
...
This allows us to support things like non-utf8 passwords and unix socket
directories.
2018-12-28 13:51:30 -05:00
Steven Fackler
e80e1fcaaf
Don't require passwords to be strings in protocol
2018-12-27 17:36:04 -05:00
Steven Fackler
aa1e587433
Make internal simple query future a stream
2018-12-27 13:51:39 -05:00
Steven Fackler
defe764520
Support connect_timeout
2018-12-25 16:11:33 -05:00
Steven Fackler
d5104bc473
Turn on TCP nodelay in socket
2018-12-25 15:35:33 -05:00
Steven Fackler
be022b537c
Fix poll_idle test race
2018-12-24 13:02:48 -05:00
Steven Fackler
760e4a4f3b
Guarantee some buffer for messages
2018-12-23 15:50:41 -08:00
Steven Fackler
7eaac1cb1a
Sync copy_in support
2018-12-22 21:42:03 -08:00
Steven Fackler
1fdfefbeda
Add Client::poll_idle
...
Closes #403
2018-12-22 17:02:48 -08:00
Steven Fackler
b9e8b4868b
Add Client::is_closed
2018-12-21 21:08:26 -08:00
Steven Fackler
26eb27e70d
Support one-off queries in sync API
...
We can't do this in tokio-postgres while borrowing the parameters, but
it's fine in the sync API!
2018-12-21 20:13:15 -08:00
Steven Fackler
7d20064bd0
Rename into_cause to into_source
2018-12-20 20:36:14 -08:00
Steven Fackler
23b0d6e6f3
Support multiple hosts when connecting
...
cc #399
2018-12-19 20:18:48 -08:00
Steven Fackler
7e7ae968c1
Prep for multi-host support
...
cc #399
2018-12-18 21:39:05 -08:00
Steven Fackler
56088a9a46
Fix warning
2018-12-17 21:59:14 -08:00
Steven Fackler
919012d0c9
Finish convenience API
2018-12-17 21:25:21 -08:00
Steven Fackler
7df7fc715b
Start on runtime API
2018-12-16 22:00:46 -08:00
Steven Fackler
707b87a18e
Fix parameter parsing and add test
...
Our behavior matches libpq's - in particular it allows any escape
sequence and trailing \'s...
2018-12-16 19:24:22 -08:00
Steven Fackler
7297661cef
Shift tests down
2018-12-16 16:08:55 -08:00
Steven Fackler
46f4a2911c
Deserialize libpq-style connection strings
...
Just the key/value pair version for now - URLs will come later
2018-12-13 21:03:47 -08:00
Steven Fackler
10a850a527
Hide trait method
2018-12-10 21:15:49 -08:00
Steven Fackler
c23e3e0bda
Merge row bits
2018-12-10 20:56:22 -08:00
Steven Fackler
fa8fa1a75b
rustfmt
2018-12-09 21:44:59 -08:00
Steven Fackler
04ce4bb7a1
Run clippy
2018-12-09 21:44:07 -08:00
Steven Fackler
8c3338e37d
Enforce rustfmt in CI
2018-12-09 18:01:36 -08:00
Steven Fackler
0db96ff62e
Add back type tests
2018-12-09 16:19:45 -08:00
Damir Vandic
9f7ccebd8b
Update features for meta data docs.rs
2018-12-09 17:13:14 +01:00
Steven Fackler
12345a73b0
Upgrade uuid and eui48
2018-12-08 18:09:19 -08:00
Steven Fackler
69a016fd85
Rename optional crate imports
2018-12-08 18:07:09 -08:00
Steven Fackler
6ff59acdd2
rustfmt
2018-12-08 17:53:30 -08:00
Steven Fackler
b4ce9c38e5
Upgrade tokio-postgres to 2018 edition
2018-12-08 17:52:20 -08:00
Steven Fackler
4d16fbb906
Get rid of postgres-shared
2018-12-08 17:39:20 -08:00
Kyle Huey
39efb1378a
Remove now-gone with-openssl from docs metadata.
2018-12-05 10:59:04 -08:00
Steven Fackler
db771e8bdf
Switch copy_in to use Buf
2018-12-02 21:26:10 -08:00
Steven Fackler
43e6598983
Modernize error a bit
2018-12-01 20:27:06 -08:00
Steven Fackler
d58b1815ad
Fix up new transaction API
2018-12-01 20:01:46 -08:00
Steven Fackler
a9b01b4807
Merge pull request #384 from DarrenTsung/transaction-builder
...
Add a TransactionBuilder struct
2018-12-01 19:56:44 -08:00
Steven Fackler
d9d81b53a3
Tweak ChannelBinding API
2018-11-30 08:13:10 -08:00
Steven Fackler
39e2723ccb
Remove tls-unique channel binding
...
This got axed in the stable PostgreSQL 11 stable release.
2018-11-28 20:09:04 -08:00
Steven Fackler
a24b927bbb
Fix CopyIn Future bound
2018-11-28 19:44:07 -08:00
Steven Fackler
52dd0b6780
rustfmt
2018-11-28 19:32:29 -08:00
Steven Fackler
08b4020534
Overhaul connection APIs
...
* `Connection` is now parameterized over the stream type, which can be
any `AsyncRead + AsyncWrite`.
* The `TlsMode` enum is now a trait, and `NoTls`, `PreferTls`, and
`RequireTls` are types implementing that trait.
* The `TlsConnect` trait no longer involves trait objects, and returns
channel binding info alongside the stream type rather than requiring
the stream to implement an additional trait.
* The `connect` free function and `ConnectParams` type is gone in favor
of a `Builder` type. It takes a pre-connected stream rather than
automatically opening a TCP or Unix socket connection.
Notably, we no longer have any dependency on the Tokio runtime. We do
use the `tokio-codec` and `tokio-io` crates, but those don't actually
depend on mio/tokio-reactor/etc. This means we can work with other
futures-based networking stacks.
We will almost certainly add back a convenience API that offers
something akin to the old logic to open a TCP/Unix connection
automatically but that will be worked out in a follow up PR.
2018-11-28 19:20:40 -08:00
Steven Fackler
0e60d80d4b
Parameterize Connection over the stream
2018-11-25 08:49:28 -08:00
Darren Tsung
f3777bed76
Add a TransactionBuilder struct
...
The TransactionBuilder is useful when trying to create a Transaction
around a future which takes ownership of the client. See doc comment
for more details.
2018-11-06 10:14:32 -08:00
Steven Fackler
04bd98e7ed
Make TlsConnect Sync and Send
...
Closes #382
2018-10-27 16:31:51 -07:00
Steven Fackler
16d1a050e7
Tweak docs
2018-10-14 17:50:21 -07:00
Michael Niens
d6fd28d02f
Allow to build on Windows
...
Someone forgot to handle the non unix case for this match which prevented a build on windows.
A similar line already existed here in line 51 to 56.
5ad7850009/tokio-postgres/src/stream.rs
2018-08-26 00:06:42 +02:00
Steven Fackler
4eecb59bf4
Used released tokio-uds
2018-08-19 22:07:01 -07:00
Steven Fackler
5bea375b37
Remove the flush step from connect future
...
The socket's not buffered, so there's no need to do this.
2018-08-18 13:02:52 -07:00
Steven Fackler
7de5ac85af
Merge pull request #368 from StoriqaTeam/geo-0.10
...
Support geo 0.10
2018-08-17 10:59:54 -07:00
Artem Vorotnikov
a33edae15b
Upgrade to geo-0.10
2018-08-17 18:18:28 +03:00
Steven Fackler
89f5198261
Add query_portal
2018-08-15 21:00:15 -07:00
Steven Fackler
349f3764a9
Don't bother waiting for a ReadyForQuery
...
We use it in the connection to track framing but don't need to wait
around for it in the individual futures/streams
2018-08-15 20:24:50 -07:00
Steven Fackler
dcde61c16d
Add bind/portal
2018-08-15 19:53:20 -07:00
Steven Fackler
a4bdcb11e4
Overhaul error type
2018-08-15 10:27:34 -07:00
Steven Fackler
a05adff20d
Make DbError's fields private
2018-08-14 16:58:10 -07:00
Steven Fackler
1d9ae82198
Move error in-crate
...
We'll operate under the assumption that postgres will end up being a
wrapper on top of tokio-postgres so postgres-shared goes away.
2018-08-13 13:25:29 -06:00
Steven Fackler
3d22aa323b
Make copy_in stream more flexible
2018-08-12 21:23:21 -06:00
Steven Fackler
bfd2c7f436
Fix assert
2018-08-12 20:49:59 -06:00
Steven Fackler
b74f5c80d0
copy in support
2018-08-12 20:19:27 -06:00
Steven Fackler
daeb5389ed
log typo
2018-08-10 11:35:14 -07:00
Steven Fackler
7056e3ec24
Copy out support
2018-07-15 19:40:15 -07:00
Steven Fackler
9e399aa93f
Basic transaction support
2018-07-14 14:59:37 -07:00
Steven Fackler
bf0633681b
Fix pipelined preparation
...
We can end up double-preparing the typeinfo queries if we're pipelining
preparation, so pick a unique name for them.
2018-07-08 16:06:53 -07:00
Steven Fackler
53657b828a
Implement batch_execute
2018-07-07 22:42:04 -07:00
Steven Fackler
3955d26c20
Don't hold strong references in statements
...
There's no need for the connection to stay open until statements drop -
they'll be cleaned up anyway once the connection dies.
2018-07-07 16:43:07 -07:00
Steven Fackler
1788a03baa
notification/notice support
2018-07-07 10:11:16 -07:00
Steven Fackler
997b5e01a4
Set TCP_NODELAY for tokio-postgres
2018-07-05 21:36:50 -07:00
Steven Fackler
a237a471c9
Support custom types
2018-07-05 20:48:08 -07:00
Steven Fackler
be2ca03fa9
tokio-postgres query cancellation
2018-06-27 22:37:43 -07:00
Steven Fackler
c2fb9c6de0
Move TLS logic to connect future
...
This way we can reuse it for query cancellation
2018-06-26 22:04:15 -07:00
Steven Fackler
6edab70b0e
Channel binding support in tokio-postgres
2018-06-26 21:17:04 -07:00
Steven Fackler
70758bcd93
tokio-postgres TLS setup
2018-06-25 21:16:18 -07:00
Steven Fackler
5fbe20fd25
Auth tests
2018-06-21 22:38:42 -04:00
Steven Fackler
24d216cd7f
simplify test a bit
2018-06-20 21:08:08 -04:00
Steven Fackler
e86091a268
Working select/execute
2018-06-20 20:06:11 -04:00
Steven Fackler
cb805d6057
Add execute
2018-06-19 22:10:07 -04:00
Steven Fackler
aa0fca4929
tag futures as must use
2018-06-19 19:54:29 -04:00
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
11ffcac087
Support SCRAM channel binding for Postgres 11
2018-06-01 23:07:33 -07:00