6 instantiations of FragmentQuery
System.Data.Entity (6)
System\Data\Mapping\ViewGeneration\QueryRewriting\FragmentQuery.cs (4)
46return new FragmentQuery(null /*label*/, fromVariable, new HashSet<MemberPath>(cellQuery.GetProjectedMembers()), whereClause); 57return new FragmentQuery(label, null /* fromVariable */, new HashSet<MemberPath>(), whereClause); 62return new FragmentQuery(null /* no name */, null /* no fromVariable*/, attrs, whereClause); 67return new FragmentQuery(null /* no name */, null /* no fromVariable*/, new MemberPath[] { }, whereClause);
System\Data\Mapping\ViewGeneration\QueryRewriting\FragmentQueryProcessor.cs (1)
150FragmentQuery derivedView = new FragmentQuery(String.Format(CultureInfo.InvariantCulture, "project({0})", view.Description), view.FromVariable,
System\Data\Mapping\ViewGeneration\QueryRewriting\QueryRewriter.cs (1)
692FragmentQuery tileQuery = new FragmentQuery(fragmentQuery.Description, fragmentQuery.FromVariable,
220 references to FragmentQuery
System.Data.Entity (220)
System\Data\Mapping\ViewGeneration\BasicViewGenerator.cs (5)
34internal BasicViewGenerator(MemberProjectionIndex projectedSlotMap, List<LeftCellWrapper> usedCells, FragmentQuery activeDomain, 52private FragmentQuery m_activeDomain; 655FragmentQuery intersection = LeftQP.Intersect(n1.RightFragmentQuery, n2.RightFragmentQuery); 680FragmentQuery n1Active = LeftQP.Intersect(n1.LeftFragmentQuery, m_activeDomain); 681FragmentQuery n2Active = LeftQP.Intersect(n2.LeftFragmentQuery, m_activeDomain);
System\Data\Mapping\ViewGeneration\QueryRewriting\FragmentQuery.cs (9)
41public static FragmentQuery Create(BoolExpression fromVariable, CellQuery cellQuery) 49public static FragmentQuery Create(string label, RoleBoolean roleBoolean, CellQuery cellQuery) 60public static FragmentQuery Create(IEnumerable<MemberPath> attrs, BoolExpression whereClause) 65public static FragmentQuery Create(BoolExpression whereClause) 133internal static IEqualityComparer<FragmentQuery> GetEqualityComparer(FragmentQueryProcessor qp) 143private class FragmentQueryEqualityComparer : IEqualityComparer<FragmentQuery> 155public bool Equals(FragmentQuery x, FragmentQuery y) 167public int GetHashCode(FragmentQuery q)
System\Data\Mapping\ViewGeneration\QueryRewriting\FragmentQueryProcessor.cs (23)
25internal class FragmentQueryProcessor : TileQueryProcessor<FragmentQuery> 49internal override FragmentQuery Union(FragmentQuery q1, FragmentQuery q2) 56return FragmentQuery.Create(attributes, condition); 59internal bool IsDisjointFrom(FragmentQuery q1, FragmentQuery q2) 64internal bool IsContainedIn(FragmentQuery q1, FragmentQuery q2) 69internal bool IsEquivalentTo(FragmentQuery q1, FragmentQuery q2) 75internal override FragmentQuery Intersect(FragmentQuery q1, FragmentQuery q2) 82return FragmentQuery.Create(attributes, condition); 85internal override FragmentQuery Difference(FragmentQuery qA, FragmentQuery qB) 87return FragmentQuery.Create(qA.Attributes, BoolExpression.CreateAndNot(qA.Condition, qB.Condition)); 90internal override bool IsSatisfiable(FragmentQuery query) 109internal override FragmentQuery CreateDerivedViewBySelectingConstantAttributes(FragmentQuery view) 150FragmentQuery derivedView = new FragmentQuery(String.Format(CultureInfo.InvariantCulture, "project({0})", view.Description), view.FromVariable,
System\Data\Mapping\ViewGeneration\QueryRewriting\QueryRewriter.cs (120)
50RewritingProcessor<Tile<FragmentQuery>> _qp; 54List<FragmentQuery> _fragmentQueries = new List<FragmentQuery>(); 55List<Tile<FragmentQuery>> _views = new List<Tile<FragmentQuery>>(); 57FragmentQuery _domainQuery; 59HashSet<FragmentQuery> _usedViews = new HashSet<FragmentQuery>(); 71static Tile<FragmentQuery> TrueViewSurrogate = CreateTile(FragmentQuery.Create(BoolExpression.True)); 87_qp = new RewritingProcessor<Tile<FragmentQuery>>(new DefaultTileProcessor<FragmentQuery>(context.LeftFragmentQP)); 94FragmentQuery query = leftCellWrapper.FragmentQuery; 95Tile<FragmentQuery> tile = CreateTile(query); 106_usedViews = new HashSet<FragmentQuery>(); 198private IEnumerable<FragmentQuery> FragmentQueries 271Tile<FragmentQuery> caseRewriting; 272HashSet<FragmentQuery> outputUsedViews = new HashSet<FragmentQuery>(); 279CellTreeNode cellTree = TileToCellTree((Tile<FragmentQuery>)caseRewriting, _context); 291foreach (FragmentQuery query in _fragmentQueries) 299internal FragmentQuery GetDomainQuery(IEnumerable<FragmentQuery> fragmentQueries, EdmType generatedType) 328return FragmentQuery.Create(_keyAttributes, domainQueryCondition); 336return FragmentQuery.Create(_keyAttributes, exposedRegionCondition); 341private bool AddRewritingToCaseStatement(Tile<FragmentQuery> rewriting, CaseStatement caseStatement, MemberPath currentPath, Constant domainValue) 372whenCondition = TileToBoolExpr((Tile<FragmentQuery>)rewriting); 388HashSet<FragmentQuery> outputUsedViews, 405Tile<FragmentQuery> rewriting; 494HashSet<FragmentQuery> outputUsedViews) 509Tile<FragmentQuery> unionCaseRewriting = null; 533FragmentQuery memberConditionQuery = CreateMemberConditionQuery(currentPath, domainValue); 535Tile<FragmentQuery> caseRewriting; 602CellTreeNode rightDomainQuery, Tile<FragmentQuery> unionCaseRewriting) 613FragmentQuery configurationNeedsDefault = _context.RightFragmentQP.Difference(rightDomainQuery.RightFragmentQuery, unionTree.RightFragmentQuery); 634private BoolExpression GetTopLevelWhereClause(HashSet<FragmentQuery> outputUsedViews) 642Tile<FragmentQuery> topLevelRewriting; 659internal void EnsureExtentIsFullyMapped(HashSet<FragmentQuery> outputUsedViews) 690FragmentQuery fragmentQuery = leftCellWrapper.FragmentQuery; 692FragmentQuery tileQuery = new FragmentQuery(fragmentQuery.Description, fragmentQuery.FromVariable, 694Tile<FragmentQuery> noNullToAvoid = CreateTile(FragmentQuery.Create(_keyAttributes, BoolExpression.CreateNot(fragmentQuery.Condition))); 695Tile<FragmentQuery> noNullRewriting; 709foreach (Tile<FragmentQuery> toFill in _views) 711Tile<FragmentQuery> rewriting; 712Tile<FragmentQuery> toAvoid = CreateTile(FragmentQuery.Create(_keyAttributes, BoolExpression.CreateNot(toFill.Query.Condition))); 805HashSet<FragmentQuery> outputUsedViews, out Tile<FragmentQuery> rewriting) 815HashSet<FragmentQuery> outputUsedViews, out Tile<FragmentQuery> rewriting, 828out Tile<FragmentQuery> rewriting, out IEnumerable<MemberPath> notCoveredAttributes) 830Tile<FragmentQuery> toFill = CreateTile(FragmentQuery.Create(attributes, whereClause)); 832Tile<FragmentQuery> toAvoid = CreateTile(FragmentQuery.Create(_keyAttributes, BoolExpression.CreateNot(whereClause))); 841private bool RewriteQuery(Tile<FragmentQuery> toFill, Tile<FragmentQuery> toAvoid, out Tile<FragmentQuery> rewriting, out IEnumerable<MemberPath> notCoveredAttributes, 846FragmentQuery toFillQuery = toFill.Query; 854IEnumerable<Tile<FragmentQuery>> relevantViews = GetRelevantViews(toFillQuery, isRelaxed); 855FragmentQuery originalToFillQuery = toFillQuery; 857if (!RewriteQueryCached(CreateTile(FragmentQuery.Create(toFillQuery.Condition)), toAvoid, relevantViews, out rewriting)) 862toFillQuery = FragmentQuery.Create(toFillQuery.Attributes, BoolExpression.CreateAndNot(toFillQuery.Condition, rewriting.Query.Condition)); 864!RewriteQueryCached(CreateTile(FragmentQuery.Create(toFillQuery.Condition)), toAvoid, relevantViews, out rewriting)) 883Dictionary<MemberPath, FragmentQuery> attributeConditions = new Dictionary<MemberPath, FragmentQuery>(); 899FragmentQuery remainingCondition; 902attributeConditions[attribute] = FragmentQuery.Create(BoolExpression.CreateAndNot(toFillQuery.Condition, remainingCondition.Condition)); 921private bool RewriteQueryCached(Tile<FragmentQuery> toFill, Tile<FragmentQuery> toAvoid, 922IEnumerable<Tile<FragmentQuery>> views, out Tile<FragmentQuery> rewriting) 940private bool CoverAttributes(ref Tile<FragmentQuery> rewriting, FragmentQuery toFillQuery, 941Dictionary<MemberPath, FragmentQuery> attributeConditions) 944HashSet<FragmentQuery> usedViews = new HashSet<FragmentQuery>(rewriting.GetNamedQueries()); 948foreach (FragmentQuery view in usedViews) 960Tile<FragmentQuery> attributeTile = null; 961foreach (FragmentQuery view in _fragmentQueries) 990private bool CoverAttribute(MemberPath projectedAttribute, FragmentQuery view, Dictionary<MemberPath, FragmentQuery> attributeConditions, FragmentQuery toFillQuery) 992FragmentQuery currentAttributeCondition; 995currentAttributeCondition = FragmentQuery.Create(BoolExpression.CreateAndNot(currentAttributeCondition.Condition, view.Condition)); 1010private IEnumerable<Tile<FragmentQuery>> GetRelevantViews(FragmentQuery query, bool isRelaxed) 1028Tile<FragmentQuery> unionOfConnectedViews = null; 1029List<Tile<FragmentQuery>> connectedViews = new List<Tile<FragmentQuery>>(); 1030Tile<FragmentQuery> firstTrueView = null; 1031foreach (Tile<FragmentQuery> tile in _views) 1055Tile<FragmentQuery> unionTile = null; 1056foreach (FragmentQuery view in _fragmentQueries) 1083private HashSet<FragmentQuery> GetUsedViewsAndRemoveTrueSurrogate(ref Tile<FragmentQuery> rewriting) 1085HashSet<FragmentQuery> usedViews = new HashSet<FragmentQuery>(rewriting.GetNamedQueries()); 1094Tile<FragmentQuery> unionTile = null; 1095IEnumerable<FragmentQuery> usedFollowedByUnusedViews = usedViews.Concat(_fragmentQueries); 1096foreach (FragmentQuery view in usedFollowedByUnusedViews) 1118return FragmentQuery.CreateMemberCondition(path, domainValue, _domainMap); 1121private FragmentQuery CreateMemberConditionQuery(MemberPath currentPath, Constant domainValue) 1126internal static FragmentQuery CreateMemberConditionQuery(MemberPath currentPath, Constant domainValue, 1130BoolExpression domainWhereClause = FragmentQuery.CreateMemberCondition(currentPath, domainValue, domainMap); 1139return FragmentQuery.Create(attributes, domainWhereClause); 1142private static TileNamed<FragmentQuery> CreateTile(FragmentQuery query) 1144return new TileNamed<FragmentQuery>(query); 1183internal static CellTreeNode TileToCellTree(Tile<FragmentQuery> tile, ViewgenContext context) 1187FragmentQuery view = ((TileNamed<FragmentQuery>)tile).NamedQuery; 1206private static BoolExpression TileToBoolExpr(Tile<FragmentQuery> tile) 1211FragmentQuery view = ((TileNamed<FragmentQuery>)tile).NamedQuery; 1250private Set<MemberPath> GetVariables(FragmentQuery query) 1261private bool IsTrue(FragmentQuery query) 1263return !_context.LeftFragmentQP.IsSatisfiable(FragmentQuery.Create(BoolExpression.CreateNot(query.Condition))); 1267private void PrintStatistics(RewritingProcessor<Tile<FragmentQuery>> qp)
System\Data\Mapping\ViewGeneration\QueryRewriting\RewritingValidator.cs (15)
136private bool CheckEquivalence(FragmentQuery cQuery, FragmentQuery sQuery, BoolExpression inExtentCondition, 139FragmentQuery cMinusSx = _viewgenContext.RightFragmentQP.Difference(cQuery, sQuery); 140FragmentQuery sMinusCx = _viewgenContext.RightFragmentQP.Difference(sQuery, cQuery); 143FragmentQuery cMinusS = FragmentQuery.Create(BoolExpression.CreateAnd(cMinusSx.Condition, inExtentCondition)); 144FragmentQuery sMinusC = FragmentQuery.Create(BoolExpression.CreateAnd(sMinusCx.Condition, inExtentCondition)); 205FragmentQuery memberConditionQuery = QueryRewriter.CreateMemberConditionQuery(column, domainValue, _keyAttributes, _domainMap); 206Tile<FragmentQuery> rewriting; 258FragmentQuery cCombinedQuery = FragmentQuery.Create(cWhereClause); 326private static FragmentQuery AddNullConditionOnCSideFragment(LeftCellWrapper wrapper, MemberPath member, MemberMaps memberMaps) 343return FragmentQuery.Create(resultingExpr); 359FragmentQuery cFragment = AddNullConditionOnCSideFragment(wrapper, column, _viewgenContext.MemberMaps);
System\Data\Mapping\ViewGeneration\Structures\CellTreeNode.cs (2)
55internal abstract FragmentQuery LeftFragmentQuery { get; } 57internal abstract FragmentQuery RightFragmentQuery { get; }
System\Data\Mapping\ViewGeneration\Structures\LeafCellTreeNode.cs (6)
34m_rightFragmentQuery = FragmentQuery.Create( 39internal LeafCellTreeNode(ViewgenContext context, LeftCellWrapper cellWrapper, FragmentQuery rightFragmentQuery) 53private FragmentQuery m_leftFragmentQuery; 54private FragmentQuery m_rightFragmentQuery; 69internal override FragmentQuery LeftFragmentQuery { get { return m_cellWrapper.FragmentQuery; } } 71internal override FragmentQuery RightFragmentQuery
System\Data\Mapping\ViewGeneration\Structures\LeftCellWrapper.cs (4)
56private FragmentQuery m_leftFragmentQuery; // Fragment query corresponding to the left cell query of the cell 68FragmentQuery fragmentQuery, 81FragmentQuery fragmentQuery, 91internal FragmentQuery FragmentQuery
System\Data\Mapping\ViewGeneration\Structures\OpCellTreeNode.cs (7)
61private FragmentQuery m_leftFragmentQuery; 62private FragmentQuery m_rightFragmentQuery; 70internal override FragmentQuery LeftFragmentQuery 82internal override FragmentQuery RightFragmentQuery 591private static FragmentQuery GenerateFragmentQuery(IEnumerable<CellTreeNode> children, bool isLeft, ViewgenContext context, CellTreeOpType OpType) 594FragmentQuery fragmentQuery = isLeft ? children.First().LeftFragmentQuery : children.First().RightFragmentQuery; 599FragmentQuery nextQuery = isLeft ? child.LeftFragmentQuery : child.RightFragmentQuery;
System\Data\Mapping\ViewGeneration\Validation\ErrorPatternMatcher.cs (14)
24delegate bool LCWComparer(FragmentQuery query1, FragmentQuery query2); 348FragmentQuery rightFragmentQuery1 = CreateRightFragmentQuery(fragment1); 349FragmentQuery rightFragmentQuery2 = CreateRightFragmentQuery(fragment2); 693private bool CompareC(ComparisonOP op, ViewgenContext context, LeftCellWrapper leftWrapper1, LeftCellWrapper leftWrapper2, FragmentQuery rightQuery1, FragmentQuery rightQuery2) 698private bool CompareS(ComparisonOP op, ViewgenContext context, LeftCellWrapper leftWrapper1, LeftCellWrapper leftWrapper2, FragmentQuery rightQuery1, FragmentQuery rightQuery2) 703private bool Compare(bool lookingForC, ComparisonOP op, ViewgenContext context, LeftCellWrapper leftWrapper1, LeftCellWrapper leftWrapper2, FragmentQuery rightQuery1, FragmentQuery rightQuery2) 747FragmentQuery rightFragmentQuery1 = CreateRightFragmentQuery(wrapper1); 748FragmentQuery rightFragmentQuery2 = CreateRightFragmentQuery(wrapper2); 753private FragmentQuery CreateRightFragmentQuery(LeftCellWrapper wrapper) 755return FragmentQuery.Create(wrapper.OnlyInputCell.CellLabel.ToString(), wrapper.CreateRoleBoolean(), wrapper.OnlyInputCell.GetRightQuery(m_viewgenContext.ViewTarget));
System\Data\Mapping\ViewGeneration\Validation\ForeignConstraint.cs (2)
441FragmentQuery cNodeQuery = FragmentQuery.Create(pNode.RightFragmentQuery.Attributes, endCondition);
System\Data\Mapping\ViewGeneration\ViewgenContext.cs (13)
51private Dictionary<FragmentQuery, Tile<FragmentQuery>> m_rewritingCache; 88m_rewritingCache = new Dictionary<FragmentQuery, Tile<FragmentQuery>>( 89FragmentQuery.GetEqualityComparer(m_leftFragmentQP)); 225internal bool TryGetCachedRewriting(FragmentQuery query, out Tile<FragmentQuery> rewriting) 231internal void SetCachedRewriting(FragmentQuery query, Tile<FragmentQuery> rewriting) 310FragmentQuery leftFragmentQuery = FragmentQuery.Create(fromVariable, left); 311FragmentQuery rightFragmentQuery = FragmentQuery.Create(fromVariable, right);