Skip to content

Commit e1e6200

Browse files
committed
in work
1 parent 7fffa30 commit e1e6200

19 files changed

+101
-79
lines changed

rust/cubesqlplanner/cubesqlplanner/src/logical_plan/aggregate_multiplied_subquery.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,14 @@ impl LogicalNode for AggregateMultipliedSubquery {
7373
Ok(Rc::new(result))
7474
}
7575

76-
fn node_name() -> &'static str {
76+
fn node_name(&self) -> &'static str {
7777
"AggregateMultipliedSubquery"
7878
}
7979
fn try_from_plan_node(plan_node: PlanNode) -> Result<Rc<Self>, CubeError> {
8080
if let PlanNode::AggregateMultipliedSubquery(item) = plan_node {
8181
Ok(item)
8282
} else {
83-
Err(cast_error::<Self>(&plan_node))
83+
Err(cast_error(&plan_node, "AggregateMultipliedSubquery"))
8484
}
8585
}
8686
}
@@ -99,7 +99,7 @@ impl NodeInputs for AggregateMultipliedSubqueryInput {
9999
.chain(self.dimension_subqueries.iter()),
100100
)
101101
}
102-
102+
103103
fn iter_mut(&mut self) -> Box<dyn Iterator<Item = &mut PlanNode> + '_> {
104104
Box::new(
105105
std::iter::once(&mut self.keys_subquery)

rust/cubesqlplanner/cubesqlplanner/src/logical_plan/cube.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,14 @@ impl LogicalNode for Cube {
6666
Ok(self)
6767
}
6868

69-
fn node_name() -> &'static str {
69+
fn node_name(&self) -> &'static str {
7070
"Cube"
7171
}
7272
fn try_from_plan_node(plan_node: PlanNode) -> Result<Rc<Self>, CubeError> {
7373
if let PlanNode::Cube(item) = plan_node {
7474
Ok(item)
7575
} else {
76-
Err(cast_error::<Self>(&plan_node))
76+
Err(cast_error(&plan_node, "Cube"))
7777
}
7878
}
7979
}

rust/cubesqlplanner/cubesqlplanner/src/logical_plan/dimension_subquery.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@ impl LogicalNode for DimensionSubQuery {
3232
}))
3333
}
3434

35-
fn node_name() -> &'static str {
35+
fn node_name(&self) -> &'static str {
3636
"DimensionSubQuery"
3737
}
3838
fn try_from_plan_node(plan_node: PlanNode) -> Result<Rc<Self>, CubeError> {
3939
if let PlanNode::DimensionSubQuery(query) = plan_node {
4040
Ok(query)
4141
} else {
42-
Err(cast_error::<Self>(&plan_node))
42+
Err(cast_error(&plan_node, "DimensionSubQuery"))
4343
}
4444
}
4545
}

rust/cubesqlplanner/cubesqlplanner/src/logical_plan/full_key_aggregate.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,14 @@ impl LogicalNode for FullKeyAggregate {
108108
}))
109109
}
110110

111-
fn node_name() -> &'static str {
111+
fn node_name(&self) -> &'static str {
112112
"FullKeyAggregate"
113113
}
114114
fn try_from_plan_node(plan_node: PlanNode) -> Result<Rc<Self>, CubeError> {
115115
if let PlanNode::FullKeyAggregate(item) = plan_node {
116116
Ok(item)
117117
} else {
118-
Err(cast_error::<Self>(&plan_node))
118+
Err(cast_error(&plan_node, "FullKeyAggregate"))
119119
}
120120
}
121121
}

rust/cubesqlplanner/cubesqlplanner/src/logical_plan/join.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,13 @@ impl LogicalNode for LogicalJoin {
5959
dimension_subqueries,
6060
} = inputs;
6161

62-
check_inputs_len::<Self>("joins", &joins, self.joins.len())?;
62+
check_inputs_len("joins", &joins, self.joins.len(), self.node_name())?;
6363

64-
check_inputs_len::<Self>(
64+
check_inputs_len(
6565
"dimension_subqueries",
6666
&dimension_subqueries,
6767
self.dimension_subqueries.len(),
68+
self.node_name(),
6869
)?;
6970

7071
let joins = self
@@ -91,14 +92,14 @@ impl LogicalNode for LogicalJoin {
9192
Ok(Rc::new(result))
9293
}
9394

94-
fn node_name() -> &'static str {
95+
fn node_name(&self) -> &'static str {
9596
"LogicalJoin"
9697
}
9798
fn try_from_plan_node(plan_node: PlanNode) -> Result<Rc<Self>, CubeError> {
9899
if let PlanNode::LogicalJoin(item) = plan_node {
99100
Ok(item)
100101
} else {
101-
Err(cast_error::<Self>(&plan_node))
102+
Err(cast_error(&plan_node, "LogicalJoin"))
102103
}
103104
}
104105
}
@@ -117,7 +118,7 @@ impl NodeInputs for LogicalJoinInput {
117118
.chain(self.dimension_subqueries.iter()),
118119
)
119120
}
120-
121+
121122
fn iter_mut(&mut self) -> Box<dyn Iterator<Item = &mut PlanNode> + '_> {
122123
Box::new(
123124
std::iter::once(&mut self.root)

rust/cubesqlplanner/cubesqlplanner/src/logical_plan/keys_subquery.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ impl LogicalNode for KeysSubQuery {
3939
Ok(Rc::new(res))
4040
}
4141

42-
fn node_name() -> &'static str {
42+
fn node_name(&self) -> &'static str {
4343
"KeysSubQuery"
4444
}
4545
fn try_from_plan_node(plan_node: PlanNode) -> Result<Rc<Self>, CubeError> {
4646
if let PlanNode::KeysSubQuery(query) = plan_node {
4747
Ok(query)
4848
} else {
49-
Err(cast_error::<Self>(&plan_node))
49+
Err(cast_error(&plan_node, "KeysSubQuery"))
5050
}
5151
}
5252
}
@@ -60,7 +60,7 @@ impl NodeInputs for KeysSubQueryInputs {
6060
fn iter(&self) -> Box<dyn Iterator<Item = &PlanNode> + '_> {
6161
Box::new(std::iter::once(&self.pk_cube).chain(std::iter::once(&self.source)))
6262
}
63-
63+
6464
fn iter_mut(&mut self) -> Box<dyn Iterator<Item = &mut PlanNode> + '_> {
6565
Box::new(std::iter::once(&mut self.pk_cube).chain(std::iter::once(&mut self.source)))
6666
}

rust/cubesqlplanner/cubesqlplanner/src/logical_plan/logical_node.rs

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ impl NodeInputs for EmptyNodeInput {
1818
fn iter(&self) -> Box<dyn Iterator<Item = &PlanNode> + '_> {
1919
Box::new(std::iter::empty())
2020
}
21-
21+
2222
fn iter_mut(&mut self) -> Box<dyn Iterator<Item = &mut PlanNode> + '_> {
2323
Box::new(std::iter::empty())
2424
}
@@ -42,7 +42,7 @@ impl NodeInputs for SingleNodeInput {
4242
fn iter(&self) -> Box<dyn Iterator<Item = &PlanNode> + '_> {
4343
Box::new(std::iter::once(&self.item))
4444
}
45-
45+
4646
fn iter_mut(&mut self) -> Box<dyn Iterator<Item = &mut PlanNode> + '_> {
4747
Box::new(std::iter::once(&mut self.item))
4848
}
@@ -70,7 +70,7 @@ impl NodeInputs for OptionNodeInput {
7070
Box::new(std::iter::empty())
7171
}
7272
}
73-
73+
7474
fn iter_mut(&mut self) -> Box<dyn Iterator<Item = &mut PlanNode> + '_> {
7575
if let Some(item) = &mut self.item {
7676
Box::new(std::iter::once(item))
@@ -98,7 +98,7 @@ impl NodeInputs for VecNodeInput {
9898
fn iter(&self) -> Box<dyn Iterator<Item = &PlanNode> + '_> {
9999
Box::new(self.items.iter())
100100
}
101-
101+
102102
fn iter_mut(&mut self) -> Box<dyn Iterator<Item = &mut PlanNode> + '_> {
103103
Box::new(self.items.iter_mut())
104104
}
@@ -115,7 +115,7 @@ pub trait LogicalNode {
115115

116116
fn as_plan_node(self: &Rc<Self>) -> PlanNode;
117117

118-
fn node_name() -> &'static str;
118+
fn node_name(&self) -> &'static str;
119119
}
120120

121121
pub enum PlanNode {
@@ -140,22 +140,22 @@ pub enum PlanNode {
140140
impl PlanNode {
141141
pub fn node_name(&self) -> &'static str {
142142
match self {
143-
PlanNode::Query(_) => Query::node_name(),
144-
PlanNode::LogicalJoin(_) => LogicalJoin::node_name(),
145-
PlanNode::FullKeyAggregate(_) => FullKeyAggregate::node_name(),
146-
PlanNode::PreAggregation(_) => PreAggregation::node_name(),
147-
PlanNode::ResolveMultipliedMeasures(_) => ResolveMultipliedMeasures::node_name(),
148-
PlanNode::AggregateMultipliedSubquery(_) => AggregateMultipliedSubquery::node_name(),
149-
PlanNode::Cube(_) => Cube::node_name(),
150-
PlanNode::MeasureSubquery(_) => MeasureSubquery::node_name(),
151-
PlanNode::DimensionSubQuery(_) => DimensionSubQuery::node_name(),
152-
PlanNode::KeysSubQuery(_) => KeysSubQuery::node_name(),
153-
PlanNode::MultiStageGetDateRange(_) => MultiStageGetDateRange::node_name(),
154-
PlanNode::MultiStageLeafMeasure(_) => MultiStageLeafMeasure::node_name(),
155-
PlanNode::MultiStageMeasureCalculation(_) => MultiStageMeasureCalculation::node_name(),
156-
PlanNode::MultiStageTimeSeries(_) => MultiStageTimeSeries::node_name(),
157-
PlanNode::MultiStageRollingWindow(_) => MultiStageRollingWindow::node_name(),
158-
PlanNode::LogicalMultiStageMember(_) => LogicalMultiStageMember::node_name(),
143+
PlanNode::Query(node) => node.node_name(),
144+
PlanNode::LogicalJoin(node) => node.node_name(),
145+
PlanNode::FullKeyAggregate(node) => node.node_name(),
146+
PlanNode::PreAggregation(node) => node.node_name(),
147+
PlanNode::ResolveMultipliedMeasures(node) => node.node_name(),
148+
PlanNode::AggregateMultipliedSubquery(node) => node.node_name(),
149+
PlanNode::Cube(node) => node.node_name(),
150+
PlanNode::MeasureSubquery(node) => node.node_name(),
151+
PlanNode::DimensionSubQuery(node) => node.node_name(),
152+
PlanNode::KeysSubQuery(node) => node.node_name(),
153+
PlanNode::MultiStageGetDateRange(node) => node.node_name(),
154+
PlanNode::MultiStageLeafMeasure(node) => node.node_name(),
155+
PlanNode::MultiStageMeasureCalculation(node) => node.node_name(),
156+
PlanNode::MultiStageTimeSeries(node) => node.node_name(),
157+
PlanNode::MultiStageRollingWindow(node) => node.node_name(),
158+
PlanNode::LogicalMultiStageMember(node) => node.node_name(),
159159
}
160160
}
161161

@@ -164,26 +164,27 @@ impl PlanNode {
164164
}
165165
}
166166

167-
pub(super) fn cast_error<T: LogicalNode>(plan_node: &PlanNode) -> CubeError {
167+
pub(super) fn cast_error(plan_node: &PlanNode, target_type: &str) -> CubeError {
168168
CubeError::internal(format!(
169169
"Can't cast {} PlanNode into {}",
170170
plan_node.node_name(),
171-
T::node_name(),
171+
target_type,
172172
))
173173
}
174174

175-
pub(super) fn check_inputs_len<T: LogicalNode>(
175+
pub(super) fn check_inputs_len(
176176
input_name: &str,
177177
inputs: &Vec<PlanNode>,
178178
expected: usize,
179+
node_type: &str,
179180
) -> Result<(), CubeError> {
180181
if inputs.len() == expected {
181182
Ok(())
182183
} else {
183184
Err(CubeError::internal(format!(
184185
"For input {} for node {} expected {} inputs but received {}",
185186
input_name,
186-
T::node_name(),
187+
node_type,
187188
expected,
188189
inputs.len()
189190
)))

rust/cubesqlplanner/cubesqlplanner/src/logical_plan/measure_subquery.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ impl LogicalNode for MeasureSubquery {
2626
}))
2727
}
2828

29-
fn node_name() -> &'static str {
29+
fn node_name(&self) -> &'static str {
3030
"MeasureSubquery"
3131
}
3232
fn try_from_plan_node(plan_node: PlanNode) -> Result<Rc<Self>, CubeError> {
3333
if let PlanNode::MeasureSubquery(query) = plan_node {
3434
Ok(query)
3535
} else {
36-
Err(cast_error::<Self>(&plan_node))
36+
Err(cast_error(&plan_node, "MeasureSubquery"))
3737
}
3838
}
3939
}

rust/cubesqlplanner/cubesqlplanner/src/logical_plan/multistage/calculation.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,15 @@ impl LogicalNode for MultiStageMeasureCalculation {
123123
}))
124124
}
125125

126-
fn node_name() -> &'static str {
126+
fn node_name(&self) -> &'static str {
127127
"MultiStageMeasureCalculation"
128128
}
129129

130130
fn try_from_plan_node(plan_node: PlanNode) -> Result<Rc<Self>, CubeError> {
131131
if let PlanNode::MultiStageMeasureCalculation(item) = plan_node {
132132
Ok(item)
133133
} else {
134-
Err(cast_error::<Self>(&plan_node))
134+
Err(cast_error(&plan_node, "MultiStageMeasureCalculation"))
135135
}
136136
}
137137
}

rust/cubesqlplanner/cubesqlplanner/src/logical_plan/multistage/get_date_range.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ impl LogicalNode for MultiStageGetDateRange {
2828
}))
2929
}
3030

31-
fn node_name() -> &'static str {
31+
fn node_name(&self) -> &'static str {
3232
"MultiStageGetDateRange"
3333
}
3434

3535
fn try_from_plan_node(plan_node: PlanNode) -> Result<Rc<Self>, CubeError> {
3636
if let PlanNode::MultiStageGetDateRange(item) = plan_node {
3737
Ok(item)
3838
} else {
39-
Err(cast_error::<Self>(&plan_node))
39+
Err(cast_error(&plan_node, "MultiStageGetDateRange"))
4040
}
4141
}
4242
}

0 commit comments

Comments
 (0)