@cubejs-backend/schema-compiler 1.3.5 → 1.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/adapter/BaseDimension.d.ts +1 -0
- package/dist/src/adapter/BaseDimension.d.ts.map +1 -1
- package/dist/src/adapter/BaseDimension.js +11 -0
- package/dist/src/adapter/BaseDimension.js.map +1 -1
- package/dist/src/adapter/BaseMeasure.d.ts +1 -0
- package/dist/src/adapter/BaseMeasure.d.ts.map +1 -1
- package/dist/src/adapter/BaseMeasure.js +9 -0
- package/dist/src/adapter/BaseMeasure.js.map +1 -1
- package/dist/src/adapter/BaseQuery.d.ts +49 -25
- package/dist/src/adapter/BaseQuery.d.ts.map +1 -1
- package/dist/src/adapter/BaseQuery.js +79 -66
- package/dist/src/adapter/BaseQuery.js.map +1 -1
- package/dist/src/adapter/BaseSegment.d.ts +1 -0
- package/dist/src/adapter/BaseSegment.d.ts.map +1 -1
- package/dist/src/adapter/BaseSegment.js +9 -0
- package/dist/src/adapter/BaseSegment.js.map +1 -1
- package/dist/src/adapter/PreAggregations.d.ts +23 -9
- package/dist/src/adapter/PreAggregations.d.ts.map +1 -1
- package/dist/src/adapter/PreAggregations.js +86 -23
- package/dist/src/adapter/PreAggregations.js.map +1 -1
- package/dist/src/compiler/CubeEvaluator.d.ts +3 -3
- package/dist/src/compiler/CubeEvaluator.d.ts.map +1 -1
- package/dist/src/compiler/CubeEvaluator.js +7 -7
- package/dist/src/compiler/CubeEvaluator.js.map +1 -1
- package/dist/src/compiler/CubeSymbols.d.ts +14 -0
- package/dist/src/compiler/CubeSymbols.d.ts.map +1 -1
- package/dist/src/compiler/CubeSymbols.js +67 -3
- package/dist/src/compiler/CubeSymbols.js.map +1 -1
- package/dist/src/compiler/CubeToMetaTransformer.d.ts +2 -2
- package/dist/src/compiler/CubeToMetaTransformer.d.ts.map +1 -1
- package/dist/src/compiler/CubeToMetaTransformer.js +2 -1
- package/dist/src/compiler/CubeToMetaTransformer.js.map +1 -1
- package/package.json +7 -7
|
@@ -7,6 +7,7 @@ export declare class BaseDimension {
|
|
|
7
7
|
readonly expressionCubeName: any;
|
|
8
8
|
readonly expressionName: string | undefined;
|
|
9
9
|
readonly isMemberExpression: boolean;
|
|
10
|
+
readonly joinHint: Array<string>;
|
|
10
11
|
constructor(query: BaseQuery, dimension: any);
|
|
11
12
|
selectColumns(): string[] | null;
|
|
12
13
|
hasNoRemapping(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseDimension.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseDimension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseDimension.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseDimension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGxF,qBAAa,aAAa;IAYtB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS;aACnB,SAAS,EAAE,GAAG;IAZhC,SAAgB,UAAU,EAAE,GAAG,CAAC;IAEhC,SAAgB,kBAAkB,EAAE,GAAG,CAAC;IAExC,SAAgB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAEnD,SAAgB,kBAAkB,EAAE,OAAO,CAAS;IAEpD,SAAgB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;gBAGxB,KAAK,EAAE,SAAS,EACnB,SAAS,EAAE,GAAG;IAmBzB,aAAa,IAAI,MAAM,EAAE,GAAG,IAAI;IAIhC,cAAc;IAId,uBAAuB;IAIvB,YAAY;IAWZ,oCAAoC,CAAC,GAAG,KAAA;IAUxC,aAAa;IAIb,UAAU;IAIV,YAAY;IAOZ,IAAI;IAOJ,mBAAmB,IAAI,mBAAmB,GAAG,iBAAiB;IAQ9D,UAAU,IAAI,mBAAmB,GAAG,iBAAiB;IAYrD,SAAS,IAAI,MAAM,GAAG,IAAI;IAK1B,kBAAkB,IAAI,MAAM;IAQ5B,aAAa;IAIb,IAAI;IAYJ,cAAc;CAMtB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseDimension = void 0;
|
|
4
|
+
const CubeSymbols_1 = require("../compiler/CubeSymbols");
|
|
4
5
|
class BaseDimension {
|
|
5
6
|
query;
|
|
6
7
|
dimension;
|
|
@@ -8,6 +9,7 @@ class BaseDimension {
|
|
|
8
9
|
expressionCubeName;
|
|
9
10
|
expressionName;
|
|
10
11
|
isMemberExpression = false;
|
|
12
|
+
joinHint = [];
|
|
11
13
|
constructor(query, dimension) {
|
|
12
14
|
this.query = query;
|
|
13
15
|
this.dimension = dimension;
|
|
@@ -18,6 +20,15 @@ class BaseDimension {
|
|
|
18
20
|
this.expressionName = dimension.expressionName || `${dimension.cubeName}.${dimension.name}`;
|
|
19
21
|
this.isMemberExpression = !!dimension.definition;
|
|
20
22
|
}
|
|
23
|
+
else {
|
|
24
|
+
// TODO move this `as` to static types
|
|
25
|
+
const dimensionPath = dimension;
|
|
26
|
+
if (dimensionPath !== null) {
|
|
27
|
+
const { path, joinHint } = CubeSymbols_1.CubeSymbols.joinHintFromPath(dimensionPath);
|
|
28
|
+
this.dimension = path;
|
|
29
|
+
this.joinHint = joinHint;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
21
32
|
}
|
|
22
33
|
selectColumns() {
|
|
23
34
|
return [`${this.dimensionSql()} ${this.aliasName()}`];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseDimension.js","sourceRoot":"","sources":["../../../src/adapter/BaseDimension.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"BaseDimension.js","sourceRoot":"","sources":["../../../src/adapter/BaseDimension.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export declare class BaseMeasure {
|
|
|
8
8
|
readonly expressionName: any;
|
|
9
9
|
readonly isMemberExpression: boolean;
|
|
10
10
|
protected readonly patchedMeasure: MeasureDefinition | null;
|
|
11
|
+
readonly joinHint: Array<string>;
|
|
11
12
|
protected preparePatchedMeasure(sourceMeasure: string, newMeasureType: string | null, addFilters: Array<{
|
|
12
13
|
sql: Function;
|
|
13
14
|
}>): MeasureDefinition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseMeasure.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseMeasure.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseMeasure.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseMeasure.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,qBAAa,WAAW;IA0GpB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS;aACnB,OAAO,EAAE,GAAG;IA1G9B,SAAgB,UAAU,EAAE,GAAG,CAAC;IAEhC,SAAgB,kBAAkB,EAAE,GAAG,CAAC;IAExC,SAAgB,cAAc,EAAE,GAAG,CAAC;IAEpC,SAAgB,kBAAkB,EAAE,OAAO,CAAS;IAEpD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAEnE,SAAgB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAE7C,SAAS,CAAC,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,QAAQ,CAAA;KAAC,CAAC,GAAG,iBAAiB;gBA6FvH,KAAK,EAAE,SAAS,EACnB,OAAO,EAAE,GAAG;IAyBvB,UAAU;IAIV,aAAa;IAIb,cAAc;IAId,uBAAuB;IAIvB,oBAAoB;IASpB,UAAU;IAQV,oCAAoC,CAAC,GAAG,KAAA;IAUxC,IAAI;IAOJ,iBAAiB;IAOjB,UAAU,IAAI,GAAG;IAcjB,SAAS;IAIT,kBAAkB;IAOlB,YAAY;IAOZ,YAAY;IAOZ,UAAU;WAYH,YAAY,CAAC,UAAU,KAAA;IAI9B,uBAAuB;IAWvB,iBAAiB;IAqBjB,iBAAiB;IAWjB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS;IAIjF,uBAAuB,CAAC,QAAQ,EAAE,MAAM;IAkBxC,0BAA0B;IAI1B,aAAa;IAIb,IAAI;IAOJ,cAAc;CAMtB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseMeasure = void 0;
|
|
4
4
|
const UserError_1 = require("../compiler/UserError");
|
|
5
|
+
const CubeSymbols_1 = require("../compiler/CubeSymbols");
|
|
5
6
|
class BaseMeasure {
|
|
6
7
|
query;
|
|
7
8
|
measure;
|
|
@@ -10,6 +11,7 @@ class BaseMeasure {
|
|
|
10
11
|
expressionName;
|
|
11
12
|
isMemberExpression = false;
|
|
12
13
|
patchedMeasure = null;
|
|
14
|
+
joinHint = [];
|
|
13
15
|
preparePatchedMeasure(sourceMeasure, newMeasureType, addFilters) {
|
|
14
16
|
const source = this.query.cubeEvaluator.measureByPath(sourceMeasure);
|
|
15
17
|
let resultMeasureType = source.type;
|
|
@@ -99,6 +101,13 @@ class BaseMeasure {
|
|
|
99
101
|
this.patchedMeasure = this.preparePatchedMeasure(measure.expression.sourceMeasure, measure.expression.replaceAggregationType, measure.expression.addFilters);
|
|
100
102
|
}
|
|
101
103
|
}
|
|
104
|
+
else {
|
|
105
|
+
// TODO move this `as` to static types
|
|
106
|
+
const measurePath = measure;
|
|
107
|
+
const { path, joinHint } = CubeSymbols_1.CubeSymbols.joinHintFromPath(measurePath);
|
|
108
|
+
this.measure = path;
|
|
109
|
+
this.joinHint = joinHint;
|
|
110
|
+
}
|
|
102
111
|
}
|
|
103
112
|
getMembers() {
|
|
104
113
|
return [this];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseMeasure.js","sourceRoot":"","sources":["../../../src/adapter/BaseMeasure.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;
|
|
1
|
+
{"version":3,"file":"BaseMeasure.js","sourceRoot":"","sources":["../../../src/adapter/BaseMeasure.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,20 +37,14 @@
|
|
|
37
37
|
* and {@code CompilerApi} configuration.
|
|
38
38
|
*/
|
|
39
39
|
export class BaseQuery {
|
|
40
|
-
static isCalculatedMeasureType(type: any): boolean;
|
|
41
|
-
/**
|
|
42
|
-
TODO: support type qualifiers on min and max
|
|
43
|
-
*/
|
|
44
|
-
static toMemberDataType(type: any): any;
|
|
45
40
|
static emptyParametrizedContextSymbols(cubeEvaluator: any, allocateParam: any): {
|
|
46
41
|
filterParams: {};
|
|
47
42
|
filterGroup: () => string;
|
|
48
43
|
sqlUtils: {
|
|
49
44
|
convertTz: (field: any) => any;
|
|
50
45
|
};
|
|
51
|
-
securityContext:
|
|
46
|
+
securityContext: object;
|
|
52
47
|
};
|
|
53
|
-
static contextSymbolsProxyFrom(symbols: any, allocateParam: any): any;
|
|
54
48
|
static extractFilterMembers(filter: any): any;
|
|
55
49
|
static findAndSubTreeForFilterGroup(filter: any, groupMembers: any, newGroupFilter: any, aliases: any): any;
|
|
56
50
|
static renderFilterParams(filter: any, filterParamArgs: any, allocateParam: any, newGroupFilter: any, aliases: any): any;
|
|
@@ -123,10 +117,14 @@ export class BaseQuery {
|
|
|
123
117
|
inputProps: any;
|
|
124
118
|
cache: any;
|
|
125
119
|
}): any;
|
|
126
|
-
get allCubeNames(): any;
|
|
127
|
-
collectedCubeNames: any;
|
|
128
|
-
|
|
129
|
-
|
|
120
|
+
get allCubeNames(): any[];
|
|
121
|
+
collectedCubeNames: any[] | undefined;
|
|
122
|
+
/**
|
|
123
|
+
*
|
|
124
|
+
* @returns {Array<Array<string>>}
|
|
125
|
+
*/
|
|
126
|
+
get allJoinHints(): string[][];
|
|
127
|
+
collectedJoinHints: string[][] | undefined;
|
|
130
128
|
get dataSource(): any;
|
|
131
129
|
cubeDataSource(cube: any): any;
|
|
132
130
|
get aliasNameToMember(): {
|
|
@@ -134,8 +132,8 @@ export class BaseQuery {
|
|
|
134
132
|
};
|
|
135
133
|
initUngrouped(): void;
|
|
136
134
|
ungrouped: any;
|
|
137
|
-
get subQueryDimensions(): any;
|
|
138
|
-
_subQueryDimensions: any;
|
|
135
|
+
get subQueryDimensions(): any[];
|
|
136
|
+
_subQueryDimensions: any[] | undefined;
|
|
139
137
|
get asSyntaxTable(): string;
|
|
140
138
|
get asSyntaxJoin(): string;
|
|
141
139
|
newMeasure(measurePath: any): BaseMeasure;
|
|
@@ -336,7 +334,12 @@ export class BaseQuery {
|
|
|
336
334
|
* @returns {string}
|
|
337
335
|
*/
|
|
338
336
|
aggregateSubQuery(keyCubeName: string, measures: Array<BaseMeasure>, filters: Array<BaseFilter>): string;
|
|
339
|
-
|
|
337
|
+
/**
|
|
338
|
+
* @param {Array<BaseMeasure>} measures
|
|
339
|
+
* @param {string} keyCubeName
|
|
340
|
+
* @returns {boolean}
|
|
341
|
+
*/
|
|
342
|
+
checkShouldBuildJoinForMeasureSelect(measures: Array<BaseMeasure>, keyCubeName: string): boolean;
|
|
340
343
|
aggregateSubQueryMeasureJoin(keyCubeName: any, measures: any, measuresJoin: any, primaryKeyDimensions: any, measureSubQueryDimensions: any): any;
|
|
341
344
|
groupedUngroupedSelect(select: any, ungrouped: any, granularityOverride: any): any;
|
|
342
345
|
ungroupedMeasureSelect(select: any): any;
|
|
@@ -345,10 +348,21 @@ export class BaseQuery {
|
|
|
345
348
|
keyDimensions(primaryKeyDimensions: any): (BaseDimension | BaseTimeDimension)[];
|
|
346
349
|
cubeSql(cube: any): any;
|
|
347
350
|
traverseSymbol(s: any): any;
|
|
348
|
-
collectCubeNames(excludeTimeDimensions: any): any;
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
351
|
+
collectCubeNames(excludeTimeDimensions: any): any[];
|
|
352
|
+
/**
|
|
353
|
+
*
|
|
354
|
+
* @param {boolean} [excludeTimeDimensions=false]
|
|
355
|
+
* @returns {Array<Array<string>>}
|
|
356
|
+
*/
|
|
357
|
+
collectJoinHints(excludeTimeDimensions?: boolean | undefined): Array<Array<string>>;
|
|
358
|
+
collectJoinHintsFromMembers(members: any): any[];
|
|
359
|
+
collectFromMembers(excludeTimeDimensions: any, fn: any, methodName: any): any[];
|
|
360
|
+
/**
|
|
361
|
+
*
|
|
362
|
+
* @param {boolean} excludeTimeDimensions
|
|
363
|
+
* @returns {Array<BaseMeasure | BaseDimension | BaseSegment>}
|
|
364
|
+
*/
|
|
365
|
+
allMembersConcat(excludeTimeDimensions: boolean): Array<BaseMeasure | BaseDimension | BaseSegment>;
|
|
352
366
|
collectFrom(membersToCollectFrom: any, fn: any, methodName: any, cache: any): any[];
|
|
353
367
|
collectSubQueryDimensionsFor(fn: any): never[];
|
|
354
368
|
rewriteInlineWhere(fn: any, inlineWhereConditions: any): any;
|
|
@@ -509,7 +523,7 @@ export class BaseQuery {
|
|
|
509
523
|
refreshKeysByCubes(cubes: any, transformFn: any): any;
|
|
510
524
|
aggSelectForDimension(cube: any, dimension: any, aggFunction: any): string | null;
|
|
511
525
|
cubeCardinalityQueries(): {
|
|
512
|
-
[index: string]:
|
|
526
|
+
[index: string]: [string, unknown[]];
|
|
513
527
|
};
|
|
514
528
|
renewalThreshold(refreshKeyAllSetManually: any): number;
|
|
515
529
|
nowTimestampSql(): string;
|
|
@@ -580,20 +594,30 @@ export class BaseQuery {
|
|
|
580
594
|
preAggregationStartEndQueries(cube: any, preAggregation: any): any;
|
|
581
595
|
parametrizedContextSymbols(): any;
|
|
582
596
|
parametrizedContextSymbolsValue: any;
|
|
583
|
-
securityContextForRust():
|
|
597
|
+
securityContextForRust(): object;
|
|
584
598
|
sqlUtilsForRust(): {
|
|
585
599
|
convertTz: (field: string) => string;
|
|
586
600
|
};
|
|
587
|
-
contextSymbolsProxy(symbols: any):
|
|
601
|
+
contextSymbolsProxy(symbols: any): object;
|
|
588
602
|
filtersProxy(): {};
|
|
589
603
|
filtersProxyForRust(usedFilters: any): {};
|
|
590
604
|
filterGroupFunctionForRust(usedFilters: any): (...filterParamArgs: any[]) => string;
|
|
591
605
|
filterGroupFunction(): (...filterParamArgs: any[]) => string;
|
|
592
606
|
filterGroupFunctionImpl(allFilters: any): (...filterParamArgs: any[]) => string;
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
607
|
+
/**
|
|
608
|
+
*
|
|
609
|
+
* @param {boolean} excludeSegments
|
|
610
|
+
* @returns {Array<BaseMeasure | BaseDimension | BaseSegment>}
|
|
611
|
+
*/
|
|
612
|
+
flattenAllMembers(excludeSegments?: boolean): Array<BaseMeasure | BaseDimension | BaseSegment>;
|
|
613
|
+
allBackAliasMembersExceptSegments(): Record<string, string>;
|
|
614
|
+
allBackAliasMembers(): Record<string, string>;
|
|
615
|
+
/**
|
|
616
|
+
*
|
|
617
|
+
* @param {Array<BaseMeasure | BaseDimension | BaseSegment>} members
|
|
618
|
+
* @returns {Record<string, string>}
|
|
619
|
+
*/
|
|
620
|
+
backAliasMembers(members: Array<BaseMeasure | BaseDimension | BaseSegment>): Record<string, string>;
|
|
597
621
|
}
|
|
598
622
|
/**
|
|
599
623
|
* Set of the schema compilers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseQuery.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseQuery.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseQuery.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseQuery.js"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ const moment_timezone_1 = __importDefault(require("moment-timezone"));
|
|
|
16
16
|
const ramda_1 = __importDefault(require("ramda"));
|
|
17
17
|
const native_1 = require("@cubejs-backend/native");
|
|
18
18
|
const shared_1 = require("@cubejs-backend/shared");
|
|
19
|
+
const CubeSymbols_1 = require("../compiler/CubeSymbols");
|
|
19
20
|
const UserError_1 = require("../compiler/UserError");
|
|
20
21
|
const SqlParser_1 = require("../parser/SqlParser");
|
|
21
22
|
const BaseDimension_1 = require("./BaseDimension");
|
|
@@ -280,19 +281,19 @@ class BaseQuery {
|
|
|
280
281
|
this.initUngrouped();
|
|
281
282
|
}
|
|
282
283
|
prebuildJoin() {
|
|
283
|
-
|
|
284
|
-
//
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
284
|
+
try {
|
|
285
|
+
// TODO allJoinHints should contain join hints form pre-agg
|
|
286
|
+
this.join = this.joinGraph.buildJoin(this.allJoinHints);
|
|
287
|
+
}
|
|
288
|
+
catch (e) {
|
|
289
|
+
if (this.useNativeSqlPlanner) {
|
|
290
|
+
// Tesseract doesn't require join to be prebuilt and there's a case where single join can't be built for multi-fact query
|
|
291
|
+
// But we need this join for a fallback when using pre-aggregations. So we’ll try to obtain the join but ignore any errors (which may occur if the query is a multi-fact one).
|
|
288
292
|
}
|
|
289
|
-
|
|
290
|
-
|
|
293
|
+
else {
|
|
294
|
+
throw e;
|
|
291
295
|
}
|
|
292
296
|
}
|
|
293
|
-
else {
|
|
294
|
-
this.join = this.joinGraph.buildJoin(this.allJoinHints);
|
|
295
|
-
}
|
|
296
297
|
}
|
|
297
298
|
cacheValue(key, fn, { contextPropNames, inputProps, cache } = {}) {
|
|
298
299
|
const currentContext = this.safeEvaluateSymbolContext();
|
|
@@ -333,6 +334,10 @@ class BaseQuery {
|
|
|
333
334
|
}
|
|
334
335
|
return this.collectedCubeNames;
|
|
335
336
|
}
|
|
337
|
+
/**
|
|
338
|
+
*
|
|
339
|
+
* @returns {Array<Array<string>>}
|
|
340
|
+
*/
|
|
336
341
|
get allJoinHints() {
|
|
337
342
|
if (!this.collectedJoinHints) {
|
|
338
343
|
this.collectedJoinHints = this.collectJoinHints();
|
|
@@ -900,7 +905,16 @@ class BaseQuery {
|
|
|
900
905
|
}
|
|
901
906
|
collectAllMultiStageMembers(allMemberChildren) {
|
|
902
907
|
const allMembers = ramda_1.default.uniq(ramda_1.default.flatten(Object.keys(allMemberChildren).map(k => [k].concat(allMemberChildren[k]))));
|
|
903
|
-
return ramda_1.default.fromPairs(allMembers.map(m =>
|
|
908
|
+
return ramda_1.default.fromPairs(allMembers.map(m => {
|
|
909
|
+
// When `m` is coming from `collectAllMemberChildren`, it can contain `granularities.customGranularityName` in path
|
|
910
|
+
// And it would mess up with join hints detection
|
|
911
|
+
const trimmedPath = this
|
|
912
|
+
.cubeEvaluator
|
|
913
|
+
.parsePathAnyType(m)
|
|
914
|
+
.slice(0, 2)
|
|
915
|
+
.join('.');
|
|
916
|
+
return [m, this.memberInstanceByPath(trimmedPath).isMultiStage()];
|
|
917
|
+
}));
|
|
904
918
|
}
|
|
905
919
|
memberInstanceByPath(m) {
|
|
906
920
|
let member;
|
|
@@ -1079,7 +1093,7 @@ class BaseQuery {
|
|
|
1079
1093
|
// TODO condition should something else instead of rank
|
|
1080
1094
|
multiStageQuery: !!withQuery.measures.find(d => {
|
|
1081
1095
|
const { type } = this.newMeasure(d).definition();
|
|
1082
|
-
return type === 'rank' ||
|
|
1096
|
+
return type === 'rank' || CubeSymbols_1.CubeSymbols.isCalculatedMeasureType(type);
|
|
1083
1097
|
}),
|
|
1084
1098
|
disableExternalPreAggregations: true,
|
|
1085
1099
|
};
|
|
@@ -1505,7 +1519,7 @@ class BaseQuery {
|
|
|
1505
1519
|
let keyCubeInlineLeftJoinConditions;
|
|
1506
1520
|
const measureSubQueryDimensions = this.collectFrom(measures, this.collectSubQueryDimensionsFor.bind(this), 'collectSubQueryDimensionsFor');
|
|
1507
1521
|
if (shouldBuildJoinForMeasureSelect) {
|
|
1508
|
-
const joinHints = this.
|
|
1522
|
+
const joinHints = this.collectJoinHintsFromMembers(measures);
|
|
1509
1523
|
const measuresJoin = this.joinGraph.buildJoin(joinHints);
|
|
1510
1524
|
if (measuresJoin.multiplicationFactor[keyCubeName]) {
|
|
1511
1525
|
throw new UserError_1.UserError(`'${measures.map(m => m.measure).join(', ')}' reference cubes that lead to row multiplication.`);
|
|
@@ -1545,6 +1559,11 @@ class BaseQuery {
|
|
|
1545
1559
|
return `SELECT ${columnsForSelect} FROM ${joinSql}` +
|
|
1546
1560
|
(!this.safeEvaluateSymbolContext().ungrouped && this.aggregateSubQueryGroupByClause() || '');
|
|
1547
1561
|
}
|
|
1562
|
+
/**
|
|
1563
|
+
* @param {Array<BaseMeasure>} measures
|
|
1564
|
+
* @param {string} keyCubeName
|
|
1565
|
+
* @returns {boolean}
|
|
1566
|
+
*/
|
|
1548
1567
|
checkShouldBuildJoinForMeasureSelect(measures, keyCubeName) {
|
|
1549
1568
|
// When member expression references view, it would have to collect join hints from view
|
|
1550
1569
|
// Consider join A->B, as many-to-one, so B is multiplied and A is not, and member expression like SUM(AB_view.dimB)
|
|
@@ -1559,7 +1578,11 @@ class BaseQuery {
|
|
|
1559
1578
|
.map(member => this.memberInstanceByPath(member))
|
|
1560
1579
|
.filter(member => member.definition().ownedByCube);
|
|
1561
1580
|
const cubes = this.collectFrom(nonViewMembers, this.collectCubeNamesFor.bind(this), 'collectCubeNamesFor');
|
|
1562
|
-
|
|
1581
|
+
// Not using `collectJoinHintsFromMembers([measure])` because it would collect too many join hints from view
|
|
1582
|
+
const joinHints = [
|
|
1583
|
+
measure.joinHint,
|
|
1584
|
+
...this.collectJoinHintsFromMembers(nonViewMembers),
|
|
1585
|
+
];
|
|
1563
1586
|
if (ramda_1.default.any(cubeName => keyCubeName !== cubeName, cubes)) {
|
|
1564
1587
|
const measuresJoin = this.joinGraph.buildJoin(joinHints);
|
|
1565
1588
|
if (measuresJoin.multiplicationFactor[keyCubeName]) {
|
|
@@ -1639,8 +1662,27 @@ class BaseQuery {
|
|
|
1639
1662
|
collectCubeNames(excludeTimeDimensions) {
|
|
1640
1663
|
return this.collectFromMembers(excludeTimeDimensions, this.collectCubeNamesFor.bind(this), 'collectCubeNamesFor');
|
|
1641
1664
|
}
|
|
1665
|
+
/**
|
|
1666
|
+
*
|
|
1667
|
+
* @param {boolean} [excludeTimeDimensions=false]
|
|
1668
|
+
* @returns {Array<Array<string>>}
|
|
1669
|
+
*/
|
|
1642
1670
|
collectJoinHints(excludeTimeDimensions = false) {
|
|
1643
|
-
|
|
1671
|
+
const membersToCollectFrom = this.allMembersConcat(excludeTimeDimensions)
|
|
1672
|
+
.concat(this.join ? this.join.joins.map(j => ({
|
|
1673
|
+
getMembers: () => [{
|
|
1674
|
+
path: () => null,
|
|
1675
|
+
cube: () => this.cubeEvaluator.cubeFromPath(j.originalFrom),
|
|
1676
|
+
definition: () => j.join,
|
|
1677
|
+
}]
|
|
1678
|
+
})) : []);
|
|
1679
|
+
return this.collectJoinHintsFromMembers(membersToCollectFrom);
|
|
1680
|
+
}
|
|
1681
|
+
collectJoinHintsFromMembers(members) {
|
|
1682
|
+
return [
|
|
1683
|
+
...members.map(m => m.joinHint).filter(h => h?.length > 0),
|
|
1684
|
+
...this.collectFrom(members, this.collectJoinHintsFor.bind(this), 'collectJoinHintsFromMembers'),
|
|
1685
|
+
];
|
|
1644
1686
|
}
|
|
1645
1687
|
collectFromMembers(excludeTimeDimensions, fn, methodName) {
|
|
1646
1688
|
const membersToCollectFrom = this.allMembersConcat(excludeTimeDimensions)
|
|
@@ -1653,6 +1695,11 @@ class BaseQuery {
|
|
|
1653
1695
|
})) : []);
|
|
1654
1696
|
return this.collectFrom(membersToCollectFrom, fn, methodName);
|
|
1655
1697
|
}
|
|
1698
|
+
/**
|
|
1699
|
+
*
|
|
1700
|
+
* @param {boolean} excludeTimeDimensions
|
|
1701
|
+
* @returns {Array<BaseMeasure | BaseDimension | BaseSegment>}
|
|
1702
|
+
*/
|
|
1656
1703
|
allMembersConcat(excludeTimeDimensions) {
|
|
1657
1704
|
return this.measures
|
|
1658
1705
|
.concat(this.dimensions)
|
|
@@ -2197,7 +2244,7 @@ class BaseQuery {
|
|
|
2197
2244
|
else if (symbol.type === 'countDistinct' || symbol.type === 'count' && !symbol.sql && multiplied) {
|
|
2198
2245
|
funDef = `count(distinct ${evaluateSql})`;
|
|
2199
2246
|
}
|
|
2200
|
-
else if (
|
|
2247
|
+
else if (CubeSymbols_1.CubeSymbols.isCalculatedMeasureType(symbol.type)) {
|
|
2201
2248
|
// TODO calculated measure type will be ungrouped
|
|
2202
2249
|
// if (this.multiStageDimensions.length !== this.dimensions.length) {
|
|
2203
2250
|
// throw new UserError(`Calculated measure '${measurePath}' uses group_by or reduce_by context modifiers while it isn't allowed`);
|
|
@@ -2226,20 +2273,11 @@ class BaseQuery {
|
|
|
2226
2273
|
return this.primaryKeyCount(cubeName, true);
|
|
2227
2274
|
}
|
|
2228
2275
|
}
|
|
2229
|
-
if (
|
|
2276
|
+
if (CubeSymbols_1.CubeSymbols.isCalculatedMeasureType(symbol.type)) {
|
|
2230
2277
|
return evaluateSql;
|
|
2231
2278
|
}
|
|
2232
2279
|
return `${symbol.type}(${evaluateSql})`;
|
|
2233
2280
|
}
|
|
2234
|
-
static isCalculatedMeasureType(type) {
|
|
2235
|
-
return type === 'number' || type === 'string' || type === 'time' || type === 'boolean';
|
|
2236
|
-
}
|
|
2237
|
-
/**
|
|
2238
|
-
TODO: support type qualifiers on min and max
|
|
2239
|
-
*/
|
|
2240
|
-
static toMemberDataType(type) {
|
|
2241
|
-
return this.isCalculatedMeasureType(type) ? type : 'number';
|
|
2242
|
-
}
|
|
2243
2281
|
aggregateOnGroupedColumn(symbol, evaluateSql, topLevelMerge, measurePath) {
|
|
2244
2282
|
const cumulativeMeasureFilters = (this.safeEvaluateSymbolContext().cumulativeMeasureFilters || {})[measurePath];
|
|
2245
2283
|
if (cumulativeMeasureFilters) {
|
|
@@ -3167,7 +3205,7 @@ class BaseQuery {
|
|
|
3167
3205
|
sqlUtils: {
|
|
3168
3206
|
convertTz: (field) => field,
|
|
3169
3207
|
},
|
|
3170
|
-
securityContext:
|
|
3208
|
+
securityContext: CubeSymbols_1.CubeSymbols.contextSymbolsProxyFrom({}, allocateParam),
|
|
3171
3209
|
};
|
|
3172
3210
|
}
|
|
3173
3211
|
securityContextForRust() {
|
|
@@ -3179,42 +3217,7 @@ class BaseQuery {
|
|
|
3179
3217
|
};
|
|
3180
3218
|
}
|
|
3181
3219
|
contextSymbolsProxy(symbols) {
|
|
3182
|
-
return
|
|
3183
|
-
}
|
|
3184
|
-
static contextSymbolsProxyFrom(symbols, allocateParam) {
|
|
3185
|
-
return new Proxy(symbols, {
|
|
3186
|
-
get: (target, name) => {
|
|
3187
|
-
const propValue = target[name];
|
|
3188
|
-
const methods = (paramValue) => ({
|
|
3189
|
-
filter: (column) => {
|
|
3190
|
-
if (paramValue) {
|
|
3191
|
-
const value = Array.isArray(paramValue) ?
|
|
3192
|
-
paramValue.map(allocateParam) :
|
|
3193
|
-
allocateParam(paramValue);
|
|
3194
|
-
if (typeof column === 'function') {
|
|
3195
|
-
return column(value);
|
|
3196
|
-
}
|
|
3197
|
-
else {
|
|
3198
|
-
return `${column} = ${value}`;
|
|
3199
|
-
}
|
|
3200
|
-
}
|
|
3201
|
-
else {
|
|
3202
|
-
return '1 = 1';
|
|
3203
|
-
}
|
|
3204
|
-
},
|
|
3205
|
-
requiredFilter: (column) => {
|
|
3206
|
-
if (!paramValue) {
|
|
3207
|
-
throw new UserError_1.UserError(`Filter for ${column} is required`);
|
|
3208
|
-
}
|
|
3209
|
-
return methods(paramValue).filter(column);
|
|
3210
|
-
},
|
|
3211
|
-
unsafeValue: () => paramValue
|
|
3212
|
-
});
|
|
3213
|
-
return methods(target)[name] ||
|
|
3214
|
-
typeof propValue === 'object' && propValue !== null && BaseQuery.contextSymbolsProxyFrom(propValue, allocateParam) ||
|
|
3215
|
-
methods(propValue);
|
|
3216
|
-
}
|
|
3217
|
-
});
|
|
3220
|
+
return CubeSymbols_1.CubeSymbols.contextSymbolsProxyFrom(symbols, this.paramAllocator.allocateParam.bind(this.paramAllocator));
|
|
3218
3221
|
}
|
|
3219
3222
|
static extractFilterMembers(filter) {
|
|
3220
3223
|
if (filter.operator === 'and' || filter.operator === 'or') {
|
|
@@ -3378,6 +3381,11 @@ class BaseQuery {
|
|
|
3378
3381
|
}
|
|
3379
3382
|
});
|
|
3380
3383
|
}
|
|
3384
|
+
/**
|
|
3385
|
+
*
|
|
3386
|
+
* @param {boolean} excludeSegments
|
|
3387
|
+
* @returns {Array<BaseMeasure | BaseDimension | BaseSegment>}
|
|
3388
|
+
*/
|
|
3381
3389
|
flattenAllMembers(excludeSegments = false) {
|
|
3382
3390
|
return ramda_1.default.flatten(this.measures
|
|
3383
3391
|
.concat(this.dimensions)
|
|
@@ -3393,9 +3401,14 @@ class BaseQuery {
|
|
|
3393
3401
|
allBackAliasMembers() {
|
|
3394
3402
|
return this.backAliasMembers(this.flattenAllMembers());
|
|
3395
3403
|
}
|
|
3404
|
+
/**
|
|
3405
|
+
*
|
|
3406
|
+
* @param {Array<BaseMeasure | BaseDimension | BaseSegment>} members
|
|
3407
|
+
* @returns {Record<string, string>}
|
|
3408
|
+
*/
|
|
3396
3409
|
backAliasMembers(members) {
|
|
3397
3410
|
const query = this;
|
|
3398
|
-
return members.
|
|
3411
|
+
return Object.fromEntries(members.flatMap(member => {
|
|
3399
3412
|
const collectedMembers = query.evaluateSymbolSqlWithContext(() => query.collectFrom([member], query.collectMemberNamesFor.bind(query), 'collectMemberNamesFor'), { aliasGathering: true });
|
|
3400
3413
|
const memberPath = member.expressionPath();
|
|
3401
3414
|
let nonAliasSeen = false;
|
|
@@ -3406,8 +3419,8 @@ class BaseQuery {
|
|
|
3406
3419
|
}
|
|
3407
3420
|
return !nonAliasSeen;
|
|
3408
3421
|
})
|
|
3409
|
-
.map(d =>
|
|
3410
|
-
})
|
|
3422
|
+
.map(d => [query.cubeEvaluator.byPathAnyType(d).aliasMember, memberPath]);
|
|
3423
|
+
}));
|
|
3411
3424
|
}
|
|
3412
3425
|
}
|
|
3413
3426
|
exports.BaseQuery = BaseQuery;
|