@Override protected RequestMessage createRequestMessage(String[] commands, boolean isBatchedCommand, ResultsMode resultsMode) { RequestMessage message = super.createRequestMessage(commands, isBatchedCommand, resultsMode); message.setStatementType(StatementType.CALLABLE); return message; }
@Override protected RequestMessage createRequestMessage(String[] commands, boolean isBatchedCommand, ResultsMode resultsMode) { RequestMessage message = super.createRequestMessage(commands, isBatchedCommand, resultsMode); message.setStatementType(StatementType.CALLABLE); return message; }
@Override protected RequestMessage createRequestMessage(String[] commands, boolean isBatchedCommand, ResultsMode resultsMode) { RequestMessage message = super.createRequestMessage(commands, false, resultsMode); message.setStatementType(StatementType.PREPARED); message.setParameterValues(isBatchedCommand?getParameterValuesList(): getParameterValues()); message.setBatchedUpdate(isBatchedCommand); message.setCommand(this.command); return message; }
@Override protected RequestMessage createRequestMessage(String[] commands, boolean isBatchedCommand, ResultsMode resultsMode) { RequestMessage message = super.createRequestMessage(commands, false, resultsMode); message.setStatementType(StatementType.PREPARED); message.setParameterValues(isBatchedCommand?getParameterValuesList(): getParameterValues()); message.setBatchedUpdate(isBatchedCommand); message.setCommand(this.command); return message; }
@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 static RequestMessage example() { RequestMessage message = new RequestMessage(); message.setStatementType(StatementType.CALLABLE); message.setFetchSize(100); List<Integer> params = new ArrayList<Integer>(); params.add(new Integer(100)); params.add(new Integer(200)); params.add(new Integer(300)); params.add(new Integer(400)); message.setParameterValues(params); message.setPartialResults(true); message.setStyleSheet("myStyleSheet"); //$NON-NLS-1$ message.setExecutionPayload("myExecutionPayload"); //$NON-NLS-1$ try { message.setTxnAutoWrapMode(RequestMessage.TXN_WRAP_ON); } catch (TeiidProcessingException e) { throw new RuntimeException(e); } message.setShowPlan(ShowPlan.ON); message.setRowLimit(1313); message.setReturnAutoGeneratedKeys(true); message.setDelaySerialization(true); message.setSpanContext("foo"); return message; }
/** * Test PreparedStatementRequest.processRequest(). * Test processing the same query twice, and make sure that doesn't cause problems. * @throws Exception * @since 4.2 */ @Test public void testProcessRequestPreparedStatement() throws Exception { QueryMetadataInterface metadata = RealMetadataFactory.example1Cached(); SessionAwareCache<PreparedPlan> cache = new SessionAwareCache<PreparedPlan>("preparedplan", DefaultCacheFactory.INSTANCE, SessionAwareCache.Type.PREPAREDPLAN, 0); //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()); message.setStatementType(StatementType.PREPARED); message.setParameterValues(new ArrayList<Object>()); helpProcessMessage(message, cache, workContext); //Try again, now that plan is already cached. //If this doesn't throw an exception, assume it was successful. message = new RequestMessage(QUERY); message.setStatementType(StatementType.PREPARED); message.setParameterValues(new ArrayList<Object>()); helpProcessMessage(message, cache, workContext); } }
@Test public void testProcedureUpdateCount() throws Exception { String sql = "{? = call TEIIDSP8(1)}"; //$NON-NLS-1$ RequestMessage request = exampleRequestMessage(sql); request.setResultsMode(ResultsMode.UPDATECOUNT); request.setStatementType(StatementType.CALLABLE); ResultsMessage rm = execute("A", 1, request); assertNull(rm.getException()); assertEquals(1, rm.getResultsList().size()); }
/** * Ensure that the row limit is not misapplied. * Note that it still could be applied in this example, but the * resultset only returns a single row */ @Test public void testProcedureMaxRows() throws Exception { String sql = "{? = call TEIIDSP9(1, ?)}"; //$NON-NLS-1$ RequestMessage request = exampleRequestMessage(sql); request.setRowLimit(1); request.setStatementType(StatementType.CALLABLE); ResultsMessage rm = execute("A", 1, request); assertNull(rm.getException()); assertEquals(2, rm.getResultsList().size()); }
request.setStatementType(StatementType.CALLABLE); } else { request.setStatementType(StatementType.PREPARED);
reqMsg.setStatementType(StatementType.PREPARED); rm = execute(userName, sessionid, reqMsg); assertEquals(10, rm.getResultsList().size()); //$NON-NLS-1$ reqMsg.setStatementType(StatementType.PREPARED); rm = execute(userName, sessionid, reqMsg); assertEquals(10, rm.getResultsList().size()); //$NON-NLS-1$ reqMsg.setStatementType(StatementType.PREPARED); rm = execute(userName, sessionid, reqMsg); assertEquals(10, rm.getResultsList().size()); //$NON-NLS-1$ reqMsg.setStatementType(StatementType.PREPARED); rm = execute(userName, sessionid, reqMsg); assertEquals(0, rm.getResultsList().size()); //$NON-NLS-1$