private void setTupleBufferState(String state_id, ObjectInputStream in) throws IOException, ClassNotFoundException, TeiidComponentException { long rowCount = in.readLong(); int batchSize = in.readInt(); String[] types = (String[])in.readObject(); List<ElementSymbol> schema = new ArrayList<ElementSymbol>(types.length); for (int i = 0; i < types.length; i++) { ElementSymbol es = new ElementSymbol("x"); //$NON-NLS-1$ es.setType(DataTypeManager.getDataTypeClass(types[i])); schema.add(es); } TupleBuffer buffer = createTupleBuffer(schema, "cached", TupleSourceType.FINAL); //$NON-NLS-1$ buffer.setBatchSize(batchSize); buffer.setId(state_id); for (int row = 1; row <= rowCount; row+=batchSize) { List<List<Object>> batch = BatchSerializer.readBatch(in, types); for (int i = 0; i < batch.size(); i++) { buffer.addTuple(batch.get(i)); } } if (buffer.getRowCount() != rowCount) { buffer.remove(); throw new IOException(QueryPlugin.Util.getString("not_found_cache")); //$NON-NLS-1$ } buffer.close(); addTupleBuffer(buffer); }
private void setTupleBufferState(String state_id, ObjectInputStream in) throws IOException, ClassNotFoundException, TeiidComponentException { long rowCount = in.readLong(); int batchSize = in.readInt(); String[] types = (String[])in.readObject(); List<ElementSymbol> schema = new ArrayList<ElementSymbol>(types.length); for (int i = 0; i < types.length; i++) { ElementSymbol es = new ElementSymbol("x"); //$NON-NLS-1$ es.setType(DataTypeManager.getDataTypeClass(types[i])); schema.add(es); } TupleBuffer buffer = createTupleBuffer(schema, "cached", TupleSourceType.FINAL); //$NON-NLS-1$ buffer.setBatchSize(batchSize); buffer.setId(state_id); for (int row = 1; row <= rowCount; row+=batchSize) { List<List<Object>> batch = BatchSerializer.readBatch(in, types); for (int i = 0; i < batch.size(); i++) { buffer.addTuple(batch.get(i)); } } if (buffer.getRowCount() != rowCount) { buffer.remove(); throw new IOException(QueryPlugin.Util.getString("not_found_cache")); //$NON-NLS-1$ } buffer.close(); addTupleBuffer(buffer); }
private void setTupleBufferState(String state_id, ObjectInputStream in) throws IOException, ClassNotFoundException, TeiidComponentException { long rowCount = in.readLong(); int batchSize = in.readInt(); String[] types = (String[])in.readObject(); List<ElementSymbol> schema = new ArrayList<ElementSymbol>(types.length); for (int i = 0; i < types.length; i++) { ElementSymbol es = new ElementSymbol("x"); //$NON-NLS-1$ es.setType(DataTypeManager.getDataTypeClass(types[i])); schema.add(es); } TupleBuffer buffer = createTupleBuffer(schema, "cached", TupleSourceType.FINAL); //$NON-NLS-1$ buffer.setBatchSize(batchSize); buffer.setId(state_id); for (int row = 1; row <= rowCount; row+=batchSize) { List<List<Object>> batch = BatchSerializer.readBatch(in, types); for (int i = 0; i < batch.size(); i++) { buffer.addTuple(batch.get(i)); } } if (buffer.getRowCount() != rowCount) { buffer.remove(); throw new IOException(QueryPlugin.Util.getString("not_found_cache")); //$NON-NLS-1$ } buffer.close(); addTupleBuffer(buffer); }
@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 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()); }
@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 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()); }