Skip to content

Commit ac1d8a1

Browse files
committed
use the persistent query setting with the Any driver
1 parent 7cf0c00 commit ac1d8a1

File tree

5 files changed

+12
-7
lines changed

5 files changed

+12
-7
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

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ 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.fetch_many(query.sql(), query.persistent(), arguments)
2727
}
2828

2929
fn fetch_optional<'e, 'q: 'e, E>(
@@ -38,7 +38,7 @@ impl<'c> Executor<'c> for &'c mut AnyConnection {
3838
Ok(arguments) => arguments,
3939
Err(error) => return future::ready(Err(error)).boxed(),
4040
};
41-
self.backend.fetch_optional(query.sql(), arguments)
41+
self.backend.fetch_optional(query.sql(), query.persistent(), arguments)
4242
}
4343

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

sqlx-mysql/src/any.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ 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>>> {
8081
let persistent = arguments.is_some();
@@ -100,9 +101,9 @@ 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();
106107
let arguments = arguments
107108
.as_ref()
108109
.map(AnyArguments::convert_to)

sqlx-postgres/src/any.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ 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();
8080
let arguments = match arguments.as_ref().map(AnyArguments::convert_to).transpose() {
8181
Ok(arguments) => arguments,
8282
Err(error) => {
@@ -99,9 +99,9 @@ impl AnyConnectionBackend for PgConnection {
9999
fn fetch_optional<'q>(
100100
&'q mut self,
101101
query: &'q str,
102+
persistent: bool,
102103
arguments: Option<AnyArguments<'q>>,
103104
) -> BoxFuture<'q, sqlx_core::Result<Option<AnyRow>>> {
104-
let persistent = arguments.is_some();
105105
let arguments = arguments
106106
.as_ref()
107107
.map(AnyArguments::convert_to)

sqlx-sqlite/src/any.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,11 @@ 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();
8181
let args = arguments.map(map_arguments);
82+
let persistent = persistent && args.is_some();
8283

8384
Box::pin(
8485
self.worker
@@ -97,10 +98,11 @@ 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();
103104
let args = arguments.map(map_arguments);
105+
let persistent = persistent && args.is_some();
104106

105107
Box::pin(async move {
106108
let stream = self

0 commit comments

Comments
 (0)