use of com.datastax.oss.protocol.internal.request.Query in project java-driver by datastax.
the class GraphRequestHandlerTest method should_set_correct_query_options_from_graph_statement.
@Test
@UseDataProvider(location = DseTestDataProviders.class, value = "supportedGraphProtocols")
public void should_set_correct_query_options_from_graph_statement(GraphProtocol subProtocol) throws IOException {
// initialization
GraphRequestHandlerTestHarness harness = GraphRequestHandlerTestHarness.builder().build();
GraphStatement<?> graphStatement = ScriptGraphStatement.newInstance("mockQuery").setQueryParam("name", "value");
GraphBinaryModule module = createGraphBinaryModule(harness.getContext());
// when
DriverExecutionProfile executionProfile = Conversions.resolveExecutionProfile(graphStatement, harness.getContext());
Message m = GraphConversions.createMessageFromGraphStatement(graphStatement, subProtocol, executionProfile, harness.getContext(), module);
// checks
Query query = ((Query) m);
DseQueryOptions options = ((DseQueryOptions) query.options);
assertThat(options.consistency).isEqualTo(DefaultConsistencyLevel.valueOf(executionProfile.getString(DefaultDriverOption.REQUEST_CONSISTENCY)).getProtocolCode());
// set by the mock timestamp generator
assertThat(options.defaultTimestamp).isEqualTo(-9223372036854775808L);
assertThat(options.positionalValues).isEqualTo(ImmutableList.of(serialize(ImmutableMap.of("name", "value"), subProtocol, module)));
m = GraphConversions.createMessageFromGraphStatement(graphStatement.setTimestamp(2L), subProtocol, executionProfile, harness.getContext(), module);
query = ((Query) m);
options = ((DseQueryOptions) query.options);
assertThat(options.defaultTimestamp).isEqualTo(2L);
}
use of com.datastax.oss.protocol.internal.request.Query in project java-driver by datastax.
the class GraphRequestHandlerTest method should_honor_statement_consistency_level.
@Test
public void should_honor_statement_consistency_level() {
// initialization
GraphRequestHandlerTestHarness harness = GraphRequestHandlerTestHarness.builder().build();
ScriptGraphStatement graphStatement = ScriptGraphStatement.builder("mockScript").setConsistencyLevel(DefaultConsistencyLevel.THREE).build();
GraphBinaryModule module = createGraphBinaryModule(harness.getContext());
// when
DriverExecutionProfile executionProfile = Conversions.resolveExecutionProfile(graphStatement, harness.getContext());
Message m = GraphConversions.createMessageFromGraphStatement(graphStatement, GRAPH_BINARY_1_0, executionProfile, harness.getContext(), module);
// checks
assertThat(m).isInstanceOf(Query.class);
Query q = ((Query) m);
assertThat(q.options.consistency).isEqualTo(DefaultConsistencyLevel.THREE.getProtocolCode());
}
use of com.datastax.oss.protocol.internal.request.Query in project java-driver by datastax.
the class InsightsClient method sendJsonMessage.
private CompletionStage<Void> sendJsonMessage(String jsonMessage) {
QueryOptions queryOptions = createQueryOptionsWithJson(jsonMessage);
String logPrefix = driverContext.getSessionName();
Duration timeout = driverContext.getConfig().getDefaultProfile().getDuration(DefaultDriverOption.CONTROL_CONNECTION_TIMEOUT);
LOGGER.debug("sending JSON message: {}", jsonMessage);
Query query = new Query(REPORT_INSIGHT_RPC, queryOptions);
return AdminRequestHandler.call(controlConnection.channel(), query, timeout, logPrefix).start();
}
use of com.datastax.oss.protocol.internal.request.Query in project java-driver by datastax.
the class ReprepareOnUpTest method should_reprepare_all_if_system_table_empty.
@Test
public void should_reprepare_all_if_system_table_empty() {
MockReprepareOnUp reprepareOnUp = new MockReprepareOnUp("test", pool, ImmediateEventExecutor.INSTANCE, getMockPayloads('a', 'b', 'c', 'd', 'e', 'f'), context, whenPrepared);
reprepareOnUp.start();
MockAdminQuery adminQuery = reprepareOnUp.queries.poll();
assertThat(adminQuery).isNotNull();
assertThat(adminQuery.request).isInstanceOf(Query.class);
assertThat(((Query) adminQuery.request).query).isEqualTo("SELECT prepared_id FROM system.prepared_statements");
// server knows no ids:
adminQuery.resultFuture.complete(new AdminResult(preparedIdRows(), null, DefaultProtocolVersion.DEFAULT));
for (char c = 'a'; c <= 'f'; c++) {
adminQuery = reprepareOnUp.queries.poll();
assertThat(adminQuery).isNotNull();
assertThat(adminQuery.request).isInstanceOf(Prepare.class);
assertThat(((Prepare) adminQuery.request).cqlQuery).isEqualTo("mock query " + c);
adminQuery.resultFuture.complete(null);
}
assertThatStage(done).isSuccess(v -> assertThat(reprepareOnUp.queries).isEmpty());
}
use of com.datastax.oss.protocol.internal.request.Query in project java-driver by datastax.
the class ReprepareOnUpTest method should_limit_number_of_statements_reprepared_in_parallel.
@Test
public void should_limit_number_of_statements_reprepared_in_parallel() {
when(defaultProfile.getInt(DefaultDriverOption.REPREPARE_MAX_PARALLELISM)).thenReturn(3);
MockReprepareOnUp reprepareOnUp = new MockReprepareOnUp("test", pool, ImmediateEventExecutor.INSTANCE, getMockPayloads('a', 'b', 'c', 'd', 'e', 'f'), context, whenPrepared);
reprepareOnUp.start();
MockAdminQuery adminQuery = reprepareOnUp.queries.poll();
assertThat(adminQuery).isNotNull();
assertThat(adminQuery.request).isInstanceOf(Query.class);
assertThat(((Query) adminQuery.request).query).isEqualTo("SELECT prepared_id FROM system.prepared_statements");
// server knows no ids => will reprepare all 6:
adminQuery.resultFuture.complete(new AdminResult(preparedIdRows(), null, DefaultProtocolVersion.DEFAULT));
// 3 statements have enqueued, we've not completed the queries yet so no more should be sent:
assertThat(reprepareOnUp.queries.size()).isEqualTo(3);
// As we complete each statement, another one should enqueue:
for (char c = 'a'; c <= 'c'; c++) {
adminQuery = reprepareOnUp.queries.poll();
assertThat(adminQuery).isNotNull();
assertThat(adminQuery.request).isInstanceOf(Prepare.class);
assertThat(((Prepare) adminQuery.request).cqlQuery).isEqualTo("mock query " + c);
adminQuery.resultFuture.complete(null);
assertThat(reprepareOnUp.queries.size()).isEqualTo(3);
}
// Complete the last 3:
for (char c = 'd'; c <= 'f'; c++) {
adminQuery = reprepareOnUp.queries.poll();
assertThat(adminQuery).isNotNull();
assertThat(adminQuery.request).isInstanceOf(Prepare.class);
assertThat(((Prepare) adminQuery.request).cqlQuery).isEqualTo("mock query " + c);
adminQuery.resultFuture.complete(null);
}
assertThatStage(done).isSuccess(v -> assertThat(reprepareOnUp.queries).isEmpty());
}
Aggregations