// // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. // #nullable disable using System.Collections.Generic; namespace Microsoft.SqlTools.ServiceLayer.ExecutionPlan.Contracts { /// /// An ExecutionGraphComparisonResult is composed of an execution plan node, but has additional properties /// to keep track of matching ExecutionGraphComparisonResult nodes for execution plan nodes present in the /// the graph being compared against. This class also features a group index that can assist /// with coloring similar sections of execution plans in the UI. /// public class ExecutionGraphComparisonResult { /// /// The base ExecutionPlanNode for the ExecutionGraphComparisonResult. /// public ExecutionPlanNode BaseNode { get; set; } /// /// The children of the ExecutionGraphComparisonResult. /// public List Children { get; set; } = new List(); /// /// The group index of the ExecutionGraphComparisonResult. /// public int GroupIndex { get; set; } /// /// Flag to indicate if the ExecutionGraphComparisonResult has a matching node in the compared execution plan. /// public bool HasMatch { get; set; } /// /// List of matching nodes for the ExecutionGraphComparisonResult. /// public List MatchingNodesId { get; set; } = new List(); /// /// The parent of the ExecutionGraphComparisonResult. /// public ExecutionGraphComparisonResult ParentNode { get; set; } } }