Skip to content

Commit 7e28d3a

Browse files
committed
improve error message in preAggObjForJoin()
1 parent ca14e46 commit 7e28d3a

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

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

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -999,8 +999,8 @@ export class PreAggregations {
999999
throw new UserError(`Nothing to join in rollup join. Target joins ${JSON.stringify(targetJoins)} are included in existing rollup joins ${JSON.stringify(existingJoins)}`);
10001000
}
10011001
return nonExistingJoins.map(join => {
1002-
const fromPreAggObj = this.preAggObjForJoin(preAggObjsToJoin, join.fromMembers, join);
1003-
const toPreAggObj = this.preAggObjForJoin(preAggObjsToJoin, join.toMembers, join);
1002+
const fromPreAggObj = this.preAggObjForJoin(preAggObjsToJoin, join.fromMembers, join, `${preAggObj.cube}.${preAggObj.preAggregationName}`);
1003+
const toPreAggObj = this.preAggObjForJoin(preAggObjsToJoin, join.toMembers, join, `${preAggObj.cube}.${preAggObj.preAggregationName}`);
10041004
return {
10051005
...join,
10061006
fromPreAggObj,
@@ -1011,11 +1011,20 @@ export class PreAggregations {
10111011
);
10121012
}
10131013

1014-
private preAggObjForJoin(preAggObjsToJoin: PreAggregationForQuery[], joinMembers: string[], join: JoinEdgeWithMembers): PreAggregationForQuery {
1014+
private preAggObjForJoin(
1015+
preAggObjsToJoin: PreAggregationForQuery[],
1016+
joinMembers: string[],
1017+
join: JoinEdgeWithMembers,
1018+
rollupJoinPreAggName: string,
1019+
): PreAggregationForQuery {
10151020
const fromPreAggObj = preAggObjsToJoin
10161021
.filter(p => joinMembers.every(m => !!p.references.dimensions.find(d => m === d)));
10171022
if (!fromPreAggObj.length) {
1018-
throw new UserError(`No rollups found that can be used for rollup join: ${JSON.stringify(join)}`);
1023+
const msg = `No rollups found that can be used for a rollup join from "${
1024+
join.from}" (fromMembers: ${JSON.stringify(join.fromMembers)}) to "${join.to}" (toMembers: ${
1025+
JSON.stringify(join.toMembers)}). Check the "${
1026+
rollupJoinPreAggName}" pre-aggregation definition — you may have forgotten to specify the full dimension paths`;
1027+
throw new UserError(msg);
10191028
}
10201029
if (fromPreAggObj.length > 1) {
10211030
throw new UserError(

0 commit comments

Comments
 (0)