@@ -653,13 +653,13 @@ export class PreAggregations {
653653     * Determine whether pre-aggregation can be used or not. 
654654     */ 
655655    const  canUsePreAggregationNotAdditive : CanUsePreAggregationFn  =  ( references : PreAggregationReferences ) : boolean  =>  { 
656-       const  refTimeDimensions  =  backAlias ( sortTimeDimensions ( references . timeDimensions ) ) ; 
657656      const  qryTimeDimensions  =  references . allowNonStrictDateRangeMatch 
658657        ? transformedQuery . timeDimensions 
659658        : transformedQuery . sortedTimeDimensions ; 
660659
661660      let  dimsToMatch : string [ ] ; 
662661      let  measToMatch : string [ ] ; 
662+       let  timeDimsToMatch : PreAggregationTimeDimensionReference [ ] ; 
663663
664664      if  ( references . rollups . length  >  0 )  { 
665665        // In 'rollupJoin' / 'rollupLambda' pre-aggregations fullName members will be empty, because there are 
@@ -673,14 +673,19 @@ export class PreAggregations {
673673        dimsToMatch  =  references . rollupsReferences 
674674          . flatMap ( rolRef  =>  rolRef . fullNameDimensions ) 
675675          . filter ( d  =>  references . dimensions . some ( rd  =>  d . endsWith ( rd ) ) ) ; 
676+         timeDimsToMatch  =  references . rollupsReferences 
677+           . flatMap ( rolRef  =>  rolRef . fullNameTimeDimensions ) 
678+           . filter ( d  =>  references . timeDimensions . some ( rd  =>  d . dimension . endsWith ( rd . dimension ) ) ) ; 
676679        measToMatch  =  references . rollupsReferences 
677680          . flatMap ( rolRef  =>  rolRef . fullNameMeasures ) 
678681          . filter ( m  =>  references . measures . some ( rm  =>  m . endsWith ( rm ) ) ) ; 
679682      }  else  { 
680683        dimsToMatch  =  references . fullNameDimensions ; 
684+         timeDimsToMatch  =  references . fullNameTimeDimensions ; 
681685        measToMatch  =  references . fullNameMeasures ; 
682686      } 
683687
688+       const  refTimeDimensions  =  backAlias ( sortTimeDimensions ( timeDimsToMatch ) ) ; 
684689      const  backAliasMeasures  =  backAlias ( measToMatch ) ; 
685690      const  backAliasDimensions  =  backAlias ( dimsToMatch ) ; 
686691      return  ( ( 
@@ -1043,7 +1048,6 @@ export class PreAggregations {
10431048            preAggJoinsJoinHints . concat ( this . cubesFromPreAggregation ( preAggObj ) ) 
10441049          ) 
10451050        ) ; 
1046-         // const targetJoins = this.resolveJoinMembers(this.query.joinGraph.buildJoin(this.cubesFromPreAggregation(preAggObj))); 
10471051        const  existingJoins  =  R . unnest ( preAggObjsToJoin . map ( 
10481052          // TODO join hints? 
10491053          p  =>  this . resolveJoinMembers ( this . query . joinGraph . buildJoin ( this . cubesFromPreAggregation ( p ) ) ) 
0 commit comments