@cubejs-backend/schema-compiler 0.35.80 → 0.35.81
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 +2 -0
- package/dist/src/adapter/BaseQuery.d.ts.map +1 -1
- package/dist/src/adapter/BaseQuery.js +47 -4
- package/dist/src/adapter/BaseQuery.js.map +1 -1
- package/dist/src/adapter/PreAggregations.d.ts +2 -1
- package/dist/src/adapter/PreAggregations.d.ts.map +1 -1
- package/dist/src/adapter/PreAggregations.js +6 -4
- package/dist/src/adapter/PreAggregations.js.map +1 -1
- package/dist/src/compiler/CubeEvaluator.d.ts.map +1 -1
- package/dist/src/compiler/CubeEvaluator.js +5 -0
- package/dist/src/compiler/CubeEvaluator.js.map +1 -1
- package/dist/src/compiler/CubeValidator.d.ts.map +1 -1
- package/dist/src/compiler/CubeValidator.js +11 -2
- package/dist/src/compiler/CubeValidator.js.map +1 -1
- package/dist/src/compiler/transpilers/CubePropContextTranspiler.d.ts.map +1 -1
- package/dist/src/compiler/transpilers/CubePropContextTranspiler.js +1 -0
- package/dist/src/compiler/transpilers/CubePropContextTranspiler.js.map +1 -1
- package/package.json +4 -4
|
@@ -430,6 +430,8 @@ export class BaseQuery {
|
|
|
430
430
|
evaluateIndexColumns(cube: any, index: any): any;
|
|
431
431
|
createIndexSql(indexName: any, tableName: any, escapedColumns: any): string;
|
|
432
432
|
preAggregationSql(cube: any, preAggregation: any): any;
|
|
433
|
+
preAggregationOutputColumnTypes(cube: any, preAggregation: any): any;
|
|
434
|
+
preAggregationUniqueKeyColumns(cube: any, preAggregation: any): any;
|
|
433
435
|
preAggregationReadOnly(_cube: any, _preAggregation: any): boolean;
|
|
434
436
|
preAggregationAllowUngroupingWithPrimaryKey(_cube: any, _preAggregation: any): boolean;
|
|
435
437
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseQuery.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseQuery.js"],"names":[],"mappings":"AAmDA;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;GAYG;AACH;IA+6EE,mDAEC;IAED;;MAEE;IACF,wCAEC;
|
|
1
|
+
{"version":3,"file":"BaseQuery.d.ts","sourceRoot":"","sources":["../../../src/adapter/BaseQuery.js"],"names":[],"mappings":"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"}
|
|
@@ -350,7 +350,7 @@ class BaseQuery {
|
|
|
350
350
|
return 'AS';
|
|
351
351
|
}
|
|
352
352
|
defaultOrder() {
|
|
353
|
-
if (this.options.preAggregationQuery) {
|
|
353
|
+
if (this.options.preAggregationQuery || this.options.totalQuery) {
|
|
354
354
|
return [];
|
|
355
355
|
}
|
|
356
356
|
const res = [];
|
|
@@ -2080,9 +2080,11 @@ class BaseQuery {
|
|
|
2080
2080
|
return new QueryClass(this.compilers, this.subQueryOptions(options));
|
|
2081
2081
|
}
|
|
2082
2082
|
newSubQueryForCube(cube, options) {
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2083
|
+
if (this.options.queryFactory) {
|
|
2084
|
+
options.paramAllocator = null;
|
|
2085
|
+
return this.options.queryFactory.createQuery(cube, this.compilers, this.subQueryOptions(options));
|
|
2086
|
+
}
|
|
2087
|
+
return this.newSubQuery(options);
|
|
2086
2088
|
}
|
|
2087
2089
|
subQueryOptions(options) {
|
|
2088
2090
|
return {
|
|
@@ -2241,6 +2243,47 @@ class BaseQuery {
|
|
|
2241
2243
|
throw new UserError_1.UserError(`Unknown pre-aggregation type '${preAggregation.type}' in '${cube}'`);
|
|
2242
2244
|
}, { inputProps: { collectOriginalSqlPreAggregations: [] }, cache: this.queryCache });
|
|
2243
2245
|
}
|
|
2246
|
+
preAggregationOutputColumnTypes(cube, preAggregation) {
|
|
2247
|
+
return this.cacheValue(['preAggregationOutputColumnTypes', cube, JSON.stringify(preAggregation)], () => {
|
|
2248
|
+
if (!preAggregation.outputColumnTypes) {
|
|
2249
|
+
return null;
|
|
2250
|
+
}
|
|
2251
|
+
if (preAggregation.type === 'rollup') {
|
|
2252
|
+
const query = this.preAggregations.rollupPreAggregationQuery(cube, preAggregation);
|
|
2253
|
+
const evaluatedMapOutputColumnTypes = preAggregation.outputColumnTypes.reduce((acc, outputColumnType) => {
|
|
2254
|
+
acc.set(outputColumnType.name, outputColumnType);
|
|
2255
|
+
return acc;
|
|
2256
|
+
}, new Map());
|
|
2257
|
+
const findSchemaType = member => {
|
|
2258
|
+
const outputSchemaType = evaluatedMapOutputColumnTypes.get(member);
|
|
2259
|
+
if (!outputSchemaType) {
|
|
2260
|
+
throw new UserError_1.UserError(`Output schema type for ${member} not found in pre-aggregation ${preAggregation}`);
|
|
2261
|
+
}
|
|
2262
|
+
return {
|
|
2263
|
+
name: this.aliasName(member),
|
|
2264
|
+
type: outputSchemaType.type,
|
|
2265
|
+
};
|
|
2266
|
+
};
|
|
2267
|
+
// The order of the output columns is important, it should match the order in the select statement
|
|
2268
|
+
const outputColumnTypes = [
|
|
2269
|
+
...(query.dimensions || []).map(d => findSchemaType(d.dimension)),
|
|
2270
|
+
...(query.timeDimensions || []).map(t => ({
|
|
2271
|
+
name: `${this.aliasName(t.dimension)}_${t.granularity}`,
|
|
2272
|
+
type: 'TIMESTAMP'
|
|
2273
|
+
})),
|
|
2274
|
+
...(query.measures || []).map(m => findSchemaType(m.measure)),
|
|
2275
|
+
];
|
|
2276
|
+
return outputColumnTypes;
|
|
2277
|
+
}
|
|
2278
|
+
throw new UserError_1.UserError('Output schema is only supported for rollup pre-aggregations');
|
|
2279
|
+
}, { inputProps: {}, cache: this.queryCache });
|
|
2280
|
+
}
|
|
2281
|
+
preAggregationUniqueKeyColumns(cube, preAggregation) {
|
|
2282
|
+
if (preAggregation.uniqueKeyColumns) {
|
|
2283
|
+
return preAggregation.uniqueKeyColumns.map(key => this.aliasName(`${cube}.${key}`));
|
|
2284
|
+
}
|
|
2285
|
+
return this.dimensionColumns();
|
|
2286
|
+
}
|
|
2244
2287
|
preAggregationReadOnly(_cube, _preAggregation) {
|
|
2245
2288
|
return false;
|
|
2246
2289
|
}
|