public ICollection<EventBean> Lookup( EventBean[] eventsPerStream, ExprEvaluatorContext context) { if (context.InstrumentationProvider.Activated()) { context.InstrumentationProvider.QIndexSubordLookup(this, _index, _factory.KeyStreamNums); var keyX = GetKey(eventsPerStream, context); ISet<EventBean> result = _index.Lookup(keyX); context.InstrumentationProvider.AIndexSubordLookup(result, keyX); return result; } var key = GetKey(eventsPerStream, context); return _index.Lookup(key); }
public static ISet<EventBean> SingleIndexLookup( ExprEvaluator[] evaluators, EventBean[] eventsPerStream, ExprEvaluatorContext exprEvaluatorContext, PropertyHashedEventTable index) { bool first = true; ISet<EventBean> result = null; foreach (ExprEvaluator evaluator in evaluators) { object key = evaluator.Evaluate(eventsPerStream, true, exprEvaluatorContext); ISet<EventBean> found = index.Lookup(key); if (found != null && !found.IsEmpty()) { if (result == null) { result = found; } else if (first) { LinkedHashSet<EventBean> copy = new LinkedHashSet<EventBean>(); copy.AddAll(result); copy.AddAll(found); result = copy; first = false; } else { result.AddAll(found); } } } return result; }