Skip to content

Commit 3498c2e

Browse files
committed
refactor(cubesql): Rename ungrouped field of WrapperPushdownReplacer to push_to_cube
1 parent ca7d298 commit 3498c2e

25 files changed

+194
-187
lines changed

rust/cubesql/cubesql/src/compile/rewrite/mod.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,14 @@ crate::plan_to_language! {
456456
WrapperPushdownReplacer {
457457
member: Arc<LogicalPlan>,
458458
alias_to_cube: Vec<(String, String)>,
459-
ungrouped: bool,
459+
// This means that result of this replacer would be used as member expression in load query to Cube.
460+
// This flag should be passed from top, by the rule that starts wrapping new logical plan node.
461+
// Important caveat: it means that result would be used for push to cube *and only there*.
462+
// So it's more like "must push to Cube" than "can push to Cube"
463+
// This part is important for rewrites like SUM(sumMeasure) => sumMeasure
464+
// We can use sumMeasure instead of SUM(sumMeasure) ONLY in with push to Cube
465+
// An vice versa, we can't use SUM(sumMeasure) in grouped query to Cube, so it can be allowed ONLY without push to grouped Cube query
466+
push_to_cube: bool,
460467
in_projection: bool,
461468
cube_members: Vec<LogicalPlan>,
462469
},
@@ -1926,13 +1933,13 @@ fn case_expr_replacer(members: impl Display, alias_to_cube: impl Display) -> Str
19261933
fn wrapper_pushdown_replacer(
19271934
members: impl Display,
19281935
alias_to_cube: impl Display,
1929-
ungrouped: impl Display,
1936+
push_to_cube: impl Display,
19301937
in_projection: impl Display,
19311938
cube_members: impl Display,
19321939
) -> String {
19331940
format!(
19341941
"(WrapperPushdownReplacer {} {} {} {} {})",
1935-
members, alias_to_cube, ungrouped, in_projection, cube_members
1942+
members, alias_to_cube, push_to_cube, in_projection, cube_members
19361943
)
19371944
}
19381945

rust/cubesql/cubesql/src/compile/rewrite/rules/wrapper/aggregate.rs

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use crate::{
1212
wrapped_select_window_expr_empty_tail, wrapper_pullup_replacer, wrapper_pushdown_replacer,
1313
AggregateFunctionExprDistinct, AggregateFunctionExprFun, AliasExprAlias, ColumnExprColumn,
1414
ListType, LogicalPlanLanguage, WrappedSelectPushToCube, WrapperPullupReplacerAliasToCube,
15-
WrapperPullupReplacerUngrouped, WrapperPushdownReplacerUngrouped,
15+
WrapperPullupReplacerUngrouped, WrapperPushdownReplacerPushToCube,
1616
},
1717
copy_flag,
1818
transport::V1CubeMetaMeasureExt,
@@ -62,14 +62,14 @@ impl WrapperRules {
6262
wrapper_pushdown_replacer(
6363
"?group_expr",
6464
"?alias_to_cube",
65-
"?pushdown_ungrouped",
65+
"?pushdown_push_to_cube",
6666
"WrapperPullupReplacerInProjection:false",
6767
"?cube_members",
6868
),
6969
wrapper_pushdown_replacer(
7070
"?aggr_expr",
7171
"?alias_to_cube",
72-
"?pushdown_ungrouped",
72+
"?pushdown_push_to_cube",
7373
"WrapperPullupReplacerInProjection:false",
7474
"?cube_members",
7575
),
@@ -116,7 +116,7 @@ impl WrapperRules {
116116
"?group_expr",
117117
"?aggr_expr",
118118
"?ungrouped",
119-
"?pushdown_ungrouped",
119+
"?pushdown_push_to_cube",
120120
"?select_push_to_cube",
121121
),
122122
),
@@ -125,15 +125,15 @@ impl WrapperRules {
125125
wrapper_pushdown_replacer(
126126
grouping_set_expr("?rollout_members", "?type"),
127127
"?alias_to_cube",
128-
"?ungrouped",
128+
"?push_to_cube",
129129
"WrapperPullupReplacerInProjection:false",
130130
"?cube_members",
131131
),
132132
grouping_set_expr(
133133
wrapper_pushdown_replacer(
134134
"?rollout_members",
135135
"?alias_to_cube",
136-
"?ungrouped",
136+
"?push_to_cube",
137137
"WrapperPullupReplacerInProjection:false",
138138
"?cube_members",
139139
),
@@ -178,7 +178,7 @@ impl WrapperRules {
178178
wrapper_pushdown_replacer(
179179
"?aggr_expr",
180180
"?alias_to_cube",
181-
"WrapperPushdownReplacerUngrouped:true",
181+
"WrapperPushdownReplacerPushToCube:true",
182182
"?in_projection",
183183
"?cube_members",
184184
),
@@ -281,21 +281,21 @@ impl WrapperRules {
281281
wrapper_pushdown_replacer(
282282
"?subqueries",
283283
"?alias_to_cube",
284-
"?pushdown_ungrouped",
284+
"?pushdown_push_to_cube",
285285
"WrapperPullupReplacerInProjection:false",
286286
"?cube_members",
287287
),
288288
wrapper_pushdown_replacer(
289289
"?group_expr",
290290
"?alias_to_cube",
291-
"?pushdown_ungrouped",
291+
"?pushdown_push_to_cube",
292292
"WrapperPullupReplacerInProjection:false",
293293
"?cube_members",
294294
),
295295
wrapper_pushdown_replacer(
296296
"?aggr_expr",
297297
"?alias_to_cube",
298-
"?pushdown_ungrouped",
298+
"?pushdown_push_to_cube",
299299
"WrapperPullupReplacerInProjection:false",
300300
"?cube_members",
301301
),
@@ -343,7 +343,7 @@ impl WrapperRules {
343343
"?group_expr",
344344
"?aggr_expr",
345345
"?ungrouped",
346-
"?pushdown_ungrouped",
346+
"?pushdown_push_to_cube",
347347
"?select_push_to_cube",
348348
),
349349
)]);
@@ -354,13 +354,13 @@ impl WrapperRules {
354354
group_expr_var: &'static str,
355355
aggr_expr_var: &'static str,
356356
ungrouped_var: &'static str,
357-
pushdown_ungrouped_var: &'static str,
357+
pushdown_push_to_cube_var: &'static str,
358358
select_push_to_cube_var: &'static str,
359359
) -> impl Fn(&mut CubeEGraph, &mut Subst) -> bool {
360360
let group_expr_var = var!(group_expr_var);
361361
let aggr_expr_var = var!(aggr_expr_var);
362362
let ungrouped_var = var!(ungrouped_var);
363-
let pushdown_ungrouped_var = var!(pushdown_ungrouped_var);
363+
let pushdown_push_to_cube_var = var!(pushdown_push_to_cube_var);
364364
let select_push_to_cube_var = var!(select_push_to_cube_var);
365365
move |egraph, subst| {
366366
Self::transform_aggregate_impl(
@@ -369,7 +369,7 @@ impl WrapperRules {
369369
group_expr_var,
370370
aggr_expr_var,
371371
ungrouped_var,
372-
pushdown_ungrouped_var,
372+
pushdown_push_to_cube_var,
373373
select_push_to_cube_var,
374374
)
375375
}
@@ -381,14 +381,14 @@ impl WrapperRules {
381381
group_expr_var: &'static str,
382382
aggr_expr_var: &'static str,
383383
ungrouped_var: &'static str,
384-
pushdown_ungrouped_var: &'static str,
384+
pushdown_push_to_cube_var: &'static str,
385385
select_push_to_cube_var: &'static str,
386386
) -> impl Fn(&mut CubeEGraph, &mut Subst) -> bool {
387387
let alias_to_cube_var = var!(alias_to_cube_var);
388388
let group_expr_var = var!(group_expr_var);
389389
let aggr_expr_var = var!(aggr_expr_var);
390390
let ungrouped_var = var!(ungrouped_var);
391-
let pushdown_ungrouped_var = var!(pushdown_ungrouped_var);
391+
let pushdown_push_to_cube_var = var!(pushdown_push_to_cube_var);
392392
let select_push_to_cube_var = var!(select_push_to_cube_var);
393393
let meta = self.meta_context.clone();
394394
move |egraph, subst| {
@@ -404,7 +404,7 @@ impl WrapperRules {
404404
group_expr_var,
405405
aggr_expr_var,
406406
ungrouped_var,
407-
pushdown_ungrouped_var,
407+
pushdown_push_to_cube_var,
408408
select_push_to_cube_var,
409409
)
410410
} else {
@@ -419,7 +419,7 @@ impl WrapperRules {
419419
group_expr_var: Var,
420420
aggr_expr_var: Var,
421421
ungrouped_var: Var,
422-
pushdown_ungrouped_var: Var,
422+
pushdown_push_to_cube_var: Var,
423423
select_push_to_cube_var: Var,
424424
) -> bool {
425425
if egraph[subst[group_expr_var]].data.referenced_expr.is_none() {
@@ -434,8 +434,8 @@ impl WrapperRules {
434434
subst,
435435
ungrouped_var,
436436
WrapperPullupReplacerUngrouped,
437-
pushdown_ungrouped_var,
438-
WrapperPushdownReplacerUngrouped
437+
pushdown_push_to_cube_var,
438+
WrapperPushdownReplacerPushToCube
439439
) {
440440
return false;
441441
}

rust/cubesql/cubesql/src/compile/rewrite/rules/wrapper/aggregate_function.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ impl WrapperRules {
1919
wrapper_pushdown_replacer(
2020
agg_fun_expr("?fun", vec!["?expr"], "?distinct"),
2121
"?alias_to_cube",
22-
"?ungrouped",
22+
"?push_to_cube",
2323
"?in_projection",
2424
"?cube_members",
2525
),
@@ -28,7 +28,7 @@ impl WrapperRules {
2828
vec![wrapper_pushdown_replacer(
2929
"?expr",
3030
"?alias_to_cube",
31-
"?ungrouped",
31+
"?push_to_cube",
3232
"?in_projection",
3333
"?cube_members",
3434
)],

rust/cubesql/cubesql/src/compile/rewrite/rules/wrapper/alias.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ impl WrapperRules {
1111
wrapper_pushdown_replacer(
1212
alias_expr("?expr", "?alias"),
1313
"?alias_to_cube",
14-
"?ungrouped",
14+
"?push_to_cube",
1515
"?in_projection",
1616
"?cube_members",
1717
),
1818
alias_expr(
1919
wrapper_pushdown_replacer(
2020
"?expr",
2121
"?alias_to_cube",
22-
"?ungrouped",
22+
"?push_to_cube",
2323
"?in_projection",
2424
"?cube_members",
2525
),

rust/cubesql/cubesql/src/compile/rewrite/rules/wrapper/binary_expr.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,23 @@ impl WrapperRules {
1818
wrapper_pushdown_replacer(
1919
binary_expr("?left", "?op", "?right"),
2020
"?alias_to_cube",
21-
"?ungrouped",
21+
"?push_to_cube",
2222
"?in_projection",
2323
"?cube_members",
2424
),
2525
binary_expr(
2626
wrapper_pushdown_replacer(
2727
"?left",
2828
"?alias_to_cube",
29-
"?ungrouped",
29+
"?push_to_cube",
3030
"?in_projection",
3131
"?cube_members",
3232
),
3333
"?op",
3434
wrapper_pushdown_replacer(
3535
"?right",
3636
"?alias_to_cube",
37-
"?ungrouped",
37+
"?push_to_cube",
3838
"?in_projection",
3939
"?cube_members",
4040
),

rust/cubesql/cubesql/src/compile/rewrite/rules/wrapper/case.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,29 +18,29 @@ impl WrapperRules {
1818
wrapper_pushdown_replacer(
1919
case_expr_var_arg("?when", "?then", "?else"),
2020
"?alias_to_cube",
21-
"?ungrouped",
21+
"?push_to_cube",
2222
"?in_projection",
2323
"?cube_members",
2424
),
2525
case_expr_var_arg(
2626
wrapper_pushdown_replacer(
2727
"?when",
2828
"?alias_to_cube",
29-
"?ungrouped",
29+
"?push_to_cube",
3030
"?in_projection",
3131
"?cube_members",
3232
),
3333
wrapper_pushdown_replacer(
3434
"?then",
3535
"?alias_to_cube",
36-
"?ungrouped",
36+
"?push_to_cube",
3737
"?in_projection",
3838
"?cube_members",
3939
),
4040
wrapper_pushdown_replacer(
4141
"?else",
4242
"?alias_to_cube",
43-
"?ungrouped",
43+
"?push_to_cube",
4444
"?in_projection",
4545
"?cube_members",
4646
),

rust/cubesql/cubesql/src/compile/rewrite/rules/wrapper/cast.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ impl WrapperRules {
1111
wrapper_pushdown_replacer(
1212
cast_expr("?expr", "?data_type"),
1313
"?alias_to_cube",
14-
"?ungrouped",
14+
"?push_to_cube",
1515
"?in_projection",
1616
"?cube_members",
1717
),
1818
cast_expr(
1919
wrapper_pushdown_replacer(
2020
"?expr",
2121
"?alias_to_cube",
22-
"?ungrouped",
22+
"?push_to_cube",
2323
"?in_projection",
2424
"?cube_members",
2525
),

rust/cubesql/cubesql/src/compile/rewrite/rules/wrapper/column.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ impl WrapperRules {
1919
wrapper_pushdown_replacer(
2020
column_expr("?name"),
2121
"?alias_to_cube",
22-
"WrapperPushdownReplacerUngrouped:false",
22+
"WrapperPushdownReplacerPushToCube:false",
2323
"?in_projection",
2424
"?cube_members",
2525
),
@@ -38,7 +38,7 @@ impl WrapperRules {
3838
wrapper_pushdown_replacer(
3939
column_expr("?name"),
4040
"?alias_to_cube",
41-
"WrapperPushdownReplacerUngrouped:true",
41+
"WrapperPushdownReplacerPushToCube:true",
4242
"WrapperPullupReplacerInProjection:true",
4343
"?cube_members",
4444
),
@@ -57,7 +57,7 @@ impl WrapperRules {
5757
wrapper_pushdown_replacer(
5858
column_expr("?name"),
5959
"?alias_to_cube",
60-
"WrapperPushdownReplacerUngrouped:true",
60+
"WrapperPushdownReplacerPushToCube:true",
6161
"?in_projection",
6262
"?cube_members",
6363
),

0 commit comments

Comments
 (0)