Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/handlers/http/query.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ pub struct Query {
}

pub async fn query(req: HttpRequest, query_request: Query) -> Result<HttpResponse, QueryError> {
let start = Instant::now();
let session_state = QUERY_SESSION.state();
let raw_logical_plan = match session_state
.create_logical_plan(&query_request.query)
Expand Down Expand Up @@ -132,12 +133,13 @@ pub async fn query(req: HttpRequest, query_request: Query) -> Result<HttpRespons
}

let (records, fields) = execute(query, &table_name).await?;

let total_time = format!("{:?}", start.elapsed());
let response = QueryResponse {
records,
fields,
fill_null: query_request.send_null,
with_fields: query_request.fields,
total_time,
}
.to_http()?;

Expand Down
9 changes: 7 additions & 2 deletions src/response.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ pub struct QueryResponse {
pub fields: Vec<String>,
pub fill_null: bool,
pub with_fields: bool,
pub total_time: String,
}

impl QueryResponse {
Expand All @@ -49,10 +50,14 @@ impl QueryResponse {
let response = if self.with_fields {
json!({
"fields": self.fields,
"records": values
"records": values,
"totalTime": self.total_time
})
} else {
Value::Array(values)
json!({
"records": values,
"totalTime": self.total_time
})
};

Ok(HttpResponse::Ok().json(response))
Expand Down
Loading