public SubordInKeywordSingleTableLookupStrategy(int streamCountOuter, ExprEvaluator[] evaluators, PropertyIndexedEventTableSingle index, LookupStrategyDesc strategyDesc) { Evaluators = evaluators; _index = index; _events = new EventBean[streamCountOuter + 1]; _strategyDesc = strategyDesc; }
public SubordIndexedTableLookupStrategySingleExpr(int streamCountOuter, ExprEvaluator evaluator, PropertyIndexedEventTableSingle index, LookupStrategyDesc strategyDesc) { Evaluator = evaluator; Index = index; _events = new EventBean[streamCountOuter + 1]; _strategyDesc = strategyDesc; }
public SubordIndexedTableLookupStrategySingleProp(int keyStreamNum, EventPropertyGetter propertyGetter, PropertyIndexedEventTableSingle index, LookupStrategyDesc strategyDesc) { this._keyStreamNum = keyStreamNum; this._propertyGetter = propertyGetter; this._index = index; this._strategyDesc = strategyDesc; }
public override JoinExecTableLookupStrategy MakeStrategyInternal(EventTable[] eventTable, EventType[] eventTypes) { var evaluator = _keyExpr.ExprEvaluator; var singles = new PropertyIndexedEventTableSingle[eventTable.Length]; for (int i = 0; i < eventTable.Length; i++) { singles[i] = (PropertyIndexedEventTableSingle)eventTable[i]; } return(new InKeywordMultiTableLookupStrategyExpr(evaluator, LookupStream, singles, new LookupStrategyDesc(LookupStrategyType.INKEYWORDMULTIIDX, new String[] { ExprNodeUtility.ToExpressionStringMinPrecedenceSafe(_keyExpr) }))); }
/// <summary> /// Ctor. /// </summary> /// <param name="eventType">event type to expect for lookup</param> /// <param name="property">The property.</param> /// <param name="index">index to look up in</param> public IndexedTableLookupStrategySingle(EventType eventType, String property, PropertyIndexedEventTableSingle index) { _eventType = eventType; _property = property; if (index == null) { throw new ArgumentException("Unexpected null index received"); } _index = index; _propertyGetter = EventBeanUtility.GetAssertPropertyGetter(eventType, property); }
/// <summary> /// Ctor. /// </summary> /// <param name="exprNode">The expr node.</param> /// <param name="streamNum">The stream num.</param> /// <param name="index">index to look up in</param> /// <param name="strategyDesc">The strategy desc.</param> public IndexedTableLookupStrategySingleExpr(ExprNode exprNode, int streamNum, PropertyIndexedEventTableSingle index, LookupStrategyDesc strategyDesc) { if (index == null) { throw new ArgumentException("Unexpected null index received"); } _index = index; _streamNum = streamNum; _strategyDesc = strategyDesc; _eventsPerStream = new EventBean[streamNum + 1]; _exprEvaluator = exprNode.ExprEvaluator; }
/// <summary> /// Ctor. /// </summary> /// <param name="evaluators">The evaluators.</param> /// <param name="streamNum">The stream num.</param> /// <param name="index">index to look up in</param> /// <param name="lookupStrategyDesc">The lookup strategy desc.</param> public InKeywordSingleTableLookupStrategyExpr(ExprEvaluator[] evaluators, int streamNum, PropertyIndexedEventTableSingle index, LookupStrategyDesc lookupStrategyDesc) { if (index == null) { throw new ArgumentException("Unexpected null index received"); } _index = index; _streamNum = streamNum; _eventsPerStream = new EventBean[streamNum + 1]; _evaluators = evaluators; _lookupStrategyDesc = lookupStrategyDesc; }
public IEnumerator <EventBean> Lookup( EventBean lookupEvent, EventTable[] indexTable, ExprEvaluatorContext exprEvaluatorContext) { PropertyIndexedEventTableSingle table = (PropertyIndexedEventTableSingle)indexTable[0]; _eventsPerStream[_lookupStream] = lookupEvent; ICollection <EventBean> result = InKeywordTableLookupUtil.SingleIndexLookup( _evaluators, _eventsPerStream, exprEvaluatorContext, table); if (result == null) { return(null); } return(result.GetEnumerator()); }
public SubordIndexedTableLookupStrategySingleCoercing(int streamCountOuter, ExprEvaluator evaluator, PropertyIndexedEventTableSingle index, Type coercionType, LookupStrategyDesc strategyDesc) : base(streamCountOuter, evaluator, index, strategyDesc) { _coercionType = coercionType; }
public SubordInKeywordSingleTableLookupStrategyNW(ExprEvaluator[] evaluators, PropertyIndexedEventTableSingle index, LookupStrategyDesc strategyDesc) { _evaluators = evaluators; _index = index; _strategyDesc = strategyDesc; }
public static ICollection <EventBean> SingleIndexLookup(ExprEvaluator[] evaluators, EventBean[] eventsPerStream, ExprEvaluatorContext exprEvaluatorContext, PropertyIndexedEventTableSingle index) { var first = true; ICollection <EventBean> result = null; var evaluateParams = new EvaluateParams(eventsPerStream, true, exprEvaluatorContext); foreach (var evaluator in evaluators) { var key = evaluator.Evaluate(evaluateParams); ICollection <EventBean> found = index.Lookup(key); if (found != null && !found.IsEmpty()) { if (result == null) { result = found; } else if (first) { var copy = new LinkedHashSet <EventBean>(); copy.AddAll(result); copy.AddAll(found); result = copy; first = false; } else { result.AddAll(found); } } } return(result); }
public SubordIndexedTableLookupStrategySingleExprNW(ExprEvaluator evaluator, PropertyIndexedEventTableSingle index, LookupStrategyDesc strategyDesc) { Evaluator = evaluator; _index = index; _strategyDesc = strategyDesc; }
public SubordIndexedTableLookupStrategySingleCoercingNW(ExprEvaluator evaluator, PropertyIndexedEventTableSingle index, Type coercionType, LookupStrategyDesc strategyDesc) : base(evaluator, index, strategyDesc) { _coercionType = coercionType; }