Skip to content

Commit 1854ae8

Browse files
committed
in work
1 parent 88832ae commit 1854ae8

File tree

2 files changed

+12
-29
lines changed
  • rust/cubesqlplanner/cubesqlplanner/src

2 files changed

+12
-29
lines changed

rust/cubesqlplanner/cubesqlplanner/src/plan/builder/select.rs

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ impl SelectBuilder {
6161
expr,
6262
alias: alias.clone(),
6363
};
64-
self.resolve_render_reference_for_member(&member.member_evaluator());
6564

6665
self.projection_columns.push(aliased_expr);
6766
}
@@ -98,27 +97,6 @@ impl SelectBuilder {
9897
self.ctes = ctes;
9998
}
10099

101-
fn resolve_render_reference_for_member(&mut self, member: &Rc<MemberSymbol>) {
102-
let member_name = member.full_name();
103-
if !self
104-
.nodes_factory
105-
.render_references()
106-
.contains_key(&member_name)
107-
{
108-
if let Some(reference) = self
109-
.input_schema
110-
.resolve_member_reference(&member_name, &None)
111-
{
112-
self.nodes_factory
113-
.add_render_reference(member_name, reference);
114-
} else {
115-
for dep in member.get_dependencies() {
116-
self.resolve_render_reference_for_member(&dep);
117-
}
118-
}
119-
}
120-
}
121-
122100
fn make_cube_references(&self) -> HashMap<String, String> {
123101
let mut refs = HashMap::new();
124102
match &self.from.source {

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

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,19 @@ use super::{
66
};
77
use std::collections::HashMap;
88
use std::rc::Rc;
9+
#[derive(Clone)]
10+
pub struct Reference {
11+
pub reference: String,
12+
pub source: Option<String>,
13+
}
914

1015
#[derive(Clone)]
1116
pub struct SqlNodesFactory {
1217
time_shifts: HashMap<String, String>,
1318
ungrouped: bool,
1419
ungrouped_measure: bool,
15-
render_references: HashMap<String, String>,
16-
ungrouped_measure_references: HashMap<String, String>,
20+
render_references: HashMap<String, Reference>,
21+
ungrouped_measure_references: HashMap<String, Reference>,
1722
cube_name_references: HashMap<String, String>,
1823
multi_stage_rank: Option<Vec<String>>, //partition_by
1924
multi_stage_window: Option<Vec<String>>, //partition_by
@@ -73,15 +78,15 @@ impl SqlNodesFactory {
7378
self.ungrouped_measure = value;
7479
}
7580

76-
pub fn set_render_references(&mut self, value: HashMap<String, String>) {
81+
pub fn set_render_references(&mut self, value: HashMap<String, Reference>) {
7782
self.render_references = value;
7883
}
7984

80-
pub fn render_references(&self) -> &HashMap<String, String> {
85+
pub fn render_references(&self) -> &HashMap<String, Reference> {
8186
&self.render_references
8287
}
8388

84-
pub fn add_render_reference(&mut self, key: String, value: String) {
89+
pub fn add_render_reference(&mut self, key: String, value: Reference) {
8590
self.render_references.insert(key, value);
8691
}
8792

@@ -97,11 +102,11 @@ impl SqlNodesFactory {
97102
self.rolling_window = value;
98103
}
99104

100-
pub fn set_ungrouped_measure_references(&mut self, value: HashMap<String, String>) {
105+
pub fn set_ungrouped_measure_references(&mut self, value: HashMap<String, Reference>) {
101106
self.ungrouped_measure_references = value;
102107
}
103108

104-
pub fn add_ungrouped_measure_reference(&mut self, key: String, value: String) {
109+
pub fn add_ungrouped_measure_reference(&mut self, key: String, value: Reference) {
105110
self.ungrouped_measure_references.insert(key, value);
106111
}
107112

0 commit comments

Comments
 (0)