Skip to content

Commit 24317d5

Browse files
authored
Fix logger regression (#3938)
1 parent 01d5443 commit 24317d5

File tree

3 files changed

+16
-13
lines changed

3 files changed

+16
-13
lines changed

sqlx-core/src/logger.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ impl QueryLogger {
8787
self.rows_affected += n;
8888
}
8989

90+
pub fn sql(&self) -> &SqlStr {
91+
&self.sql
92+
}
93+
9094
pub fn finish(&self) {
9195
let elapsed = self.start.elapsed();
9296

sqlx-mysql/src/connection/executor.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,14 @@ impl MySqlConnection {
108108
persistent: bool,
109109
) -> Result<impl Stream<Item = Result<Either<MySqlQueryResult, MySqlRow>, Error>> + 'e, Error>
110110
{
111+
let mut logger = QueryLogger::new(sql, self.inner.log_settings.clone());
112+
111113
self.inner.stream.wait_until_ready().await?;
112114
self.inner.stream.waiting.push_back(Waiting::Result);
113115

114116
Ok(try_stream! {
117+
let sql = logger.sql().as_str();
118+
115119
// make a slot for the shared column data
116120
// as long as a reference to a row is not held past one iteration, this enables us
117121
// to re-use this memory freely between result sets
@@ -120,7 +124,7 @@ impl MySqlConnection {
120124
let (mut column_names, format, mut needs_metadata) = if let Some(arguments) = arguments {
121125
if persistent && self.inner.cache_statement.is_enabled() {
122126
let (id, metadata) = self
123-
.get_or_prepare_statement(sql.as_str())
127+
.get_or_prepare_statement(sql)
124128
.await?;
125129

126130
if arguments.types.len() != metadata.parameters {
@@ -144,7 +148,7 @@ impl MySqlConnection {
144148
(metadata.column_names, MySqlValueFormat::Binary, false)
145149
} else {
146150
let (id, metadata) = self
147-
.prepare_statement(sql.as_str())
151+
.prepare_statement(sql)
148152
.await?;
149153

150154
if arguments.types.len() != metadata.parameters {
@@ -171,11 +175,10 @@ impl MySqlConnection {
171175
}
172176
} else {
173177
// https://dev.mysql.com/doc/internals/en/com-query.html
174-
self.inner.stream.send_packet(Query(sql.as_str())).await?;
178+
self.inner.stream.send_packet(Query(sql)).await?;
175179

176180
(Arc::default(), MySqlValueFormat::Text, true)
177181
};
178-
let mut logger = QueryLogger::new(sql, self.inner.log_settings.clone());
179182

180183
loop {
181184
// query response is a meta-packet which may be one of:

sqlx-postgres/src/connection/executor.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,9 @@ impl PgConnection {
215215
persistent: bool,
216216
metadata_opt: Option<Arc<PgStatementMetadata>>,
217217
) -> Result<impl Stream<Item = Result<Either<PgQueryResult, PgRow>, Error>> + 'e, Error> {
218+
let mut logger = QueryLogger::new(query, self.inner.log_settings.clone());
219+
let sql = logger.sql().as_str();
220+
218221
// before we continue, wait until we are "ready" to accept more queries
219222
self.wait_until_ready().await?;
220223

@@ -237,13 +240,7 @@ impl PgConnection {
237240
// prepare the statement if this our first time executing it
238241
// always return the statement ID here
239242
let (statement, metadata_) = self
240-
.get_or_prepare(
241-
query.as_str(),
242-
&arguments.types,
243-
persistent,
244-
metadata_opt,
245-
false,
246-
)
243+
.get_or_prepare(sql, &arguments.types, persistent, metadata_opt, false)
247244
.await?;
248245

249246
metadata = metadata_;
@@ -296,7 +293,7 @@ impl PgConnection {
296293
PgValueFormat::Binary
297294
} else {
298295
// Query will trigger a ReadyForQuery
299-
self.inner.stream.write_msg(Query(query.as_str()))?;
296+
self.inner.stream.write_msg(Query(sql))?;
300297
self.inner.pending_ready_for_query_count += 1;
301298

302299
// metadata starts out as "nothing"
@@ -307,7 +304,6 @@ impl PgConnection {
307304
};
308305

309306
self.inner.stream.flush().await?;
310-
let mut logger = QueryLogger::new(query, self.inner.log_settings.clone());
311307

312308
Ok(try_stream! {
313309
loop {

0 commit comments

Comments
 (0)