Skip to content

Commit 447ac4a

Browse files
committed
use the persistent query setting with the Any driver
1 parent 0db12a9 commit 447ac4a

File tree

5 files changed

+18
-8
lines changed

5 files changed

+18
-8
lines changed

sqlx-core/src/any/connection/backend.rs

+2
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,14 @@ pub trait AnyConnectionBackend: std::any::Any + Debug + Send + 'static {
7272
fn fetch_many<'q>(
7373
&'q mut self,
7474
query: &'q str,
75+
persistent: bool,
7576
arguments: Option<AnyArguments<'q>>,
7677
) -> BoxStream<'q, crate::Result<Either<AnyQueryResult, AnyRow>>>;
7778

7879
fn fetch_optional<'q>(
7980
&'q mut self,
8081
query: &'q str,
82+
persistent: bool,
8183
arguments: Option<AnyArguments<'q>>,
8284
) -> BoxFuture<'q, crate::Result<Option<AnyRow>>>;
8385

sqlx-core/src/any/connection/executor.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ impl<'c> Executor<'c> for &'c mut AnyConnection {
2323
Ok(arguments) => arguments,
2424
Err(error) => return stream::once(future::ready(Err(error))).boxed(),
2525
};
26-
self.backend.fetch_many(query.sql(), arguments)
26+
self.backend
27+
.fetch_many(query.sql(), query.persistent(), arguments)
2728
}
2829

2930
fn fetch_optional<'e, 'q: 'e, E>(
@@ -38,7 +39,8 @@ impl<'c> Executor<'c> for &'c mut AnyConnection {
3839
Ok(arguments) => arguments,
3940
Err(error) => return future::ready(Err(error)).boxed(),
4041
};
41-
self.backend.fetch_optional(query.sql(), arguments)
42+
self.backend
43+
.fetch_optional(query.sql(), query.persistent(), arguments)
4244
}
4345

4446
fn prepare_with<'e, 'q: 'e>(

sqlx-mysql/src/any.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,10 @@ impl AnyConnectionBackend for MySqlConnection {
7575
fn fetch_many<'q>(
7676
&'q mut self,
7777
query: &'q str,
78+
persistent: bool,
7879
arguments: Option<AnyArguments<'q>>,
7980
) -> BoxStream<'q, sqlx_core::Result<Either<AnyQueryResult, AnyRow>>> {
80-
let persistent = arguments.is_some();
81+
let persistent = persistent && arguments.is_some();
8182
let arguments = match arguments.as_ref().map(AnyArguments::convert_to).transpose() {
8283
Ok(arguments) => arguments,
8384
Err(error) => {
@@ -100,9 +101,10 @@ impl AnyConnectionBackend for MySqlConnection {
100101
fn fetch_optional<'q>(
101102
&'q mut self,
102103
query: &'q str,
104+
persistent: bool,
103105
arguments: Option<AnyArguments<'q>>,
104106
) -> BoxFuture<'q, sqlx_core::Result<Option<AnyRow>>> {
105-
let persistent = arguments.is_some();
107+
let persistent = persistent && arguments.is_some();
106108
let arguments = arguments
107109
.as_ref()
108110
.map(AnyArguments::convert_to)

sqlx-postgres/src/any.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,10 @@ impl AnyConnectionBackend for PgConnection {
7474
fn fetch_many<'q>(
7575
&'q mut self,
7676
query: &'q str,
77+
persistent: bool,
7778
arguments: Option<AnyArguments<'q>>,
7879
) -> BoxStream<'q, sqlx_core::Result<Either<AnyQueryResult, AnyRow>>> {
79-
let persistent = arguments.is_some();
80+
let persistent = persistent && arguments.is_some();
8081
let arguments = match arguments.as_ref().map(AnyArguments::convert_to).transpose() {
8182
Ok(arguments) => arguments,
8283
Err(error) => {
@@ -99,9 +100,10 @@ impl AnyConnectionBackend for PgConnection {
99100
fn fetch_optional<'q>(
100101
&'q mut self,
101102
query: &'q str,
103+
persistent: bool,
102104
arguments: Option<AnyArguments<'q>>,
103105
) -> BoxFuture<'q, sqlx_core::Result<Option<AnyRow>>> {
104-
let persistent = arguments.is_some();
106+
let persistent = persistent && arguments.is_some();
105107
let arguments = arguments
106108
.as_ref()
107109
.map(AnyArguments::convert_to)

sqlx-sqlite/src/any.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,10 @@ impl AnyConnectionBackend for SqliteConnection {
7575
fn fetch_many<'q>(
7676
&'q mut self,
7777
query: &'q str,
78+
persistent: bool,
7879
arguments: Option<AnyArguments<'q>>,
7980
) -> BoxStream<'q, sqlx_core::Result<Either<AnyQueryResult, AnyRow>>> {
80-
let persistent = arguments.is_some();
81+
let persistent = persistent && arguments.is_some();
8182
let args = arguments.map(map_arguments);
8283

8384
Box::pin(
@@ -97,9 +98,10 @@ impl AnyConnectionBackend for SqliteConnection {
9798
fn fetch_optional<'q>(
9899
&'q mut self,
99100
query: &'q str,
101+
persistent: bool,
100102
arguments: Option<AnyArguments<'q>>,
101103
) -> BoxFuture<'q, sqlx_core::Result<Option<AnyRow>>> {
102-
let persistent = arguments.is_some();
104+
let persistent = persistent && arguments.is_some();
103105
let args = arguments.map(map_arguments);
104106

105107
Box::pin(async move {

0 commit comments

Comments
 (0)