public AggSvcGroupByWTableImpl( TableMetadata tableMetadata, TableColumnMethodPair[] methodPairs, AggregationAccessorSlotPair[] accessors, bool join, TableStateInstanceGroupBy tableStateInstance, int[] targetStates, ExprNode[] accessStateExpr, AggregationAgent[] agents) : base( tableMetadata, methodPairs, accessors, join, tableStateInstance, targetStates, accessStateExpr, agents) { }
public AggSvcGroupByWTableRollupMultiKeyImpl( TableMetadata tableMetadata, TableColumnMethodPair[] methodPairs, AggregationAccessorSlotPair[] accessors, bool join, TableStateInstanceGroupBy tableStateInstance, int[] targetStates, ExprNode[] accessStateExpr, AggregationAgent[] agents, AggregationGroupByRollupDesc groupByRollupDesc) : base(tableMetadata, methodPairs, accessors, join, tableStateInstance, targetStates, accessStateExpr, agents) { this.groupByRollupDesc = groupByRollupDesc; }
protected AggSvcGroupByWTableBase( TableMetadata tableMetadata, TableColumnMethodPair[] methodPairs, AggregationAccessorSlotPair[] accessors, bool join, TableStateInstanceGroupBy tableStateInstance, int[] targetStates, ExprNode[] accessStateExpr, AggregationAgent[] agents) { TableMetadata = tableMetadata; MethodPairs = methodPairs; Accessors = accessors; IsJoin = join; TableStateInstance = tableStateInstance; TargetStates = targetStates; AccessStateExpr = accessStateExpr; _agents = agents; }
private static ExprTableAccessEvalStrategy GetTableAccessSubprop(ILockable @lock, ExprTableAccessNodeSubprop subprop, TableMetadataColumn column, TableStateInstanceGroupBy grouped, TableStateInstanceUngrouped ungrouped) { if (column is TableMetadataColumnPlain) { var plain = (TableMetadataColumnPlain)column; if (ungrouped != null) { return(new ExprTableEvalStrategyUngroupedProp(@lock, ungrouped.EventReference, plain.IndexPlain, subprop.OptionalPropertyEnumEvaluator)); } if (subprop.GroupKeyEvaluators.Length > 1) { return(new ExprTableEvalStrategyGroupByPropMulti(@lock, grouped.Rows, plain.IndexPlain, subprop.OptionalPropertyEnumEvaluator, subprop.GroupKeyEvaluators)); } return(new ExprTableEvalStrategyGroupByPropSingle(@lock, grouped.Rows, plain.IndexPlain, subprop.OptionalPropertyEnumEvaluator, subprop.GroupKeyEvaluators[0])); } var aggcol = (TableMetadataColumnAggregation)column; if (ungrouped != null) { if (!aggcol.Factory.IsAccessAggregation) { return(new ExprTableEvalStrategyUngroupedMethod(@lock, ungrouped.EventReference, aggcol.MethodOffset)); } var pair = aggcol.AccessAccessorSlotPair; return(new ExprTableEvalStrategyUngroupedAccess(@lock, ungrouped.EventReference, pair.Slot, pair.Accessor)); } var columnAggregation = (TableMetadataColumnAggregation)column; if (!columnAggregation.Factory.IsAccessAggregation) { if (subprop.GroupKeyEvaluators.Length > 1) { return(new ExprTableEvalStrategyGroupByMethodMulti(@lock, grouped.Rows, columnAggregation.MethodOffset, subprop.GroupKeyEvaluators)); } return(new ExprTableEvalStrategyGroupByMethodSingle(@lock, grouped.Rows, columnAggregation.MethodOffset, subprop.GroupKeyEvaluators[0])); } if (subprop.GroupKeyEvaluators.Length > 1) { return(new ExprTableEvalStrategyGroupByAccessMulti(@lock, grouped.Rows, columnAggregation.AccessAccessorSlotPair, subprop.GroupKeyEvaluators)); } return(new ExprTableEvalStrategyGroupByAccessSingle(@lock, grouped.Rows, columnAggregation.AccessAccessorSlotPair, subprop.GroupKeyEvaluators[0])); }