Skip to content

Commit 7659d47

Browse files
committed
fix lint
1 parent f4e54ab commit 7659d47

File tree

10 files changed

+85
-70
lines changed

10 files changed

+85
-70
lines changed

rust/cubesqlplanner/cubesqlplanner/src/planner/base_measure.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use super::query_tools::QueryTools;
2-
use super::sql_evaluator::{MemberExpressionSymbol, MemberSymbol, SqlCall, MeasureTimeShift};
2+
use super::sql_evaluator::{MeasureTimeShift, MemberExpressionSymbol, MemberSymbol, SqlCall};
33
use super::{evaluate_with_context, BaseMember, BaseMemberHelper, VisitorContext};
44
use crate::cube_bridge::measure_definition::{
55
MeasureDefinition, RollingWindow, TimeShiftReference,
@@ -9,7 +9,6 @@ use cubenativeutils::CubeError;
99
use std::fmt::{Debug, Formatter};
1010
use std::rc::Rc;
1111

12-
1312
pub struct BaseMeasure {
1413
measure: String,
1514
query_tools: Rc<QueryTools>,
@@ -219,9 +218,7 @@ impl BaseMeasure {
219218

220219
pub fn time_shifts(&self) -> Vec<MeasureTimeShift> {
221220
match self.member_evaluator.as_ref() {
222-
MemberSymbol::Measure(measure_symbol) => {
223-
measure_symbol.time_shifts().clone()
224-
},
221+
MemberSymbol::Measure(measure_symbol) => measure_symbol.time_shifts().clone(),
225222
_ => vec![],
226223
}
227224
}

rust/cubesqlplanner/cubesqlplanner/src/planner/planners/multi_stage/applied_state.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ impl MultiStageAppliedState {
6767
if let Some(exists) = self.time_shifts.get_mut(&ts.dimension.full_name()) {
6868
exists.interval += ts.interval;
6969
} else {
70-
self.time_shifts
71-
.insert(ts.dimension.full_name(), ts);
70+
self.time_shifts.insert(ts.dimension.full_name(), ts);
7271
}
7372
}
7473
}

rust/cubesqlplanner/cubesqlplanner/src/planner/planners/multi_stage/member.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::planner::sql_evaluator::{MemberSymbol, MeasureTimeShift};
1+
use crate::planner::sql_evaluator::{MeasureTimeShift, MemberSymbol};
22
use crate::planner::BaseTimeDimension;
33
use std::rc::Rc;
44

rust/cubesqlplanner/cubesqlplanner/src/planner/sql_evaluator/collectors/find_owned_by_cube.rs

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ use crate::planner::sql_evaluator::MemberSymbol;
22
use cubenativeutils::CubeError;
33
use std::rc::Rc;
44

5-
pub struct FindOwnedByCubeChildCollector {
6-
}
5+
pub struct FindOwnedByCubeChildCollector {}
76

87
impl FindOwnedByCubeChildCollector {
98
pub fn new() -> Self {
@@ -12,50 +11,56 @@ impl FindOwnedByCubeChildCollector {
1211

1312
pub fn find(&self, node: &Rc<MemberSymbol>) -> Result<Rc<MemberSymbol>, CubeError> {
1413
self.find_impl(node, &node.full_name())
15-
1614
}
1715

18-
fn find_impl(&self, node: &Rc<MemberSymbol>, origin_node_name: &String) -> Result<Rc<MemberSymbol>, CubeError> {
16+
fn find_impl(
17+
&self,
18+
node: &Rc<MemberSymbol>,
19+
origin_node_name: &String,
20+
) -> Result<Rc<MemberSymbol>, CubeError> {
1921
match node.as_ref() {
2022
MemberSymbol::Dimension(dimension_symbol) => {
2123
if dimension_symbol.owned_by_cube() {
2224
Ok(node.clone())
2325
} else {
2426
self.process_deps(&node, origin_node_name)
2527
}
26-
},
28+
}
2729
MemberSymbol::TimeDimension(time_dimension_symbol) => {
2830
self.find_impl(time_dimension_symbol.base_symbol(), origin_node_name)
29-
},
31+
}
3032
MemberSymbol::Measure(measure_symbol) => {
3133
if measure_symbol.owned_by_cube() {
3234
Ok(node.clone())
3335
} else {
3436
self.process_deps(&node, origin_node_name)
3537
}
36-
37-
},
38-
_ => {
39-
40-
Err(CubeError::internal(format!("FindOwnedByCubeChild cannot be processed on node {}", node.full_name())))
4138
}
39+
_ => Err(CubeError::internal(format!(
40+
"FindOwnedByCubeChild cannot be processed on node {}",
41+
node.full_name()
42+
))),
4243
}
43-
4444
}
4545

46-
fn process_deps(&self, node: &Rc<MemberSymbol>, origin_node_name: &String) -> Result<Rc<MemberSymbol>, CubeError> {
46+
fn process_deps(
47+
&self,
48+
node: &Rc<MemberSymbol>,
49+
origin_node_name: &String,
50+
) -> Result<Rc<MemberSymbol>, CubeError> {
4751
let deps = node.get_dependencies();
4852
if deps.len() == 1 {
4953
self.find_impl(&deps[0], origin_node_name)
5054
} else {
51-
Err(CubeError::internal(format!("Cannot find owned by cube child for {}", origin_node_name)))
55+
Err(CubeError::internal(format!(
56+
"Cannot find owned by cube child for {}",
57+
origin_node_name
58+
)))
5259
}
53-
5460
}
5561
}
5662

57-
5863
pub fn find_owned_by_cube_child(node: &Rc<MemberSymbol>) -> Result<Rc<MemberSymbol>, CubeError> {
5964
let visitor = FindOwnedByCubeChildCollector::new();
6065
visitor.find(node)
61-
}
66+
}

rust/cubesqlplanner/cubesqlplanner/src/planner/sql_evaluator/collectors/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
mod cube_names_collector;
2+
mod find_owned_by_cube;
23
mod has_cumulative_members;
34
mod has_multi_stage_members;
45
mod join_hints_collector;
56
mod member_childs_collector;
67
mod multiplied_measures_collector;
78
mod sub_query_dimensions;
8-
mod find_owned_by_cube;
99

1010
pub use cube_names_collector::collect_cube_names;
11+
pub use find_owned_by_cube::*;
1112
pub use has_cumulative_members::{has_cumulative_members, HasCumulativeMembersCollector};
1213
pub use has_multi_stage_members::{has_multi_stage_members, HasMultiStageMembersCollector};
1314
pub use join_hints_collector::{
@@ -19,4 +20,3 @@ pub use sub_query_dimensions::{
1920
collect_sub_query_dimensions, collect_sub_query_dimensions_from_members,
2021
collect_sub_query_dimensions_from_symbols,
2122
};
22-
pub use find_owned_by_cube::*;

rust/cubesqlplanner/cubesqlplanner/src/planner/sql_evaluator/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ pub use sql_visitor::SqlEvaluatorVisitor;
1616
pub use symbols::{
1717
CubeNameSymbol, CubeNameSymbolFactory, CubeTableSymbol, CubeTableSymbolFactory,
1818
DimensionCaseDefinition, DimensionCaseWhenItem, DimensionSymbol, DimensionSymbolFactory,
19-
DimenstionCaseLabel, MeasureSymbol, MeasureSymbolFactory, MemberExpressionSymbol, MemberSymbol,
20-
SymbolFactory, TimeDimensionSymbol, MeasureTimeShift
19+
DimenstionCaseLabel, MeasureSymbol, MeasureSymbolFactory, MeasureTimeShift,
20+
MemberExpressionSymbol, MemberSymbol, SymbolFactory, TimeDimensionSymbol,
2121
};
2222
pub use visitor::TraversalVisitor;

rust/cubesqlplanner/cubesqlplanner/src/planner/sql_evaluator/sql_nodes/factory.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use super::{
44
RenderReferencesSqlNode, RollingWindowNode, RootSqlNode, SqlNode, TimeDimensionNode,
55
TimeShiftSqlNode, UngroupedMeasureSqlNode, UngroupedQueryFinalMeasureSqlNode,
66
};
7-
use crate::planner::sql_evaluator::MeasureTimeShift;
87
use crate::plan::schema::QualifiedColumnName;
8+
use crate::planner::sql_evaluator::MeasureTimeShift;
99
use std::collections::{HashMap, HashSet};
1010
use std::rc::Rc;
1111

rust/cubesqlplanner/cubesqlplanner/src/planner/sql_evaluator/sql_nodes/time_shift.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use super::SqlNode;
22
use crate::planner::query_tools::QueryTools;
3-
use crate::planner::sql_evaluator::{MemberSymbol, MeasureTimeShift};
43
use crate::planner::sql_evaluator::SqlEvaluatorVisitor;
4+
use crate::planner::sql_evaluator::{MeasureTimeShift, MemberSymbol};
55
use crate::planner::sql_templates::PlanSqlTemplates;
66
use cubenativeutils::CubeError;
77
use std::any::Any;

rust/cubesqlplanner/cubesqlplanner/src/planner/sql_evaluator/symbols/measure_symbol.rs

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,17 @@ use crate::cube_bridge::evaluator::CubeEvaluator;
33
use crate::cube_bridge::measure_definition::{
44
MeasureDefinition, RollingWindow, TimeShiftReference,
55
};
6-
use crate::planner::sql_evaluator::collectors::find_owned_by_cube_child;
76
use crate::cube_bridge::member_sql::MemberSql;
87
use crate::planner::query_tools::QueryTools;
8+
use crate::planner::sql_evaluator::collectors::find_owned_by_cube_child;
99
use crate::planner::sql_evaluator::{sql_nodes::SqlNode, Compiler, SqlCall, SqlEvaluatorVisitor};
1010
use crate::planner::sql_templates::PlanSqlTemplates;
1111
use crate::planner::SqlInterval;
1212
use cubenativeutils::CubeError;
1313
use itertools::Itertools;
14+
use std::cmp::{Eq, PartialEq};
1415
use std::collections::HashMap;
1516
use std::rc::Rc;
16-
use std::cmp::{PartialEq, Eq};
17-
1817

1918
#[derive(Clone)]
2019
pub struct MeasureOrderBy {
@@ -51,9 +50,7 @@ impl PartialEq for MeasureTimeShift {
5150
}
5251
}
5352

54-
impl Eq for MeasureTimeShift {
55-
56-
}
53+
impl Eq for MeasureTimeShift {}
5754

5855
#[derive(Clone)]
5956
pub struct MeasureSymbol {
@@ -383,34 +380,42 @@ impl SymbolFactory for MeasureSymbolFactory {
383380
None
384381
};
385382

386-
let time_shifts = if let Some(time_shift_references) = &definition.static_data().time_shift_references {
387-
let mut shifts: HashMap<String, MeasureTimeShift> = HashMap::new();
388-
for shift_ref in time_shift_references.iter() {
389-
let interval = shift_ref.interval.parse::<SqlInterval>()?;
390-
let interval = if shift_ref.shift_type.as_ref().unwrap_or(&format!("prior")) == "next" {
391-
-interval
392-
} else {
393-
interval
394-
};
395-
let dimension = compiler.add_dimension_evaluator(shift_ref.time_dimension.clone())?;
396-
let dimension = find_owned_by_cube_child(&dimension)?;
397-
let dimension_name = dimension.full_name();
398-
if let Some(exists) = shifts.get(&dimension_name) {
399-
if exists.interval != interval {
400-
return Err(CubeError::user(format!("Different time shifts for one dimension {} not allowed", dimension_name)))
401-
}
402-
} else {
403-
shifts.insert(dimension_name, MeasureTimeShift {
404-
interval: interval.clone(),
405-
dimension: dimension.clone()
406-
});
407-
408-
};
409-
}
410-
shifts.into_values().collect_vec()
411-
} else {
412-
vec![]
413-
};
383+
let time_shifts =
384+
if let Some(time_shift_references) = &definition.static_data().time_shift_references {
385+
let mut shifts: HashMap<String, MeasureTimeShift> = HashMap::new();
386+
for shift_ref in time_shift_references.iter() {
387+
let interval = shift_ref.interval.parse::<SqlInterval>()?;
388+
let interval =
389+
if shift_ref.shift_type.as_ref().unwrap_or(&format!("prior")) == "next" {
390+
-interval
391+
} else {
392+
interval
393+
};
394+
let dimension =
395+
compiler.add_dimension_evaluator(shift_ref.time_dimension.clone())?;
396+
let dimension = find_owned_by_cube_child(&dimension)?;
397+
let dimension_name = dimension.full_name();
398+
if let Some(exists) = shifts.get(&dimension_name) {
399+
if exists.interval != interval {
400+
return Err(CubeError::user(format!(
401+
"Different time shifts for one dimension {} not allowed",
402+
dimension_name
403+
)));
404+
}
405+
} else {
406+
shifts.insert(
407+
dimension_name,
408+
MeasureTimeShift {
409+
interval: interval.clone(),
410+
dimension: dimension.clone(),
411+
},
412+
);
413+
};
414+
}
415+
shifts.into_values().collect_vec()
416+
} else {
417+
vec![]
418+
};
414419

415420
Ok(MemberSymbol::new_measure(MeasureSymbol::new(
416421
cube_name,

rust/cubesqlplanner/cubesqlplanner/src/planner/time_dimension/sql_interval.rs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use cubenativeutils::CubeError;
22
use itertools::Itertools;
3+
use std::ops::{Add, AddAssign, Neg, Sub};
34
use std::str::FromStr;
4-
use std::ops::{Add, Sub, Neg, AddAssign};
55

66
#[derive(Debug, PartialEq, Clone, Hash, Eq)]
77
pub struct SqlInterval {
@@ -152,7 +152,7 @@ impl Neg for SqlInterval {
152152
-self.second,
153153
)
154154
}
155-
}
155+
}
156156

157157
impl Default for SqlInterval {
158158
fn default() -> Self {
@@ -210,8 +210,17 @@ mod tests {
210210
}
211211
#[test]
212212
fn test_arithmetic() {
213-
assert_eq!(SqlInterval::new(1, 3, 4, 2, 4, 2, 1) + SqlInterval::new(1, 3, 4, 2, 4, 2, 1), SqlInterval::new(2, 6, 8, 4, 8, 4, 2));
214-
assert_eq!(SqlInterval::new(1, 3, 4, 2, 4, 2, 1) - SqlInterval::new(1, 4, 4, 2, 2, 2, 1), SqlInterval::new(0, -1, 0, 0, 2, 0, 0));
215-
assert_eq!(-SqlInterval::new(1, 3, -4, 2, 4, 2, 1), SqlInterval::new(-1, -3, 4, -2, -4, -2, -1));
213+
assert_eq!(
214+
SqlInterval::new(1, 3, 4, 2, 4, 2, 1) + SqlInterval::new(1, 3, 4, 2, 4, 2, 1),
215+
SqlInterval::new(2, 6, 8, 4, 8, 4, 2)
216+
);
217+
assert_eq!(
218+
SqlInterval::new(1, 3, 4, 2, 4, 2, 1) - SqlInterval::new(1, 4, 4, 2, 2, 2, 1),
219+
SqlInterval::new(0, -1, 0, 0, 2, 0, 0)
220+
);
221+
assert_eq!(
222+
-SqlInterval::new(1, 3, -4, 2, 4, 2, 1),
223+
SqlInterval::new(-1, -3, 4, -2, -4, -2, -1)
224+
);
216225
}
217226
}

0 commit comments

Comments
 (0)