public override void SetCurrentAccess(Object groupByKey, int agentInstanceId, AggregationGroupByRollupLevel rollupLevel) { AggregationMethodPairRow row; if (rollupLevel.IsAggregationTop) { row = _aggregatorTopGroup; } else { row = _aggregatorsPerGroup[rollupLevel.AggregationOffset].Get(groupByKey); } if (row != null) { _currentAggregatorMethods = row.Methods; _currentAggregatorStates = row.States; } else { _currentAggregatorMethods = null; } if (_currentAggregatorMethods == null) { _currentAggregatorMethods = AggSvcGroupByUtil.NewAggregators(Aggregators); _currentAggregatorStates = AggSvcGroupByUtil.NewAccesses(agentInstanceId, _isJoin, _accessAggregations, groupByKey, null); } _currentGroupKey = groupByKey; }
public override void ApplyEnter(EventBean[] eventsPerStream, Object groupByKey, ExprEvaluatorContext exprEvaluatorContext) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggregationGroupedApplyEnterLeave(true, Aggregators.Length, AccessAggregations.Length, groupByKey); } AggregationRowPair groupAggregators = AggregatorsPerGroup.Get(groupByKey); // The aggregators for this group do not exist, need to create them from the prototypes AggregationState[] states; if (groupAggregators == null) { AggregationMethod[] methods = AggSvcGroupByUtil.NewAggregators(Aggregators); states = AggSvcGroupByUtil.NewAccesses(exprEvaluatorContext.AgentInstanceId, IsJoin, AccessAggregations, groupByKey, null); groupAggregators = new AggregationRowPair(methods, states); AggregatorsPerGroup.Put(groupByKey, groupAggregators); } var evaluateParams = new EvaluateParams(eventsPerStream, true, exprEvaluatorContext); // For this row, evaluate sub-expressions, enter result _currentAggregatorRow = groupAggregators; AggregationMethod[] groupAggMethods = groupAggregators.Methods; for (int i = 0; i < Evaluators.Length; i++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggNoAccessEnterLeave(true, i, groupAggMethods[i], Aggregators[i].AggregationExpression); } Object columnResult = Evaluators[i].Evaluate(evaluateParams); groupAggMethods[i].Enter(columnResult); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggNoAccessEnterLeave(true, i, groupAggMethods[i]); } } states = _currentAggregatorRow.States; for (int i = 0; i < states.Length; i++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggAccessEnterLeave(true, i, states[i], AccessAggregations[i].AggregationExpression); } states[i].ApplyEnter(eventsPerStream, exprEvaluatorContext); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggAccessEnterLeave(true, i, states[i]); } } InternalHandleUpdated(groupByKey, groupAggregators); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggregationGroupedApplyEnterLeave(true); } }
public override AggregationService MakeService(AgentInstanceContext agentInstanceContext, EngineImportService engineImportService, bool isSubquery, int?subqueryNumber) { AggregationState[] states = AggSvcGroupByUtil.NewAccesses( agentInstanceContext.AgentInstanceId, IsJoin, AccessAggregations, null, null); AggregationMethod[] aggregatorsAgentInstance = AggSvcGroupByUtil.NewAggregators( base.Aggregators); return(new AggSvcGroupAllMixedAccessImpl( Evaluators, aggregatorsAgentInstance, Accessors, states, base.Aggregators, AccessAggregations)); }
public override AggregationService MakeService(AgentInstanceContext agentInstanceContext, EngineImportService engineImportService, bool isSubquery, int?subqueryNumber) { AggregationState[] topStates = AggSvcGroupByUtil.NewAccesses( agentInstanceContext.AgentInstanceId, IsJoin, AccessAggregations, null, null); AggregationMethod[] topMethods = AggSvcGroupByUtil.NewAggregators( base.Aggregators); return(new AggSvcGroupByRefcountedWAccessRollupImpl( Evaluators, Aggregators, Accessors, AccessAggregations, IsJoin, GroupByRollupDesc, topMethods, topStates)); }
public override void SetCurrentAccess(Object groupByKey, int agentInstanceId, AggregationGroupByRollupLevel rollupLevel) { _currentAggregatorRow = _aggregatorsPerGroup.Get(groupByKey); _currentGroupKey = groupByKey; if (_currentAggregatorRow == null) { _currentAggregatorRow = AggSvcGroupByUtil.NewAggregators(Aggregators); _aggregatorsPerGroup.Put(groupByKey, _currentAggregatorRow); } }
public void ApplyLeave( EventBean[] eventsPerStream, object groupByKeyProvided, ExprEvaluatorContext exprEvaluatorContext) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggregationGroupedApplyEnterLeave(false, LocalGroupByPlan.NumMethods, LocalGroupByPlan.NumAccess, groupByKeyProvided); } if (LocalGroupByPlan.OptionalLevelTop != null) { if (AggregatorsTopLevel == null) { AggregatorsTopLevel = AggSvcGroupByUtil.NewAggregators(LocalGroupByPlan.OptionalLevelTop.MethodFactories); StatesTopLevel = AggSvcGroupByUtil.NewAccesses(exprEvaluatorContext.AgentInstanceId, IsJoin, LocalGroupByPlan.OptionalLevelTop.StateFactories, null, null); } AggregateIntoLeave( LocalGroupByPlan.OptionalLevelTop, AggregatorsTopLevel, StatesTopLevel, eventsPerStream, exprEvaluatorContext); InternalHandleUpdatedTop(); } for (var levelNum = 0; levelNum < LocalGroupByPlan.AllLevels.Length; levelNum++) { var level = LocalGroupByPlan.AllLevels[levelNum]; var partitionEval = level.PartitionEvaluators; var groupByKey = ComputeGroupKey( level, groupByKeyProvided, partitionEval, eventsPerStream, true, exprEvaluatorContext); var row = AggregatorsPerLevelAndGroup[levelNum].Get(groupByKey); if (row == null) { var rowAggregators = AggSvcGroupByUtil.NewAggregators(level.MethodFactories); AggregationState[] rowStates = AggSvcGroupByUtil.NewAccesses(exprEvaluatorContext.AgentInstanceId, IsJoin, level.StateFactories, groupByKey, null); row = new AggregationMethodPairRow(1, rowAggregators, rowStates); AggregatorsPerLevelAndGroup[levelNum].Put(groupByKey, row); } else { row.DecreaseRefcount(); if (row.Refcount <= 0) { RemovedKeys.Add(new Pair <int, object>(levelNum, groupByKey)); } } AggregateIntoLeave(level, row.Methods, row.States, eventsPerStream, exprEvaluatorContext); InternalHandleUpdatedGroup(levelNum, groupByKey, row); } if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggregationGroupedApplyEnterLeave(false); } }
private AggregationState[] GetAssertRow(int agentInstanceId, Object groupKey) { AggregationState[] row = _accessMap.Get(groupKey); if (row != null) { return(row); } row = AggSvcGroupByUtil.NewAccesses(agentInstanceId, _isJoin, _accessAggSpecs, groupKey, null); _accessMap.Put(groupKey, row); return(row); }
public override void ApplyLeave(EventBean[] eventsPerStream, Object groupByKey, ExprEvaluatorContext exprEvaluatorContext) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggregationGroupedApplyEnterLeave(false, Aggregators.Length, 0, groupByKey); } var row = _aggregatorsPerGroup.Get(groupByKey); // The aggregators for this group do not exist, need to create them from the prototypes AggregationMethod[] groupAggregators; if (row != null) { groupAggregators = row.Methods; } else { groupAggregators = AggSvcGroupByUtil.NewAggregators(Aggregators); row = new AggregationMethodRow(1, groupAggregators); _aggregatorsPerGroup[groupByKey] = row; } var evaluateParams = new EvaluateParams(eventsPerStream, false, exprEvaluatorContext); // For this row, evaluate sub-expressions, enter result _currentAggregatorRow = groupAggregators; var evaluators = Evaluators; var evaluatorsLength = evaluators.Length; for (var ii = 0; ii < evaluatorsLength; ii++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggNoAccessEnterLeave(false, ii, groupAggregators[ii], Aggregators[ii].AggregationExpression); } groupAggregators[ii].Leave(evaluators[ii].Evaluate(evaluateParams)); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggNoAccessEnterLeave(false, ii, groupAggregators[ii]); } } row.DecreaseRefcount(); if (row.Refcount <= 0) { _removedKeys.Add(groupByKey); } if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggregationGroupedApplyEnterLeave(false); } }
public override void SetCurrentAccess(Object groupByKey, int agentInstanceId, AggregationGroupByRollupLevel rollupLevel) { _currentAggregatorRow = AggregatorsPerGroup.Get(groupByKey); _currentGroupKey = groupByKey; if (_currentAggregatorRow == null) { AggregationMethod[] methods = AggSvcGroupByUtil.NewAggregators(Aggregators); AggregationState[] states = AggSvcGroupByUtil.NewAccesses(agentInstanceId, IsJoin, AccessAggregations, groupByKey, null); _currentAggregatorRow = new AggregationRowPair(methods, states); AggregatorsPerGroup.Put(groupByKey, _currentAggregatorRow); } }
public override void SetCurrentAccess(Object groupByKey, int agentInstanceId, AggregationGroupByRollupLevel rollupLevel) { var row = _aggregatorsPerGroup.Get(groupByKey); if (row != null) { _currentAggregatorRow = row.Methods; } else { _currentAggregatorRow = null; } if (_currentAggregatorRow == null) { _currentAggregatorRow = AggSvcGroupByUtil.NewAggregators(Aggregators); } _currentGroupKey = groupByKey; }
public override void ApplyLeave( EventBean[] eventsPerStream, Object groupByKey, ExprEvaluatorContext exprEvaluatorContext) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggregationGroupedApplyEnterLeave(false, Aggregators.Length, 0, groupByKey); } var groupAggregators = _aggregatorsPerGroup.Get(groupByKey); // The aggregators for this group do not exist, need to create them from the prototypes if (groupAggregators == null) { groupAggregators = AggSvcGroupByUtil.NewAggregators(Aggregators); _aggregatorsPerGroup.Put(groupByKey, groupAggregators); } var evaluateParams = new EvaluateParams(eventsPerStream, false, exprEvaluatorContext); // For this row, evaluate sub-expressions, enter result _currentAggregatorRow = groupAggregators; for (var i = 0; i < Evaluators.Length; i++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggNoAccessEnterLeave(false, i, groupAggregators[i], Aggregators[i].AggregationExpression); } var columnResult = Evaluators[i].Evaluate(evaluateParams); groupAggregators[i].Leave(columnResult); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggNoAccessEnterLeave(false, i, groupAggregators[i]); } } if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggregationGroupedApplyEnterLeave(false); } }
public override void SetCurrentAccess(Object groupByKey, int agentInstanceId, AggregationGroupByRollupLevel rollupLevel) { var row = AggregatorsPerGroup.Get(groupByKey); if (row != null) { _currentAggregatorMethods = row.Methods; _currentAggregatorStates = row.States; } else { _currentAggregatorMethods = null; } if (_currentAggregatorMethods == null) { _currentAggregatorMethods = AggSvcGroupByUtil.NewAggregators(Aggregators); _currentAggregatorStates = AggSvcGroupByUtil.NewAccesses(agentInstanceId, IsJoin, AccessAggregations, groupByKey, null); } _currentGroupKey = groupByKey; }
public override void SetCurrentAccess(object groupByKey, int agentInstanceId, AggregationGroupByRollupLevel rollupLevel) { if (!LocalGroupByPlan.AllLevels[0].IsDefaultLevel) { return; } var row = AggregatorsPerLevelAndGroup[0].Get(groupByKey); if (row != null) { _currentAggregatorMethods = row.Methods; _currentAggregatorStates = row.States; } else { _currentAggregatorMethods = null; } if (_currentAggregatorMethods == null) { _currentAggregatorMethods = AggSvcGroupByUtil.NewAggregators(LocalGroupByPlan.AllLevels[0].MethodFactories); _currentAggregatorStates = AggSvcGroupByUtil.NewAccesses(agentInstanceId, IsJoin, LocalGroupByPlan.AllLevels[0].StateFactories, groupByKey, null); } }
public override AggregationService MakeService(AgentInstanceContext agentInstanceContext, EngineImportService engineImportService, bool isSubquery, int?subqueryNumber) { AggregationMethod[] aggregatorsAgentInstance = AggSvcGroupByUtil.NewAggregators( base.Aggregators); return(new AggSvcGroupAllNoAccessImpl(Evaluators, aggregatorsAgentInstance, Aggregators)); }
public override void ApplyEnter(EventBean[] eventsPerStream, Object compositeGroupKey, ExprEvaluatorContext exprEvaluatorContext) { HandleRemovedKeys(); var evaluateParams = new EvaluateParams(eventsPerStream, true, exprEvaluatorContext); for (var i = 0; i < Evaluators.Length; i++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggregationGroupedRollupEvalParam(true, _methodParameterValues.Length); } _methodParameterValues[i] = Evaluators[i].Evaluate(evaluateParams); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggregationGroupedRollupEvalParam(_methodParameterValues[i]); } } var groupKeyPerLevel = (Object[])compositeGroupKey; for (var i = 0; i < groupKeyPerLevel.Length; i++) { var level = _rollupLevelDesc.Levels[i]; var groupKey = groupKeyPerLevel[i]; AggregationMethodPairRow row; if (!level.IsAggregationTop) { row = _aggregatorsPerGroup[level.AggregationOffset].Get(groupKey); } else { row = _aggregatorTopGroup; } if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggregationGroupedApplyEnterLeave(true, Aggregators.Length, _accessAggregations.Length, groupKey); } // The aggregators for this group do not exist, need to create them from the prototypes AggregationMethod[] groupAggregators; AggregationState[] groupStates; if (row == null) { groupAggregators = AggSvcGroupByUtil.NewAggregators(Aggregators); groupStates = AggSvcGroupByUtil.NewAccesses(exprEvaluatorContext.AgentInstanceId, _isJoin, _accessAggregations, groupKey, null); row = new AggregationMethodPairRow(1, groupAggregators, groupStates); if (!level.IsAggregationTop) { _aggregatorsPerGroup[level.AggregationOffset].Put(groupKey, row); } } else { groupAggregators = row.Methods; groupStates = row.States; row.IncreaseRefcount(); } // For this row, evaluate sub-expressions, enter result _currentAggregatorMethods = groupAggregators; _currentAggregatorStates = groupStates; for (var j = 0; j < Evaluators.Length; j++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggNoAccessEnterLeave(true, j, groupAggregators[j], Aggregators[j].AggregationExpression); } groupAggregators[j].Enter(_methodParameterValues[j]); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggNoAccessEnterLeave(true, j, groupAggregators[j]); } } for (var j = 0; j < _currentAggregatorStates.Length; j++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggAccessEnterLeave(true, j, _currentAggregatorStates[j], _accessAggregations[j].AggregationExpression); } _currentAggregatorStates[j].ApplyEnter(eventsPerStream, exprEvaluatorContext); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggAccessEnterLeave(true, j, _currentAggregatorStates[j]); } } InternalHandleGroupUpdate(groupKey, row, level); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggregationGroupedApplyEnterLeave(true); } } }
public override void ApplyLeave( EventBean[] eventsPerStream, Object groupByKey, ExprEvaluatorContext exprEvaluatorContext) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggregationGroupedApplyEnterLeave(false, base.Aggregators.Length, _accessAggregations.Length, groupByKey); } var row = _aggregatorsPerGroup.Get(groupByKey); var currentTime = exprEvaluatorContext.TimeProvider.Time; // The aggregators for this group do not exist, need to create them from the prototypes AggregationMethod[] groupAggregators; AggregationState[] groupStates; if (row != null) { groupAggregators = row.Methods; groupStates = row.States; } else { groupAggregators = AggSvcGroupByUtil.NewAggregators(base.Aggregators); groupStates = AggSvcGroupByUtil.NewAccesses( exprEvaluatorContext.AgentInstanceId, _isJoin, _accessAggregations, groupByKey, null); row = new AggregationMethodRowAged(1, currentTime, groupAggregators, groupStates); _aggregatorsPerGroup.Put(groupByKey, row); } // For this row, evaluate sub-expressions, enter result _currentAggregatorMethods = groupAggregators; _currentAggregatorStates = groupStates; var evaluateParams = new EvaluateParams(eventsPerStream, false, exprEvaluatorContext); for (var i = 0; i < base.Evaluators.Length; i++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggNoAccessEnterLeave(false, i, _currentAggregatorMethods[i], base.Aggregators[i].AggregationExpression); } var columnResult = base.Evaluators[i].Evaluate(evaluateParams); groupAggregators[i].Leave(columnResult); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggNoAccessEnterLeave(false, i, _currentAggregatorMethods[i]); } } for (var i = 0; i < _currentAggregatorStates.Length; i++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggAccessEnterLeave(false, i, _currentAggregatorStates[i], _accessAggregations[i].AggregationExpression); } _currentAggregatorStates[i].ApplyLeave(eventsPerStream, exprEvaluatorContext); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggAccessEnterLeave(false, i, _currentAggregatorStates[i]); } } row.DecreaseRefcount(); row.LastUpdateTime = currentTime; if (row.Refcount <= 0) { _removedKeys.Add(groupByKey); } InternalHandleUpdated(groupByKey, row); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggregationGroupedApplyEnterLeave(false); } }
public override void ApplyEnter( EventBean[] eventsPerStream, Object groupByKey, ExprEvaluatorContext exprEvaluatorContext) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggregationGroupedApplyEnterLeave(true, base.Aggregators.Length, _accessAggregations.Length, groupByKey); } var currentTime = exprEvaluatorContext.TimeProvider.Time; if ((_nextSweepTime == null) || (_nextSweepTime <= currentTime)) { _currentMaxAge = GetMaxAge(_currentMaxAge); _currentReclaimFrequency = GetReclaimFrequency(_currentReclaimFrequency); if ((ExecutionPathDebugLog.IsEnabled) && (Log.IsDebugEnabled)) { Log.Debug( "Reclaiming groups older then " + _currentMaxAge + " msec and every " + _currentReclaimFrequency + "msec in frequency"); } _nextSweepTime = currentTime + _currentReclaimFrequency; Sweep(currentTime, _currentMaxAge); } HandleRemovedKeys(); // we collect removed keys lazily on the next enter to reduce the chance of empty-group queries creating empty aggregators temporarily var row = _aggregatorsPerGroup.Get(groupByKey); // The aggregators for this group do not exist, need to create them from the prototypes AggregationMethod[] groupAggregators; AggregationState[] groupStates; if (row == null) { groupAggregators = AggSvcGroupByUtil.NewAggregators(base.Aggregators); groupStates = AggSvcGroupByUtil.NewAccesses( exprEvaluatorContext.AgentInstanceId, _isJoin, _accessAggregations, groupByKey, null); row = new AggregationMethodRowAged(1, currentTime, groupAggregators, groupStates); _aggregatorsPerGroup.Put(groupByKey, row); } else { groupAggregators = row.Methods; groupStates = row.States; row.IncreaseRefcount(); row.LastUpdateTime = currentTime; } // For this row, evaluate sub-expressions, enter result _currentAggregatorMethods = groupAggregators; _currentAggregatorStates = groupStates; var evaluateParams = new EvaluateParams(eventsPerStream, true, exprEvaluatorContext); for (var i = 0; i < base.Evaluators.Length; i++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggNoAccessEnterLeave(true, i, _currentAggregatorMethods[i], base.Aggregators[i].AggregationExpression); } var columnResult = base.Evaluators[i].Evaluate(evaluateParams); groupAggregators[i].Enter(columnResult); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggNoAccessEnterLeave(true, i, _currentAggregatorMethods[i]); } } for (var i = 0; i < _currentAggregatorStates.Length; i++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggAccessEnterLeave(true, i, _currentAggregatorStates[i], _accessAggregations[i].AggregationExpression); } _currentAggregatorStates[i].ApplyEnter(eventsPerStream, exprEvaluatorContext); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggAccessEnterLeave(true, i, _currentAggregatorStates[i]); } } InternalHandleUpdated(groupByKey, row); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggregationGroupedApplyEnterLeave(true); } }
public override void ApplyEnter(EventBean[] eventsPerStream, Object groupByKey, ExprEvaluatorContext exprEvaluatorContext) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggregationGroupedApplyEnterLeave(true, Aggregators.Length, AccessAggregations.Length, groupByKey); } HandleRemovedKeys(); var row = AggregatorsPerGroup.Get(groupByKey); // The aggregators for this group do not exist, need to create them from the prototypes AggregationMethod[] groupAggregators; AggregationState[] groupStates; if (row == null) { groupAggregators = AggSvcGroupByUtil.NewAggregators(Aggregators); groupStates = AggSvcGroupByUtil.NewAccesses(exprEvaluatorContext.AgentInstanceId, IsJoin, AccessAggregations, groupByKey, null); row = new AggregationMethodPairRow(1, groupAggregators, groupStates); AggregatorsPerGroup.Put(groupByKey, row); } else { groupAggregators = row.Methods; groupStates = row.States; row.IncreaseRefcount(); } var evaluateParams = new EvaluateParams(eventsPerStream, true, exprEvaluatorContext); // For this row, evaluate sub-expressions, enter result _currentAggregatorMethods = groupAggregators; _currentAggregatorStates = groupStates; for (var j = 0; j < Evaluators.Length; j++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggNoAccessEnterLeave(true, j, groupAggregators[j], Aggregators[j].AggregationExpression); } var columnResult = Evaluators[j].Evaluate(evaluateParams); groupAggregators[j].Enter(columnResult); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggNoAccessEnterLeave(true, j, groupAggregators[j]); } } for (var i = 0; i < _currentAggregatorStates.Length; i++) { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().QAggAccessEnterLeave(true, i, _currentAggregatorStates[i], AccessAggregations[i].AggregationExpression); } _currentAggregatorStates[i].ApplyEnter(eventsPerStream, exprEvaluatorContext); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggAccessEnterLeave(true, i, _currentAggregatorStates[i]); } } InternalHandleGroupUpdate(groupByKey, row); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.Get().AAggregationGroupedApplyEnterLeave(true); } }
public AggregationService MakeService(AgentInstanceContext agentInstanceContext, EngineImportService engineImportService, bool isSubquery, int?subqueryNumber) { AggregationState[] states = AggSvcGroupByUtil.NewAccesses(agentInstanceContext.AgentInstanceId, IsJoin, AccessAggSpecs, null, null); return(new AggSvcGroupAllAccessOnlyImpl(Accessors, states, AccessAggSpecs)); }