Skip to content

Commit bd42c44

Browse files
authored
feat: Renaming of Post Aggregate into Multi Stage (#8798)
* feat(cube): Renaming of Post Aggregate into Multi Stage * update
1 parent c87098d commit bd42c44

File tree

12 files changed

+2262
-3031
lines changed

12 files changed

+2262
-3031
lines changed

packages/cubejs-schema-compiler/src/adapter/BaseDimension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ export class BaseDimension {
6464
return [this];
6565
}
6666

67-
public isPostAggregate() {
67+
public isMultiStage() {
6868
if (this.expression) { // TODO
6969
return false;
7070
}
71-
return this.definition().postAggregate;
71+
return this.definition().multiStage;
7272
}
7373

7474
public cube() {

packages/cubejs-schema-compiler/src/adapter/BaseMeasure.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,19 +106,19 @@ export class BaseMeasure {
106106
return BaseMeasure.isCumulative(this.measureDefinition());
107107
}
108108

109-
public isPostAggregate() {
109+
public isMultiStage() {
110110
if (this.expression) { // TODO
111111
return false;
112112
}
113-
return this.definition().postAggregate;
113+
return this.definition().multiStage;
114114
}
115115

116116
public isAdditive() {
117117
if (this.expression) { // TODO
118118
return false;
119119
}
120120
const definition = this.measureDefinition();
121-
if (definition.postAggregate) {
121+
if (definition.multiStage) {
122122
return false;
123123
}
124124
return definition.type === 'sum' || definition.type === 'count' || definition.type === 'countDistinctApprox' ||

packages/cubejs-schema-compiler/src/adapter/BaseQuery.js

Lines changed: 66 additions & 66 deletions
Large diffs are not rendered by default.

packages/cubejs-schema-compiler/src/adapter/BaseSegment.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ export class BaseSegment {
4141
return this.query.cubeEvaluator.segmentByPath(this.segment);
4242
}
4343

44-
public isPostAggregate() {
44+
public isMultiStage() {
4545
if (this.expression) { // TODO
4646
return false;
4747
}
48-
return this.definition().postAggregate;
48+
return this.definition().multiStage;
4949
}
5050

5151
public definition(): any {

packages/cubejs-schema-compiler/src/adapter/PreAggregations.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ export class PreAggregations {
373373
);
374374

375375
const isAdditive = R.all(m => m.isAdditive(), query.measures);
376-
const hasPostAggregate = R.any(m => m.isPostAggregate(), query.measures);
376+
const hasMultiStage = R.any(m => m.isMultiStage(), query.measures);
377377
const leafMeasures = leafMeasurePaths.map(path => query.newMeasure(path));
378378
const leafMeasureAdditive = R.all(m => m.isAdditive(), leafMeasures);
379379
const cumulativeMeasures = leafMeasures
@@ -416,7 +416,7 @@ export class PreAggregations {
416416
ungrouped: query.ungrouped,
417417
sortedUsedCubePrimaryKeys,
418418
sortedAllCubeNames,
419-
hasPostAggregate
419+
hasMultiStage
420420
};
421421
}
422422

@@ -707,7 +707,7 @@ export class PreAggregations {
707707
*/
708708
const canUseFn =
709709
(
710-
transformedQuery.leafMeasureAdditive && !transformedQuery.hasMultipliedMeasures && !transformedQuery.hasPostAggregate || transformedQuery.ungrouped
710+
transformedQuery.leafMeasureAdditive && !transformedQuery.hasMultipliedMeasures && !transformedQuery.hasMultiStage || transformedQuery.ungrouped
711711
) ? (r) => canUsePreAggregationLeafMeasureAdditive(r) ||
712712
canUsePreAggregationNotAdditive(r)
713713
: canUsePreAggregationNotAdditive;

packages/cubejs-schema-compiler/src/compiler/CubeEvaluator.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export type SegmentDefinition = {
1414
ownedByCube: boolean,
1515
fieldType?: string,
1616
// TODO should we have it here?
17-
postAggregate?: boolean,
17+
multiStage?: boolean,
1818
};
1919

2020
export type DimensionDefinition = {
@@ -23,7 +23,7 @@ export type DimensionDefinition = {
2323
primaryKey?: true,
2424
ownedByCube: boolean,
2525
fieldType?: string,
26-
postAggregate?: boolean,
26+
multiStage?: boolean,
2727
shiftInterval?: string,
2828
};
2929

@@ -47,7 +47,7 @@ export type MeasureDefinition = {
4747
filters?: any
4848
primaryKey?: true,
4949
drillFilters?: any,
50-
postAggregate?: boolean,
50+
multiStage?: boolean,
5151
groupBy?: Function,
5252
reduceBy?: Function,
5353
addGroupBy?: Function,
@@ -107,8 +107,8 @@ export class CubeEvaluator extends CubeSymbols {
107107
this.prepareMembers(cube.dimensions, cube, errorReporter);
108108
this.prepareMembers(cube.segments, cube, errorReporter);
109109

110-
this.evaluatePostAggregateReferences(cube.name, cube.measures);
111-
this.evaluatePostAggregateReferences(cube.name, cube.dimensions);
110+
this.evaluateMultiStageReferences(cube.name, cube.measures);
111+
this.evaluateMultiStageReferences(cube.name, cube.dimensions);
112112

113113
this.prepareHierarchies(cube);
114114

@@ -165,14 +165,14 @@ export class CubeEvaluator extends CubeSymbols {
165165
return [];
166166
}
167167

168-
private evaluatePostAggregateReferences(cubeName: string, obj: { [key: string]: MeasureDefinition }) {
168+
private evaluateMultiStageReferences(cubeName: string, obj: { [key: string]: MeasureDefinition }) {
169169
if (!obj) {
170170
return;
171171
}
172172

173173
// eslint-disable-next-line no-restricted-syntax
174174
for (const member of Object.values(obj)) {
175-
if (member.postAggregate) {
175+
if (member.multiStage) {
176176
if (member.groupBy) {
177177
member.groupByReferences = this.evaluateReferences(cubeName, member.groupBy);
178178
}

packages/cubejs-schema-compiler/src/compiler/CubeValidator.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -556,17 +556,17 @@ const measureTypeWithCount = Joi.string().valid(
556556
'count', 'number', 'string', 'boolean', 'time', 'sum', 'avg', 'min', 'max', 'countDistinct', 'runningTotal', 'countDistinctApprox'
557557
);
558558

559-
const postAggregateMeasureType = Joi.string().valid(
559+
const multiStageMeasureType = Joi.string().valid(
560560
'count', 'number', 'string', 'boolean', 'time', 'sum', 'avg', 'min', 'max', 'countDistinct', 'runningTotal', 'countDistinctApprox',
561561
'rank'
562562
);
563563

564-
const MeasuresSchema = Joi.object().pattern(identifierRegex, Joi.alternatives().conditional(Joi.ref('.postAggregate'), [
564+
const MeasuresSchema = Joi.object().pattern(identifierRegex, Joi.alternatives().conditional(Joi.ref('.multiStage'), [
565565
{
566566
is: true,
567567
then: inherit(BaseMeasure, {
568-
postAggregate: Joi.boolean().strict(),
569-
type: postAggregateMeasureType.required(),
568+
multiStage: Joi.boolean().strict(),
569+
type: multiStageMeasureType.required(),
570570
sql: Joi.func(), // TODO .required(),
571571
groupBy: Joi.func(),
572572
reduceBy: Joi.func(),
@@ -679,7 +679,7 @@ const baseSchema = {
679679
sql: Joi.func().required()
680680
}),
681681
inherit(BaseDimension, {
682-
postAggregate: Joi.boolean().valid(true),
682+
multiStage: Joi.boolean().valid(true),
683683
type: Joi.any().valid('number').required(),
684684
sql: Joi.func().required(),
685685
addGroupBy: Joi.func(),

0 commit comments

Comments
 (0)