@Override public TupleBuffer createTupleBuffer(final List elements, String groupName, TupleSourceType tupleSourceType) { final Long newID = this.tsId.getAndIncrement(); int[] lobIndexes = LobManager.getLobIndexes(elements); Class<?>[] types = getTypeClasses(elements); BatchManagerImpl batchManager = createBatchManager(newID, types); LobManager lobManager = null; if (lobIndexes != null) { FileStore lobStore = createFileStore(newID + "_lobs"); //$NON-NLS-1$ lobManager = new LobManager(lobIndexes, lobStore); batchManager.setLobManager(lobManager); } TupleBuffer tupleBuffer = new TupleBuffer(batchManager, String.valueOf(newID), elements, lobManager, getProcessorBatchSize(elements)); if (LogManager.isMessageToBeRecorded(LogConstants.CTX_BUFFER_MGR, MessageLevel.DETAIL)) { LogManager.logDetail(LogConstants.CTX_BUFFER_MGR, "Creating TupleBuffer:", newID, elements, Arrays.toString(types), "batch size", tupleBuffer.getBatchSize(), "of type", tupleSourceType); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } tupleBuffer.setInlineLobs(inlineLobs); return tupleBuffer; }
@Override public TupleBuffer createTupleBuffer(final List elements, String groupName, TupleSourceType tupleSourceType) { final Long newID = this.tsId.getAndIncrement(); int[] lobIndexes = LobManager.getLobIndexes(elements); Class<?>[] types = getTypeClasses(elements); BatchManagerImpl batchManager = createBatchManager(newID, types); LobManager lobManager = null; if (lobIndexes != null) { FileStore lobStore = createFileStore(newID + "_lobs"); //$NON-NLS-1$ lobManager = new LobManager(lobIndexes, lobStore); batchManager.setLobManager(lobManager); } TupleBuffer tupleBuffer = new TupleBuffer(batchManager, String.valueOf(newID), elements, lobManager, getProcessorBatchSize(elements)); if (LogManager.isMessageToBeRecorded(LogConstants.CTX_BUFFER_MGR, MessageLevel.DETAIL)) { LogManager.logDetail(LogConstants.CTX_BUFFER_MGR, "Creating TupleBuffer:", newID, elements, Arrays.toString(types), "batch size", tupleBuffer.getBatchSize(), "of type", tupleSourceType); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } tupleBuffer.setInlineLobs(inlineLobs); return tupleBuffer; }
@Override public TupleBuffer createTupleBuffer(final List elements, String groupName, TupleSourceType tupleSourceType) { final Long newID = this.tsId.getAndIncrement(); int[] lobIndexes = LobManager.getLobIndexes(elements); Class<?>[] types = getTypeClasses(elements); BatchManagerImpl batchManager = createBatchManager(newID, types); LobManager lobManager = null; if (lobIndexes != null) { FileStore lobStore = createFileStore(newID + "_lobs"); //$NON-NLS-1$ lobManager = new LobManager(lobIndexes, lobStore); batchManager.setLobManager(lobManager); } TupleBuffer tupleBuffer = new TupleBuffer(batchManager, String.valueOf(newID), elements, lobManager, getProcessorBatchSize(elements)); if (LogManager.isMessageToBeRecorded(LogConstants.CTX_BUFFER_MGR, MessageLevel.DETAIL)) { LogManager.logDetail(LogConstants.CTX_BUFFER_MGR, "Creating TupleBuffer:", newID, elements, Arrays.toString(types), "batch size", tupleBuffer.getBatchSize(), "of type", tupleSourceType); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } tupleBuffer.setInlineLobs(inlineLobs); return tupleBuffer; }
@Test public void testLobHandling() throws Exception { ElementSymbol x = new ElementSymbol("x"); //$NON-NLS-1$ x.setType(DataTypeManager.DefaultDataClasses.CLOB); List<ElementSymbol> schema = Arrays.asList(x); TupleBuffer tb = BufferManagerFactory.getStandaloneBufferManager().createTupleBuffer(schema, "x", TupleSourceType.PROCESSOR); //$NON-NLS-1$ tb.setInlineLobs(false); ClobType c = new ClobType(new SerialClob(new char[0])); TupleBatch batch = new TupleBatch(1, new List[] {Arrays.asList(c)}); tb.addTupleBatch(batch, false); assertNotNull(tb.getLobReference(c.getReferenceStreamId())); }