4.4 KiB
Change Log
v0.17.0-alpha.1 - 2019-10-14
Changed
- Updated
tokio-postgres
to 0.5.0-alpha.1.
v0.16.0-rc.2 - 2019-06-29
Fixed
- Documentation fixes
v0.16.0-rc.1 - 2019-04-06
Changed
-
Connection
has been renamed toClient
. -
The
Client
type is now a thin wrapper around the tokio-postgres nonblocking client. By default, this is handled transparently by spawning connections onto an internal tokioRuntime
, but this can also be controlled explicitly. -
The
ConnectParams
type andIntoConnectParams
trait have been replaced by a builder-styleConfig
type.Before:
let params = ConnectParams::builder() .user("postgres", None) .build(Host::Tcp("localhost".to_string())) .build(); let conn = Connection::connect(params, &TlsMode::None)?;
After:
let client = Client::configure() .user("postgres") .host("localhost") .connect(NoTls)?;
-
The TLS connection mode (e.g.
prefer
) is now part of the connection configuration instead of being passed in separately.Before:
let conn = Connection::connect("postgres://postgres@localhost", &TlsMode::Prefer(connector))?;
After:
let client = Client::connect("postgres://postgres@localhost?sslmode=prefer", connector)?;
-
Client
andTransaction
methods take&mut self
rather than&self
, and correct use of the active transaction is verified at compile time rather than runtime. -
Row
no longer borrows any data. -
Statement
is now a "token" which is passed into methods onClient
andTransaction
and does not borrow the client:Before:
let statement = conn.prepare("SELECT * FROM foo WHERE bar = $1")?; let rows = statement.query(&[&1i32])?;
After:
let statement = client.prepare("SELECT * FROM foo WHERE bar = $1")?; let rows = client.query(&statement, &[1i32])?;
-
Statement::lazy_query
has been replaced withTransaction::bind
, which returns aPortal
type that can be used withTransaction::query_portal
. -
Statement::copy_in
andStatement::copy_out
have been moved toClient
andTransaction
. -
Client::copy_out
andTransaction::copy_out
now return aRead
er rather than consuming in aWrite
r. -
Connection::batch_execute
andTransaction::batch_execute
have been replaced withClient::simple_query
andTransaction::simple_query
. -
The Cargo features enabling
ToSql
andFromSql
implementations for external crates are now versioned. For example,with-uuid
is nowwith-uuid-0_7
. This enables us to add support for new major versions of the crates in parallel without breaking backwards compatibility.
Added
- Connection string configuration now more fully mirrors libpq's syntax, and supports both URL-style and key-value style strings.
FromSql
implementations can now borrow from the data buffer. In particular, this means that you can deserialize values as&str
. TheFromSqlOwned
trait can be used as a bound to restrict code to deserializing owned values.- Added support for channel binding with SCRAM authentication.
- Added multi-host support in connection configuration.
- Added support for simple query requests returning row data.
- Added variants of query methods which return fallible iterators of values and avoid fully buffering the response in memory.
Removed
- The
with-openssl
andwith-native-tls
Cargo features have been removed. Use thetokio-postgres-openssl
andtokio-postgres-native-tls
crates instead. - The
with-rustc_serialize
andwith-time
Cargo features have been removed. Useserde
andSystemTime
orchrono
instead. - The
Transaction::set_commit
andTransaction::set_rollback
methods have been removed. The only way to commit a transaction is to explicitly consume it viaTransaction::commit
. - The
Rows
type has been removed; methods now returnVec<Row>
instead. Connection::prepare_cache
has been removed, asStatement
is now'static
and can be more easily cached externally.- Some other slightly more obscure features have been removed in the initial release. If you depended on them, please file an issue and we can find the right design to add them back!
Older
Look at the release tags for information about older releases.