Skip to content

Commit c803214

Browse files
committed
Add server timing for parameter binding in query execution
- Recorded server timing for the parameter binding process in the query execution flow. - Updated tests to verify the inclusion of the new timing event in the server timing header.
1 parent 1e396ac commit c803214

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

src/webserver/database/execute_queries.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ pub fn stream_query_results_with_conn<'a>(
5858
},
5959
ParsedStatement::StmtWithParams(stmt) => {
6060
let query = bind_parameters(stmt, request, db_connection).await?;
61+
request.server_timing.record("bind_params");
6162
let connection = take_connection(&request.app_state.db, db_connection, request).await?;
6263
log::trace!("Executing query {:?}", query.sql);
6364
let mut stream = connection.fetch_many(query);

tests/server_timing/mod.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ async fn test_server_timing_enabled_in_development() -> actix_web::Result<()> {
5454
header_value.contains("parse_req;dur="),
5555
"Should contain parse_req timing: {header_value}"
5656
);
57+
assert!(
58+
header_value.contains("bind_params;dur="),
59+
"Should contain bind_params timing: {header_value}"
60+
);
5761
assert!(
5862
header_value.contains("db_conn;dur="),
5963
"Should contain db_conn timing: {header_value}"
@@ -78,7 +82,7 @@ async fn test_server_timing_format() -> actix_web::Result<()> {
7882
let header_value = server_timing_header.to_str().unwrap();
7983

8084
let parts: Vec<&str> = header_value.split(", ").collect();
81-
assert!(parts.len() >= 4, "Should have at least 4 timing events");
85+
assert!(parts.len() >= 5, "Should have at least 5 timing events");
8286

8387
for part in parts {
8488
assert!(

0 commit comments

Comments
 (0)