public AggSvcGroupAllMixedAccessWTableImpl(TableStateInstanceUngrouped tableStateInstance, TableColumnMethodPair[] methodPairs, AggregationAccessorSlotPair[] accessors, int[] targetStates, ExprNode[] accessStateExpr, AggregationAgent[] agents) { _tableStateInstance = tableStateInstance; _methodPairs = methodPairs; _accessors = accessors; _targetStates = targetStates; _accessStateExpr = accessStateExpr; _agents = agents; }
public TableAndLockUngrouped(ILockable ilock, TableStateInstanceUngrouped ungrouped) { Lock = ilock; Ungrouped = ungrouped; }
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])); }