Skip to content

Commit 7ffc6d2

Browse files
authored
chore(tesseract): unify QueryProperties with MultiStageAppliedState (#10843)
1 parent f06367a commit 7ffc6d2

19 files changed

Lines changed: 1224 additions & 1189 deletions

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

Lines changed: 0 additions & 55 deletions
This file was deleted.

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
mod calculation;
2-
mod common;
32
mod dimension;
43
mod get_date_range;
54
mod leaf_measure;

rust/cube/cubesqlplanner/cubesqlplanner/src/planner/base_query.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use super::query_tools::QueryTools;
22
use super::top_level_planner::TopLevelPlanner;
3-
use super::QueryProperties;
3+
use super::{QueryProperties, QueryPropertiesCompiler};
44
use crate::cube_bridge::base_query_options::BaseQueryOptions;
55
use crate::cube_bridge::pre_aggregation_obj::NativePreAggregationObj;
66
use crate::logical_plan::PreAggregationUsage;
@@ -61,7 +61,7 @@ impl<IT: InnerTypes> BaseQuery<IT> {
6161
options.static_data().member_to_alias.clone(),
6262
)?;
6363

64-
let request = QueryProperties::try_new(query_tools.clone(), options)?;
64+
let request = QueryPropertiesCompiler::new(query_tools.clone()).build(options)?;
6565

6666
Ok(Self {
6767
context,

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ pub mod visitor;
1515
pub mod params_allocator;
1616
pub mod planners;
1717
pub mod query_properties;
18+
pub mod query_properties_compiler;
1819
pub mod query_tools;
1920
pub mod sql_templates;
2021
pub mod top_level_planner;
@@ -29,6 +30,7 @@ pub use compiler::Compiler;
2930
pub use join_hints::JoinHints;
3031
pub use params_allocator::ParamsAllocator;
3132
pub use query_properties::{FullKeyAggregateMeasures, OrderByItem, QueryProperties};
33+
pub use query_properties_compiler::QueryPropertiesCompiler;
3234
pub use sql_call::*;
3335
pub use symbols::*;
3436
pub use time_dimension::*;

rust/cube/cubesqlplanner/cubesqlplanner/src/planner/multi_fact_join_groups.rs

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,6 @@ pub struct MeasuresJoinHints {
5959
}
6060

6161
impl MeasuresJoinHints {
62-
pub fn empty() -> Self {
63-
Self {
64-
base_hints: JoinHints::new(),
65-
measure_hints: vec![],
66-
}
67-
}
68-
6962
pub fn builder(query_join_hints: &JoinHints) -> MeasuresJoinHintsBuilder {
7063
MeasuresJoinHintsBuilder {
7164
initial_hints: query_join_hints.clone(),
@@ -137,16 +130,6 @@ pub struct MultiFactJoinGroups {
137130
}
138131

139132
impl MultiFactJoinGroups {
140-
pub fn empty(query_tools: Rc<QueryTools>) -> Self {
141-
Self {
142-
query_tools,
143-
measures_join_hints: MeasuresJoinHints::empty(),
144-
groups: vec![],
145-
dimension_paths: HashMap::new(),
146-
measure_paths: HashMap::new(),
147-
}
148-
}
149-
150133
pub fn try_new(
151134
query_tools: Rc<QueryTools>,
152135
measures_join_hints: MeasuresJoinHints,

rust/cube/cubesqlplanner/cubesqlplanner/src/planner/planners/dimension_subquery_planner.rs

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use crate::logical_plan::{pretty_print_rc, DimensionSubQuery};
33
use crate::physical_plan::QualifiedColumnName;
44
use crate::planner::collectors::collect_sub_query_dimensions;
55
use crate::planner::filter::FilterItem;
6-
use crate::planner::join_hints::JoinHints;
76
use crate::planner::query_tools::QueryTools;
87
use crate::planner::QueryProperties;
98
use crate::planner::{MemberExpressionExpression, MemberExpressionSymbol, MemberSymbol};
@@ -111,26 +110,17 @@ impl DimensionSubqueryPlanner {
111110
(vec![], vec![])
112111
};
113112

114-
let sub_query_properties = QueryProperties::try_new_from_precompiled(
115-
self.query_tools.clone(),
116-
vec![measure.clone()], //measures,
117-
primary_keys_dimensions.clone(),
118-
vec![],
119-
time_dimensions_filters,
120-
dimensions_filters,
121-
vec![],
122-
vec![],
123-
vec![],
124-
None,
125-
None,
126-
true,
127-
false,
128-
false,
129-
false,
130-
Rc::new(JoinHints::new()),
131-
true,
132-
self.query_properties.disable_external_pre_aggregations(),
133-
)?;
113+
let sub_query_properties = QueryProperties::builder()
114+
.query_tools(self.query_tools.clone())
115+
.measures(vec![measure.clone()])
116+
.dimensions(primary_keys_dimensions.clone())
117+
.time_dimensions_filters(time_dimensions_filters)
118+
.dimensions_filters(dimensions_filters)
119+
.ignore_cumulative(true)
120+
.disable_external_pre_aggregations(
121+
self.query_properties.disable_external_pre_aggregations(),
122+
)
123+
.build()?;
134124
let query_planner = QueryPlanner::new(sub_query_properties, self.query_tools.clone());
135125
let sub_query = query_planner.plan()?;
136126
let result = Rc::new(DimensionSubQuery {

rust/cube/cubesqlplanner/cubesqlplanner/src/planner/planners/full_key_query_aggregate_planner.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ impl FullKeyAggregateQueryPlanner {
6363
offset: self.query_properties.offset(),
6464
limit: self.query_properties.row_limit(),
6565
ungrouped: self.query_properties.ungrouped(),
66-
order_by: self.query_properties.order_by().clone(),
66+
order_by: self.query_properties.order_by().to_vec(),
6767
}))
6868
.source(source)
6969
.build();

0 commit comments

Comments
 (0)