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 WriteRowBufferEntry(PropertyListBuilder builder, string groupName, RowBufferEntry rowBufferColumn) { builder.Begin(groupName); builder.SetGroupValue(rowBufferColumn.Name); WriteRowBufferEntry(builder, rowBufferColumn); 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 <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(); }
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 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; }