public override AlgebraNode VisitIndexSpoolAlgebraNode(IndexSpoolAlgebraNode node) { IndexSpoolIterator indexSpoolIterator = new IndexSpoolIterator(); indexSpoolIterator.RowBuffer = new object[node.OutputList.Length]; indexSpoolIterator.Input = ConvertAlgebraNode(node.Input); indexSpoolIterator.InputOutput = GetIteratorOutput(0, node.Input.OutputList, node.OutputList); indexSpoolIterator.IndexEntry = GetIteratorInput(node.Input.OutputList, new RowBufferEntry[] { node.IndexEntry })[0]; BoundRowBufferEntrySet boundRowBufferEntrySet = new BoundRowBufferEntrySet(indexSpoolIterator.Input.RowBuffer, node.Input.OutputList); indexSpoolIterator.ProbeExpression = CreateRuntimeExpression(node.ProbeExpression, boundRowBufferEntrySet); SetLastIterator(node, indexSpoolIterator); return(node); }
public override AlgebraNode VisitIndexSpoolAlgebraNode(IndexSpoolAlgebraNode node) { IndexSpoolIterator indexSpoolIterator = new IndexSpoolIterator(); indexSpoolIterator.RowBuffer = new object[node.OutputList.Length]; indexSpoolIterator.Input = ConvertAlgebraNode(node.Input); indexSpoolIterator.InputOutput = GetIteratorOutput(0, node.Input.OutputList, node.OutputList); indexSpoolIterator.IndexEntry = GetIteratorInput(node.Input.OutputList, new RowBufferEntry[] { node.IndexEntry })[0]; BoundRowBufferEntrySet boundRowBufferEntrySet = new BoundRowBufferEntrySet(indexSpoolIterator.Input.RowBuffer, node.Input.OutputList); indexSpoolIterator.ProbeExpression = CreateRuntimeExpression(node.ProbeExpression, boundRowBufferEntrySet); SetLastIterator(node, indexSpoolIterator); return node; }