diff --git a/src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/Contracts/ExecutionGraphComparisonResult.cs b/src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/Contracts/ExecutionGraphComparisonResult.cs index 57a54d62..3b947acd 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/Contracts/ExecutionGraphComparisonResult.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/Contracts/ExecutionGraphComparisonResult.cs @@ -34,7 +34,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ExecutionPlan.Contracts /// /// List of matching nodes for the ExecutionGraphComparisonResult. /// - public List MatchingNodes { get; set; } = new List(); + public List MatchingNodesId { get; set; } = new List(); /// /// The parent of the ExecutionGraphComparisonResult. /// diff --git a/src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/ExecutionPlanGraphUtils.cs b/src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/ExecutionPlanGraphUtils.cs index 56271d77..e11f2da3 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/ExecutionPlanGraphUtils.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/ExecutionPlanGraphUtils.cs @@ -197,12 +197,10 @@ GO { var curNode = queue.Dequeue(); - for (int index = 0; index < curNode.MatchingNodes.Count; ++index) + for (int index = 0; index < curNode.MatchingNodesId.Count; ++index) { - var matchingId = curNode.MatchingNodes[index].BaseNode.ID; - var matchingNode = srcGraphLookupTable[matchingId]; - - curNode.MatchingNodes[index] = matchingNode; + var matchingId = curNode.MatchingNodesId[index]; + curNode.MatchingNodesId[index] = matchingId; } foreach (var child in curNode.Children) diff --git a/src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/ShowPlan/Comparison/SkeletonNode.cs b/src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/ShowPlan/Comparison/SkeletonNode.cs index 7d8a7850..9fd38a18 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/ShowPlan/Comparison/SkeletonNode.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/ShowPlan/Comparison/SkeletonNode.cs @@ -99,12 +99,9 @@ namespace Microsoft.SqlTools.ServiceLayer.ExecutionPlan.ShowPlan.Comparison curNodeDTO.BaseNode = ExecutionPlanGraphUtils.ConvertShowPlanTreeToExecutionPlanTree(curNode.BaseNode); curNodeDTO.GroupIndex = curNode.GroupIndex; curNodeDTO.HasMatch = curNode.HasMatch; - curNodeDTO.MatchingNodes = curNode.MatchingNodes.Select(matchingNode => + curNodeDTO.MatchingNodesId = curNode.MatchingNodes.Select(matchingNode => { - var skeletonNodeDTO = new Contracts.ExecutionGraphComparisonResult(); - skeletonNodeDTO.BaseNode = ExecutionPlanGraphUtils.ConvertShowPlanTreeToExecutionPlanTree(matchingNode.BaseNode); - - return skeletonNodeDTO; + return matchingNode.BaseNode.ID; }).ToList(); foreach (var child in curNode.Children) @@ -112,7 +109,6 @@ namespace Microsoft.SqlTools.ServiceLayer.ExecutionPlan.ShowPlan.Comparison queue.Enqueue(child); var childDTO = new Contracts.ExecutionGraphComparisonResult(); - childDTO.ParentNode = curNodeDTO; curNodeDTO.Children.Add(childDTO); dtoQueue.Enqueue(childDTO); }