@cubejs-backend/schema-compiler 1.7.48 → 1.7.50
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/BaseQuery.d.ts +7 -1
- package/dist/src/adapter/BaseQuery.d.ts.map +1 -1
- package/dist/src/adapter/BaseQuery.js +30 -6
- package/dist/src/adapter/BaseQuery.js.map +1 -1
- package/dist/src/compiler/CubeEvaluator.d.ts +2 -0
- package/dist/src/compiler/CubeEvaluator.d.ts.map +1 -1
- package/dist/src/compiler/CubeEvaluator.js.map +1 -1
- package/dist/src/compiler/CubeSymbols.d.ts.map +1 -1
- package/dist/src/compiler/CubeSymbols.js +4 -0
- package/dist/src/compiler/CubeSymbols.js.map +1 -1
- package/dist/src/compiler/DataSchemaCompiler.d.ts.map +1 -1
- package/dist/src/compiler/DataSchemaCompiler.js +103 -0
- package/dist/src/compiler/DataSchemaCompiler.js.map +1 -1
- package/dist/src/compiler/PrepareCompiler.d.ts.map +1 -1
- package/dist/src/compiler/PrepareCompiler.js +1 -0
- package/dist/src/compiler/PrepareCompiler.js.map +1 -1
- package/dist/src/compiler/transpilers/MemoKeyTranspiler.d.ts +11 -0
- package/dist/src/compiler/transpilers/MemoKeyTranspiler.d.ts.map +1 -0
- package/dist/src/compiler/transpilers/MemoKeyTranspiler.js +72 -0
- package/dist/src/compiler/transpilers/MemoKeyTranspiler.js.map +1 -0
- package/dist/src/compiler/transpilers/index.d.ts +1 -0
- package/dist/src/compiler/transpilers/index.d.ts.map +1 -1
- package/dist/src/compiler/transpilers/index.js +1 -0
- package/dist/src/compiler/transpilers/index.js.map +1 -1
- package/dist/src/compiler/transpilers/transpiler_worker.js +2 -0
- package/dist/src/compiler/transpilers/transpiler_worker.js.map +1 -1
- package/package.json +7 -7
|
@@ -341,7 +341,13 @@ export class BaseQuery {
|
|
|
341
341
|
[index: string]: any;
|
|
342
342
|
};
|
|
343
343
|
memberInstanceByPath(m: any): BaseMeasure | BaseDimension | BaseSegment;
|
|
344
|
-
|
|
344
|
+
/**
|
|
345
|
+
* `memo` maps a member to the `[queryContext, subQuery]` pairs already walked
|
|
346
|
+
* for it. Each level visits its children twice, so without it a chain of N
|
|
347
|
+
* multi-stage members costs 2^N calls.
|
|
348
|
+
*/
|
|
349
|
+
multiStageWithQueries(member: any, queryContext: any, memberChildren: any, withQueries: any, memo?: Map<any, any>): any;
|
|
350
|
+
multiStageWithQueriesUncached(member: any, queryContext: any, memberChildren: any, withQueries: any, memo: any): any;
|
|
345
351
|
collectUsedWithQueries(usedQueries: any, member: any): void;
|
|
346
352
|
childrenMultiStageContext(memberPath: any, queryContext: any): any;
|
|
347
353
|
selfMultiStageContext(memberPath: any, queryContext: any, wouldNodeApplyFilters: any): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseQuery.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseQuery.js"],"names":[],"mappings":"AA8DA;;;;;;;;;;GAUG;AAEH;;;;GAIG;AAEH;;;;;GAKG;AAEH;;GAEG;AAEH;;;;;;;;;;;;GAYG;AACH;
|
|
1
|
+
{"version":3,"file":"BaseQuery.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseQuery.js"],"names":[],"mappings":"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"}
|
|
@@ -821,6 +821,8 @@ class BaseQuery {
|
|
|
821
821
|
joinHints: this.options.joinHints,
|
|
822
822
|
cubestoreSupportMultistage: this.options.cubestoreSupportMultistage ?? (0, shared_1.getEnv)('cubeStoreRollingWindowJoin'),
|
|
823
823
|
maxMultiStageDepth: this.options.maxMultiStageDepth ?? (0, shared_1.getEnv)('maxMultiStageDepth'),
|
|
824
|
+
maxMultiStageStages: this.options.maxMultiStageStages ?? (0, shared_1.getEnv)('maxMultiStageStages'),
|
|
825
|
+
maxMemberResolutionDepth: this.options.maxMemberResolutionDepth ?? (0, shared_1.getEnv)('maxMemberResolutionDepth'),
|
|
824
826
|
disableExternalPreAggregations: !!this.options.disableExternalPreAggregations,
|
|
825
827
|
convertTzForRawTimeDimension: !!this.options.convertTzForRawTimeDimension,
|
|
826
828
|
maskedMembers: this.options.maskedMembers,
|
|
@@ -879,6 +881,8 @@ class BaseQuery {
|
|
|
879
881
|
joinHints: this.options.joinHints,
|
|
880
882
|
cubestoreSupportMultistage: this.options.cubestoreSupportMultistage ?? (0, shared_1.getEnv)('cubeStoreRollingWindowJoin'),
|
|
881
883
|
maxMultiStageDepth: this.options.maxMultiStageDepth ?? (0, shared_1.getEnv)('maxMultiStageDepth'),
|
|
884
|
+
maxMultiStageStages: this.options.maxMultiStageStages ?? (0, shared_1.getEnv)('maxMultiStageStages'),
|
|
885
|
+
maxMemberResolutionDepth: this.options.maxMemberResolutionDepth ?? (0, shared_1.getEnv)('maxMemberResolutionDepth'),
|
|
882
886
|
disableExternalPreAggregations: !!this.options.disableExternalPreAggregations,
|
|
883
887
|
subqueryJoins: this.options.subqueryJoins,
|
|
884
888
|
};
|
|
@@ -1191,17 +1195,22 @@ class BaseQuery {
|
|
|
1191
1195
|
const measureToHierarchy = this.collectRootMeasureToHierarchy(context);
|
|
1192
1196
|
const allMemberChildren = this.collectAllMemberChildren(context);
|
|
1193
1197
|
const memberToIsMultiStage = this.collectAllMultiStageMembers(allMemberChildren);
|
|
1198
|
+
const hasMultiStageMembersCache = {};
|
|
1194
1199
|
const hasMultiStageMembers = (m) => {
|
|
1195
1200
|
if (memberToIsMultiStage[m]) {
|
|
1196
1201
|
return true;
|
|
1197
1202
|
}
|
|
1198
|
-
|
|
1203
|
+
if (!(m in hasMultiStageMembersCache)) {
|
|
1204
|
+
hasMultiStageMembersCache[m] = allMemberChildren[m]?.some(c => hasMultiStageMembers(c)) || false;
|
|
1205
|
+
}
|
|
1206
|
+
return hasMultiStageMembersCache[m];
|
|
1199
1207
|
};
|
|
1200
1208
|
const measuresToRender = (multiplied, cumulative) => ramda_1.default.pipe(ramda_1.default.values, ramda_1.default.flatten, ramda_1.default.filter(m => m.multiplied === multiplied && this.newMeasure(m.measure).isCumulative() === cumulative && !hasMultiStageMembers(m.measure)), ramda_1.default.map(m => m.measure), ramda_1.default.uniq, ramda_1.default.map(m => this.newMeasure(m)));
|
|
1201
1209
|
const multipliedMeasures = measuresToRender(true, false)(measureToHierarchy);
|
|
1202
1210
|
const regularMeasures = measuresToRender(false, false)(measureToHierarchy);
|
|
1203
1211
|
const cumulativeMeasures = ramda_1.default.pipe(ramda_1.default.map(multiplied => ramda_1.default.xprod([multiplied], measuresToRender(multiplied, true)(measureToHierarchy))), ramda_1.default.unnest)([false, true]);
|
|
1204
1212
|
const withQueries = [];
|
|
1213
|
+
const withQueriesMemo = new Map();
|
|
1205
1214
|
const multiStageMembers = ramda_1.default.uniq(this.allMembersConcat(false)
|
|
1206
1215
|
// TODO boolean logic filter support
|
|
1207
1216
|
.reduce((acc, m) => {
|
|
@@ -1232,7 +1241,7 @@ class BaseQuery {
|
|
|
1232
1241
|
// TODO accessing filters directly from options might miss some processing logic
|
|
1233
1242
|
filters: this.options.filters || [],
|
|
1234
1243
|
segments: this.options.segments || [],
|
|
1235
|
-
}, allMemberChildren, withQueries));
|
|
1244
|
+
}, allMemberChildren, withQueries, withQueriesMemo));
|
|
1236
1245
|
const usedWithQueries = {};
|
|
1237
1246
|
multiStageMembers.forEach(m => this.collectUsedWithQueries(usedWithQueries, m));
|
|
1238
1247
|
return {
|
|
@@ -1279,16 +1288,31 @@ class BaseQuery {
|
|
|
1279
1288
|
}
|
|
1280
1289
|
return member;
|
|
1281
1290
|
}
|
|
1282
|
-
|
|
1291
|
+
/**
|
|
1292
|
+
* `memo` maps a member to the `[queryContext, subQuery]` pairs already walked
|
|
1293
|
+
* for it. Each level visits its children twice, so without it a chain of N
|
|
1294
|
+
* multi-stage members costs 2^N calls.
|
|
1295
|
+
*/
|
|
1296
|
+
multiStageWithQueries(member, queryContext, memberChildren, withQueries, memo = new Map()) {
|
|
1297
|
+
const memberMemo = memo.get(member) || [];
|
|
1298
|
+
memo.set(member, memberMemo);
|
|
1299
|
+
const memoized = memberMemo.find(([context]) => ramda_1.default.equals(context, queryContext));
|
|
1300
|
+
if (memoized) {
|
|
1301
|
+
return memoized[1];
|
|
1302
|
+
}
|
|
1303
|
+
const subQuery = this.multiStageWithQueriesUncached(member, queryContext, memberChildren, withQueries, memo);
|
|
1304
|
+
memberMemo.push([queryContext, subQuery]);
|
|
1305
|
+
return subQuery;
|
|
1306
|
+
}
|
|
1307
|
+
multiStageWithQueriesUncached(member, queryContext, memberChildren, withQueries, memo) {
|
|
1283
1308
|
// TODO calculate based on remove_filter in future
|
|
1284
1309
|
const wouldNodeApplyFilters = !memberChildren[member];
|
|
1285
1310
|
let memberFrom = memberChildren[member]
|
|
1286
|
-
?.map(child => this.multiStageWithQueries(child, this.childrenMultiStageContext(member, queryContext), memberChildren, withQueries));
|
|
1311
|
+
?.map(child => this.multiStageWithQueries(child, this.childrenMultiStageContext(member, queryContext), memberChildren, withQueries, memo));
|
|
1287
1312
|
const unionFromDimensions = memberFrom ? ramda_1.default.uniq(ramda_1.default.flatten(memberFrom.map(f => f.dimensions))) : queryContext.dimensions;
|
|
1288
1313
|
const unionDimensionsContext = { ...queryContext, dimensions: unionFromDimensions.filter(d => !this.newDimension(d).isMultiStage()) };
|
|
1289
|
-
// TODO is calling multiStageWithQueries twice optimal?
|
|
1290
1314
|
memberFrom = memberChildren[member] &&
|
|
1291
|
-
ramda_1.default.uniqBy(f => f.alias, memberChildren[member].map(child => this.multiStageWithQueries(child, this.childrenMultiStageContext(member, unionDimensionsContext), memberChildren, withQueries)));
|
|
1315
|
+
ramda_1.default.uniqBy(f => f.alias, memberChildren[member].map(child => this.multiStageWithQueries(child, this.childrenMultiStageContext(member, unionDimensionsContext), memberChildren, withQueries, memo)));
|
|
1292
1316
|
const selfContext = this.selfMultiStageContext(member, queryContext, wouldNodeApplyFilters);
|
|
1293
1317
|
const subQuery = {
|
|
1294
1318
|
...selfContext,
|