Esempio n. 1
0
 public SubordInKeywordSingleTableLookupStrategy(int streamCountOuter, ExprEvaluator[] evaluators, PropertyIndexedEventTableSingle index, LookupStrategyDesc strategyDesc)
 {
     Evaluators    = evaluators;
     _index        = index;
     _events       = new EventBean[streamCountOuter + 1];
     _strategyDesc = strategyDesc;
 }
Esempio n. 2
0
 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) })));
        }
Esempio n. 5
0
 /// <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;
 }
Esempio n. 7
0
 /// <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;
 }
Esempio n. 11
0
        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;
 }
Esempio n. 13
0
 public SubordIndexedTableLookupStrategySingleCoercingNW(ExprEvaluator evaluator, PropertyIndexedEventTableSingle index, Type coercionType, LookupStrategyDesc strategyDesc)
     : base(evaluator, index, strategyDesc)
 {
     _coercionType = coercionType;
 }