private static void AnalyzeRollup(
     GroupByClauseElementRollupOrCube rollup,
     IList<ExprNode> expressions)
 {
     foreach (var ex in rollup.RollupExpressions) {
         if (ex is GroupByClauseElementExpr) {
             expressions.Add(((GroupByClauseElementExpr) ex).Expr);
         }
         else {
             var combined = (GroupByClauseElementCombinedExpr) ex;
             expressions.AddAll(combined.Expressions);
         }
     }
 }
示例#2
0
 private static void GroupByAddRollup(
     GroupByClauseElementRollupOrCube spec,
     GroupByRollupNodeBase parent,
     IList<ExprNode> exprNodes)
 {
     foreach (var rolledUp in spec.RollupExpressions) {
         if (rolledUp is GroupByClauseElementExpr) {
             var expr = (GroupByClauseElementExpr) rolledUp;
             exprNodes.Add(expr.Expr);
             parent.Add(new GroupByRollupNodeSingleExpr(expr.Expr));
         }
         else {
             var combined = (GroupByClauseElementCombinedExpr) rolledUp;
             exprNodes.AddAll(combined.Expressions);
             parent.Add(new GroupByRollupNodeCombinedExpr(combined.Expressions));
         }
     }
 }