Search in sources :

Example 6 with QueryId

use of com.hazelcast.sql.impl.QueryId in project hazelcast by hazelcast.

the class SqlClientExecuteCloseRaceTest method testClose.

@Test
public void testClose() {
    QueryId queryId = QueryId.create(UUID.randomUUID());
    // Send "close"
    Connection connection = clientService.getQueryConnection();
    ClientMessage closeRequest = SqlCloseCodec.encodeRequest(queryId);
    clientService.invokeOnConnection(connection, closeRequest);
    // Make sure that we observed the cancel request.
    assertEquals(1, memberService.getInternalService().getClientStateRegistry().getCursorCount());
    // Wait for it to disappear.
    memberService.getInternalService().getClientStateRegistry().setClosedCursorCleanupTimeoutSeconds(1L);
    assertTrueEventually(() -> assertEquals(0, memberService.getInternalService().getClientStateRegistry().getCursorCount()));
}
Also used : QueryId(com.hazelcast.sql.impl.QueryId) Connection(com.hazelcast.internal.nio.Connection) ClientMessage(com.hazelcast.client.impl.protocol.ClientMessage) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 7 with QueryId

use of com.hazelcast.sql.impl.QueryId in project hazelcast by hazelcast.

the class SqlClientService method execute.

@Nonnull
@Override
public SqlResult execute(@Nonnull SqlStatement statement) {
    ClientConnection connection = getQueryConnection();
    QueryId id = QueryId.create(connection.getRemoteUuid());
    List<Object> params = statement.getParameters();
    List<Data> params0 = new ArrayList<>(params.size());
    for (Object param : params) {
        params0.add(serializeParameter(param));
    }
    ClientMessage requestMessage = SqlExecuteCodec.encodeRequest(statement.getSql(), params0, statement.getTimeoutMillis(), statement.getCursorBufferSize(), statement.getSchema(), statement.getExpectedResultType().getId(), id, skipUpdateStatistics);
    SqlClientResult res = new SqlClientResult(this, connection, id, statement.getCursorBufferSize());
    try {
        ClientMessage message = invoke(requestMessage, connection);
        handleExecuteResponse(res, message);
        return res;
    } catch (Exception e) {
        RuntimeException error = rethrow(e, connection);
        res.onExecuteError(error);
        throw error;
    }
}
Also used : QueryId(com.hazelcast.sql.impl.QueryId) ArrayList(java.util.ArrayList) ClientConnection(com.hazelcast.client.impl.connection.ClientConnection) Data(com.hazelcast.internal.serialization.Data) ClientMessage(com.hazelcast.client.impl.protocol.ClientMessage) QueryException(com.hazelcast.sql.impl.QueryException) HazelcastSqlException(com.hazelcast.sql.HazelcastSqlException) AccessControlException(java.security.AccessControlException) Nonnull(javax.annotation.Nonnull)

Example 8 with QueryId

use of com.hazelcast.sql.impl.QueryId in project hazelcast by hazelcast.

the class PlanExecutorTest method test_insertExecution.

@Test
public void test_insertExecution() {
    // given
    QueryId queryId = QueryId.create(UuidUtil.newSecureUUID());
    DmlPlan plan = new DmlPlan(Operation.INSERT, planKey(), QueryParameterMetadata.EMPTY, emptySet(), dag, null, false, planExecutor, Collections.emptyList());
    given(hazelcastInstance.getJet()).willReturn(jet);
    given(jet.newLightJob(eq(dag), isA(JobConfig.class))).willReturn(job);
    // when
    SqlResult result = planExecutor.execute(plan, queryId, emptyList(), 0L);
    // then
    assertThat(result.updateCount()).isEqualTo(0);
    verify(job).join();
}
Also used : DmlPlan(com.hazelcast.jet.sql.impl.SqlPlanImpl.DmlPlan) SqlResult(com.hazelcast.sql.SqlResult) QueryId(com.hazelcast.sql.impl.QueryId) JobConfig(com.hazelcast.jet.config.JobConfig) Test(org.junit.Test)

Aggregations

QueryId (com.hazelcast.sql.impl.QueryId)8 ClientMessage (com.hazelcast.client.impl.protocol.ClientMessage)6 Test (org.junit.Test)5 Connection (com.hazelcast.internal.nio.Connection)4 ParallelJVMTest (com.hazelcast.test.annotation.ParallelJVMTest)4 QuickTest (com.hazelcast.test.annotation.QuickTest)4 ClientConnection (com.hazelcast.client.impl.connection.ClientConnection)3 HazelcastSqlException (com.hazelcast.sql.HazelcastSqlException)3 QueryException (com.hazelcast.sql.impl.QueryException)3 SqlExecuteCodec (com.hazelcast.client.impl.protocol.codec.SqlExecuteCodec)2 SqlFetchCodec (com.hazelcast.client.impl.protocol.codec.SqlFetchCodec)2 Data (com.hazelcast.internal.serialization.Data)2 SqlResult (com.hazelcast.sql.SqlResult)2 AccessControlException (java.security.AccessControlException)2 ArrayList (java.util.ArrayList)2 Nonnull (javax.annotation.Nonnull)2 ClientDelegatingFuture (com.hazelcast.client.impl.ClientDelegatingFuture)1 HazelcastClientInstanceImpl (com.hazelcast.client.impl.clientside.HazelcastClientInstanceImpl)1 SqlCloseCodec (com.hazelcast.client.impl.protocol.codec.SqlCloseCodec)1 SqlMappingDdlCodec (com.hazelcast.client.impl.protocol.codec.SqlMappingDdlCodec)1