public static Pair<ResultSetProcessor, AggregationService> StartResultSetAndAggregation( ResultSetProcessorFactoryProvider resultSetProcessorPrototype, AgentInstanceContext agentInstanceContext, bool isSubquery, int? subqueryNumber) { AggregationService aggregationService = null; if (resultSetProcessorPrototype.AggregationServiceFactory != null) { aggregationService = resultSetProcessorPrototype.AggregationServiceFactory.MakeService( agentInstanceContext, null, isSubquery, subqueryNumber, null); } OrderByProcessor orderByProcessor = null; if (resultSetProcessorPrototype.OrderByProcessorFactory != null) { orderByProcessor = resultSetProcessorPrototype.OrderByProcessorFactory .Instantiate(agentInstanceContext); } var resultSetProcessor = resultSetProcessorPrototype.ResultSetProcessorFactory.Instantiate( orderByProcessor, aggregationService, agentInstanceContext); return new Pair<ResultSetProcessor, AggregationService>(resultSetProcessor, aggregationService); }
protected internal static ResultSetProcessor ProcessorWithAssign( ResultSetProcessorFactoryProvider processorProvider, AgentInstanceContext agentInstanceContext, FAFQueryMethodAssignerSetter assignerSetter, IDictionary<int, ExprTableEvalStrategyFactory> tableAccesses, IDictionary<int, SubSelectFactory> subselects) { // start table-access var tableAccessEvals = ExprTableEvalHelperStart.StartTableAccess(tableAccesses, agentInstanceContext); // get RSP var pair = StatementAgentInstanceFactoryUtil.StartResultSetAndAggregation( processorProvider, agentInstanceContext, false, null); // start subselects var subselectStopCallbacks = new List<AgentInstanceMgmtCallback>(2); IDictionary<int, SubSelectFactoryResult> subselectActivations = SubSelectHelperStart.StartSubselects( subselects, agentInstanceContext, subselectStopCallbacks, false); // assign assignerSetter.Assign( new StatementAIFactoryAssignmentsImpl( pair.Second, null, null, subselectActivations, tableAccessEvals, null)); return pair.First; }
protected internal static ResultSetProcessor ProcessorWithAssign( ResultSetProcessorFactoryProvider processorProvider, AgentInstanceContext agentInstanceContext, FAFQueryMethodAssignerSetter assignerSetter, IDictionary<int, ExprTableEvalStrategyFactory> tableAccesses) { // start table-access var tableAccessEvals = ExprTableEvalHelperStart.StartTableAccess(tableAccesses, agentInstanceContext); // get RSP var pair = StatementAgentInstanceFactoryUtil.StartResultSetAndAggregation( processorProvider, agentInstanceContext, false, null); // assign assignerSetter.Assign( new StatementAIFactoryAssignmentsImpl( pair.Second, null, null, Collections.GetEmptyMap<int, SubSelectFactoryResult>(), tableAccessEvals, null)); return pair.First; }
public InfraOnSelectViewFactory( EventType infraEventType, bool addToFront, bool isDistinct, EventPropertyValueGetter distinctKeyGetter, bool selectAndDelete, StreamSelector? optionalStreamSelector, Table optionalInsertIntoTable, bool insertInto, ResultSetProcessorFactoryProvider resultSetProcessorPrototype) : base(infraEventType) { IsAddToFront = addToFront; IsDistinct = isDistinct; DistinctKeyGetter = distinctKeyGetter; IsSelectAndDelete = selectAndDelete; OptionalStreamSelector = optionalStreamSelector; this.optionalInsertIntoTable = optionalInsertIntoTable; IsInsertInto = insertInto; this.resultSetProcessorPrototype = resultSetProcessorPrototype; }