Ejemplo n.º 1
0
 public EventBean Process(EventBean[] eventsPerStream,
                          bool isNewData,
                          bool isSynthesize,
                          ExprEvaluatorContext exprEvaluatorContext)
 {
     Object[] columns = _bindProcessor.Process(eventsPerStream, isNewData, exprEvaluatorContext);
     return(_selectExprProcessorCallback.Selected(columns));
 }
Ejemplo n.º 2
0
        public EventBean Process(EventBean[] eventsPerStream, bool isNewData, bool isSynthesize, ExprEvaluatorContext exprEvaluatorContext)
        {
            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.Get().QSelectClause(eventsPerStream, isNewData, isSynthesize, exprEvaluatorContext);
            }
            if ((isSynthesize) && (!_statementResultService.IsMakeNatural))
            {
                if (InstrumentationHelper.ENABLED)
                {
                    EventBean result = _syntheticProcessor.Process(eventsPerStream, isNewData, isSynthesize, exprEvaluatorContext);
                    InstrumentationHelper.Get().ASelectClause(isNewData, result, null);
                    return(result);
                }
                return(_syntheticProcessor.Process(eventsPerStream, isNewData, isSynthesize, exprEvaluatorContext));
            }

            EventBean syntheticEvent     = null;
            EventType syntheticEventType = null;

            if (_statementResultService.IsMakeSynthetic || isSynthesize)
            {
                syntheticEvent = _syntheticProcessor.Process(eventsPerStream, isNewData, isSynthesize, exprEvaluatorContext);

                if (!_statementResultService.IsMakeNatural)
                {
                    if (InstrumentationHelper.ENABLED)
                    {
                        InstrumentationHelper.Get().ASelectClause(isNewData, syntheticEvent, null);
                    }
                    return(syntheticEvent);
                }

                syntheticEventType = _syntheticProcessor.ResultEventType;
            }

            if (!_statementResultService.IsMakeNatural)
            {
                if (InstrumentationHelper.ENABLED)
                {
                    InstrumentationHelper.Get().ASelectClause(isNewData, null, null);
                }
                return(null); // neither synthetic nor natural required, be cheap and generate no output event
            }

            Object[] parameters = _bindProcessor.Process(eventsPerStream, isNewData, exprEvaluatorContext);
            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.Get().ASelectClause(isNewData, null, parameters);
            }
            return(new NaturalEventBean(syntheticEventType, parameters, syntheticEvent));
        }