//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
namespace Microsoft.SqlTools.ServiceLayer.ShowPlan.ShowPlanGraph
{
///
/// Builds hierarchy of Graph objects from SQL 2000 Actual ShowPlan Record Set
///
internal class ActualPlanDataReaderNodeBuilder : DataReaderNodeBuilder
{
#region Constructor
///
/// Constructs ActualPlanDataReaderNodeBuilder
///
public ActualPlanDataReaderNodeBuilder() : base()
{
}
#endregion
#region Overrides
protected override ShowPlanType ShowPlanType
{
get { return ShowPlanType.Actual; }
}
///
/// Gets index of Node Id in the recordset
///
protected override int NodeIdIndex
{
get { return 4; }
}
///
/// Gets index of Parent Id in the recordset
///
protected override int ParentIndex
{
get { return 5; }
}
///
/// Gets property names that correspond to values returned
/// in each ShowPlan row.
///
/// Array of property names
protected override string[] GetPropertyNames()
{
return propertyNames;
}
#endregion
#region Private members
private static string[] propertyNames = new string[]
{
NodeBuilderConstants.ActualRows, // Rows
NodeBuilderConstants.ActualExecutions, // Executes
NodeBuilderConstants.StatementText, // StmtText
null, // StmtId
NodeBuilderConstants.NodeId,
null, // Parent
NodeBuilderConstants.PhysicalOp,
NodeBuilderConstants.LogicalOp,
NodeBuilderConstants.Argument,
NodeBuilderConstants.DefinedValues,
NodeBuilderConstants.EstimateRows,
NodeBuilderConstants.EstimateIO,
NodeBuilderConstants.EstimateCPU,
NodeBuilderConstants.AvgRowSize,
NodeBuilderConstants.TotalSubtreeCost,
NodeBuilderConstants.OutputList,
NodeBuilderConstants.Warnings,
NodeBuilderConstants.StatementType, // Type
NodeBuilderConstants.Parallel,
null, // EstimateExecutions
};
#endregion
}
}