@@ -2974,6 +2974,63 @@ describe('SQL Generation', () => {
2974
2974
} ]
2975
2975
) ) ;
2976
2976
2977
+ // Subquery aggregation for multiplied measure (and any `keysSelect` for that matter)
2978
+ // should pick up all dimensions, even through member expressions
2979
+ it ( 'multiplied sum with dimension member expressions' , async ( ) => runQueryTest (
2980
+ {
2981
+ measures : [
2982
+ 'visitors_visitors_checkins_view.revenue' ,
2983
+ 'visitors_visitors_checkins_view.visitor_checkins_count' ,
2984
+ ] ,
2985
+ dimensions : [
2986
+ {
2987
+ // eslint-disable-next-line no-new-func
2988
+ expression : new Function (
2989
+ 'visitors_visitors_checkins_view' ,
2990
+ // eslint-disable-next-line no-template-curly-in-string
2991
+ 'return `LOWER(${visitors_visitors_checkins_view.source})`'
2992
+ ) ,
2993
+ expressionName : 'lower_source' ,
2994
+ // eslint-disable-next-line no-template-curly-in-string
2995
+ definition : 'LOWER(${visitors_visitors_checkins_view.source})' ,
2996
+ cubeName : 'visitors_visitors_checkins_view' ,
2997
+ } ,
2998
+ {
2999
+ // eslint-disable-next-line no-new-func
3000
+ expression : new Function (
3001
+ 'visitors_visitors_checkins_view' ,
3002
+ // eslint-disable-next-line no-template-curly-in-string
3003
+ 'return `UPPER(${visitors_visitors_checkins_view.source})`'
3004
+ ) ,
3005
+ expressionName : 'upper_source' ,
3006
+ // eslint-disable-next-line no-template-curly-in-string
3007
+ definition : 'UPPER(${visitors_visitors_checkins_view.source})' ,
3008
+ cubeName : 'visitors_visitors_checkins_view' ,
3009
+ } ,
3010
+ ] ,
3011
+ } ,
3012
+ [
3013
+ {
3014
+ lower_source : null ,
3015
+ upper_source : null ,
3016
+ visitors_visitors_checkins_view__revenue : '1400' ,
3017
+ visitors_visitors_checkins_view__visitor_checkins_count : '0' ,
3018
+ } ,
3019
+ {
3020
+ lower_source : 'google' ,
3021
+ upper_source : 'GOOGLE' ,
3022
+ visitors_visitors_checkins_view__revenue : '300' ,
3023
+ visitors_visitors_checkins_view__visitor_checkins_count : '1' ,
3024
+ } ,
3025
+ {
3026
+ lower_source : 'some' ,
3027
+ upper_source : 'SOME' ,
3028
+ visitors_visitors_checkins_view__revenue : '300' ,
3029
+ visitors_visitors_checkins_view__visitor_checkins_count : '5' ,
3030
+ } ,
3031
+ ]
3032
+ ) ) ;
3033
+
2977
3034
// TODO not implemented
2978
3035
// it('multi stage bucketing', async () => runQueryTest(
2979
3036
// {
0 commit comments