/// <summary> /// Ctor. /// </summary> /// <param name="evaluators">evaluate the sub-expression within the aggregate function (ie. sum(4*myNum))</param> /// <param name="prototypes">collect the aggregation state that evaluators evaluate to, act as prototypes for new aggregationsaggregation states for each group</param> /// <param name="reclaimGroupAged">hint to reclaim</param> /// <param name="reclaimGroupFrequency">hint to reclaim</param> /// <param name="variableService">variables</param> /// <param name="accessors">accessor definitions</param> /// <param name="accessAggregations">access aggs</param> /// <param name="isJoin">true for join, false for single-stream</param> /// <param name="optionalContextName">Name of the optional context.</param> /// <exception cref="ExprValidationException">Required hint value for hint ' + HintEnum.RECLAIM_GROUP_AGED + ' has not been provided</exception> /// <throws><seealso cref="ExprValidationException" /> when validation fails</throws> public AggSvcGroupByReclaimAgedFactory(ExprEvaluator[] evaluators, AggregationMethodFactory[] prototypes, HintAttribute reclaimGroupAged, HintAttribute reclaimGroupFrequency, VariableService variableService, AggregationAccessorSlotPair[] accessors, AggregationStateFactory[] accessAggregations, bool isJoin, string optionalContextName) : base(evaluators, prototypes) { Accessors = accessors; AccessAggregations = accessAggregations; IsJoin = isJoin; String hintValueMaxAge = HintEnum.RECLAIM_GROUP_AGED.GetHintAssignedValue(reclaimGroupAged); if (hintValueMaxAge == null) { throw new ExprValidationException("Required hint value for hint '" + HintEnum.RECLAIM_GROUP_AGED + "' has not been provided"); } EvaluationFunctionMaxAge = GetEvaluationFunction(variableService, hintValueMaxAge, optionalContextName); String hintValueFrequency = HintEnum.RECLAIM_GROUP_FREQ.GetHintAssignedValue(reclaimGroupAged); if ((reclaimGroupFrequency == null) || (hintValueFrequency == null)) { EvaluationFunctionFrequency = EvaluationFunctionMaxAge; } else { EvaluationFunctionFrequency = GetEvaluationFunction(variableService, hintValueFrequency, optionalContextName); } }
public AggregationServiceFactory GroupBy( AggregationServiceFactory nonHAFactory, AggregationRowFactory rowFactory, AggregationUseFlags useFlags, DataInputOutputSerdeWCollation<AggregationRow> serde, Type[] groupByTypes, AggSvcGroupByReclaimAgedEvalFuncFactory reclaimMaxAge, AggSvcGroupByReclaimAgedEvalFuncFactory reclaimFreq, TimeAbacus timeAbacus) { return nonHAFactory; }