public ResultsFuture<ResultsMessage> processCursorRequest(long reqID, int batchFirst, int fetchSize) throws TeiidProcessingException { if (LogManager.isMessageToBeRecorded(LogConstants.CTX_DQP, MessageLevel.DETAIL)) { LogManager.logDetail(LogConstants.CTX_DQP, "DQP process cursor request", batchFirst, fetchSize); //$NON-NLS-1$ } DQPWorkContext workContext = DQPWorkContext.getWorkContext(); ResultsFuture<ResultsMessage> resultsFuture = new ResultsFuture<ResultsMessage>(); RequestWorkItem workItem = getRequestWorkItem(workContext.getRequestID(reqID)); workItem.requestMore(batchFirst, batchFirst + Math.min(fetchSize, this.config.getMaxRowsFetchSize()) - 1, resultsFuture.getResultsReceiver()); return resultsFuture; }
public ResultsFuture<ResultsMessage> processCursorRequest(long reqID, int batchFirst, int fetchSize) throws TeiidProcessingException { if (LogManager.isMessageToBeRecorded(LogConstants.CTX_DQP, MessageLevel.DETAIL)) { LogManager.logDetail(LogConstants.CTX_DQP, "DQP process cursor request", batchFirst, fetchSize); //$NON-NLS-1$ } DQPWorkContext workContext = DQPWorkContext.getWorkContext(); ResultsFuture<ResultsMessage> resultsFuture = new ResultsFuture<ResultsMessage>(); RequestWorkItem workItem = getRequestWorkItem(workContext.getRequestID(reqID)); workItem.requestMore(batchFirst, batchFirst + Math.min(fetchSize, this.config.getMaxRowsFetchSize()) - 1, resultsFuture.getResultsReceiver()); return resultsFuture; }
public ResultsFuture<ResultsMessage> processCursorRequest(long reqID, int batchFirst, int fetchSize) throws TeiidProcessingException { if (LogManager.isMessageToBeRecorded(LogConstants.CTX_DQP, MessageLevel.DETAIL)) { LogManager.logDetail(LogConstants.CTX_DQP, "DQP process cursor request", batchFirst, fetchSize); //$NON-NLS-1$ } DQPWorkContext workContext = DQPWorkContext.getWorkContext(); ResultsFuture<ResultsMessage> resultsFuture = new ResultsFuture<ResultsMessage>(); RequestWorkItem workItem = getRequestWorkItem(workContext.getRequestID(reqID)); workItem.requestMore(batchFirst, batchFirst + Math.min(fetchSize, this.config.getMaxRowsFetchSize()) - 1, resultsFuture.getResultsReceiver()); return resultsFuture; }
public ResultsFuture<LobChunk> requestNextLobChunk(int lobRequestId, long requestId, String streamId) throws TeiidProcessingException { if (LogManager.isMessageToBeRecorded(LogConstants.CTX_DQP, MessageLevel.DETAIL)) { LogManager.logDetail(LogConstants.CTX_DQP, "Request for next Lob chunk with Stream id="+streamId+" instance id="+lobRequestId); //$NON-NLS-1$//$NON-NLS-2$ } RequestWorkItem workItem = getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(requestId)); ResultsFuture<LobChunk> resultsFuture = new ResultsFuture<LobChunk>(); workItem.processLobChunkRequest(streamId, lobRequestId, resultsFuture.getResultsReceiver()); return resultsFuture; }
public ResultsFuture<LobChunk> requestNextLobChunk(int lobRequestId, long requestId, String streamId) throws TeiidProcessingException { if (LogManager.isMessageToBeRecorded(LogConstants.CTX_DQP, MessageLevel.DETAIL)) { LogManager.logDetail(LogConstants.CTX_DQP, "Request for next Lob chunk with Stream id="+streamId+" instance id="+lobRequestId); //$NON-NLS-1$//$NON-NLS-2$ } RequestWorkItem workItem = getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(requestId)); ResultsFuture<LobChunk> resultsFuture = new ResultsFuture<LobChunk>(); workItem.processLobChunkRequest(streamId, lobRequestId, resultsFuture.getResultsReceiver()); return resultsFuture; }
public ResultsFuture<LobChunk> requestNextLobChunk(int lobRequestId, long requestId, String streamId) throws TeiidProcessingException { if (LogManager.isMessageToBeRecorded(LogConstants.CTX_DQP, MessageLevel.DETAIL)) { LogManager.logDetail(LogConstants.CTX_DQP, "Request for next Lob chunk with Stream id="+streamId+" instance id="+lobRequestId); //$NON-NLS-1$//$NON-NLS-2$ } RequestWorkItem workItem = getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(requestId)); ResultsFuture<LobChunk> resultsFuture = new ResultsFuture<LobChunk>(); workItem.processLobChunkRequest(streamId, lobRequestId, resultsFuture.getResultsReceiver()); return resultsFuture; }
workItem = requestManager.getRequestWorkItem(requestID); } catch (TeiidProcessingException e) { if (preparedSql == null) {
workItem = requestManager.getRequestWorkItem(requestID); } catch (TeiidProcessingException e) { if (preparedSql == null) {
workItem = requestManager.getRequestWorkItem(requestID); } catch (TeiidProcessingException e) { if (preparedSql == null) {
@Test public void testFinalRow() throws Exception { String sql = "SELECT A.IntKey FROM BQT1.SmallA as A"; //$NON-NLS-1$ String userName = "1"; //$NON-NLS-1$ String sessionid = "1"; //$NON-NLS-1$ RequestMessage reqMsg = exampleRequestMessage(sql); reqMsg.setCursorType(ResultSet.TYPE_FORWARD_ONLY); DQPWorkContext.getWorkContext().getSession().setSessionId(sessionid); DQPWorkContext.getWorkContext().getSession().setUserName(userName); ((BufferManagerImpl)core.getBufferManager()).setProcessorBatchSize(10); Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg); ResultsMessage rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); assertEquals(10, rm.getResultsList().size()); RequestWorkItem item = core.getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(reqMsg.getExecutionId())); while(item.isProcessing()); synchronized (item) { for (int i = 0; i < 100; i++) { Thread.sleep(10); } } assertEquals(10, item.resultsBuffer.getRowCount()); }
@Test public void testBufferReuse() throws Exception { //the sql should return 100 rows String sql = "SELECT A.IntKey FROM BQT1.SmallA as A, BQT1.SmallA as B ORDER BY A.IntKey"; //$NON-NLS-1$ String userName = "1"; //$NON-NLS-1$ String sessionid = "1"; //$NON-NLS-1$ RequestMessage reqMsg = exampleRequestMessage(sql); reqMsg.setCursorType(ResultSet.TYPE_FORWARD_ONLY); DQPWorkContext.getWorkContext().getSession().setSessionId(sessionid); DQPWorkContext.getWorkContext().getSession().setUserName(userName); ((BufferManagerImpl)core.getBufferManager()).setProcessorBatchSize(1); Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg); ResultsMessage rm = message.get(500000, TimeUnit.MILLISECONDS); assertNull(rm.getException()); assertEquals(8, rm.getResultsList().size()); RequestWorkItem item = core.getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(reqMsg.getExecutionId())); assertEquals(100, item.resultsBuffer.getRowCount()); }
RequestWorkItem item = core.getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(reqMsg.getExecutionId())); item = core.getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(reqMsg.getExecutionId())); item = core.getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(reqMsg.getExecutionId())); assertEquals(rowsPerBatch, rm.getResultsList().size()); item = core.getRequestWorkItem(DQPWorkContext.getWorkContext().getRequestID(reqMsg.getExecutionId())); assertEquals(0, item.resultsBuffer.getManagedRowCount()); assertEquals(8, item.resultsBuffer.getRowCount());