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)); } } }
public void Add(GroupByRollupNodeBase child) { _childNodes.Add(child); }