예제 #1
0
        public override AlgebraNode VisitFilterAlgebraNode(FilterAlgebraNode node)
        {
            FilterIterator filterIterator = new FilterIterator();

            filterIterator.RowBuffer   = new object[node.OutputList.Length];
            filterIterator.Input       = ConvertAlgebraNode(node.Input);
            filterIterator.InputOutput = GetIteratorOutput(0, node.Input.OutputList, node.OutputList);
            BoundRowBufferEntrySet boundRowBufferEntrySet = new BoundRowBufferEntrySet(filterIterator.Input.RowBuffer, node.Input.OutputList);

            filterIterator.Predicate = CreateRuntimeExpression(node.Predicate, boundRowBufferEntrySet);
            SetLastIterator(node, filterIterator);

            return(node);
        }
예제 #2
0
		public override AlgebraNode VisitFilterAlgebraNode(FilterAlgebraNode node)
		{
			FilterIterator filterIterator = new FilterIterator();
			filterIterator.RowBuffer = new object[node.OutputList.Length];
			filterIterator.Input = ConvertAlgebraNode(node.Input);
			filterIterator.InputOutput = GetIteratorOutput(0, node.Input.OutputList, node.OutputList);
			BoundRowBufferEntrySet boundRowBufferEntrySet = new BoundRowBufferEntrySet(filterIterator.Input.RowBuffer, node.Input.OutputList);
			filterIterator.Predicate = CreateRuntimeExpression(node.Predicate, boundRowBufferEntrySet);
			SetLastIterator(node, filterIterator);

			return node;
		}