protected override void VisitSortOp(SortBaseOp op, Node n) { using (new AutoXml(this, "keys")) { foreach (InternalTrees.SortKey sortKey in op.Keys) { Dictionary <string, object> attrs = new Dictionary <string, object>(); attrs.Add("Var", sortKey.Var); attrs.Add("Ascending", sortKey.AscendingSort); attrs.Add("Collation", sortKey.Collation); using (new AutoXml(this, "sortKey", attrs)) { } } } VisitChildren(n); }
protected override void VisitSortOp(SortBaseOp op, Node n) { VisitRelOpDefault(op, n); AssertRelOpOrPhysicalOp(n.Child0.Op); }
protected override void VisitSortOp(SortBaseOp op, Node n) { VisitRelOpDefault(op, n); Map(op.Keys); }
protected override void VisitSortOp(SortBaseOp op, Node n) { VisitRelOpDefault(op, n); AssertRelOpOrPhysicalOp(n.Child0.Op); }
/// <summary> /// SortOp handling /// /// First, "request" that for any sort key that is a structured type, we /// need all its properties. Then process any local definitions, and /// finally the relop input /// </summary> /// <param name="op"></param> /// <param name="n"></param> protected override void VisitSortOp(SortBaseOp op, Node n) { // foreach sort key, every single bit of the Var is needed foreach (InternalTrees.SortKey sk in op.Keys) if (TypeUtils.IsStructuredType(sk.Var.Type)) AddPropertyRefs(sk.Var, PropertyRefList.All); // if the sort has any local definitions, process those first if (n.HasChild1) VisitNode(n.Child1); // then process the relop input VisitNode(n.Child0); }
/// <summary> /// Default handler for all SortOps /// </summary> /// <param name="op">sort op</param> /// <param name="n"></param> protected virtual void VisitSortOp(SortBaseOp op, Node n) { VisitRelOpDefault(op, n); }