@@ -44,7 +44,7 @@ use crate::query::error::ExecuteError;
4444use crate :: query:: { execute, CountsRequest , CountsResponse , Query as LogicalQuery } ;
4545use crate :: query:: { TableScanVisitor , QUERY_SESSION } ;
4646use crate :: rbac:: Users ;
47- use crate :: response:: QueryResponse ;
47+ use crate :: response:: { QueryResponse , TIME_ELAPSED_HEADER } ;
4848use crate :: storage:: object_storage:: commit_schema_to_storage;
4949use crate :: storage:: ObjectStorageError ;
5050use crate :: utils:: actix:: extract_session_key_from_req;
@@ -122,22 +122,26 @@ pub async fn query(req: HttpRequest, query_request: Query) -> Result<HttpRespons
122122 Value :: Array ( vec ! [ json!( { column_name: count} ) ] )
123123 } ;
124124
125+ let total_time = format ! ( "{:?}" , time. elapsed( ) ) ;
125126 let time = time. elapsed ( ) . as_secs_f64 ( ) ;
126127
127128 QUERY_EXECUTE_TIME
128129 . with_label_values ( & [ & table_name] )
129130 . observe ( time) ;
130131
131- return Ok ( HttpResponse :: Ok ( ) . json ( response) ) ;
132+ return Ok ( HttpResponse :: Ok ( )
133+ . insert_header ( ( TIME_ELAPSED_HEADER , total_time. as_str ( ) ) )
134+ . json ( response) ) ;
132135 }
133136
134137 let ( records, fields) = execute ( query, & table_name) . await ?;
135-
138+ let total_time = format ! ( "{:?}" , time . elapsed ( ) ) ;
136139 let response = QueryResponse {
137140 records,
138141 fields,
139142 fill_null : query_request. send_null ,
140143 with_fields : query_request. fields ,
144+ total_time,
141145 }
142146 . to_http ( ) ?;
143147
0 commit comments