Skip to content

Commit cdcc6db

Browse files
committed
Fix logger regression
1 parent 01d5443 commit cdcc6db

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-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: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ 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+
let sql = logger.sql().as_str();
113+
111114
self.inner.stream.wait_until_ready().await?;
112115
self.inner.stream.waiting.push_back(Waiting::Result);
113116

@@ -120,7 +123,7 @@ impl MySqlConnection {
120123
let (mut column_names, format, mut needs_metadata) = if let Some(arguments) = arguments {
121124
if persistent && self.inner.cache_statement.is_enabled() {
122125
let (id, metadata) = self
123-
.get_or_prepare_statement(sql.as_str())
126+
.get_or_prepare_statement(sql)
124127
.await?;
125128

126129
if arguments.types.len() != metadata.parameters {
@@ -144,7 +147,7 @@ impl MySqlConnection {
144147
(metadata.column_names, MySqlValueFormat::Binary, false)
145148
} else {
146149
let (id, metadata) = self
147-
.prepare_statement(sql.as_str())
150+
.prepare_statement(sql)
148151
.await?;
149152

150153
if arguments.types.len() != metadata.parameters {
@@ -171,11 +174,10 @@ impl MySqlConnection {
171174
}
172175
} else {
173176
// https://dev.mysql.com/doc/internals/en/com-query.html
174-
self.inner.stream.send_packet(Query(sql.as_str())).await?;
177+
self.inner.stream.send_packet(Query(sql)).await?;
175178

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

180182
loop {
181183
// 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)