@@ -18,21 +18,19 @@ public static void ReWrite(QueryModel queryModel)
18
18
&& queryModel . ResultOperators . All ( r => r is GroupResultOperator )
19
19
&& IsNonAggregatingGroupBy ( queryModel ) )
20
20
{
21
- var source = queryModel . SelectClause . Selector ;
22
- for ( var index = 0 ; index < queryModel . ResultOperators . Count ; index ++ )
21
+ for ( var i = 0 ; i < queryModel . ResultOperators . Count ; i ++ )
23
22
{
24
- var r = ( GroupResultOperator ) queryModel . ResultOperators [ index ] ;
25
- queryModel . ResultOperators [ index ] = new NonAggregatingGroupBy ( r ) ;
26
- source = new QuerySourceReferenceExpression ( r ) ;
23
+ var r = ( GroupResultOperator ) queryModel . ResultOperators [ i ] ;
24
+ queryModel . ResultOperators [ i ] = new NonAggregatingGroupBy ( r ) ;
27
25
}
28
26
29
27
return ;
30
28
}
31
29
32
- if ( ( queryModel . MainFromClause . FromExpression is SubQueryExpression subQueryExpression )
33
- && ( subQueryExpression . QueryModel . ResultOperators . Count == 1 )
34
- && ( subQueryExpression . QueryModel . ResultOperators [ 0 ] is GroupResultOperator )
35
- && ( IsNonAggregatingGroupBy ( queryModel ) ) )
30
+ if ( queryModel . MainFromClause . FromExpression is SubQueryExpression subQueryExpression
31
+ && subQueryExpression . QueryModel . ResultOperators . Count > 0
32
+ && subQueryExpression . QueryModel . ResultOperators . All ( r => r is GroupResultOperator )
33
+ && IsNonAggregatingGroupBy ( queryModel ) )
36
34
{
37
35
FlattenSubQuery ( subQueryExpression , queryModel ) ;
38
36
}
@@ -62,7 +60,11 @@ private static void FlattenSubQuery(SubQueryExpression subQueryExpression, Query
62
60
throw new NotImplementedException ( ) ;
63
61
}
64
62
65
- queryModel . ResultOperators . Add ( new NonAggregatingGroupBy ( ( GroupResultOperator ) subQueryModel . ResultOperators [ 0 ] ) ) ;
63
+ for ( var i = 0 ; i < subQueryModel . ResultOperators . Count ; i ++ )
64
+ {
65
+ queryModel . ResultOperators . Add ( new NonAggregatingGroupBy ( ( GroupResultOperator ) subQueryModel . ResultOperators [ i ] ) ) ;
66
+ }
67
+
66
68
queryModel . ResultOperators . Add ( clientSideSelect ) ;
67
69
}
68
70
0 commit comments