public RequestMessage exampleRequestMessage(String sql) { RequestMessage msg = new RequestMessage(sql); msg.setCursorType(ResultSet.TYPE_SCROLL_INSENSITIVE); msg.setFetchSize(10); msg.setPartialResults(false); msg.setExecutionId(100); msg.setExecutionId(id++); return msg; }
@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()); }
@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()); }
RequestMessage reqMsg = exampleRequestMessage(sql); reqMsg.setRowLimit(11); reqMsg.setCursorType(ResultSet.TYPE_FORWARD_ONLY); DQPWorkContext.getWorkContext().getSession().setSessionId(sessionid); DQPWorkContext.getWorkContext().getSession().setUserName(userName);
reqMsg.setCursorType(ResultSet.TYPE_FORWARD_ONLY); DQPWorkContext.getWorkContext().getSession().setSessionId(sessionid); DQPWorkContext.getWorkContext().getSession().setUserName(userName); reqMsg.setCursorType(ResultSet.TYPE_SCROLL_INSENSITIVE); reqMsg.setExecutionId(id++); reqMsg.setCursorType(ResultSet.TYPE_FORWARD_ONLY); reqMsg.setSync(true);
reqMsg.setCursorType(this.resultSetType); reqMsg.setFetchSize(this.fetchSize); reqMsg.setRowLimit(this.maxRows);
reqMsg.setCursorType(this.resultSetType); reqMsg.setFetchSize(this.fetchSize); reqMsg.setRowLimit(this.maxRows);