Skip to content

Commit 0e494a0

Browse files
committed
change rest of *_raw methods to use BorrowToSql
1 parent 0eab5fa commit 0e494a0

File tree

6 files changed

+52
-37
lines changed

6 files changed

+52
-37
lines changed

postgres/src/binary_copy.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//! Utilities for working with the PostgreSQL binary copy format.
22
33
use crate::connection::ConnectionRef;
4-
use crate::types::{ToSql, Type};
4+
use crate::types::{BorrowToSql, ToSql, Type};
55
use crate::{CopyInWriter, CopyOutReader, Error};
66
use fallible_iterator::FallibleIterator;
77
use futures::StreamExt;
@@ -46,9 +46,10 @@ impl<'a> BinaryCopyInWriter<'a> {
4646
/// # Panics
4747
///
4848
/// Panics if the number of values provided does not match the number expected.
49-
pub fn write_raw<'b, I>(&mut self, values: I) -> Result<(), Error>
49+
pub fn write_raw<P, I>(&mut self, values: I) -> Result<(), Error>
5050
where
51-
I: IntoIterator<Item = &'b dyn ToSql>,
51+
P: BorrowToSql,
52+
I: IntoIterator<Item = P>,
5253
I::IntoIter: ExactSizeIterator,
5354
{
5455
self.connection

postgres/src/client.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::{
55
};
66
use std::task::Poll;
77
use tokio_postgres::tls::{MakeTlsConnect, TlsConnect};
8-
use tokio_postgres::types::{ToSql, Type};
8+
use tokio_postgres::types::{BorrowToSql, ToSql, Type};
99
use tokio_postgres::{Error, Row, SimpleQueryMessage, Socket};
1010

1111
/// A synchronous PostgreSQL client.
@@ -227,7 +227,7 @@ impl Client {
227227
/// let mut client = Client::connect("host=localhost user=postgres", NoTls)?;
228228
///
229229
/// let baz = true;
230-
/// let mut it = client.query_raw("SELECT foo FROM bar WHERE baz = $1", iter::once(&baz as _))?;
230+
/// let mut it = client.query_raw("SELECT foo FROM bar WHERE baz = $1", iter::once(baz))?;
231231
///
232232
/// while let Some(row) = it.next()? {
233233
/// let foo: i32 = row.get("foo");
@@ -263,10 +263,11 @@ impl Client {
263263
/// # Ok(())
264264
/// # }
265265
/// ```
266-
pub fn query_raw<'a, T, I>(&mut self, query: &T, params: I) -> Result<RowIter<'_>, Error>
266+
pub fn query_raw<T, P, I>(&mut self, query: &T, params: I) -> Result<RowIter<'_>, Error>
267267
where
268268
T: ?Sized + ToStatement,
269-
I: IntoIterator<Item = &'a dyn ToSql>,
269+
P: BorrowToSql,
270+
I: IntoIterator<Item = P>,
270271
I::IntoIter: ExactSizeIterator,
271272
{
272273
let stream = self

postgres/src/generic_client.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::types::{ToSql, Type};
1+
use crate::types::{BorrowToSql, ToSql, Type};
22
use crate::{
33
Client, CopyInWriter, CopyOutReader, Error, Row, RowIter, SimpleQueryMessage, Statement,
44
ToStatement, Transaction,
@@ -37,10 +37,11 @@ pub trait GenericClient: private::Sealed {
3737
T: ?Sized + ToStatement;
3838

3939
/// Like `Client::query_raw`.
40-
fn query_raw<'a, T, I>(&mut self, query: &T, params: I) -> Result<RowIter<'_>, Error>
40+
fn query_raw<T, P, I>(&mut self, query: &T, params: I) -> Result<RowIter<'_>, Error>
4141
where
4242
T: ?Sized + ToStatement,
43-
I: IntoIterator<Item = &'a dyn ToSql>,
43+
P: BorrowToSql,
44+
I: IntoIterator<Item = P>,
4445
I::IntoIter: ExactSizeIterator;
4546

4647
/// Like `Client::prepare`.
@@ -104,10 +105,11 @@ impl GenericClient for Client {
104105
self.query_opt(query, params)
105106
}
106107

107-
fn query_raw<'a, T, I>(&mut self, query: &T, params: I) -> Result<RowIter<'_>, Error>
108+
fn query_raw<T, P, I>(&mut self, query: &T, params: I) -> Result<RowIter<'_>, Error>
108109
where
109110
T: ?Sized + ToStatement,
110-
I: IntoIterator<Item = &'a dyn ToSql>,
111+
P: BorrowToSql,
112+
I: IntoIterator<Item = P>,
111113
I::IntoIter: ExactSizeIterator,
112114
{
113115
self.query_raw(query, params)
@@ -183,10 +185,11 @@ impl GenericClient for Transaction<'_> {
183185
self.query_opt(query, params)
184186
}
185187

186-
fn query_raw<'a, T, I>(&mut self, query: &T, params: I) -> Result<RowIter<'_>, Error>
188+
fn query_raw<T, P, I>(&mut self, query: &T, params: I) -> Result<RowIter<'_>, Error>
187189
where
188190
T: ?Sized + ToStatement,
189-
I: IntoIterator<Item = &'a dyn ToSql>,
191+
P: BorrowToSql,
192+
I: IntoIterator<Item = P>,
190193
I::IntoIter: ExactSizeIterator,
191194
{
192195
self.query_raw(query, params)

postgres/src/transaction.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::connection::ConnectionRef;
22
use crate::{CancelToken, CopyInWriter, CopyOutReader, Portal, RowIter, Statement, ToStatement};
3-
use tokio_postgres::types::{ToSql, Type};
3+
use tokio_postgres::types::{BorrowToSql, ToSql, Type};
44
use tokio_postgres::{Error, Row, SimpleQueryMessage};
55

66
/// A representation of a PostgreSQL database transaction.
@@ -102,10 +102,11 @@ impl<'a> Transaction<'a> {
102102
}
103103

104104
/// Like `Client::query_raw`.
105-
pub fn query_raw<'b, T, I>(&mut self, query: &T, params: I) -> Result<RowIter<'_>, Error>
105+
pub fn query_raw<T, P, I>(&mut self, query: &T, params: I) -> Result<RowIter<'_>, Error>
106106
where
107107
T: ?Sized + ToStatement,
108-
I: IntoIterator<Item = &'b dyn ToSql>,
108+
P: BorrowToSql,
109+
I: IntoIterator<Item = P>,
109110
I::IntoIter: ExactSizeIterator,
110111
{
111112
let stream = self

tokio-postgres/src/generic_client.rs

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::query::RowStream;
2-
use crate::types::{ToSql, Type};
2+
use crate::types::{BorrowToSql, ToSql, Type};
33
use crate::{Client, Error, Row, Statement, ToStatement, Transaction};
44
use async_trait::async_trait;
55

@@ -18,10 +18,11 @@ pub trait GenericClient: private::Sealed {
1818
T: ?Sized + ToStatement + Sync + Send;
1919

2020
/// Like `Client::execute_raw`.
21-
async fn execute_raw<'b, I, T>(&self, statement: &T, params: I) -> Result<u64, Error>
21+
async fn execute_raw<P, I, T>(&self, statement: &T, params: I) -> Result<u64, Error>
2222
where
2323
T: ?Sized + ToStatement + Sync + Send,
24-
I: IntoIterator<Item = &'b dyn ToSql> + Sync + Send,
24+
P: BorrowToSql,
25+
I: IntoIterator<Item = P> + Sync + Send,
2526
I::IntoIter: ExactSizeIterator;
2627

2728
/// Like `Client::query`.
@@ -48,10 +49,11 @@ pub trait GenericClient: private::Sealed {
4849
T: ?Sized + ToStatement + Sync + Send;
4950

5051
/// Like `Client::query_raw`.
51-
async fn query_raw<'b, T, I>(&self, statement: &T, params: I) -> Result<RowStream, Error>
52+
async fn query_raw<T, P, I>(&self, statement: &T, params: I) -> Result<RowStream, Error>
5253
where
5354
T: ?Sized + ToStatement + Sync + Send,
54-
I: IntoIterator<Item = &'b dyn ToSql> + Sync + Send,
55+
P: BorrowToSql,
56+
I: IntoIterator<Item = P> + Sync + Send,
5557
I::IntoIter: ExactSizeIterator;
5658

5759
/// Like `Client::prepare`.
@@ -79,10 +81,11 @@ impl GenericClient for Client {
7981
self.execute(query, params).await
8082
}
8183

82-
async fn execute_raw<'b, I, T>(&self, statement: &T, params: I) -> Result<u64, Error>
84+
async fn execute_raw<P, I, T>(&self, statement: &T, params: I) -> Result<u64, Error>
8385
where
8486
T: ?Sized + ToStatement + Sync + Send,
85-
I: IntoIterator<Item = &'b dyn ToSql> + Sync + Send,
87+
P: BorrowToSql,
88+
I: IntoIterator<Item = P> + Sync + Send,
8689
I::IntoIter: ExactSizeIterator,
8790
{
8891
self.execute_raw(statement, params).await
@@ -117,10 +120,11 @@ impl GenericClient for Client {
117120
self.query_opt(statement, params).await
118121
}
119122

120-
async fn query_raw<'b, T, I>(&self, statement: &T, params: I) -> Result<RowStream, Error>
123+
async fn query_raw<T, P, I>(&self, statement: &T, params: I) -> Result<RowStream, Error>
121124
where
122125
T: ?Sized + ToStatement + Sync + Send,
123-
I: IntoIterator<Item = &'b dyn ToSql> + Sync + Send,
126+
P: BorrowToSql,
127+
I: IntoIterator<Item = P> + Sync + Send,
124128
I::IntoIter: ExactSizeIterator,
125129
{
126130
self.query_raw(statement, params).await
@@ -155,10 +159,11 @@ impl GenericClient for Transaction<'_> {
155159
self.execute(query, params).await
156160
}
157161

158-
async fn execute_raw<'b, I, T>(&self, statement: &T, params: I) -> Result<u64, Error>
162+
async fn execute_raw<P, I, T>(&self, statement: &T, params: I) -> Result<u64, Error>
159163
where
160164
T: ?Sized + ToStatement + Sync + Send,
161-
I: IntoIterator<Item = &'b dyn ToSql> + Sync + Send,
165+
P: BorrowToSql,
166+
I: IntoIterator<Item = P> + Sync + Send,
162167
I::IntoIter: ExactSizeIterator,
163168
{
164169
self.execute_raw(statement, params).await
@@ -193,10 +198,11 @@ impl GenericClient for Transaction<'_> {
193198
self.query_opt(statement, params).await
194199
}
195200

196-
async fn query_raw<'b, T, I>(&self, statement: &T, params: I) -> Result<RowStream, Error>
201+
async fn query_raw<T, P, I>(&self, statement: &T, params: I) -> Result<RowStream, Error>
197202
where
198203
T: ?Sized + ToStatement + Sync + Send,
199-
I: IntoIterator<Item = &'b dyn ToSql> + Sync + Send,
204+
P: BorrowToSql,
205+
I: IntoIterator<Item = P> + Sync + Send,
200206
I::IntoIter: ExactSizeIterator,
201207
{
202208
self.query_raw(statement, params).await

tokio-postgres/src/transaction.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::query::RowStream;
55
#[cfg(feature = "runtime")]
66
use crate::tls::MakeTlsConnect;
77
use crate::tls::TlsConnect;
8-
use crate::types::{ToSql, Type};
8+
use crate::types::{BorrowToSql, ToSql, Type};
99
#[cfg(feature = "runtime")]
1010
use crate::Socket;
1111
use crate::{
@@ -139,10 +139,11 @@ impl<'a> Transaction<'a> {
139139
}
140140

141141
/// Like `Client::query_raw`.
142-
pub async fn query_raw<'b, T, I>(&self, statement: &T, params: I) -> Result<RowStream, Error>
142+
pub async fn query_raw<T, P, I>(&self, statement: &T, params: I) -> Result<RowStream, Error>
143143
where
144144
T: ?Sized + ToStatement,
145-
I: IntoIterator<Item = &'b dyn ToSql>,
145+
P: BorrowToSql,
146+
I: IntoIterator<Item = P>,
146147
I::IntoIter: ExactSizeIterator,
147148
{
148149
self.client.query_raw(statement, params).await
@@ -161,10 +162,11 @@ impl<'a> Transaction<'a> {
161162
}
162163

163164
/// Like `Client::execute_iter`.
164-
pub async fn execute_raw<'b, I, T>(&self, statement: &T, params: I) -> Result<u64, Error>
165+
pub async fn execute_raw<P, I, T>(&self, statement: &T, params: I) -> Result<u64, Error>
165166
where
166167
T: ?Sized + ToStatement,
167-
I: IntoIterator<Item = &'b dyn ToSql>,
168+
P: BorrowToSql,
169+
I: IntoIterator<Item = P>,
168170
I::IntoIter: ExactSizeIterator,
169171
{
170172
self.client.execute_raw(statement, params).await
@@ -192,10 +194,11 @@ impl<'a> Transaction<'a> {
192194
/// A maximally flexible version of [`bind`].
193195
///
194196
/// [`bind`]: #method.bind
195-
pub async fn bind_raw<'b, T, I>(&self, statement: &T, params: I) -> Result<Portal, Error>
197+
pub async fn bind_raw<P, T, I>(&self, statement: &T, params: I) -> Result<Portal, Error>
196198
where
197199
T: ?Sized + ToStatement,
198-
I: IntoIterator<Item = &'b dyn ToSql>,
200+
P: BorrowToSql,
201+
I: IntoIterator<Item = P>,
199202
I::IntoIter: ExactSizeIterator,
200203
{
201204
let statement = statement.__convert().into_statement(&self.client).await?;

0 commit comments

Comments
 (0)