Search in sources :

Example 1 with ResultsMessage

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

the class TestDQPCore method testRsCacheInvalidation.

@Test
public void testRsCacheInvalidation() throws Exception {
    // $NON-NLS-1$
    String sql = "select * FROM vqt.SmallB";
    // $NON-NLS-1$
    String userName = "1";
    // $NON-NLS-1$
    int sessionid = 1;
    RequestMessage reqMsg = exampleRequestMessage(sql);
    reqMsg.setUseResultSetCache(true);
    ResultsMessage rm = execute(userName, sessionid, reqMsg);
    // $NON-NLS-1$
    assertEquals(10, rm.getResultsList().size());
    assertEquals(0, this.core.getRsCache().getCacheHitCount());
    // $NON-NLS-1$
    sql = "select * FROM vqt.SmallB";
    reqMsg = exampleRequestMessage(sql);
    reqMsg.setUseResultSetCache(true);
    rm = execute(userName, sessionid, reqMsg);
    // $NON-NLS-1$
    assertEquals(10, rm.getResultsList().size());
    assertEquals(1, this.core.getRsCache().getCacheHitCount());
    Thread.sleep(100);
    // $NON-NLS-1$
    sql = "delete from bqt1.smalla";
    reqMsg = exampleRequestMessage(sql);
    rm = execute(userName, sessionid, reqMsg);
    // $NON-NLS-1$
    assertEquals(1, rm.getResultsList().size());
    // $NON-NLS-1$
    sql = "select * FROM vqt.SmallB";
    reqMsg = exampleRequestMessage(sql);
    reqMsg.setUseResultSetCache(true);
    rm = execute(userName, sessionid, reqMsg);
    // $NON-NLS-1$
    assertEquals(10, rm.getResultsList().size());
    assertEquals(1, this.core.getRsCache().getCacheHitCount());
}
Also used : ResultsMessage(org.teiid.client.ResultsMessage) RequestMessage(org.teiid.client.RequestMessage) Test(org.junit.Test)

Example 2 with ResultsMessage

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

the class TestDQPCore method testHasRole.

@Test
public void testHasRole() throws Exception {
    // $NON-NLS-1$
    String sql = "SELECT hasRole('foo')";
    // $NON-NLS-1$
    String userName = "logon";
    ResultsMessage rm = helpExecute(sql, userName);
    assertTrue((Boolean) rm.getResultsList().get(0).get(0));
}
Also used : ResultsMessage(org.teiid.client.ResultsMessage) Test(org.junit.Test)

Example 3 with ResultsMessage

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

the class TestDQPCore method helpTestVisibilityFails.

public void helpTestVisibilityFails(String sql) throws Exception {
    RequestMessage reqMsg = exampleRequestMessage(sql);
    reqMsg.setTxnAutoWrapMode(RequestMessage.TXN_WRAP_OFF);
    Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg);
    ResultsMessage results = message.get(5000, TimeUnit.MILLISECONDS);
    // $NON-NLS-1$
    assertEquals("[QueryValidatorException]Group does not exist: BQT3.SmallA", results.getException().toString());
}
Also used : ResultsMessage(org.teiid.client.ResultsMessage) RequestMessage(org.teiid.client.RequestMessage)

Example 4 with ResultsMessage

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

the class TestDQPCore method testProcedureUpdateCount.

@Test
public void testProcedureUpdateCount() throws Exception {
    // $NON-NLS-1$
    String sql = "{? = call TEIIDSP8(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());
}
Also used : ResultsMessage(org.teiid.client.ResultsMessage) RequestMessage(org.teiid.client.RequestMessage) Test(org.junit.Test)

Example 5 with ResultsMessage

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

the class TestDQPCore method testFinalRow.

@Test
public void testFinalRow() throws Exception {
    // $NON-NLS-1$
    String sql = "SELECT A.IntKey FROM BQT1.SmallA as A";
    // $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(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());
}
Also used : BufferManagerImpl(org.teiid.common.buffer.impl.BufferManagerImpl) 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