protected override void VisitSortOp(SortBaseOp op, System.Data.Entity.Core.Query.InternalTrees.Node n) { foreach (SortKey key in op.Keys) { if (TypeUtils.IsStructuredType(key.Var.Type)) { this.AddPropertyRefs(key.Var, PropertyRefList.All); } } if (n.HasChild1) { this.VisitNode(n.Child1); } this.VisitNode(n.Child0); }
protected override System.Data.Entity.Core.Query.InternalTrees.Node VisitSortOp( SortBaseOp op, System.Data.Entity.Core.Query.InternalTrees.Node n) { foreach (SortKey key in op.Keys) { this.AddReference(key.Var); } if (n.HasChild1) { n.Child1 = this.VisitNode(n.Child1); } n.Child0 = this.VisitNode(n.Child0); this.m_command.RecomputeNodeInfo(n); return(n); }
/// <summary> /// SortOp /// First visit the sort keys - no sort key can be eliminated. /// Then process the vardeflist child (if there is one) that contains computed /// vars, and finally process the relop input. As before, the computedvars /// and sortkeys need to be processed before the relop input /// </summary> /// <param name="op"> the sortop </param> /// <param name="n"> the current subtree </param> /// <returns> modified subtree </returns> protected override Node VisitSortOp(SortBaseOp op, Node n) { // first visit the sort keys foreach (var sk in op.Keys) { AddReference(sk.Var); } // next walk through all the computed expressions if (n.HasChild1) { n.Child1 = VisitNode(n.Child1); } // finally process the input n.Child0 = VisitNode(n.Child0); m_command.RecomputeNodeInfo(n); return(n); }
/// <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> // Same as the input // </summary> protected override int VisitSortOp(SortBaseOp op, Node n) { return(VisitNode(n.Child0)); }
protected override int VisitSortOp(SortBaseOp op, System.Data.Entity.Core.Query.InternalTrees.Node n) { return(this.VisitNode(n.Child0)); }
protected override void VisitSortOp(SortBaseOp op, Node n) { VisitRelOpDefault(op, n); Map(op.Keys); }
protected override void VisitSortOp(SortBaseOp op, System.Data.Entity.Core.Query.InternalTrees.Node n) { this.VisitRelOpDefault((RelOp)op, n); this.Map(op.Keys); }