@Override protected List<?> finalRow() throws TeiidComponentException, TeiidProcessingException { if (this.buffer != null && this.getCurrentIndex() <= this.buffer.getRowCount()) { batch = this.buffer.getBatch(this.getCurrentIndex()); } while (available() < 1) { if (done) { return null; } batch = source.nextBatch(); done = batch.getTerminationFlag(); if (buffer != null && (!saveOnMark || mark) && !buffer.isForwardOnly()) { buffer.addTupleBatch(batch, true); } if (done && buffer != null) { this.buffer.close(); } } return getCurrentTuple(); }
@Override protected List<?> finalRow() throws TeiidComponentException, TeiidProcessingException { if (this.buffer != null && this.getCurrentIndex() <= this.buffer.getRowCount()) { batch = this.buffer.getBatch(this.getCurrentIndex()); } while (available() < 1) { if (done) { return null; } batch = source.nextBatch(); done = batch.getTerminationFlag(); if (buffer != null && (!saveOnMark || mark) && !buffer.isForwardOnly()) { buffer.addTupleBatch(batch, true); } if (done && buffer != null) { this.buffer.close(); } } return getCurrentTuple(); }
@Override protected List<?> finalRow() throws TeiidComponentException, TeiidProcessingException { if (this.buffer != null && this.getCurrentIndex() <= this.buffer.getRowCount()) { batch = this.buffer.getBatch(this.getCurrentIndex()); } while (available() < 1) { if (done) { return null; } batch = source.nextBatch(); done = batch.getTerminationFlag(); if (buffer != null && (!saveOnMark || mark) && !buffer.isForwardOnly()) { buffer.addTupleBatch(batch, true); } if (done && buffer != null) { this.buffer.close(); } } return getCurrentTuple(); }
@Test public void testReadAhead() throws Exception { BatchIterator bi = new BatchIterator(new FakeRelationalNode(1, new List[] { Arrays.asList(1), Arrays.asList(1), Arrays.asList(1), Arrays.asList(1), Arrays.asList(1), Arrays.asList(1), }, 2)); BufferManager bm = BufferManagerFactory.getStandaloneBufferManager(); TupleBuffer tb = bm.createTupleBuffer(Arrays.asList(new ElementSymbol("x", null, DataTypeManager.DefaultDataClasses.INTEGER)), "test", TupleSourceType.PROCESSOR); bi.setBuffer(tb, false); //$NON-NLS-1$ bi.nextTuple(); assertEquals(1, bi.available()); assertEquals(2, bi.getBuffer().getRowCount()); bi.readAhead(100); assertEquals(4, bi.getBuffer().getRowCount()); //shouldn't keep reading bi.readAhead(3); assertEquals(4, bi.getBuffer().getRowCount()); bi.readAhead(5); assertEquals(6, bi.getBuffer().getRowCount()); bi.readAhead(8); //does nothing for (int i = 0; i < 5; i++) { assertNotNull(bi.nextTuple()); } assertNull(bi.nextTuple()); }
bi.setBuffer(tb, true); //$NON-NLS-1$ bi.nextTuple(); assertEquals(1, bi.available()); assertEquals(0, bi.getBuffer().getRowCount()); bi.readAhead(100);
bi.nextTuple(); assertEquals(2, bi.available()); assertEquals(0, bi.getBuffer().getManagedRowCount()); for (int i = 0; i < 2; i++) {