public ICollection <EventBean> Lookup(EventBean[] eventsPerStream, ExprEvaluatorContext context)
        {
            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.Get().QIndexSubordLookup(this, _index, null);
            }

            Object[] keys = GetKeys(eventsPerStream, context);

            if (InstrumentationHelper.ENABLED)
            {
                ICollection <EventBean> result = _index.Lookup(keys);
                InstrumentationHelper.Get().AIndexSubordLookup(result, keys);
                return(result);
            }
            return(_index.Lookup(keys));
        }
        public ICollection <EventBean> Lookup(EventBean theEvent, Cursor cursor, ExprEvaluatorContext exprEvaluatorContext)
        {
            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.Get().QIndexJoinLookup(this, _index);
            }

            var keys   = GetKeys(theEvent);
            var result = _index.Lookup(keys);

            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.Get().AIndexJoinLookup(result, keys);
            }
            return(result);
        }
        public ICollection <EventBean> Lookup(EventBean theEvent, Cursor cursor, ExprEvaluatorContext exprEvaluatorContext)
        {
            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.Get().QIndexJoinLookup(this, _index);
            }

            var keys = new Object[_evaluators.Length];

            _eventsPerStream[_streamNum] = theEvent;
            for (int i = 0; i < _evaluators.Length; i++)
            {
                keys[i] = _evaluators[i].Evaluate(new EvaluateParams(_eventsPerStream, true, exprEvaluatorContext));
            }

            var result = _index.Lookup(keys);

            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.Get().AIndexJoinLookup(result, keys);
            }
            return(result);
        }