Search in sources :

Example 6 with ResultsMessage

use of org.teiid.client.ResultsMessage in project teiid by teiid.

the class TestDQPCore method testProcedureMaxRows.

/**
 * 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 {
    // $NON-NLS-1$
    String sql = "{? = call TEIIDSP9(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());
}
Also used : ResultsMessage(org.teiid.client.ResultsMessage) RequestMessage(org.teiid.client.RequestMessage) Test(org.junit.Test)

Example 7 with ResultsMessage

use of org.teiid.client.ResultsMessage in project teiid by teiid.

the class TestDQPCore method testLimitCompensation1.

@Test
public void testLimitCompensation1() throws Exception {
    // $NON-NLS-1$
    String sql = "SELECT * FROM VQT.SmallA_2589g LIMIT 1, 1";
    // $NON-NLS-1$
    ResultsMessage rm = helpExecute(sql, "a");
    assertEquals(1, rm.getResultsList().size());
}
Also used : ResultsMessage(org.teiid.client.ResultsMessage) Test(org.junit.Test)

Example 8 with ResultsMessage

use of org.teiid.client.ResultsMessage in project teiid by teiid.

the class TestDQPCore method testBufferReuse.

@Test
public void testBufferReuse() throws Exception {
    // the sql should return 100 rows
    // $NON-NLS-1$
    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";
    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());
}
Also used : BufferManagerImpl(org.teiid.common.buffer.impl.BufferManagerImpl) ResultsMessage(org.teiid.client.ResultsMessage) RequestMessage(org.teiid.client.RequestMessage) Test(org.junit.Test)

Example 9 with ResultsMessage

use of org.teiid.client.ResultsMessage in project teiid by teiid.

the class TestDQPCore method testLobConcurrency.

@Test
public void testLobConcurrency() throws Exception {
    RequestMessage reqMsg = exampleRequestMessage("select to_bytes(stringkey, 'utf-8') FROM BQT1.SmallA");
    reqMsg.setTxnAutoWrapMode(RequestMessage.TXN_WRAP_OFF);
    agds.setSleep(100);
    ResultsFuture<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg);
    final LobThread t = new LobThread(reqMsg);
    t.start();
    message.addCompletionListener(new ResultsFuture.CompletionListener<ResultsMessage>() {

        @Override
        public void onCompletion(ResultsFuture<ResultsMessage> future) {
            try {
                final BlobType bt = (BlobType) future.get().getResultsList().get(0).get(0);
                synchronized (t) {
                    t.bt = bt;
                    t.workContext = DQPWorkContext.getWorkContext();
                    t.notify();
                }
                // give the Thread a chance to run
                Thread.sleep(100);
            } catch (Exception e) {
                t.interrupt();
                throw new RuntimeException(e);
            }
        }
    });
    message.get();
    t.join();
    assertNotNull(t.chunkFuture.get().getBytes());
}
Also used : ResultsFuture(org.teiid.client.util.ResultsFuture) BlobType(org.teiid.core.types.BlobType) ResultsMessage(org.teiid.client.ResultsMessage) RequestMessage(org.teiid.client.RequestMessage) TimeoutException(java.util.concurrent.TimeoutException) TeiidProcessingException(org.teiid.core.TeiidProcessingException) QueryResolverException(org.teiid.api.exception.query.QueryResolverException) ExecutionException(java.util.concurrent.ExecutionException) Test(org.junit.Test)

Example 10 with ResultsMessage

use of org.teiid.client.ResultsMessage in project teiid by teiid.

the class TestDQPCore method testServerTimeout.

@Test
public void testServerTimeout() throws Exception {
    RequestMessage reqMsg = exampleRequestMessage("select to_bytes(stringkey, 'utf-8') FROM BQT1.SmallA");
    reqMsg.setTxnAutoWrapMode(RequestMessage.TXN_WRAP_OFF);
    agds.setSleep(100);
    this.config.setQueryTimeout(1);
    ResultsMessage rm = execute("A", 1, reqMsg);
    assertNotNull(rm.getException());
    assertEquals("57014 TEIID30563 The request 1.0 has been cancelled: TEIID31096 Query has exceeded the VDB/engine timeout of 1 milliseconds.", rm.getException().getMessage());
}
Also used : ResultsMessage(org.teiid.client.ResultsMessage) RequestMessage(org.teiid.client.RequestMessage) Test(org.junit.Test)

Aggregations

ResultsMessage (org.teiid.client.ResultsMessage)54 Test (org.junit.Test)30 RequestMessage (org.teiid.client.RequestMessage)23 ResultsFuture (org.teiid.client.util.ResultsFuture)13 List (java.util.List)6 DQP (org.teiid.client.DQP)6 ArrayList (java.util.ArrayList)5 Properties (java.util.Properties)5 BufferManagerImpl (org.teiid.common.buffer.impl.BufferManagerImpl)5 ExecutionException (java.util.concurrent.ExecutionException)4 SQLException (java.sql.SQLException)3 TimeoutException (java.util.concurrent.TimeoutException)3 InvocationOnMock (org.mockito.invocation.InvocationOnMock)3 ParameterInfo (org.teiid.client.metadata.ParameterInfo)3 TeiidComponentException (org.teiid.core.TeiidComponentException)3 TeiidException (org.teiid.core.TeiidException)3 TeiidProcessingException (org.teiid.core.TeiidProcessingException)3 BigInteger (java.math.BigInteger)2 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 QueryResolverException (org.teiid.api.exception.query.QueryResolverException)2