@cubejs-backend/schema-compiler 1.7.31 → 1.7.33
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 +17 -0
- package/dist/src/adapter/BaseQuery.d.ts.map +1 -1
- package/dist/src/adapter/BaseQuery.js +47 -9
- package/dist/src/adapter/BaseQuery.js.map +1 -1
- package/dist/src/adapter/Granularity.d.ts.map +1 -1
- package/dist/src/adapter/Granularity.js +6 -0
- package/dist/src/adapter/Granularity.js.map +1 -1
- package/dist/src/adapter/MssqlQuery.d.ts +7 -0
- package/dist/src/adapter/MssqlQuery.d.ts.map +1 -1
- package/dist/src/adapter/MssqlQuery.js +37 -4
- package/dist/src/adapter/MssqlQuery.js.map +1 -1
- package/dist/src/adapter/OracleQuery.d.ts.map +1 -1
- package/dist/src/adapter/OracleQuery.js +5 -1
- package/dist/src/adapter/OracleQuery.js.map +1 -1
- package/dist/src/adapter/PreAggregations.d.ts.map +1 -1
- package/dist/src/adapter/PreAggregations.js +3 -1
- package/dist/src/adapter/PreAggregations.js.map +1 -1
- package/dist/src/compiler/CubeValidator.d.ts +1 -0
- package/dist/src/compiler/CubeValidator.d.ts.map +1 -1
- package/dist/src/compiler/CubeValidator.js +24 -1
- package/dist/src/compiler/CubeValidator.js.map +1 -1
- package/package.json +7 -7
|
@@ -598,6 +598,23 @@ export class BaseQuery {
|
|
|
598
598
|
*/
|
|
599
599
|
protected limitOffsetClause(limit: any, offset: any): string;
|
|
600
600
|
topLimit(): string;
|
|
601
|
+
/**
|
|
602
|
+
* Row limit as a number, or `null` when it is not set at all. Unlike a truthy check
|
|
603
|
+
* this keeps `0` (a valid limit that returns no rows) distinct from "no limit", and
|
|
604
|
+
* unlike a bare `parseInt` it keeps a non-numeric `rowLimit` out of the rendered SQL.
|
|
605
|
+
* @protected
|
|
606
|
+
* @returns {number|null}
|
|
607
|
+
*/
|
|
608
|
+
protected parsedRowLimit(): number | null;
|
|
609
|
+
/**
|
|
610
|
+
* Leading row-limit clause for statements that do not render `topLimit()` -- the legacy
|
|
611
|
+
* rollup query in `PreAggregations` is the one such statement. Only dialects that cannot
|
|
612
|
+
* express a zero row limit as a trailing clause (T-SQL, where FETCH NEXT must be >= 1)
|
|
613
|
+
* return anything here; every other dialect renders `LIMIT 0` and gets `''`.
|
|
614
|
+
* @public
|
|
615
|
+
* @returns {string}
|
|
616
|
+
*/
|
|
617
|
+
public zeroRowLimitTopClause(): string;
|
|
601
618
|
baseSelect(): string;
|
|
602
619
|
selectAllDimensionsAndMeasures(measures: any): string;
|
|
603
620
|
/**
|
|
@@ -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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"}
|
|
@@ -806,8 +806,10 @@ class BaseQuery {
|
|
|
806
806
|
securityContext: this.contextSymbols.securityContext,
|
|
807
807
|
order,
|
|
808
808
|
filters: this.options.filters,
|
|
809
|
-
limit: this.options.limit ? this.options.limit.toString() : null,
|
|
810
|
-
rowLimit:
|
|
809
|
+
limit: this.options.limit != null ? this.options.limit.toString() : null,
|
|
810
|
+
// `rowLimit: 0` is a valid limit (BI tools use `LIMIT 0` as a schema probe),
|
|
811
|
+
// so it must not be collapsed into `null` (no limit) here
|
|
812
|
+
rowLimit: this.options.rowLimit != null ? this.options.rowLimit.toString() : null,
|
|
811
813
|
offset: this.options.offset ? this.options.offset.toString() : null,
|
|
812
814
|
baseTools: this,
|
|
813
815
|
ungrouped: this.options.ungrouped,
|
|
@@ -857,8 +859,10 @@ class BaseQuery {
|
|
|
857
859
|
cubeEvaluator: this.cubeEvaluator,
|
|
858
860
|
order,
|
|
859
861
|
filters: this.options.filters,
|
|
860
|
-
limit: this.options.limit ? this.options.limit.toString() : null,
|
|
861
|
-
rowLimit:
|
|
862
|
+
limit: this.options.limit != null ? this.options.limit.toString() : null,
|
|
863
|
+
// `rowLimit: 0` is a valid limit (BI tools use `LIMIT 0` as a schema probe),
|
|
864
|
+
// so it must not be collapsed into `null` (no limit) here
|
|
865
|
+
rowLimit: this.options.rowLimit != null ? this.options.rowLimit.toString() : null,
|
|
862
866
|
offset: this.options.offset ? this.options.offset.toString() : null,
|
|
863
867
|
baseTools: this,
|
|
864
868
|
ungrouped: this.options.ungrouped,
|
|
@@ -1533,11 +1537,20 @@ class BaseQuery {
|
|
|
1533
1537
|
// If we have custom granularities in time dimension
|
|
1534
1538
|
if (td.granularities) {
|
|
1535
1539
|
for (const granularityName of Object.keys(td.granularities)) {
|
|
1536
|
-
const
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1540
|
+
const granularity = this.cubeEvaluator.resolveGranularity([cube, tdName, 'granularities', granularityName]);
|
|
1541
|
+
// A granularity that only overrides the SQL of its time dimension has no
|
|
1542
|
+
// interval to derive a hierarchy from. Such a granularity can only be
|
|
1543
|
+
// matched by a rollup declaring it by name, which is what a missing
|
|
1544
|
+
// hierarchy entry already means.
|
|
1545
|
+
// An unresolvable granularity is a different matter and keeps
|
|
1546
|
+
// reporting itself from the constructor below.
|
|
1547
|
+
if (!granularity || granularity.interval) {
|
|
1548
|
+
const grObj = new Granularity_1.Granularity(this, { dimension: dimensionKey, granularity: granularityName });
|
|
1549
|
+
hierarchies[`${dimensionKey}.${granularityName}`] = [
|
|
1550
|
+
granularityName,
|
|
1551
|
+
...standardGranularitiesParents[grObj.minGranularity()],
|
|
1552
|
+
];
|
|
1553
|
+
}
|
|
1541
1554
|
}
|
|
1542
1555
|
}
|
|
1543
1556
|
}
|
|
@@ -2521,6 +2534,31 @@ class BaseQuery {
|
|
|
2521
2534
|
topLimit() {
|
|
2522
2535
|
return '';
|
|
2523
2536
|
}
|
|
2537
|
+
/**
|
|
2538
|
+
* Row limit as a number, or `null` when it is not set at all. Unlike a truthy check
|
|
2539
|
+
* this keeps `0` (a valid limit that returns no rows) distinct from "no limit", and
|
|
2540
|
+
* unlike a bare `parseInt` it keeps a non-numeric `rowLimit` out of the rendered SQL.
|
|
2541
|
+
* @protected
|
|
2542
|
+
* @returns {number|null}
|
|
2543
|
+
*/
|
|
2544
|
+
parsedRowLimit() {
|
|
2545
|
+
if (this.rowLimit == null) {
|
|
2546
|
+
return null;
|
|
2547
|
+
}
|
|
2548
|
+
const parsed = parseInt(this.rowLimit, 10);
|
|
2549
|
+
return Number.isNaN(parsed) ? null : parsed;
|
|
2550
|
+
}
|
|
2551
|
+
/**
|
|
2552
|
+
* Leading row-limit clause for statements that do not render `topLimit()` -- the legacy
|
|
2553
|
+
* rollup query in `PreAggregations` is the one such statement. Only dialects that cannot
|
|
2554
|
+
* express a zero row limit as a trailing clause (T-SQL, where FETCH NEXT must be >= 1)
|
|
2555
|
+
* return anything here; every other dialect renders `LIMIT 0` and gets `''`.
|
|
2556
|
+
* @public
|
|
2557
|
+
* @returns {string}
|
|
2558
|
+
*/
|
|
2559
|
+
zeroRowLimitTopClause() {
|
|
2560
|
+
return '';
|
|
2561
|
+
}
|
|
2524
2562
|
baseSelect() {
|
|
2525
2563
|
return ramda_1.default.flatten(this.forSelect().map(s => s.selectColumns())).filter(s => !!s).join(', ');
|
|
2526
2564
|
}
|