Commit Graph

306 Commits

Author SHA1 Message Date
Steven Fackler
1390cc57d7 doc fix 2019-11-30 12:01:09 -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
a5428e6a03 wip sync copy-in 2019-11-29 10:15:46 -05:00
Steven Fackler
fa3b068da7 Release postgres v0.17.0-alpha.2 2019-11-27 21:01:24 -05:00
Steven Fackler
223514fcd5 Fix custom spawn interface in sync API 2019-11-27 20:58:02 -05:00
Steven Fackler
47d97f0d2e Relase tokio-postgres v0.5.0-alpha.2 2019-11-27 20:48:01 -05:00
Steven Fackler
12c2ef79b6 Upgrade to tokio 0.2/futures 0.3 2019-11-26 16:32:36 -08:00
Ivan Kozik
0b5ca1bd68 Add query_one to postgres::Transaction
I believe this was missed in 31855141d2
2019-10-27 13:06:16 +00:00
mibac138
a943a0e666 Support uuid 0.8 2019-10-19 19:52:07 +02:00
Steven Fackler
2a8f7bdd96 Release postgres v0.17.0-alpha.1 2019-10-14 18:25:29 -07:00
Steven Fackler
afa466fb25 Release tokio-postgres v0.5.0-alpha.1 2019-10-14 18:14:11 -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
4b5bcbb602 Split ToSql/FromSql out to a separate crate
Prep for a `derive` feature.
2019-10-07 17:14:18 -07:00
Steven Fackler
d8b5412602 Upgrade errcodes to Postgres 12 2019-10-03 18:25:25 -07:00
Steven Fackler
30bd89c524 Upgrade tokio and futures-preview 2019-09-30 18:26:23 -07:00
Steven Fackler
1c1a939f8a
Merge branch 'master' into master 2019-09-26 21:23:55 -04:00
Steven Fackler
983a71c470 Fix postgres 2019-09-25 18:39:51 -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
1fa4838717 Upgrade to tokio alpha.5 2019-09-19 14:48:34 -07:00
Steven Fackler
ac8d7077d3 Remove uneeded Sync bounds 2019-09-03 18:05:19 -07: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
aa44090fad Update futures-preview/tokio 2019-08-18 09:02:21 -04:00
Steven Fackler
92e3d013eb Update to released tokio 2019-08-10 20:25:12 -07:00
Steven Fackler
3ed4543426 Don't block the reactor on DNS 2019-08-04 19:21:32 -07:00
Steven Fackler
f07ebc7373 Support nested transactions 2019-08-03 18:25:28 -07:00
Steven Fackler
f5a8b1de68 Update postgres 2019-08-03 18:09:27 -07:00
Kai Yao
2c43519093 Updated bitvec to 0.6.1, as it supports serde serialization/deserialization. 2019-07-27 21:07:03 -05:00
Steven Fackler
c0fcf34eb4 Reexport macros from tokio-postgres
Closes #463
2019-07-21 14:06:13 -07:00
Steven Fackler
904c951ad6 Release postgres v0.16.0-rc.2 2019-06-29 21:43:50 -07:00
Steven Fackler
3f264027c9 Fix some typos 2019-06-29 12:32:46 -07:00
Steven Fackler
eb18cbd475 Reexport Socket from postgres 2019-04-06 21:26:02 -07:00
Steven Fackler
0c8ecc0240 Release postgres v0.16.0-rc.1 2019-04-06 20:59:01 -07:00
Steven Fackler
6c0ec6a6bf TLS docs for tokio-postgres 2019-04-01 21:56:25 -07:00
Steven Fackler
aaaf8247ec Crate level docs 2019-03-31 21:48:32 -07:00
Steven Fackler
16021d2985 Fix docs 2019-03-30 20:58:01 -07:00
Steven Fackler
aa3aedda56 More docs 2019-03-30 20:57:12 -07:00
Steven Fackler
7c9717d764 Finish Client docs 2019-03-28 21:55:42 -07:00
Steven Fackler
2c786587bb Start on postgres docs 2019-03-27 20:20:15 -07:00
Steven Fackler
52aa260f85 Reexports and config docs 2019-03-25 21:03:22 -07:00
Steven Fackler
948274533f Config should be Sync + Send 2019-03-25 20:02:24 -07:00
Steven Fackler
d52650a55c Fixup warnings 2019-03-24 13:32:29 -07:00
Steven Fackler
60825d9bef Allow custom executors 2019-03-24 13:22:26 -07:00
Steven Fackler
2a80118e87 Don't require use of iterators
The common case is to simply want a vec of rows to work with, so make
that the main API, wrapping the old version returning an iterator.
2019-03-10 17:27:28 -07:00
Steven Fackler
3b31551f73 Upgrade fallible-iterator 2019-03-10 16:32:28 -07:00
Steven Fackler
4f084e7b64 Release tokio-postgres v0.4.0-rc.2 2019-03-05 21:49:54 -08:00
Steven Fackler
4174eeeecb Release tokio-postgres v0.4.0-rc.1 2019-03-05 21:35:46 -08:00
Steven Fackler
0de50abc29 Rustfmt 2019-03-04 21:55:37 -08:00
Steven Fackler
1f80b78f07 Adjust API layout 2019-03-04 21:51:44 -08:00
Steven Fackler
31534b5734 Fix serde docs 2019-03-04 21:51:44 -08:00
Steven Fackler
fb6e19ae60 Use geo-types rather than geo
Closes #418
2019-02-17 12:34:17 -08:00
Steven Fackler
32e09dbb91 Change batch_execute into simple_query
Closes #413
2019-01-31 20:35:17 -08:00
坚坚冰
5c7ddc9c85 Upgrade geo, rand and base64 2019-01-31 14:48:04 +08:00
lygz5016
289de79e00
add features option 2019-01-31 13:19:39 +08:00
Steven Fackler
e57a2976e9 Fix clippy 2019-01-29 19:40:49 -08:00
Steven Fackler
df84dd8fd0 Add convenience to_vec methods to fallible iterators
The very common case is to simply collect these to a vector, and this
lets people avoid having to import FallibleIterator.
2019-01-29 19:29:33 -08:00
Steven Fackler
725b7153b6 Move futures/streams to a submodule 2019-01-17 21:14:09 -08:00
Steven Fackler
e3f2eb7244 Update sync config for sslmode 2019-01-13 15:41:59 -08:00
Steven Fackler
2d3b9bb1c6 Move the TLS mode into config 2019-01-13 15:07:20 -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
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
983de2ef9d Rustfmt 2018-12-29 21:06:24 -08:00
Steven Fackler
e4bb2aedfb Rename Client::builder to Client::configure 2018-12-29 21:05:01 -08:00
Steven Fackler
9116147aee Rename Builder to Config 2018-12-29 21:00:58 -08:00
Steven Fackler
af41875ea4 derive traits for sync builder 2018-12-29 09:57:49 -08:00
Steven Fackler
6bcc7c47ae Fix clippy warning 2018-12-28 21:38:50 -08:00
Steven Fackler
fb027d79db Move CopyOutReader to its own module 2018-12-28 21:01:10 -08:00
Steven Fackler
5169820d6a Return iterators from query in sync API 2018-12-28 20:39:32 -08:00
Steven Fackler
45593f5ad0 Rename Query to ToStatement 2018-12-28 20:20:31 -08:00
Steven Fackler
919fa52a5e Add bind and query_portal to sync API 2018-12-28 16:05:05 -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
45b078982a Add accessors for the async client 2018-12-23 15:58:39 -08:00
Steven Fackler
a1fc412f9e Simplify sync copy_in 2018-12-23 15:02:42 -08:00
Steven Fackler
ec680b1e0e Avoid NLL letting CopyOutReader borrow drop early 2018-12-23 13:28:13 -08:00
Steven Fackler
793c5f1b87 Add sync copy_out 2018-12-23 13:17:50 -08:00
Steven Fackler
2b1cac40c3 Clean up CopyInFuture 2018-12-23 12:22:25 -08:00
Steven Fackler
1b29330a96 Sync transaction copy_in 2018-12-22 22:09:27 -08:00
Steven Fackler
ee8d3a7632 Fix clippy 2018-12-22 21:43:52 -08:00
Steven Fackler
7eaac1cb1a Sync copy_in support 2018-12-22 21:42:03 -08:00
Steven Fackler
0d3e18b251 Support nested transactions in sync API 2018-12-22 13:38:35 -08:00
Steven Fackler
b9e8b4868b Add Client::is_closed 2018-12-21 21:08:26 -08:00
Steven Fackler
633e87aefc Add basic sync API tests 2018-12-21 21:01:49 -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
44fa44a307 Sync transactions 2018-12-21 13:46:50 -08:00
Steven Fackler
759256010d Initial sync crate sketch 2018-12-21 13:34:09 -08:00
Steven Fackler
14571ab029 Remove synchronous crate
It will be coming back! It's just going to involve a full rewrite and
removing it for now makes some of that restructuring easier.
2018-12-08 16:11:03 -08:00
Davide Angelocola
afa8a03048 fix typo 2018-11-30 18:46:14 +01:00
Steven Fackler
a2cac0ef61 Remove tls-unique from blocking postgres crate 2018-11-28 20:42:53 -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
6f9b36a09a Remove old benchmarks 2018-10-14 16:57:32 -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
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
a4bdcb11e4 Overhaul error type 2018-08-15 10:27:34 -07:00
Steven Fackler
11ffcac087 Support SCRAM channel binding for Postgres 11 2018-06-01 23:07:33 -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
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
6d61b05925 SystemTime impls 2018-04-29 14:58:41 -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
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
2777703ef3 Make constants associated 2018-04-22 15:01:55 -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
d0c111dc4a Use released socket2 2018-04-16 20:22:56 -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
ec7db287e1 Upgrade dependencies 2018-04-15 13:59:48 -07:00
Steven Fackler
17fcbe3eb8 Remove old feature check module. 2018-02-11 21:13:23 -08:00
Steven Fackler
0516cb9d10 Release postgres 0.15.2 2018-02-11 17:19:52 -08:00
Steven Fackler
e1f31a4493 Release postgres-shared v0.4.1 2018-02-11 17:17:52 -08:00
Johannes Schriewer
5171cbeca0 Add test for DB disconnects while waiting for notifications 2018-01-30 15:32:43 +01:00
Johannes Schriewer
75527beacf Add handling of DB-Errors in Notification processing
Handle the error that is generated when the DB connection goes down instead of panicing with
an unreachable code error. This allows the notification client to retry establishing the
connection instead of crashing the complete program.
2018-01-29 17:36:27 +01:00
Steven Fackler
9d200ea387 Fix the last warning 2018-01-09 21:25:35 -08:00
Steven Fackler
630e11ad4c More warnings fixes 2018-01-09 21:18:34 -08:00
Steven Fackler
863a295aae Upgrade socket2 and log 2018-01-09 20:32:55 -08:00
Steven Fackler
89d39cc5ab Add an example to lazy_query 2017-10-15 18:31:59 -07:00
Steven Fackler
acb424afa4 Fix read timeout handling 2017-09-20 08:32:10 -04:00
Steven Fackler
795b8dfa07 Upgrade to official rust image 2017-08-10 19:27:25 -07:00
Steven Fackler
932a7b19d7 Add a connect timeout
cc #246
2017-08-09 21:05:25 -07:00
Steven Fackler
fdc4a01b1a Fix up dep constraint 2017-07-23 16:50:00 -07:00
Steven Fackler
1d9c7d4c79 Release postgres v0.15.1 2017-07-23 15:58:52 -07:00
Steven Fackler
d0db938f82 Forward macros 2017-07-23 15:43:05 -07:00
Steven Fackler
5524e21f9a Release postgres v0.15.0 2017-07-23 12:45:40 -07:00
Steven Fackler
6e4d960f8e Upgrade eui48 version 2017-07-21 21:58:04 -07:00
Steven Fackler
1373a57cf8 Switch badge to circle 2017-07-22 15:09:06 -07:00
Steven Fackler
89f2770eeb Build docs with features enabled 2017-07-22 15:07:45 -07:00
Steven Fackler
7b22574aa6 Mangle hidden trait method 2017-07-22 10:27:31 -07:00
Steven Fackler
2f0baf89f0 Fix test build 2017-07-22 10:23:22 -07:00
Steven Fackler
6394dc1c84 Cleanup 2017-07-21 21:08:39 -07:00
Steven Fackler
792d7bf374 Just reexport types module 2017-07-20 22:58:29 -07:00
Steven Fackler
4c6e36e03a Fixes 2017-07-19 21:27:12 -07:00
Steven Fackler
fed246e9fd Error reform for tokio-postgres 2017-07-19 21:22:27 -07:00
Steven Fackler
15a1b791c4 Unify error types for postgres 2017-07-16 18:14:47 -07:00