Beispiel #1
0
 public SubordCompositeTableLookupStrategyFactory(
     bool isNWOnTrigger,
     int numStreams,
     string[] expressions,
     ExprEvaluator hashEval,
     QueryGraphValueEntryRange[] rangeEvals)
 {
     _expressions = expressions;
     InnerIndexQuery = CompositeIndexQueryFactory.MakeSubordinate(
         isNWOnTrigger,
         numStreams,
         hashEval,
         rangeEvals);
 }
Beispiel #2
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());
        }
        public CompositeTableLookupStrategy(EventType eventType, int lookupStream, IList <QueryGraphValueEntryHashKeyed> hashKeys, IList <QueryGraphValueEntryRange> rangeKeyPairs, PropertyCompositeEventTable index)
        {
            _eventType     = eventType;
            _index         = index;
            _rangeKeyPairs = rangeKeyPairs;
            _chain         = CompositeIndexQueryFactory.MakeJoinSingleLookupStream(false, lookupStream, hashKeys, index.OptKeyCoercedTypes, rangeKeyPairs, index.OptRangeCoercedTypes);

            var expressionTexts = new ArrayDeque <string>();

            foreach (QueryGraphValueEntryRange pair in rangeKeyPairs)
            {
                ExprNode[] expressions = pair.Expressions;
                foreach (ExprNode node in expressions)
                {
                    expressionTexts.Add(ExprNodeUtility.ToExpressionStringMinPrecedenceSafe(node));
                }
            }
            _lookupStrategyDesc = new LookupStrategyDesc(LookupStrategyType.COMPOSITE, expressionTexts.ToArray());
        }
Beispiel #4
0
 public HistoricalIndexLookupStrategyComposite(int lookupStream, IList <QueryGraphValueEntryHashKeyed> hashKeys, Type[] keyCoercionTypes, IList <QueryGraphValueEntryRange> rangeKeyPairs, Type[] rangeCoercionTypes)
 {
     _chain = CompositeIndexQueryFactory.MakeJoinSingleLookupStream(false, lookupStream, hashKeys, keyCoercionTypes, rangeKeyPairs, rangeCoercionTypes);
 }