protected override void VisitGroupByOp(GroupByBaseOp op, Node n) { Dictionary <string, object> attrs = new Dictionary <string, object>(); StringBuilder sb = new StringBuilder(); string separator = string.Empty; foreach (Var v in op.Keys) { sb.Append(separator); sb.Append(v.Id); separator = ","; } if (0 != sb.Length) { attrs.Add("Keys", sb.ToString()); } using (new AutoXml(this, op, attrs)) { using (new AutoXml(this, "outputs")) { foreach (Var v in op.Outputs) { DumpVar(v); } } VisitChildren(n); } }
protected override void VisitGroupByOp(GroupByBaseOp op, Node n) { VisitRelOpDefault(op, n); AssertRelOpOrPhysicalOp(n.Child0.Op); for (int i = 1; i < n.Children.Count; i++) { AssertOpType(n.Children[i].Op, OpType.VarDefList); } }