liquid_cache_server/admin_server/
models.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Deserialize, Serialize, Clone)]
5pub struct ExecutionStats {
6 pub plan_ids: Vec<String>,
8 pub display_name: String,
10 pub flamegraph_svg: Option<String>,
12 pub network_traffic_bytes: u64,
14 pub execution_time_ms: u64,
16 pub user_sql: Vec<String>,
18}
19
20#[derive(Serialize)]
22pub struct ExecutionStatsWithPlan {
23 pub execution_stats: ExecutionStats,
25 pub plans: Vec<PlanInfo>,
27}
28
29#[derive(Serialize, Deserialize)]
31pub struct ApiResponse {
32 pub message: String,
34 pub status: String,
36}
37
38#[derive(Serialize)]
40pub struct SchemaField {
41 pub name: String,
43 pub data_type: String,
45}
46
47#[derive(Serialize)]
49pub struct ColumnStatistics {
50 pub name: String,
52 pub null: Option<String>,
54 pub max: Option<String>,
56 pub min: Option<String>,
58 pub sum: Option<String>,
60 pub distinct_count: Option<String>,
62}
63
64#[derive(Serialize)]
66pub struct Statistics {
67 pub num_rows: String,
69 pub total_byte_size: String,
71 pub column_statistics: Vec<ColumnStatistics>,
73}
74
75#[derive(Serialize)]
77pub struct MetricValues {
78 pub name: String,
80 pub value: String,
82}
83
84#[derive(Serialize)]
86pub struct ExecutionPlanWithStats {
87 pub name: String,
89 pub schema: Vec<SchemaField>,
91 pub statistics: Statistics,
93 pub metrics: Vec<MetricValues>,
95 pub children: Vec<ExecutionPlanWithStats>,
97}
98
99#[derive(Serialize)]
101pub struct PlanInfo {
102 pub created_at: u64,
104 pub plan: ExecutionPlanWithStats,
106 pub id: String,
108 pub predicate: Option<String>,
110}