Commit Graph

1939 Commits

Author SHA1 Message Date
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
ce7580d664
Merge pull request #393 from dfa1/fix-typo
fix typo
2018-11-30 10:24:22 -08:00
Davide Angelocola
afa8a03048 fix typo 2018-11-30 18:46:14 +01:00
Steven Fackler
d9d81b53a3 Tweak ChannelBinding API 2018-11-30 08:13:10 -08:00
Steven Fackler
a2cac0ef61 Remove tls-unique from blocking postgres crate 2018-11-28 20:42:53 -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
dead5feeba Bump docker image 2018-11-28 19:36:25 -08:00
Steven Fackler
52dd0b6780 rustfmt 2018-11-28 19:32:29 -08:00
Steven Fackler
a0ba0ce214 Fix geo test 2018-11-28 19:31:39 -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
dbc6bf24e4 Un-lock phf
Closes #369

(cherry picked from commit 440a596350d417926faa07a952a638685f1c1e7a)
2018-10-25 22:06:01 -07:00
Steven Fackler
16d1a050e7 Tweak docs 2018-10-14 17:50:21 -07:00
Steven Fackler
255c758d41 Add tokio-postgres-native-tls 2018-10-14 17:44:46 -07:00
Steven Fackler
6f9b36a09a Remove old benchmarks 2018-10-14 16:57:32 -07:00
Steven Fackler
05ef00a2a1 Upgrade md5 2018-10-14 16:51:30 -07:00
Steven Fackler
9befbd898f Upgrade digest crates 2018-10-11 09:00:59 -07:00
Steven Fackler
86b65aae22
Merge pull request #374 from rustonaut/fix_371_savepoint_nameing_in_nested_transactions
Fix #371 savepoint nameing in nested transactions
2018-09-26 15:23:19 -07:00
Steven Fackler
b190738c23
Merge pull request #373 from srijs/feat/json-newtype-wrapper
Add Json wrapper type
2018-09-26 09:03:04 -07:00
Philipp Korber
96f97a6117 Fixes #371 by not reusing the same savepoint name.
Rolling back to a savepoint doesn't release it so,
reusing the same name in nested transaction means
inner transactions only roll back to the
most transaction/last savepoint.

If the outer most transaction commits but did multiple
consecutive rollbacks in the nested transactions this
did cause an unexpected state in the database before
the fix.
2018-09-25 15:35:20 +02:00
Philipp Korber
a7db658279 Test partial rollback of nested commits.
Related to #371.
2018-09-25 15:21:31 +02:00
Sam Rijs
afce0b7d14 Add Json wrapper type 2018-09-25 21:38:10 +10:00
Steven Fackler
12546ecd95
Merge pull request #370 from Lorfdail/master
Handle non unix case in poll_start of PollConnect
2018-08-25 15:42:30 -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
9609055edf Also patch tokio
Not sure how tests previously compiled?
2018-08-18 13:06:19 -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
08df4b330f Implement tls_server_end_point for postgres-native-tls 2018-07-07 21:18:41 -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