Adding node overlays to execution plans (#1451)

* Adding node overlays to execution plans

* Adding critical warnings and parallelism

* adding critical warning, badge type enum

* Renaming badge type class

* Adding explicit values to Badge Type
This commit is contained in:
Aasim Khan
2022-04-08 15:20:54 -07:00
committed by GitHub
parent 1ce3647565
commit 454e4a4671
7 changed files with 104 additions and 2 deletions

View File

@@ -46,11 +46,46 @@ namespace Microsoft.SqlTools.ServiceLayer.ExecutionPlan
Properties = GetProperties(currentNode.Properties),
Children = currentNode.Children.Select(x => ConvertShowPlanTreeToExecutionPlanTree(x)).ToList(),
Edges = currentNode.Edges.Select(x => ConvertShowPlanEdgeToExecutionPlanEdge(x)).ToList(),
Badges = GenerateNodeOverlay(currentNode),
Name = currentNode.DisplayName,
ElapsedTimeInMs = currentNode.ElapsedTimeInMs
};
}
public static List<Badge> GenerateNodeOverlay(Node currentNode)
{
List<Badge> overlays = new List<Badge>();
if (currentNode.HasWarnings)
{
if (currentNode.HasCriticalWarnings)
{
overlays.Add(new Badge
{
Type = BadgeType.CRITICALWARNING,
Tooltip = SR.WarningOverlayTooltip
});
}
else
{
overlays.Add(new Badge
{
Type = BadgeType.WARNING,
Tooltip = SR.WarningOverlayTooltip
});
}
}
if (currentNode.IsParallel)
{
overlays.Add(new Badge
{
Type = BadgeType.PARALLELISM,
Tooltip = SR.ParallelismOverlayTooltip
});
}
return overlays;
}
public static ExecutionPlanEdges ConvertShowPlanEdgeToExecutionPlanEdge(Edge edge)
{
return new ExecutionPlanEdges