public EPStatementStartMethodSelectDesc( StatementAgentInstanceFactorySelect statementAgentInstanceFactorySelect, SubSelectStrategyCollection subSelectStrategyCollection, ViewResourceDelegateUnverified viewResourceDelegateUnverified, ResultSetProcessorFactoryDesc resultSetProcessorPrototypeDesc, EPStatementStopMethod stopMethod, EPStatementDestroyCallbackList destroyCallbacks) { StatementAgentInstanceFactorySelect = statementAgentInstanceFactorySelect; SubSelectStrategyCollection = subSelectStrategyCollection; ViewResourceDelegateUnverified = viewResourceDelegateUnverified; ResultSetProcessorPrototypeDesc = resultSetProcessorPrototypeDesc; StopMethod = stopMethod; DestroyCallbacks = destroyCallbacks; }
public override OnExprViewResult DetermineOnExprView( AgentInstanceContext agentInstanceContext, IList <StopCallback> stopCallbacks, bool isRecoveringReslient) { var processors = new ResultSetProcessor[_items.Length]; for (int i = 0; i < processors.Length; i++) { ResultSetProcessorFactoryDesc factory = _items[i].FactoryDesc; ResultSetProcessor processor = factory.ResultSetProcessorFactory.Instantiate( null, null, agentInstanceContext); processors[i] = processor; } var tableStateInstances = new TableStateInstance[processors.Length]; for (int i = 0; i < _items.Length; i++) { string tableName = _items[i].InsertIntoTableNames; if (tableName != null) { tableStateInstances[i] = agentInstanceContext.StatementContext.TableService.GetState( tableName, agentInstanceContext.AgentInstanceId); } } var whereClauseEvals = new ExprEvaluator[_items.Length]; for (int i = 0; i < _items.Length; i++) { whereClauseEvals[i] = _items[i].WhereClause == null ? null : _items[i].WhereClause.ExprEvaluator; } var desc = (OnTriggerSplitStreamDesc)base.StatementSpec.OnTriggerDesc; var view = new RouteResultView( desc.IsFirst, _activatorResultEventType, base.StatementContext.EpStatementHandle, base.Services.InternalEventRouter, tableStateInstances, _items, processors, whereClauseEvals, agentInstanceContext); return(new OnExprViewResult(view, null)); }
public static ResultSetProcessor GetAssignResultSetProcessor( AgentInstanceContext agentInstanceContext, ResultSetProcessorFactoryDesc resultSetProcessorPrototype, bool isSubquery, int? subqueryNumber, bool isFireAndForget) { AggregationService aggregationService = null; if (resultSetProcessorPrototype.AggregationServiceFactoryDesc != null) { aggregationService = resultSetProcessorPrototype.AggregationServiceFactoryDesc.AggregationServiceFactory.MakeService( agentInstanceContext, agentInstanceContext.StatementContext.EngineImportService, isSubquery, subqueryNumber); } OrderByProcessor orderByProcessor = null; if (resultSetProcessorPrototype.OrderByProcessorFactory != null) { orderByProcessor = resultSetProcessorPrototype.OrderByProcessorFactory.Instantiate( aggregationService, agentInstanceContext); } var processor = resultSetProcessorPrototype.ResultSetProcessorFactory.Instantiate( orderByProcessor, aggregationService, agentInstanceContext); // initialize aggregation expression nodes if (resultSetProcessorPrototype.AggregationServiceFactoryDesc != null) { foreach (var aggregation in resultSetProcessorPrototype.AggregationServiceFactoryDesc.Expressions) { aggregation.AssignFuture(aggregationService); } } return processor; }
public StatementAgentInstanceFactoryOnTriggerNamedWindow(StatementContext statementContext, StatementSpecCompiled statementSpec, EPServicesContext services, ViewableActivator activator, SubSelectStrategyCollection subSelectStrategyCollection, ResultSetProcessorFactoryDesc resultSetProcessorPrototype, ExprNode validatedJoin, ResultSetProcessorFactoryDesc outputResultSetProcessorPrototype, NamedWindowOnExprFactory onExprFactory, OutputProcessViewFactory outputProcessViewFactory, EventType activatorResultEventType, NamedWindowProcessor processor, IList <StopCallback> stopCallbacks) : base(statementContext, statementSpec, services, activator, subSelectStrategyCollection) { _resultSetProcessorPrototype = resultSetProcessorPrototype; _outputResultSetProcessorPrototype = outputResultSetProcessorPrototype; _onExprFactory = onExprFactory; _outputProcessViewFactory = outputProcessViewFactory; _processor = processor; IndexHintPair pair = GetIndexHintPair(statementContext, statementSpec); IndexHint indexHint = pair.IndexHint; ExcludePlanHint excludePlanHint = pair.ExcludePlanHint; _queryPlan = SubordinateQueryPlanner.PlanOnExpression( validatedJoin, activatorResultEventType, indexHint, processor.IsEnableSubqueryIndexShare, -1, excludePlanHint, processor.IsVirtualDataWindow, processor.EventTableIndexMetadataRepo, processor.NamedWindowType, processor.OptionalUniqueKeyProps, false, statementContext.StatementName, statementContext.StatementId, statementContext.Annotations); if (_queryPlan.IndexDescs != null) { SubordinateQueryPlannerUtil.AddIndexMetaAndRef(_queryPlan.IndexDescs, processor.EventTableIndexMetadataRepo, statementContext.StatementName); stopCallbacks.Add(new ProxyStopCallback(() => { for (int i = 0; i < _queryPlan.IndexDescs.Length; i++) { bool last = processor.EventTableIndexMetadataRepo.RemoveIndexReference(_queryPlan.IndexDescs[i].IndexMultiKey, statementContext.StatementName); if (last) { processor.EventTableIndexMetadataRepo.RemoveIndex(_queryPlan.IndexDescs[i].IndexMultiKey); processor.RemoveAllInstanceIndexes(_queryPlan.IndexDescs[i].IndexMultiKey); } } })); } SubordinateQueryPlannerUtil.QueryPlanLogOnExpr(processor.RootView.IsQueryPlanLogging, NamedWindowRootView.QueryPlanLog, _queryPlan, statementContext.Annotations, statementContext.EngineImportService); }
public StatementAgentInstanceFactoryCreateWindow(StatementContext statementContext, StatementSpecCompiled statementSpec, EPServicesContext services, ViewableActivator activator, ViewFactoryChain unmaterializedViewChain, ResultSetProcessorFactoryDesc resultSetProcessorPrototype, OutputProcessViewFactory outputProcessViewFactory, bool recoveringStatement) : base(statementContext.Annotations) { _statementContext = statementContext; _statementSpec = statementSpec; _services = services; _activator = activator; _unmaterializedViewChain = unmaterializedViewChain; _resultSetProcessorPrototype = resultSetProcessorPrototype; _outputProcessViewFactory = outputProcessViewFactory; _isRecoveringStatement = recoveringStatement; }
public StatementAgentInstanceFactoryOnTriggerSetVariable(StatementContext statementContext, StatementSpecCompiled statementSpec, EPServicesContext services, ViewableActivator activator, SubSelectStrategyCollection subSelectStrategyCollection, OnSetVariableViewFactory onSetVariableViewFactory, ResultSetProcessorFactoryDesc outputResultSetProcessorPrototype, OutputProcessViewFactory outputProcessViewFactory) : base(statementContext, statementSpec, services, activator, subSelectStrategyCollection) { _onSetVariableViewFactory = onSetVariableViewFactory; _outputResultSetProcessorPrototype = outputResultSetProcessorPrototype; _outputProcessViewFactory = outputProcessViewFactory; }
public static Pair <ResultSetProcessor, AggregationService> StartResultSetAndAggregation(ResultSetProcessorFactoryDesc resultSetProcessorPrototype, AgentInstanceContext agentInstanceContext, bool isSubquery, int?subqueryNumber) { AggregationService aggregationService = null; if (resultSetProcessorPrototype.AggregationServiceFactoryDesc != null) { aggregationService = resultSetProcessorPrototype.AggregationServiceFactoryDesc.AggregationServiceFactory.MakeService( agentInstanceContext, agentInstanceContext.StatementContext.EngineImportService, isSubquery, subqueryNumber); } OrderByProcessor orderByProcessor = null; if (resultSetProcessorPrototype.OrderByProcessorFactory != null) { orderByProcessor = resultSetProcessorPrototype.OrderByProcessorFactory.Instantiate(aggregationService, agentInstanceContext); } ResultSetProcessor resultSetProcessor = resultSetProcessorPrototype.ResultSetProcessorFactory.Instantiate(orderByProcessor, aggregationService, agentInstanceContext); return(new Pair <ResultSetProcessor, AggregationService>(resultSetProcessor, aggregationService)); }
public StatementAgentInstanceFactoryOnTriggerTable(StatementContext statementContext, StatementSpecCompiled statementSpec, EPServicesContext services, ViewableActivator activator, SubSelectStrategyCollection subSelectStrategyCollection, ResultSetProcessorFactoryDesc resultSetProcessorPrototype, ExprNode validatedJoin, TableOnViewFactory onExprFactory, EventType activatorResultEventType, TableMetadata tableMetadata, ResultSetProcessorFactoryDesc outputResultSetProcessorPrototype, OutputProcessViewFactory outputProcessViewFactory) : base(statementContext, statementSpec, services, activator, subSelectStrategyCollection) { _resultSetProcessorPrototype = resultSetProcessorPrototype; _onExprFactory = onExprFactory; _outputResultSetProcessorPrototype = outputResultSetProcessorPrototype; _outputProcessViewFactory = outputProcessViewFactory; var pair = StatementAgentInstanceFactoryOnTriggerNamedWindow.GetIndexHintPair(statementContext, statementSpec); var indexHint = pair.IndexHint; var excludePlanHint = pair.ExcludePlanHint; _queryPlanResult = SubordinateQueryPlanner.PlanOnExpression( validatedJoin, activatorResultEventType, indexHint, true, -1, excludePlanHint, false, tableMetadata.EventTableIndexMetadataRepo, tableMetadata.InternalEventType, tableMetadata.UniqueKeyProps, true, statementContext.StatementName, statementContext.StatementId, statementContext.Annotations); if (_queryPlanResult.IndexDescs != null) { for (var i = 0; i < _queryPlanResult.IndexDescs.Length; i++) { tableMetadata.AddIndexReference(_queryPlanResult.IndexDescs[i].IndexName, statementContext.StatementName); } } SubordinateQueryPlannerUtil.QueryPlanLogOnExpr(tableMetadata.IsQueryPlanLogging, TableServiceImpl.QueryPlanLog, _queryPlanResult, statementContext.Annotations); }
public static Pair <ResultSetProcessor, AggregationService> StartResultSetAndAggregation(ResultSetProcessorFactoryDesc resultSetProcessorPrototype, AgentInstanceContext agentInstanceContext) { AggregationService aggregationService = null; if (resultSetProcessorPrototype.AggregationServiceFactoryDesc != null) { aggregationService = resultSetProcessorPrototype.AggregationServiceFactoryDesc.AggregationServiceFactory.MakeService(agentInstanceContext, agentInstanceContext.StatementContext.MethodResolutionService); } OrderByProcessor orderByProcessor = null; if (resultSetProcessorPrototype.OrderByProcessorFactory != null) { orderByProcessor = resultSetProcessorPrototype.OrderByProcessorFactory.Instantiate(aggregationService, agentInstanceContext); } ResultSetProcessor resultSetProcessor = resultSetProcessorPrototype.ResultSetProcessorFactory.Instantiate(orderByProcessor, aggregationService, agentInstanceContext); return(new Pair <ResultSetProcessor, AggregationService>(resultSetProcessor, aggregationService)); }
public static ResultSetProcessor GetAssignResultSetProcessor(AgentInstanceContext agentInstanceContext, ResultSetProcessorFactoryDesc resultSetProcessorPrototype) { AggregationService aggregationService = null; if (resultSetProcessorPrototype.AggregationServiceFactoryDesc != null) { aggregationService = resultSetProcessorPrototype.AggregationServiceFactoryDesc.AggregationServiceFactory.MakeService(agentInstanceContext, agentInstanceContext.StatementContext.MethodResolutionService); } OrderByProcessor orderByProcessor = null; if (resultSetProcessorPrototype.OrderByProcessorFactory != null) { orderByProcessor = resultSetProcessorPrototype.OrderByProcessorFactory.Instantiate( aggregationService, agentInstanceContext); } var processor = resultSetProcessorPrototype.ResultSetProcessorFactory.Instantiate(orderByProcessor, aggregationService, agentInstanceContext); // initialize aggregation expression nodes if (resultSetProcessorPrototype.AggregationServiceFactoryDesc != null) { foreach (var aggregation in resultSetProcessorPrototype.AggregationServiceFactoryDesc.Expressions) { aggregation.AssignFuture(aggregationService); } } return(processor); }