Skip to content

Commit 93debf5

Browse files
Devdutt Shenoinikhilsinhaparseable
authored andcommitted
refactor: move struct nearer to impl
1 parent 4ddc442 commit 93debf5

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

src/handlers/http/query.rs

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
use actix_web::http::header::ContentType;
2020
use actix_web::web::{self, Json};
2121
use actix_web::{FromRequest, HttpRequest, HttpResponse, Responder};
22-
use bytes::Bytes;
2322
use chrono::{DateTime, Utc};
2423
use datafusion::common::tree_node::TreeNode;
2524
use datafusion::common::Column;
@@ -30,6 +29,7 @@ use datafusion::logical_expr::{Aggregate, LogicalPlan, Projection};
3029
use datafusion::prelude::Expr;
3130
use futures_util::Future;
3231
use http::StatusCode;
32+
use serde::{Deserialize, Serialize};
3333
use serde_json::{json, Value};
3434
use std::collections::HashMap;
3535
use std::pin::Pin;
@@ -45,7 +45,7 @@ use crate::event::commit_schema;
4545
use crate::metrics::QUERY_EXECUTE_TIME;
4646
use crate::option::{Mode, CONFIG};
4747
use crate::query::error::ExecuteError;
48-
use crate::query::Query as LogicalQuery;
48+
use crate::query::{DateBinRecord, DateBinRequest, Query as LogicalQuery};
4949
use crate::query::{TableScanVisitor, QUERY_SESSION};
5050
use crate::rbac::Users;
5151
use crate::response::QueryResponse;
@@ -58,7 +58,7 @@ use crate::utils::user_auth_for_query;
5858
use super::modal::utils::logstream_utils::create_stream_and_schema_from_storage;
5959

6060
/// Query Request through http endpoint.
61-
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)]
61+
#[derive(Debug, Deserialize, Serialize, Clone)]
6262
#[serde(rename_all = "camelCase")]
6363
pub struct Query {
6464
pub query: String,
@@ -71,26 +71,8 @@ pub struct Query {
7171
#[serde(skip)]
7272
pub filter_tags: Option<Vec<String>>,
7373
}
74-
75-
/// DateBin Request.
76-
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)]
77-
#[serde(rename_all = "camelCase")]
78-
pub struct DateBin {
79-
pub stream: String,
80-
pub start_time: String,
81-
pub end_time: String,
82-
pub num_bins: u64,
83-
}
84-
85-
/// DateBinRecord
86-
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)]
87-
pub struct DateBinRecord {
88-
pub date_bin_timestamp: String,
89-
pub log_count: u64,
90-
}
91-
9274
/// DateBin Response.
93-
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)]
75+
#[derive(Debug, Serialize, Clone)]
9476
pub struct DateBinResponse {
9577
pub fields: Vec<String>,
9678
pub records: Vec<DateBinRecord>,
@@ -131,7 +113,7 @@ pub async fn query(req: HttpRequest, query_request: Query) -> Result<HttpRespons
131113
let time = Instant::now();
132114

133115
if let (true, column_name) = is_logical_plan_aggregate_without_filters(&raw_logical_plan) {
134-
let date_bin_request = DateBin {
116+
let date_bin_request = DateBinRequest {
135117
stream: table_name.clone(),
136118
start_time: query_request.start_time.clone(),
137119
end_time: query_request.end_time.clone(),

src/query/mod.rs

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ use datafusion::prelude::*;
3333
use itertools::Itertools;
3434
use once_cell::sync::Lazy;
3535
use relative_path::RelativePathBuf;
36+
use serde::{Deserialize, Serialize};
3637
use serde_json::{json, Value};
3738
use std::collections::HashMap;
3839
use std::ops::Bound;
@@ -48,7 +49,7 @@ use crate::catalog::manifest::Manifest;
4849
use crate::catalog::snapshot::Snapshot;
4950
use crate::catalog::Snapshot as CatalogSnapshot;
5051
use crate::event;
51-
use crate::handlers::http::query::{DateBin, DateBinRecord, QueryError};
52+
use crate::handlers::http::query::QueryError;
5253
use crate::metadata::STREAM_INFO;
5354
use crate::option::{Mode, CONFIG};
5455
use crate::storage::{ObjectStorageProvider, ObjectStoreFormat, StorageDir, STREAM_ROOT_DIRECTORY};
@@ -201,7 +202,24 @@ impl Query {
201202
}
202203
}
203204

204-
impl DateBin {
205+
/// DateBinRecord
206+
#[derive(Debug, Serialize, Clone)]
207+
pub struct DateBinRecord {
208+
pub date_bin_timestamp: String,
209+
pub log_count: u64,
210+
}
211+
212+
/// DateBin Request.
213+
#[derive(Debug, Deserialize, Clone)]
214+
#[serde(rename_all = "camelCase")]
215+
pub struct DateBinRequest {
216+
pub stream: String,
217+
pub start_time: String,
218+
pub end_time: String,
219+
pub num_bins: u64,
220+
}
221+
222+
impl DateBinRequest {
205223
/// This function is supposed to read maninfest files for the given stream,
206224
/// get the sum of `num_rows` between the `startTime` and `endTime`,
207225
/// divide that by number of bins and return in a manner acceptable for the console

0 commit comments

Comments
 (0)