System\Data\Query\PlanCompiler\JoinGraph.cs (47)
410get { return this.Left.IsEliminated || this.Right.IsEliminated; }
787if (joinEdge.Right.Table.Equals(rightVar.Table))
994PlanCompiler.Assert(edge1.Right == edge2.Left, "need a common table for transitive predicate generation");
997if (edge2.Right == edge1.Left)
1010(edge1.Left != edge1.Right || edge2.Left != edge2.Right))
1026if (edge3.Right == edge2.Right)
1075JoinEdge newEdge = JoinEdge.CreateTransitiveJoinEdge(edge1.Left, edge2.Right, edge1.JoinKind,
1080JoinEdge reverseEdge = JoinEdge.CreateTransitiveJoinEdge(edge2.Right, edge1.Left, edge1.JoinKind,
1082edge2.Right.JoinEdges.Add(reverseEdge);
1146if (!ContainsJoinEdgeForTable(joinEdge.Right.JoinEdges, joinEdge.Left.Table))
1149JoinEdge newJoinEdge = JoinEdge.CreateJoinEdge(joinEdge.Right, joinEdge.Left, augmentedJoinNode, joinEdge.RightVars[0], joinEdge.LeftVars[0]);
1150joinEdge.Right.JoinEdges.Add(newJoinEdge);
1205if (joinEdge.Right.Table.Equals(table))
1247return AreAllTableRowsPreserved(rightNode, joinEdge.Right) && IsConstraintPresentForTurningIntoInnerJoin(joinEdge);
1267if (m_constraintManager.IsParentChildRelationship(joinEdge.Right.Table.TableMetadata.Extent, joinEdge.Left.Table.TableMetadata.Extent, out fkConstraints))
1309AugmentedTableNode rightTable = e1.Right;
1373AugmentedNode leastCommonAncestor = GetLeastCommonAncestor(tableJoinEdge.Right, replacingTableJoinEdge.Right);
1392AugmentedNode currentNode = joinEdge.Right;
1648if (smallestEdge.Right.Id > joinEdge.Right.Id)
1663EliminateSelfJoinedTable(joinEdge.Right, smallestEdge.Right);
1716VarVec keyVars = m_command.CreateVarVec(joinEdge.Right.Table.Keys);
1753if (!groupedEdges.TryGetValue(joinEdge.Right.Table.TableMetadata.Extent, out edges))
1756groupedEdges[joinEdge.Right.Table.TableMetadata.Extent] = edges;
1789if (!joinEdge.Left.Table.TableMetadata.Extent.Equals(joinEdge.Right.Table.TableMetadata.Extent))
1824if (!CanBeEliminatedBasedOnLojParticipation(joinEdge.Right, joinEdge.Left))
1832EliminateSelfJoinedTable(joinEdge.Right, joinEdge.Left);
1907MarkTableAsEliminated<ColumnVar>(joinEdge.Left, joinEdge.Right, joinEdge.LeftVars, joinEdge.RightVars);
1912if (joinEdge.Right.NullableColumns == null)
1914joinEdge.Right.NullableColumns = m_command.CreateVarVec();
1924joinEdge.Right.NullableColumns.Set(v);
1936PlanCompiler.Assert(joinEdge.Left.Id < joinEdge.Right.Id,
1937"(left-id, right-id) = (" + joinEdge.Left.Id + "," + joinEdge.Right.Id + ")");
1938MarkTableAsEliminated<ColumnVar>(joinEdge.Right, joinEdge.Left, joinEdge.RightVars, joinEdge.LeftVars);
1970foreach (var key in joinEdge.Right.Table.Keys)
1977keys = joinEdge.Right.Table.Keys.Clone();
1986keys = joinEdge.Right.Table.Keys;
1989return m_varRefManager.HasKeyReferences(keys, joinEdge.Right.Node, joinEdge.JoinNode.Node);
2024if (!CanBeEliminatedBasedOnLojParticipation(joinEdge.Right, joinEdge.Left))
2173if (HasNonKeyReferences(joinEdge.Right.Table))
2183if (!CanBeEliminatedBasedOnLojParticipation(joinEdge.Right, joinEdge.Left))
2203if (m_constraintManager.IsParentChildRelationship(joinEdge.Left.Table.TableMetadata.Extent, joinEdge.Right.Table.TableMetadata.Extent,
2223if (m_constraintManager.IsParentChildRelationship(joinEdge.Right.Table.TableMetadata.Extent, joinEdge.Left.Table.TableMetadata.Extent,