protected RequestMessage createRequestMessage(String[] commands, boolean isBatchedCommand, ResultsMode resultsMode) { RequestMessage reqMessage = new RequestMessage(); reqMessage.setCommands(commands); reqMessage.setBatchedUpdate(isBatchedCommand); reqMessage.setResultsMode(resultsMode); return reqMessage; }
protected RequestMessage createRequestMessage(String[] commands, boolean isBatchedCommand, ResultsMode resultsMode) { RequestMessage reqMessage = new RequestMessage(); reqMessage.setCommands(commands); reqMessage.setBatchedUpdate(isBatchedCommand); reqMessage.setResultsMode(resultsMode); return reqMessage; }
private RequestID addRequest(DQPCore rm, String sessionId, int executionId) { RequestMessage r0 = new RequestMessage("test command"); //$NON-NLS-1$ RequestID id = new RequestID(sessionId, executionId); addRequest(rm, r0, id, null, null); return id; }
/** * Test Request.processRequest(). * Test processing the same query twice, and make sure that doesn't cause problems. * See defect 17209. * @throws Exception * @since 4.2 */ @Test public void testProcessRequest() throws Exception { QueryMetadataInterface metadata = RealMetadataFactory.example1Cached(); //Try before plan is cached. //If this doesn't throw an exception, assume it was successful. RequestMessage message = new RequestMessage(QUERY); DQPWorkContext workContext = RealMetadataFactory.buildWorkContext(metadata, RealMetadataFactory.example1VDB()); helpProcessMessage(message, null, workContext); //Try again, now that plan is already cached. //If this doesn't throw an exception, assume it was successful. message = new RequestMessage(QUERY); helpProcessMessage(message, null, workContext); }
@Override public void execute(String command, List<?> parameters) { final String sessionId = DQPWorkContext.getWorkContext().getSessionId(); RequestMessage request = new RequestMessage(command); request.setParameterValues(parameters); request.setStatementType(StatementType.PREPARED); ResultsFuture<ResultsMessage> result; try { result = executeRequest(0, request); } catch (TeiidProcessingException e) { throw new TeiidRuntimeException(e); } result.addCompletionListener(new ResultsFuture.CompletionListener<ResultsMessage>() { @Override public void onCompletion( ResultsFuture<ResultsMessage> future) { terminateSession(sessionId); } }); }
@Override public void execute(String command, List<?> parameters) { final String sessionId = DQPWorkContext.getWorkContext().getSessionId(); RequestMessage request = new RequestMessage(command); request.setParameterValues(parameters); request.setStatementType(StatementType.PREPARED); ResultsFuture<ResultsMessage> result; try { result = executeRequest(0, request); } catch (TeiidProcessingException e) { throw new TeiidRuntimeException(e); } result.addCompletionListener(new ResultsFuture.CompletionListener<ResultsMessage>() { @Override public void onCompletion( ResultsFuture<ResultsMessage> future) { terminateSession(sessionId); } }); }
@Override public void execute(String command, List<?> parameters) { final String sessionId = DQPWorkContext.getWorkContext().getSessionId(); RequestMessage request = new RequestMessage(command); request.setParameterValues(parameters); request.setStatementType(StatementType.PREPARED); ResultsFuture<ResultsMessage> result; try { result = executeRequest(0, request); } catch (TeiidProcessingException e) { throw new TeiidRuntimeException(e); } result.addCompletionListener(new ResultsFuture.CompletionListener<ResultsMessage>() { @Override public void onCompletion( ResultsFuture<ResultsMessage> future) { terminateSession(sessionId); } }); }
public void testAddRequest() { DQPCore rm = new DQPCore(); rm.setTransactionService(new FakeTransactionService()); RequestMessage r0 = new RequestMessage("foo"); //$NON-NLS-1$ RequestID requestID = new RequestID(SESSION_STRING, 1); addRequest(rm, r0, requestID, null, null); }
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 testInvalidTxnAutoWrap() { RequestMessage rm = new RequestMessage(); try { rm.setTxnAutoWrapMode("foo"); //$NON-NLS-1$ fail("exception expected"); //$NON-NLS-1$ } catch (TeiidProcessingException e) { assertEquals("TEIID20000 'FOO' is an invalid transaction autowrap mode.", e.getMessage()); //$NON-NLS-1$ } }
@Test public void testDateType() throws SQLException { RequestMessage request = new RequestMessage(); request.setExecutionId(REQUEST_ID); ResultsMessage resultsMsg = new ResultsMessage(); resultsMsg.setResults(new List[] {Arrays.asList(new Timestamp(0))}); resultsMsg.setColumnNames(new String[] { "TS" }); //$NON-NLS-1$ resultsMsg.setDataTypes(new String[] { DataTypeManager.DefaultDataTypes.TIMESTAMP }); resultsMsg.setFirstRow(1); resultsMsg.setFinalRow(1); resultsMsg.setLastRow(1); ResultSetImpl rs = new ResultSetImpl(resultsMsg, statement); assertTrue(rs.next()); //assumes the mock statement is setup with GMT-5 server and GMT-6 client //will adjust ahead one hour assertEquals(new Timestamp(3600000), rs.getObject(1)); //will be the same as the original assertEquals(new Timestamp(0), rs.getTimestamp(1, Calendar.getInstance(TimeZone.getTimeZone("GMT-05:00")))); //$NON-NLS-1$ }
private ResultsMessage exampleMessage(List<Object>[] results, String[] columnNames, String[] datatypes) { RequestMessage request = new RequestMessage(); request.setExecutionId(REQUEST_ID); ResultsMessage resultsMsg = new ResultsMessage(); resultsMsg.setResults(results); resultsMsg.setColumnNames(columnNames); resultsMsg.setDataTypes(datatypes); resultsMsg.setFinalRow(results.length); resultsMsg.setLastRow(results.length); resultsMsg.setFirstRow(1); return resultsMsg; }
public void testGetConnectorInfo() { DQPCore rm = new DQPCore(); rm.setTransactionService(new FakeTransactionService()); RequestMessage r0 = new RequestMessage("foo"); //$NON-NLS-1$ RequestID requestID = new RequestID(SESSION_STRING, 1); RequestWorkItem workItem = addRequest(rm, r0, requestID, null, null); AtomicRequestMessage atomicReq = new AtomicRequestMessage(workItem.requestMsg, workItem.getDqpWorkContext(), 1); DataTierTupleSource info = Mockito.mock(DataTierTupleSource.class); workItem.addConnectorRequest(atomicReq.getAtomicRequestID(), info); DataTierTupleSource arInfo = workItem.getConnectorRequest(atomicReq.getAtomicRequestID()); assertTrue(arInfo == info); }
@Test public void testCommandContext() throws Exception { QueryMetadataInterface metadata = RealMetadataFactory.example1Cached(); //Try before plan is cached. //If this doesn't throw an exception, assume it was successful. RequestMessage message = new RequestMessage(QUERY); DQPWorkContext workContext = RealMetadataFactory.buildWorkContext(metadata, RealMetadataFactory.example1VDB()); Request request = helpProcessMessage(message, null, workContext); assertEquals("1", request.context.getConnectionId()); //$NON-NLS-1$ assertNotNull(request.context.getTransactionContext()); }
public void testRemoveConnectorInfo() { DQPCore rm = new DQPCore(); rm.setTransactionService(new FakeTransactionService()); RequestMessage r0 = new RequestMessage("foo"); //$NON-NLS-1$ RequestID requestID = new RequestID(SESSION_STRING, 1); RequestWorkItem workItem = addRequest(rm, r0, requestID, null, null); AtomicRequestMessage atomicReq = new AtomicRequestMessage(workItem.requestMsg, workItem.getDqpWorkContext(), 1); DataTierTupleSource info = Mockito.mock(DataTierTupleSource.class); workItem.addConnectorRequest(atomicReq.getAtomicRequestID(), info); workItem.closeAtomicRequest(atomicReq.getAtomicRequestID()); DataTierTupleSource arInfo = workItem.getConnectorRequest(atomicReq.getAtomicRequestID()); assertNull(arInfo); } }
static ResultsMessage exampleResultsMsg4(int begin, int length, boolean lastBatch) { RequestMessage request = new RequestMessage(); request.setExecutionId(REQUEST_ID); ResultsMessage resultsMsg = new ResultsMessage(); List[] results = exampleResults1(length, begin); resultsMsg.setResults(results); resultsMsg.setColumnNames(new String[] { "IntKey" }); //$NON-NLS-1$ resultsMsg.setDataTypes(new String[] { DataTypeManager.DefaultDataTypes.INTEGER }); resultsMsg.setFirstRow(begin); if (lastBatch) { resultsMsg.setFinalRow(begin + results.length - 1); } resultsMsg.setLastRow(begin + results.length - 1); return resultsMsg; }
static AtomicRequestMessage createNewAtomicRequestMessage(int requestid, int nodeid) throws Exception { RequestMessage rm = new RequestMessage(); DQPWorkContext workContext = RealMetadataFactory.buildWorkContext(EXAMPLE_BQT, RealMetadataFactory.exampleBQTVDB()); workContext.getSession().setSessionId(String.valueOf(1)); workContext.getSession().setUserName("foo"); //$NON-NLS-1$ AtomicRequestMessage request = new AtomicRequestMessage(rm, workContext, nodeid); request.setCommand(helpGetCommand("SELECT BQT1.SmallA.INTKEY FROM BQT1.SmallA", EXAMPLE_BQT)); //$NON-NLS-1$ request.setRequestID(new RequestID(requestid)); request.setConnectorName("testing"); //$NON-NLS-1$ request.setFetchSize(5); request.setCommandContext(new CommandContext()); return request; }
@Test public void testGetOutputParameter() throws Exception { CallableStatementImpl mmcs = getCallableStatement(); RequestMessage request = new RequestMessage(); request.setExecutionId(1); ResultsMessage resultsMsg = new ResultsMessage(); List<?>[] results = new List[] {Arrays.asList(null, null, null), Arrays.asList(null, 1, 2)}; resultsMsg.setResults(results); resultsMsg.setColumnNames(new String[] { "IntNum", "Out1", "Out2" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ resultsMsg.setDataTypes(new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER }); resultsMsg.setFinalRow(results.length); resultsMsg.setLastRow(results.length); resultsMsg.setFirstRow(1); resultsMsg.setParameters(Arrays.asList(new ParameterInfo(ParameterInfo.RESULT_SET, 1), new ParameterInfo(ParameterInfo.OUT, 1), new ParameterInfo(ParameterInfo.OUT, 1))); mmcs.createResultSet(resultsMsg); assertEquals(1, mmcs.getInt(1)); assertEquals(2, mmcs.getInt(2)); assertEquals(1, mmcs.getInt("Out1")); assertEquals(2, mmcs.getInt("Out2")); }
public Map[] helpGetMetadata(String sql, QueryMetadataInterface metadata, VDBMetaData vdb) throws Exception { // Prepare sql Command command = QueryParser.getQueryParser().parseCommand(sql); QueryResolver.resolveCommand(command, metadata); // Create components SessionAwareCache<PreparedPlan> prepPlanCache = new SessionAwareCache<PreparedPlan>("preparedplan", new DefaultCacheFactory(new CacheConfiguration()), SessionAwareCache.Type.PREPAREDPLAN, 0); DQPCore requestMgr = new DQPCore(); requestMgr.setTransactionService(new FakeTransactionService()); DQPWorkContext workContext = RealMetadataFactory.buildWorkContext(metadata, vdb); // Initialize components RequestID requestID = workContext.getRequestID(1); RequestMessage requestMsg = new RequestMessage(sql); TestDQPCoreRequestHandling.addRequest(requestMgr, requestMsg, requestID, command, null); MetaDataProcessor mdProc = new MetaDataProcessor(requestMgr, prepPlanCache, "MyVDB", 1); return mdProc.processMessage(requestID, workContext, null, true).getColumnMetadata(); }
private AtomicRequestMessage helpSetupRequest(String sql, int nodeId, QueryMetadataInterface metadata) throws Exception { DQPWorkContext workContext = RealMetadataFactory.buildWorkContext(metadata, vdb); Command command = helpGetCommand(sql, metadata); RequestMessage original = new RequestMessage(); original.setExecutionId(id++); original.setPartialResults(true); RequestID requestID = workContext.getRequestID(original.getExecutionId()); context = new CommandContext(); context.setSession(workContext.getSession()); context.setVdbName("test"); //$NON-NLS-1$ context.setVdbVersion(1); context.setQueryProcessorFactory(new QueryProcessorFactoryImpl(dtm.getBufferManager(), dtm, new DefaultCapabilitiesFinder(), null, metadata)); workItem = TestDQPCoreRequestHandling.addRequest(rm, original, requestID, null, workContext); context.setWorkItem(workItem); AtomicRequestMessage request = new AtomicRequestMessage(original, workContext, nodeId); request.setCommand(command); request.setConnectorName("FakeConnectorID"); //$NON-NLS-1$ request.setCommandContext(context); return request; }