Skip to content

Commit 4369149

Browse files
committed
fix(schema-compiler): Fix ungrouped cumulative queries incorrect sql generation
1 parent e948856 commit 4369149

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ export class BaseDimension {
3131
return this.dimensionSql() === this.aliasName();
3232
}
3333

34-
public cumulativeSelectColumns() {
34+
public cumulativeSelectColumns(baseQueryAliasName: string): string[] {
35+
if (baseQueryAliasName) {
36+
return [`${baseQueryAliasName}.${this.aliasName()}`];
37+
}
3538
return [`${this.aliasName()}`];
3639
}
3740

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,11 @@ export class BaseMeasure {
3535
return this.measureSql() === this.aliasName();
3636
}
3737

38-
public cumulativeSelectColumns() {
39-
return [`${this.cumulativeMeasureSql()} ${this.aliasName()}`];
38+
public cumulativeSelectColumns(baseQueryAliasName: string): string[] {
39+
if (baseQueryAliasName) {
40+
return [`${baseQueryAliasName}.${this.aliasName()}`];
41+
}
42+
return [`${this.aliasName()}`];
4043
}
4144

4245
public cumulativeMeasureSql() {

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

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -789,9 +789,6 @@ export class BaseQuery {
789789
* @returns {string}
790790
*/
791791
fullKeyQueryAggregate() {
792-
if (this.from) {
793-
return this.simpleQuery();
794-
}
795792
const {
796793
multipliedMeasures,
797794
regularMeasures,
@@ -1426,16 +1423,17 @@ export class BaseQuery {
14261423
}
14271424

14281425
overTimeSeriesSelect(cumulativeMeasures, dateSeriesSql, baseQuery, dateJoinConditionSql, baseQueryAlias) {
1429-
const forSelect = this.overTimeSeriesForSelect(cumulativeMeasures);
1426+
const forSelect = this.overTimeSeriesForSelect(cumulativeMeasures, baseQueryAlias);
14301427
return `SELECT ${forSelect} FROM ${dateSeriesSql}` +
14311428
` LEFT JOIN (${baseQuery}) ${this.asSyntaxJoin} ${baseQueryAlias} ON ${dateJoinConditionSql}` +
14321429
this.groupByClause();
14331430
}
14341431

1435-
overTimeSeriesForSelect(cumulativeMeasures) {
1436-
return this.dimensions.map(s => s.cumulativeSelectColumns()).concat(this.dateSeriesSelect()).concat(
1437-
cumulativeMeasures.map(s => s.cumulativeSelectColumns()),
1438-
).filter(c => !!c)
1432+
overTimeSeriesForSelect(cumulativeMeasures, baseQueryAlias) {
1433+
return this.dimensions.map(s => s.cumulativeSelectColumns(baseQueryAlias))
1434+
.concat(this.dateSeriesSelect())
1435+
.concat(cumulativeMeasures.map(s => s.cumulativeSelectColumns(baseQueryAlias)))
1436+
.filter(c => !!c)
14391437
.join(', ');
14401438
}
14411439

@@ -1792,16 +1790,16 @@ export class BaseQuery {
17921790
}));
17931791
}
17941792

1795-
groupedUngroupedSelect(select, ungrouped, granularityOverride) {
1793+
groupedUngroupedSelect(selectFn, ungrouped, granularityOverride) {
17961794
return this.evaluateSymbolSqlWithContext(
1797-
select,
1795+
selectFn,
17981796
{ ungrouped, granularityOverride, overTimeSeriesAggregate: true }
17991797
);
18001798
}
18011799

1802-
ungroupedMeasureSelect(select) {
1800+
ungroupedMeasureSelect(selectFn) {
18031801
return this.evaluateSymbolSqlWithContext(
1804-
select,
1802+
selectFn,
18051803
{ ungrouped: true }
18061804
);
18071805
}

0 commit comments

Comments
 (0)