示例#1
0
        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;
        }
        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;
        }