/// <summary> /// The driver. /// Walks the tree, and "pushes" down information about required properties /// to every node and Var in the tree. /// </summary> /// <param name="itree">The query tree</param> /// <param name="structuredTypeInfo">Type info for structured types appearing in query.</param> /// <param name="varPropertyRefs">List of desired properties from each Var</param> /// <param name="nodePropertyRefs">List of desired properties from each node</param> internal static void Process(Command itree, StructuredTypeInfo structuredTypeInfo, out Dictionary <Var, PropertyRefList> varPropertyRefs, out Dictionary <Node, PropertyRefList> nodePropertyRefs) { PropertyPushdownHelper pph = new PropertyPushdownHelper(structuredTypeInfo); pph.Process(itree.Root); varPropertyRefs = pph.m_varPropertyRefMap; nodePropertyRefs = pph.m_nodePropertyRefMap; }
/// <summary> /// The driver. /// Walks the tree, and "pushes" down information about required properties /// to every node and Var in the tree. /// </summary> /// <param name="itree">The query tree</param> /// <param name="structuredTypeInfo">Type info for structured types appearing in query.</param> /// <param name="varPropertyRefs">List of desired properties from each Var</param> /// <param name="nodePropertyRefs">List of desired properties from each node</param> internal static void Process(Command itree, StructuredTypeInfo structuredTypeInfo, out Dictionary<Var, PropertyRefList> varPropertyRefs, out Dictionary<Node, PropertyRefList> nodePropertyRefs) { PropertyPushdownHelper pph = new PropertyPushdownHelper(structuredTypeInfo); pph.Process(itree.Root); varPropertyRefs = pph.m_varPropertyRefMap; nodePropertyRefs = pph.m_nodePropertyRefMap; }