示例#1
0
 public VirtualDWViewImpl(
     VirtualDWViewFactory factory,
     AgentInstanceContext agentInstanceContext,
     VirtualDataWindow dataExternal)
 {
     this._factory = factory;
     this._agentInstanceContext = agentInstanceContext;
     this._dataExternal = dataExternal;
 }
示例#2
0
        public SubordTableLookupStrategyVDW(
            VirtualDWViewFactory factory,
            SubordTableLookupStrategyFactoryVDW subordTableFactory,
            VirtualDataWindowLookup externalIndex)
        {
            this.factory = factory;
            this.externalIndex = externalIndex;
            nwOnTrigger = subordTableFactory.IsNwOnTrigger;

            var hashKeys = subordTableFactory.HashEvals;
            var hashCoercionTypes = subordTableFactory.HashCoercionTypes;
            var rangeKeys = subordTableFactory.RangeEvals;
            var rangeCoercionTypes = subordTableFactory.RangeCoercionTypes;

            evaluators = new ExternalEvaluator[hashKeys.Length + rangeKeys.Length];
            eventsLocal = new EventBean[subordTableFactory.NumOuterStreams + 1];

            var count = 0;
            foreach (var hashKey in hashKeys) {
                evaluators[count] = new ExternalEvaluatorHashRelOp(hashKeys[count], hashCoercionTypes[count]);
                count++;
            }

            for (var i = 0; i < rangeKeys.Length; i++) {
                var rangeKey = rangeKeys[i];
                if (rangeKey.Type.IsRange()) {
                    var range = (QueryGraphValueEntryRangeIn) rangeKey;
                    var evaluatorStart = range.ExprStart;
                    var evaluatorEnd = range.ExprEnd;
                    evaluators[count] = new ExternalEvaluatorBtreeRange(
                        evaluatorStart,
                        evaluatorEnd,
                        rangeCoercionTypes[i]);
                }
                else {
                    var relOp = (QueryGraphValueEntryRangeRelOp) rangeKey;
                    var evaluator = relOp.Expression;
                    evaluators[count] = new ExternalEvaluatorHashRelOp(evaluator, rangeCoercionTypes[i]);
                }

                count++;
            }
        }