Skip to content

Commit a9f6bbb

Browse files
committed
in work
1 parent 8accbce commit a9f6bbb

File tree

9 files changed

+17
-37
lines changed

9 files changed

+17
-37
lines changed

rust/cubesqlplanner/cubesqlplanner/src/physical_plan_builder/builder.rs

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -22,33 +22,6 @@ use std::rc::Rc;
2222
const TOTAL_COUNT: &str = "total_count";
2323
const ORIGINAL_QUERY: &str = "original_query";
2424

25-
#[derive(Clone, Debug, Default)]
26-
struct PhysicalPlanBuilderContext {
27-
pub alias_prefix: Option<String>,
28-
pub render_measure_as_state: bool, //Render measure as state, for example hll state for count_approx
29-
pub render_measure_for_ungrouped: bool,
30-
pub time_shifts: TimeShiftState,
31-
pub original_sql_pre_aggregations: HashMap<String, String>,
32-
}
33-
34-
impl PhysicalPlanBuilderContext {
35-
pub fn make_sql_nodes_factory(&self) -> Result<SqlNodesFactory, CubeError> {
36-
let mut factory = SqlNodesFactory::new();
37-
38-
let (time_shifts, calendar_time_shifts) = self.time_shifts.extract_time_shifts()?;
39-
let common_time_shifts = TimeShiftState {
40-
dimensions_shifts: time_shifts,
41-
};
42-
43-
factory.set_time_shifts(common_time_shifts);
44-
factory.set_calendar_time_shifts(calendar_time_shifts);
45-
factory.set_count_approx_as_state(self.render_measure_as_state);
46-
factory.set_ungrouped_measure(self.render_measure_for_ungrouped);
47-
factory.set_original_sql_pre_aggregations(self.original_sql_pre_aggregations.clone());
48-
Ok(factory)
49-
}
50-
}
51-
5225
pub struct PhysicalPlanBuilder {
5326
query_tools: Rc<QueryTools>,
5427
plan_sql_templates: PlanSqlTemplates,

rust/cubesqlplanner/cubesqlplanner/src/physical_plan_builder/context.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,20 @@ pub(super) struct PushDownBuilderContext {
2121
}
2222

2323
impl PushDownBuilderContext {
24-
pub fn make_sql_nodes_factory(&self) -> SqlNodesFactory {
24+
pub fn make_sql_nodes_factory(&self) -> Result<SqlNodesFactory, CubeError> {
2525
let mut factory = SqlNodesFactory::new();
26-
factory.set_time_shifts(self.time_shifts.clone());
26+
27+
let (time_shifts, calendar_time_shifts) = self.time_shifts.extract_time_shifts()?;
28+
let common_time_shifts = TimeShiftState {
29+
dimensions_shifts: time_shifts,
30+
};
31+
32+
factory.set_time_shifts(common_time_shifts);
33+
factory.set_calendar_time_shifts(calendar_time_shifts);
2734
factory.set_count_approx_as_state(self.render_measure_as_state);
2835
factory.set_ungrouped_measure(self.render_measure_for_ungrouped);
2936
factory.set_original_sql_pre_aggregations(self.original_sql_pre_aggregations.clone());
30-
factory
37+
Ok(factory)
3138
}
3239

3340
pub fn add_multi_stage_schema(&mut self, name: String, schema: Rc<Schema>) {

rust/cubesqlplanner/cubesqlplanner/src/physical_plan_builder/processors/aggregate_multiplied_subquery.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ impl<'a> LogicalNodeProcessor<'a, AggregateMultipliedSubquery>
4444
let mut join_builder =
4545
JoinBuilder::new_from_subselect(keys_query.clone(), keys_query_alias.clone());
4646

47-
let mut context_factory = context.make_sql_nodes_factory();
47+
let mut context_factory = context.make_sql_nodes_factory()?;
4848
let primary_keys_dimensions = &aggregate_multiplied_subquery
4949
.keys_subquery
5050
.primary_keys_dimensions;

rust/cubesqlplanner/cubesqlplanner/src/physical_plan_builder/processors/keys_sub_query.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ impl<'a> LogicalNodeProcessor<'a, KeysSubQuery> for KeysSubQueryProcessor<'a> {
5959

6060
select_builder.set_distinct();
6161
select_builder.set_filter(keys_subquery.filter.all_filters());
62-
let mut context_factory = context.make_sql_nodes_factory();
62+
let mut context_factory = context.make_sql_nodes_factory()?;
6363
context_factory.set_render_references(render_references);
6464
let res = Rc::new(select_builder.build(context_factory));
6565
Ok(res)

rust/cubesqlplanner/cubesqlplanner/src/physical_plan_builder/processors/measure_subquery.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ impl<'a> LogicalNodeProcessor<'a, MeasureSubquery> for MeasureSubqueryProcessor<
2828
.builder
2929
.process_node(measure_subquery.source.as_ref(), context)?;
3030

31-
let mut context_factory = context.make_sql_nodes_factory();
31+
let mut context_factory = context.make_sql_nodes_factory()?;
3232
let references_builder = ReferencesBuilder::new(from.clone());
3333
let mut select_builder = SelectBuilder::new(from);
3434

rust/cubesqlplanner/cubesqlplanner/src/physical_plan_builder/processors/multi_stage_get_date_range.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ impl<'a> LogicalNodeProcessor<'a, MultiStageGetDateRange> for MultiStageGetDateR
3030
.process_node(get_date_range.source.as_ref(), context)?;
3131
let references_builder = ReferencesBuilder::new(from.clone());
3232
let mut select_builder = SelectBuilder::new(from);
33-
let mut context_factory = context.make_sql_nodes_factory();
33+
let mut context_factory = context.make_sql_nodes_factory()?;
3434
let args = vec![get_date_range
3535
.time_dimension
3636
.clone()

rust/cubesqlplanner/cubesqlplanner/src/physical_plan_builder/processors/multi_stage_measure_calculation.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ impl<'a> LogicalNodeProcessor<'a, MultiStageMeasureCalculation>
8080
);
8181
}
8282

83-
let mut context_factory = context.make_sql_nodes_factory();
83+
let mut context_factory = context.make_sql_nodes_factory()?;
8484
let partition_by = measure_calculation
8585
.partition_by
8686
.iter()

rust/cubesqlplanner/cubesqlplanner/src/physical_plan_builder/processors/multi_stage_rolling_window.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ impl<'a> LogicalNodeProcessor<'a, MultiStageRollingWindow>
9393
on,
9494
);
9595

96-
let mut context_factory = context.make_sql_nodes_factory();
96+
let mut context_factory = context.make_sql_nodes_factory()?;
9797
context_factory.set_rolling_window(true);
9898
let from = From::new_from_join(join_builder.build());
9999
let references_builder = ReferencesBuilder::new(from.clone());

rust/cubesqlplanner/cubesqlplanner/src/physical_plan_builder/processors/query.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ impl<'a> LogicalNodeProcessor<'a, Query> for QueryProcessor<'a> {
3838
context: &PushDownBuilderContext,
3939
) -> Result<Self::PhysycalNode, CubeError> {
4040
let query_tools = self.builder.query_tools();
41-
let mut context_factory = context.make_sql_nodes_factory();
41+
let mut context_factory = context.make_sql_nodes_factory()?;
4242
let mut render_references = HashMap::new();
4343
let mut context = context.clone();
4444
let mut ctes = vec![];

0 commit comments

Comments
 (0)