public SubordTableLookupStrategyFactoryQuadTreeForge GetSubordinateLookupStrategy(
            string operationName,
            IDictionary<int, ExprNode> positionalExpressions,
            bool isNWOnTrigger,
            int numOuterstreams)
        {
            ExprForge x = positionalExpressions.Get(0).Forge;
            ExprForge y = positionalExpressions.Get(1).Forge;
            ExprForge width = positionalExpressions.Get(2).Forge;
            ExprForge height = positionalExpressions.Get(3).Forge;
            string[] expressions = new string[positionalExpressions.Count];
            foreach (KeyValuePair<int, ExprNode> entry in positionalExpressions) {
                expressions[entry.Key] = ExprNodeUtilityPrint.ToExpressionStringMinPrecedenceSafe(entry.Value);
            }

            LookupStrategyDesc lookupStrategyDesc = new LookupStrategyDesc(LookupStrategyType.ADVANCED, expressions);
            return new SubordTableLookupStrategyFactoryQuadTreeForge(
                x,
                y,
                width,
                height,
                isNWOnTrigger,
                numOuterstreams,
                lookupStrategyDesc);
        }
 public AIRegistryRequirementSubquery(
     bool hasAggregation,
     bool hasPrior,
     bool hasPrev,
     LookupStrategyDesc lookupStrategyDesc)
 {
     HasAggregation = hasAggregation;
     HasPrior = hasPrior;
     HasPrev = hasPrev;
     LookupStrategyDesc = lookupStrategyDesc;
 }
Example #3
0
 public SubordTableLookupStrategyFactoryQuadTree(ExprEvaluator x, ExprEvaluator y, ExprEvaluator width,
     ExprEvaluator height, bool isNWOnTrigger, int streamCountOuter, LookupStrategyDesc lookupStrategyDesc)
 {
     X = x;
     Y = y;
     Width = width;
     Height = height;
     _isNWOnTrigger = isNWOnTrigger;
     _streamCountOuter = streamCountOuter;
     LookupStrategyDesc = lookupStrategyDesc;
 }
 /// <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 IndexedTableLookupStrategyExpr(ExprEvaluator[] evaluators, int streamNum, PropertyIndexedEventTable 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;
 }
 /// <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="evaluator">The evaluator.</param>
 /// <param name="streamNum">The stream num.</param>
 /// <param name="indexes">The indexes.</param>
 /// <param name="lookupStrategyDesc">The lookup strategy desc.</param>
 public InKeywordMultiTableLookupStrategyExpr(ExprEvaluator evaluator, int streamNum, PropertyIndexedEventTableSingle[] indexes, LookupStrategyDesc lookupStrategyDesc)
 {
     if (indexes == null)
     {
         throw new ArgumentException("Unexpected null index received");
     }
     this._indexes            = indexes;
     this._streamNum          = streamNum;
     this._eventsPerStream    = new EventBean[streamNum + 1];
     this._evaluator          = evaluator;
     this._lookupStrategyDesc = lookupStrategyDesc;
 }
 public SubordTableLookupStrategyFactoryQuadTreeForge(
     ExprForge x,
     ExprForge y,
     ExprForge width,
     ExprForge height,
     bool isNWOnTrigger,
     int streamCountOuter,
     LookupStrategyDesc lookupStrategyDesc)
 {
     this.x = x;
     this.y = y;
     this.width = width;
     this.height = height;
     this.isNWOnTrigger = isNWOnTrigger;
     this.streamCountOuter = streamCountOuter;
     LookupStrategyDesc = lookupStrategyDesc;
 }
        public SubordTableLookupStrategyFactoryQuadTree GetSubordinateLookupStrategy(
            string operationName, IDictionary <int, ExprNode> positionalExpressions, bool isNWOnTrigger, int numOuterstreams)
        {
            var x           = positionalExpressions[0].ExprEvaluator;
            var y           = positionalExpressions[1].ExprEvaluator;
            var width       = positionalExpressions[2].ExprEvaluator;
            var height      = positionalExpressions[3].ExprEvaluator;
            var expressions = new string[positionalExpressions.Count];

            foreach (var entry in positionalExpressions)
            {
                expressions[entry.Key] = entry.Value.ToExpressionStringMinPrecedenceSafe();
            }
            var lookupStrategyDesc = new LookupStrategyDesc(LookupStrategyType.ADVANCED, expressions);

            return(new SubordTableLookupStrategyFactoryQuadTree(x, y, width, height, isNWOnTrigger, numOuterstreams, lookupStrategyDesc));
        }
        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());
        }
Example #10
0
 public AIRegistrySubselectLookup MakeSubqueryLookup(LookupStrategyDesc lookupStrategyDesc)
 {
     return new AIRegistrySubselectLookupMap(lookupStrategyDesc);
 }
Example #11
0
 public AIRegistrySubselectLookupMap(LookupStrategyDesc strategyDesc)
 {
     StrategyDesc = strategyDesc;
     services = new Dictionary<int, SubordTableLookupStrategy>();
 }
Example #12
0
 public AIRegistrySubselectLookupSingle(LookupStrategyDesc strategyDesc)
 {
     StrategyDesc = strategyDesc;
 }
Example #13
0
 public AIRegistrySubselectLookupMultiPerm(LookupStrategyDesc strategyDesc)
 {
     StrategyDesc = strategyDesc;
     strategies = new ArrayWrap<SubordTableLookupStrategy>(10);
 }