public SubordIndexedTableLookupStrategySingleProp(int keyStreamNum, EventPropertyGetter propertyGetter, PropertyIndexedEventTableSingle index, LookupStrategyDesc strategyDesc)
 {
     this._keyStreamNum   = keyStreamNum;
     this._propertyGetter = propertyGetter;
     this._index          = index;
     this._strategyDesc   = strategyDesc;
 }
 public SubordInKeywordSingleTableLookupStrategyFactory(bool isNWOnTrigger, int streamCountOuter, ExprNode[] exprNodes)
 {
     StreamCountOuter = streamCountOuter;
     Evaluators       = ExprNodeUtility.GetEvaluators(exprNodes);
     IsNWOnTrigger    = isNWOnTrigger;
     StrategyDesc     = new LookupStrategyDesc(LookupStrategyType.INKEYWORDSINGLEIDX, ExprNodeUtility.ToExpressionStringsMinPrecedence(exprNodes));
 }
 public SubordIndexedTableLookupStrategyProp(int[] keyStreamNums, EventPropertyGetter[] propertyGetters, PropertyIndexedEventTable index, LookupStrategyDesc strategyDesc)
 {
     _keyStreamNums   = keyStreamNums;
     _propertyGetters = propertyGetters;
     _index           = index;
     _strategyDesc    = strategyDesc;
 }
 /// <summary>
 /// Ctor.
 /// </summary>
 /// <param name="numStreamsOuter">The num streams outer.</param>
 /// <param name="evaluators">The evaluators.</param>
 /// <param name="index">is the table carrying the data to lookup into</param>
 /// <param name="strategyDesc">The strategy desc.</param>
 public SubordIndexedTableLookupStrategyExpr(int numStreamsOuter, ExprEvaluator[] evaluators, PropertyIndexedEventTable index, LookupStrategyDesc strategyDesc)
 {
     _evaluators   = evaluators;
     _strategyDesc = strategyDesc;
     _events       = new EventBean[numStreamsOuter + 1];
     _index        = index;
 }
Example #5
0
 public SubordInKeywordMultiTableLookupStrategyFactory(bool isNWOnTrigger, int streamCountOuter, ExprNode exprNode)
 {
     StreamCountOuter = streamCountOuter;
     Evaluator        = exprNode.ExprEvaluator;
     IsNWOnTrigger    = isNWOnTrigger;
     StrategyDesc     = new LookupStrategyDesc(LookupStrategyType.INKEYWORDMULTIIDX, new String[] { ExprNodeUtility.ToExpressionStringMinPrecedenceSafe(exprNode) });
 }
Example #6
0
 public SubordIndexedTableLookupStrategySingleExprFactory(bool isNWOnTrigger, int streamCountOuter, SubordPropHashKey hashKey)
 {
     StreamCountOuter = streamCountOuter;
     Evaluator        = hashKey.HashKey.KeyExpr.ExprEvaluator;
     IsNWOnTrigger    = isNWOnTrigger;
     StrategyDesc     = new LookupStrategyDesc(LookupStrategyType.SINGLEEXPR, new String[] { hashKey.HashKey.KeyExpr.ToExpressionStringMinPrecedenceSafe() });
 }
Example #7
0
        /// <summary>
        /// Ctor.
        /// </summary>
        /// <param name="isNWOnTrigger">if set to <c>true</c> [is NW on trigger].</param>
        /// <param name="eventTypes">is the event types per stream</param>
        /// <param name="keyStreamNumbers">is the stream number per property</param>
        /// <param name="properties">is the key properties</param>
        public SubordIndexedTableLookupStrategyPropFactory(bool isNWOnTrigger, EventType[] eventTypes, int[] keyStreamNumbers, String[] properties)
        {
            _keyStreamNums = keyStreamNumbers;
            _properties    = properties;
            _strategyDesc  = new LookupStrategyDesc(LookupStrategyType.MULTIPROP, properties);

            _propertyGetters = new EventPropertyGetter[properties.Length];
            for (int i = 0; i < keyStreamNumbers.Length; i++)
            {
                int       streamNumber = keyStreamNumbers[i];
                String    property     = properties[i];
                EventType eventType    = eventTypes[streamNumber];
                _propertyGetters[i] = eventType.GetGetter(property);

                if (_propertyGetters[i] == null)
                {
                    throw new ArgumentException("Property named '" + properties[i] + "' is invalid for type " + eventType);
                }
            }

            for (int i = 0; i < _keyStreamNums.Length; i++)
            {
                _keyStreamNums[i] += (isNWOnTrigger ? 1 : 0); // for on-trigger the key will be provided in a {1,2,...} stream and not {0,...}
            }
        }
Example #8
0
 public SubordInKeywordSingleTableLookupStrategy(int streamCountOuter, ExprEvaluator[] evaluators, PropertyIndexedEventTableSingle index, LookupStrategyDesc strategyDesc)
 {
     Evaluators    = evaluators;
     _index        = index;
     _events       = new EventBean[streamCountOuter + 1];
     _strategyDesc = strategyDesc;
 }
 public SubordIndexedTableLookupStrategySinglePropUnique(int keyStreamNum, EventPropertyGetter propertyGetter, PropertyIndexedEventTableSingleUnique index, LookupStrategyDesc strategyDesc)
 {
     _keyStreamNum   = keyStreamNum;
     _propertyGetter = propertyGetter;
     _index          = index;
     _strategyDesc   = strategyDesc;
 }
Example #10
0
 public SubordIndexedTableLookupStrategySingleExpr(int streamCountOuter, ExprEvaluator evaluator, PropertyIndexedEventTableSingle index, LookupStrategyDesc strategyDesc)
 {
     Evaluator     = evaluator;
     Index         = index;
     _events       = new EventBean[streamCountOuter + 1];
     _strategyDesc = strategyDesc;
 }
 /// <summary>Ctor. </summary>
 public SubordInKeywordMultiTableLookupStrategyNW(ExprEvaluator evaluator, EventTable[] tables, LookupStrategyDesc strategyDesc)
 {
     Evaluator = evaluator;
     Indexes   = new PropertyIndexedEventTableSingle[tables.Length];
     for (int i = 0; i < tables.Length; i++)
     {
         Indexes[i] = (PropertyIndexedEventTableSingle)tables[i];
     }
     StrategyDesc = strategyDesc;
 }
        public SubordTableLookupStrategy MakeStrategy(EventTable[] eventTable, VirtualDWView vdw)
        {
            if (eventTable[0] is PropertyIndexedEventTableSingleUnique)
            {
                return(new SubordIndexedTableLookupStrategySinglePropUnique(_keyStreamNum, _propertyGetter, (PropertyIndexedEventTableSingleUnique)eventTable[0],
                                                                            new LookupStrategyDesc(LookupStrategyType.SINGLEPROPUNIQUE, new String[] { _property })));
            }
            LookupStrategyDesc desc = new LookupStrategyDesc(LookupStrategyType.SINGLEPROPNONUNIQUE, new String[] { _property });

            return(new SubordIndexedTableLookupStrategySingleProp(_keyStreamNum, _propertyGetter, (PropertyIndexedEventTableSingle)eventTable[0], desc));
        }
Example #13
0
 /// <summary>Ctor. </summary>
 public SubordInKeywordMultiTableLookupStrategy(int numStreamsOuter, ExprEvaluator evaluator, EventTable[] tables, LookupStrategyDesc strategyDesc)
 {
     Evaluator     = evaluator;
     _strategyDesc = strategyDesc;
     _events       = new EventBean[numStreamsOuter + 1];
     Indexes       = new PropertyIndexedEventTableSingle[tables.Length];
     for (int i = 0; i < tables.Length; i++)
     {
         Indexes[i] = (PropertyIndexedEventTableSingle)tables[i];
     }
 }
        public SubordIndexedTableLookupStrategyExprFactory(bool isNWOnTrigger, int numStreamsOuter, IList <SubordPropHashKey> hashKeys)
        {
            _evaluators = new ExprEvaluator[hashKeys.Count];
            var expressions = new String[_evaluators.Length];

            for (int i = 0; i < hashKeys.Count; i++)
            {
                _evaluators[i] = hashKeys[i].HashKey.KeyExpr.ExprEvaluator;
                expressions[i] = hashKeys[i].HashKey.KeyExpr.ToExpressionStringMinPrecedenceSafe();
            }
            _isNWOnTrigger   = isNWOnTrigger;
            _numStreamsOuter = numStreamsOuter;
            _strategyDesc    = new LookupStrategyDesc(LookupStrategyType.MULTIEXPR, expressions);
        }
Example #15
0
        public SubordCompositeTableLookupStrategyFactory(
            bool isNWOnTrigger,
            int numStreams,
            ICollection <SubordPropHashKey> keyExpr,
            Type[] coercionKeyTypes,
            ICollection <SubordPropRangeKey> rangeProps,
            Type[] coercionRangeTypes)
        {
            _rangeDescs = rangeProps;
            var expressionTexts = new List <String>();

            _innerIndexQuery = CompositeIndexQueryFactory.MakeSubordinate(
                isNWOnTrigger, numStreams, keyExpr, coercionKeyTypes, rangeProps, coercionRangeTypes, expressionTexts);
            _strategyDesc = new LookupStrategyDesc(LookupStrategyType.COMPOSITE, expressionTexts.ToArray());
        }
Example #16
0
 public SubordIndexedTableLookupStrategyCoercingNW(ExprEvaluator[] evaluators, PropertyIndexedEventTable index, Type[] coercionTypes, LookupStrategyDesc strategyDesc)
     : base(evaluators, index, strategyDesc)
 {
     _coercionTypes = coercionTypes;
 }
 public SubordSortedTableLookupStrategyFactory(bool isNWOnTrigger, int numStreams, SubordPropRangeKey rangeKey)
 {
     _rangeKey     = rangeKey;
     _strategy     = SortedAccessStrategyFactory.Make(isNWOnTrigger, -1, numStreams, rangeKey);
     _strategyDesc = new LookupStrategyDesc(LookupStrategyType.RANGE, ExprNodeUtility.ToExpressionStringsMinPrecedence(rangeKey.RangeInfo.Expressions));
 }
 public SubordInKeywordSingleTableLookupStrategyNW(ExprEvaluator[] evaluators, PropertyIndexedEventTableSingle index, LookupStrategyDesc strategyDesc)
 {
     _evaluators   = evaluators;
     _index        = index;
     _strategyDesc = strategyDesc;
 }
 public SubordIndexedTableLookupStrategyCoercing(int numStreamsOuter, ExprEvaluator[] evaluators, PropertyIndexedEventTable index, Type[] coercionTypes, LookupStrategyDesc strategyDesc)
     : base(numStreamsOuter, evaluators, index, strategyDesc)
 {
     _coercionTypes = coercionTypes;
 }
 public SubordSortedTableLookupStrategy(SortedAccessStrategy strategy, PropertySortedEventTable index, LookupStrategyDesc strategyDesc)
 {
     _strategy     = strategy;
     _index        = index;
     _strategyDesc = strategyDesc;
 }
 public SubordIndexedTableLookupStrategySingleExprNW(ExprEvaluator evaluator, PropertyIndexedEventTableSingle index, LookupStrategyDesc strategyDesc)
 {
     Evaluator     = evaluator;
     _index        = index;
     _strategyDesc = strategyDesc;
 }
 public SubordCompositeTableLookupStrategy(CompositeIndexQuery innerIndexQuery, PropertyCompositeEventTable index, LookupStrategyDesc strategyDesc)
 {
     this._innerIndexQuery = innerIndexQuery;
     this._index           = index;
     this._strategyDesc    = strategyDesc;
 }
 public SubordIndexedTableLookupStrategySingleCoercing(int streamCountOuter, ExprEvaluator evaluator, PropertyIndexedEventTableSingle index, Type coercionType, LookupStrategyDesc strategyDesc)
     : base(streamCountOuter, evaluator, index, strategyDesc)
 {
     _coercionType = coercionType;
 }
Example #24
0
 public SubordIndexedTableLookupStrategySingleCoercingNW(ExprEvaluator evaluator, PropertyIndexedEventTableSingle index, Type coercionType, LookupStrategyDesc strategyDesc)
     : base(evaluator, index, strategyDesc)
 {
     _coercionType = coercionType;
 }