private static void AddDefinedValues(PropertyListBuilder builder, IEnumerable <UnitedValueDefinition> definedValues) { builder.Begin(Resources.ShowPlanGroupDefinedValues); foreach (UnitedValueDefinition definedValue in definedValues) { builder.Begin(definedValue.Target.Name); StringBuilder sb = new StringBuilder(); foreach (RowBufferEntry dependendValue in definedValue.DependendEntries) { builder.Begin(); builder.SetGroupValue(dependendValue.Name); WriteRowBufferEntry(builder, dependendValue); builder.End(); if (sb.Length > 0) { sb.Append("; "); } sb.Append(dependendValue.Name); } builder.SetGroupValue(sb.ToString()); builder.End(); } builder.End(); }
public override AlgebraNode VisitResultAlgebraNode(ResultAlgebraNode node) { ShowPlanElement inputElement = ConvertNode(node.Input); PropertyListBuilder propertyListBuilder = new PropertyListBuilder(); propertyListBuilder.Begin(Resources.ShowPlanGroupOutputList); for (int i = 0; i < node.OutputList.Length; i++) { propertyListBuilder.Begin(); propertyListBuilder.SetGroupValue(String.Format(CultureInfo.InvariantCulture, "{0} AS {1}", node.OutputList[i].Name, node.ColumnNames[i])); WriteRowBufferEntry(propertyListBuilder, node.OutputList[i]); propertyListBuilder.Write(Resources.ShowPlanKeyOutputName, node.ColumnNames[i]); propertyListBuilder.End(); } propertyListBuilder.End(); IList <ShowPlanProperty> properties = propertyListBuilder.ToList(); ShowPlanElement element = new ShowPlanElement(ShowPlanOperator.Select, properties, inputElement); _currentElement = element; return(node); }
private static void AddRowBufferEntries(PropertyListBuilder builder, string groupName, IEnumerable <RowBufferEntry> rowBufferColumns) { builder.Begin(groupName); foreach (RowBufferEntry rowBufferColumn in rowBufferColumns) { builder.Begin(); builder.SetGroupValue(rowBufferColumn.Name); WriteRowBufferEntry(builder, rowBufferColumn); builder.End(); } builder.End(); }
private static void AddDefinedValues(PropertyListBuilder builder, IEnumerable <ComputedValueDefinition> definedValues) { builder.Begin(Resources.ShowPlanGroupDefinedValues); foreach (ComputedValueDefinition definedValue in definedValues) { string sourceExpression = definedValue.Expression.GenerateSource(); builder.Begin(); builder.SetGroupValue(String.Format(CultureInfo.InvariantCulture, "{0} = {1}", definedValue.Target.Name, sourceExpression)); builder.Write(Resources.ShowPlanKeyTarget, definedValue.Target.Name); builder.Write(Resources.ShowPlanKeyDataType, definedValue.Target.DataType.Name); builder.Write(Resources.ShowPlanKeySource, sourceExpression); builder.End(); } builder.End(); }
private static void WriteRowBufferEntry(PropertyListBuilder builder, string groupName, RowBufferEntry rowBufferColumn) { builder.Begin(groupName); builder.SetGroupValue(rowBufferColumn.Name); WriteRowBufferEntry(builder, rowBufferColumn); builder.End(); }
public override AlgebraNode VisitSortAlgebraNode(SortAlgebraNode node) { ShowPlanElement inputElement = ConvertNode(node.Input); PropertyListBuilder propertyListBuilder = new PropertyListBuilder(); AddRowBufferEntries(propertyListBuilder, Resources.ShowPlanGroupOutputList, node.OutputList); AddStatistics(propertyListBuilder, node.StatisticsIterator); if (node.Distinct) { propertyListBuilder.Write(Resources.ShowPlanKeyLogicalOperator, Resources.ShowPlanLogicalOperatorDistinctSort); } else { propertyListBuilder.Write(Resources.ShowPlanKeyLogicalOperator, Resources.ShowPlanLogicalOperatorSort); } propertyListBuilder.Begin(Resources.ShowPlanGroupOrderBy); for (int i = 0; i < node.SortEntries.Length; i++) { string sortOrder = SortOrderToString(node.SortOrders[i]); propertyListBuilder.Begin(); propertyListBuilder.SetGroupValue(String.Format(CultureInfo.InvariantCulture, "{0} {1}", node.SortEntries[i].Name, sortOrder)); WriteRowBufferEntry(propertyListBuilder, node.SortEntries[i]); propertyListBuilder.Write(Resources.ShowPlanKeyOrder, sortOrder); propertyListBuilder.End(); } propertyListBuilder.End(); IList <ShowPlanProperty> properties = propertyListBuilder.ToList(); ShowPlanElement element = new ShowPlanElement(ShowPlanOperator.Sort, properties, inputElement); _currentElement = element; return(node); }
private static void AddStatistics(PropertyListBuilder builder, StatisticsIterator iterator) { if (iterator != null) { int openCount = iterator.OpenCount; int rowCount = iterator.RowCount; int avgRowCount = (openCount == 0) ? 0 : (int)Math.Round(rowCount / (double)openCount, 0); builder.Begin(Resources.ShowPlanGroupStatistics); builder.Write(Resources.ShowPlanKeyStatisticsOpenCount, openCount.ToString("N0", CultureInfo.InvariantCulture)); builder.Write(Resources.ShowPlanKeyStatisticsRowCount, rowCount.ToString("N0", CultureInfo.InvariantCulture)); builder.Write(Resources.ShowPlanKeyStatisticsAverageRowCount, avgRowCount.ToString("N0", CultureInfo.InvariantCulture)); builder.End(); } }
private static void AddStatistics(PropertyListBuilder builder, StatisticsIterator iterator) { if (iterator != null) { int openCount = iterator.OpenCount; int rowCount = iterator.RowCount; int avgRowCount = (openCount == 0) ? 0 : (int) Math.Round(rowCount /(double)openCount, 0); builder.Begin(Resources.ShowPlanGroupStatistics); builder.Write(Resources.ShowPlanKeyStatisticsOpenCount, openCount.ToString("N0", CultureInfo.InvariantCulture)); builder.Write(Resources.ShowPlanKeyStatisticsRowCount, rowCount.ToString("N0", CultureInfo.InvariantCulture)); builder.Write(Resources.ShowPlanKeyStatisticsAverageRowCount, avgRowCount.ToString("N0", CultureInfo.InvariantCulture)); builder.End(); } }
private static void AddRowBufferEntries(PropertyListBuilder builder, string groupName, IEnumerable<RowBufferEntry> rowBufferColumns) { builder.Begin(groupName); foreach (RowBufferEntry rowBufferColumn in rowBufferColumns) { builder.Begin(); builder.SetGroupValue(rowBufferColumn.Name); WriteRowBufferEntry(builder, rowBufferColumn); builder.End(); } builder.End(); }
private static void AddDefinedValues(PropertyListBuilder builder, IEnumerable<AggregatedValueDefinition> definedValues) { builder.Begin(Resources.ShowPlanGroupDefinedValues); foreach (AggregatedValueDefinition definedValue in definedValues) { string source = String.Format(CultureInfo.InvariantCulture, "{0}({1})", definedValue.Aggregate.Name, definedValue.Argument.GenerateSource()); builder.Begin(); builder.SetGroupValue(String.Format(CultureInfo.InvariantCulture, "{0} = {1}", definedValue.Target.Name, source)); builder.Write(Resources.ShowPlanKeyTarget, definedValue.Target.Name); builder.Write(Resources.ShowPlanKeyDataType, definedValue.Target.DataType.Name); builder.Write(Resources.ShowPlanKeySource, source); builder.End(); } builder.End(); }
private static void AddDefinedValues(PropertyListBuilder builder, IEnumerable<UnitedValueDefinition> definedValues) { builder.Begin(Resources.ShowPlanGroupDefinedValues); foreach (UnitedValueDefinition definedValue in definedValues) { builder.Begin(definedValue.Target.Name); StringBuilder sb = new StringBuilder(); foreach (RowBufferEntry dependendValue in definedValue.DependendEntries) { builder.Begin(); builder.SetGroupValue(dependendValue.Name); WriteRowBufferEntry(builder, dependendValue); builder.End(); if (sb.Length > 0) sb.Append("; "); sb.Append(dependendValue.Name); } builder.SetGroupValue(sb.ToString()); builder.End(); } builder.End(); }
public override AlgebraNode VisitSortAlgebraNode(SortAlgebraNode node) { ShowPlanElement inputElement = ConvertNode(node.Input); PropertyListBuilder propertyListBuilder = new PropertyListBuilder(); AddRowBufferEntries(propertyListBuilder, Resources.ShowPlanGroupOutputList, node.OutputList); AddStatistics(propertyListBuilder, node.StatisticsIterator); if (node.Distinct) propertyListBuilder.Write(Resources.ShowPlanKeyLogicalOperator, Resources.ShowPlanLogicalOperatorDistinctSort); else propertyListBuilder.Write(Resources.ShowPlanKeyLogicalOperator, Resources.ShowPlanLogicalOperatorSort); propertyListBuilder.Begin(Resources.ShowPlanGroupOrderBy); for (int i = 0; i < node.SortEntries.Length; i++) { string sortOrder = SortOrderToString(node.SortOrders[i]); propertyListBuilder.Begin(); propertyListBuilder.SetGroupValue(String.Format(CultureInfo.InvariantCulture, "{0} {1}", node.SortEntries[i].Name, sortOrder)); WriteRowBufferEntry(propertyListBuilder, node.SortEntries[i]); propertyListBuilder.Write(Resources.ShowPlanKeyOrder, sortOrder); propertyListBuilder.End(); } propertyListBuilder.End(); IList<ShowPlanProperty> properties = propertyListBuilder.ToList(); ShowPlanElement element = new ShowPlanElement(ShowPlanOperator.Sort, properties, inputElement); _currentElement = element; return node; }
public override AlgebraNode VisitResultAlgebraNode(ResultAlgebraNode node) { ShowPlanElement inputElement = ConvertNode(node.Input); PropertyListBuilder propertyListBuilder = new PropertyListBuilder(); propertyListBuilder.Begin(Resources.ShowPlanGroupOutputList); for (int i = 0; i < node.OutputList.Length; i++) { propertyListBuilder.Begin(); propertyListBuilder.SetGroupValue(String.Format(CultureInfo.InvariantCulture, "{0} AS {1}", node.OutputList[i].Name, node.ColumnNames[i])); WriteRowBufferEntry(propertyListBuilder, node.OutputList[i]); propertyListBuilder.Write(Resources.ShowPlanKeyOutputName, node.ColumnNames[i]); propertyListBuilder.End(); } propertyListBuilder.End(); IList<ShowPlanProperty> properties = propertyListBuilder.ToList(); ShowPlanElement element = new ShowPlanElement(ShowPlanOperator.Select, properties, inputElement); _currentElement = element; return node; }