if (resultsBuffer.getManagedRowCount() < maxRows) { return; //continue to buffer this.getTupleBuffer(), "rows", this.getTupleBuffer().getManagedRowCount(), "batch size", this.getTupleBuffer().getBatchSize()); //$NON-NLS-1$ //$NON-NLS-2$
if (resultsBuffer.getManagedRowCount() < maxRows) { return; //continue to buffer this.getTupleBuffer(), "rows", this.getTupleBuffer().getManagedRowCount(), "batch size", this.getTupleBuffer().getBatchSize()); //$NON-NLS-1$ //$NON-NLS-2$
if (resultsBuffer.getManagedRowCount() < maxRows) { return; //continue to buffer this.getTupleBuffer(), "rows", this.getTupleBuffer().getManagedRowCount(), "batch size", this.getTupleBuffer().getBatchSize()); //$NON-NLS-1$ //$NON-NLS-2$
public void readAhead(long limit) throws TeiidComponentException, TeiidProcessingException { if (buffer == null || done) { return; } if (this.buffer.getManagedRowCount() >= limit) { return; } if (this.batch != null && this.buffer.getRowCount() < this.batch.getEndRow() && !this.buffer.isForwardOnly()) { //haven't saved already this.buffer.addTupleBatch(this.batch, true); } TupleBatch tb = source.nextBatch(); done = tb.getTerminationFlag(); this.buffer.addTupleBatch(tb, true); if (done) { this.buffer.close(); } }
public void readAhead(long limit) throws TeiidComponentException, TeiidProcessingException { if (buffer == null || done) { return; } if (this.buffer.getManagedRowCount() >= limit) { return; } if (this.batch != null && this.buffer.getRowCount() < this.batch.getEndRow() && !this.buffer.isForwardOnly()) { //haven't saved already this.buffer.addTupleBatch(this.batch, true); } TupleBatch tb = source.nextBatch(); done = tb.getTerminationFlag(); this.buffer.addTupleBatch(tb, true); if (done) { this.buffer.close(); } }
public void readAhead(long limit) throws TeiidComponentException, TeiidProcessingException { if (buffer == null || done) { return; } if (this.buffer.getManagedRowCount() >= limit) { return; } if (this.batch != null && this.buffer.getRowCount() < this.batch.getEndRow() && !this.buffer.isForwardOnly()) { //haven't saved already this.buffer.addTupleBatch(this.batch, true); } TupleBatch tb = source.nextBatch(); done = tb.getTerminationFlag(); this.buffer.addTupleBatch(tb, true); if (done) { this.buffer.close(); } }
@Test public void testCollect() throws Exception { FakeRelationalNode sourceNode = new FakeRelationalNode(1, new List[] { Arrays.asList(1), Arrays.asList(1), Arrays.asList(1) }, 1); sourceNode.setElements(Arrays.asList(new ElementSymbol("x", null, DataTypeManager.DefaultDataClasses.INTEGER))); BatchCollector bc = new BatchCollector(sourceNode, BufferManagerFactory.getStandaloneBufferManager(), new CommandContext(), false); bc.collectTuples(true); assertEquals(1, bc.getTupleBuffer().getManagedRowCount()); assertEquals(3, bc.collectTuples().getRowCount()); }
tb.addTuple(Arrays.asList(2)); tb.addTuple(Arrays.asList(2)); assertEquals(3, bi.getBuffer().getManagedRowCount()); bi.nextTuple(); assertEquals(0, bi.getBuffer().getManagedRowCount()); for (int i = 0; i < 2; i++) { assertNotNull(bi.nextTuple()); assertEquals(0, bi.getBuffer().getManagedRowCount()); assertEquals(2, bi.getBuffer().getManagedRowCount()); for (int i = 0; i < 4; i++) { assertNotNull(bi.nextTuple()); assertEquals(0, bi.getBuffer().getManagedRowCount()); assertEquals(0, bi.getBuffer().getManagedRowCount());
/** * Pro-actively pull batches for later use. * There are unfortunately quite a few cases to cover here. */ protected void prefetch(long limit) throws TeiidComponentException, TeiidProcessingException { if (!open) { return; } if (this.buffer == null) { if (this.sortUtility != null) { return; } if (this.iterator != null) { ((BatchIterator)this.iterator).readAhead(limit); return; } if (source.hasBuffer()) { this.buffer = source.getBuffer(-1); return; } if (collector == null) { collector = new BatchCollector(source, source.getBufferManager(), source.getContext(), false); } if (collector.getTupleBuffer() != null && collector.getTupleBuffer().getManagedRowCount() >= limit) { return; } this.buffer = collector.collectTuples(true); } }
/** * Pro-actively pull batches for later use. * There are unfortunately quite a few cases to cover here. */ protected void prefetch(long limit) throws TeiidComponentException, TeiidProcessingException { if (!open) { return; } if (this.buffer == null) { if (this.sortUtility != null) { return; } if (this.iterator != null) { ((BatchIterator)this.iterator).readAhead(limit); return; } if (source.hasBuffer()) { this.buffer = source.getBuffer(-1); return; } if (collector == null) { collector = new BatchCollector(source, source.getBufferManager(), source.getContext(), false); } if (collector.getTupleBuffer() != null && collector.getTupleBuffer().getManagedRowCount() >= limit) { return; } this.buffer = collector.collectTuples(true); } }
@Test public void testTruncateMultiple() throws Exception { ElementSymbol x = new ElementSymbol("x"); //$NON-NLS-1$ x.setType(DataTypeManager.DefaultDataClasses.INTEGER); List<ElementSymbol> schema = Arrays.asList(x); TupleBuffer tb = BufferManagerFactory.getStandaloneBufferManager().createTupleBuffer(schema, "x", TupleSourceType.PROCESSOR); //$NON-NLS-1$ tb.setBatchSize(16); for (int i = 0; i < 131; i++) { tb.addTuple(Arrays.asList(1)); } tb.truncateTo(17); assertEquals(17, tb.getManagedRowCount()); assertEquals(17, tb.getRowCount()); }
/** * Pro-actively pull batches for later use. * There are unfortunately quite a few cases to cover here. */ protected void prefetch(long limit) throws TeiidComponentException, TeiidProcessingException { if (!open) { return; } if (this.buffer == null) { if (this.sortUtility != null) { return; } if (this.iterator != null) { ((BatchIterator)this.iterator).readAhead(limit); return; } if (source.hasBuffer()) { this.buffer = source.getBuffer(-1); return; } if (collector == null) { collector = new BatchCollector(source, source.getBufferManager(), source.getContext(), false); } if (collector.getTupleBuffer() != null && collector.getTupleBuffer().getManagedRowCount() >= limit) { return; } this.buffer = collector.collectTuples(true); } }
@Test public void testTruncatePartial1() throws Exception { ElementSymbol x = new ElementSymbol("x"); //$NON-NLS-1$ x.setType(DataTypeManager.DefaultDataClasses.INTEGER); List<ElementSymbol> schema = Arrays.asList(x); TupleBuffer tb = BufferManagerFactory.getStandaloneBufferManager().createTupleBuffer(schema, "x", TupleSourceType.PROCESSOR); //$NON-NLS-1$ tb.setBatchSize(128); for (int i = 0; i < 131; i++) { tb.addTuple(Arrays.asList(1)); } tb.truncateTo(129); assertEquals(129, tb.getManagedRowCount()); assertEquals(129, tb.getRowCount()); }
@Test public void testTruncatePartial() throws Exception { ElementSymbol x = new ElementSymbol("x"); //$NON-NLS-1$ x.setType(DataTypeManager.DefaultDataClasses.INTEGER); List<ElementSymbol> schema = Arrays.asList(x); TupleBuffer tb = BufferManagerFactory.getStandaloneBufferManager().createTupleBuffer(schema, "x", TupleSourceType.PROCESSOR); //$NON-NLS-1$ tb.setBatchSize(64); for (int i = 0; i < 65; i++) { tb.addTuple(Arrays.asList(1)); } TupleBatch batch = tb.getBatch(1); assertTrue(!batch.getTerminationFlag()); assertEquals(65, tb.getManagedRowCount()); tb.truncateTo(3); assertEquals(3, tb.getManagedRowCount()); assertEquals(3, tb.getRowCount()); batch = tb.getBatch(3); }
@Test public void testDisableSave() 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.setPosition(2); assertTrue(bi.hasNext()); tb.setForwardOnly(true); bi.setPosition(1); bi.disableSave(); for (int i = 0; i < 6; i++) { assertNotNull(bi.nextTuple()); } assertNull(bi.nextTuple()); assertEquals(0, tb.getManagedRowCount()); }
@Test public void testTruncate() throws Exception { ElementSymbol x = new ElementSymbol("x"); //$NON-NLS-1$ x.setType(DataTypeManager.DefaultDataClasses.INTEGER); List<ElementSymbol> schema = Arrays.asList(x); TupleBuffer tb = BufferManagerFactory.getStandaloneBufferManager().createTupleBuffer(schema, "x", TupleSourceType.PROCESSOR); //$NON-NLS-1$ tb.setBatchSize(2); for (int i = 0; i < 5; i++) { tb.addTuple(Arrays.asList(1)); } TupleBatch batch = tb.getBatch(1); assertTrue(!batch.getTerminationFlag()); assertEquals(2, batch.getEndRow()); tb.close(); assertEquals(5, tb.getManagedRowCount()); tb.truncateTo(3); assertEquals(3, tb.getManagedRowCount()); assertEquals(3, tb.getRowCount()); batch = tb.getBatch(3); assertTrue(batch.getTerminationFlag()); tb.truncateTo(2); assertEquals(2, tb.getManagedRowCount()); assertEquals(2, tb.getRowCount()); batch = tb.getBatch(2); assertTrue(batch.getTerminationFlag()); }
assertTrue(item.resultsBuffer.getManagedRowCount() <= rowsPerBatch*23); assertTrue(item.resultsBuffer.getManagedRowCount() <= rowsPerBatch*23); assertEquals(0, item.resultsBuffer.getManagedRowCount()); assertEquals(8, item.resultsBuffer.getRowCount());