@VisibleForTesting WorkflowMetadata getWorkflowMetadata(String workflowId) { ResultSet resultSet = session.execute(selectTotalStatement.bind(UUID.fromString(workflowId))); recordCassandraDaoRequests("getWorkflowMetadata"); return Optional.ofNullable(resultSet.one()) .map(row -> { WorkflowMetadata workflowMetadata = new WorkflowMetadata(); workflowMetadata.setTotalTasks(row.getInt(TOTAL_TASKS_KEY)); workflowMetadata.setTotalPartitions(row.getInt(TOTAL_PARTITIONS_KEY)); return workflowMetadata; }).orElseThrow(() -> new ApplicationException(ApplicationException.Code.NOT_FOUND, String.format("Workflow with id: %s not found in data store", workflowId))); }
@Override public long getLong(int i) { switch (getCassandraType(i)) { case INT: return currentRow.getInt(i); case BIGINT: case COUNTER: return currentRow.getLong(i); case TIMESTAMP: return currentRow.getTimestamp(i).getTime(); case FLOAT: return floatToRawIntBits(currentRow.getFloat(i)); default: throw new IllegalStateException("Cannot retrieve long for " + getCassandraType(i)); } }
return CassandraCqlUtils.quoteStringLiteral(row.getString(i)); case INT: return Integer.toString(row.getInt(i)); case BIGINT: case COUNTER:
@Override public DatabaseQueue getQueue(String name) { logger.trace( "getQueue " + name ); Clause queueNameClause = QueryBuilder.eq(COLUMN_QUEUE_NAME, name); Statement query = QueryBuilder.select().all().from(TABLE_QUEUES) .where(queueNameClause); Row row = cassandraClient.getApplicationSession().execute(query).one(); if(row == null){ return null; } final String queueName = row.getString(COLUMN_QUEUE_NAME); final String regions = row.getString(COLUMN_REGIONS); final String defaultDestinations = row.getString(COLUMN_DEFAULT_DESTINATIONS); final long defaultDelayMs = row.getLong(COLUMN_DEFAULT_DELAY_MS); final int retryCount = row.getInt(COLUMN_RETRY_COUNT); final int handlingTimeoutSec = row.getInt(COLUMN_HANDLING_TIMEOUT_SEC); final String deadLetterQueue = row.getString(COLUMN_DEAD_LETTER_QUEUE); return new DatabaseQueue( queueName, regions, defaultDestinations, defaultDelayMs, retryCount, handlingTimeoutSec, deadLetterQueue); }
return row.getInt(i);
return NullableValue.of(nativeType, utf8Slice(row.getString(i))); case INT: return NullableValue.of(nativeType, (long) row.getInt(i)); case BIGINT: case COUNTER:
String userId = row.getString("user_id"); String appToken = row.getString("app_token"); int schemaVersion = row.getInt("schema_version");
@Override public Integer apply(ResultSet rs) { return rs.one().getInt(0); } },
private void verifyNextIndexDefinition( Iterator<Row> iterator, String name, String options, String type, int index) { Row nextIndex = iterator.next(); assertThat(nextIndex.getString("index_name")).isEqualTo(name); assertThat(nextIndex.getString("index_options")).isEqualTo(options); assertThat(nextIndex.getString("index_type")).isEqualTo(type); assertThat(nextIndex.getInt("component_index")).isEqualTo(index); }
private void assertRow(Row row) { assertThat(row.getInt(0)).isEqualTo(42); assertThat(row.getObject(0)).isEqualTo(42); // uses the default codec assertThat(row.get(0, Integer.class)).isEqualTo(42); assertThat(row.get(0, String.class)).isEqualTo("42"); assertThat(row.getList(1, Integer.class)).isEqualTo(newArrayList(42)); assertThat(row.getList(1, String.class)).isEqualTo(newArrayList("42")); assertThat(row.getObject(1)).isEqualTo(newArrayList(42)); // uses the default codec assertThat(row.get(1, TypeTokens.listOf(Integer.class))).isEqualTo(newArrayList(42)); assertThat(row.get(1, TypeTokens.listOf(String.class))).isEqualTo(newArrayList("42")); }
@CassandraVersion("2.0.0") @Test(groups = "short") public void should_execute_wrapped_batch_statement() { BatchStatement batchStatement = new BatchStatement(); batchStatement.add(new SimpleStatement(INSERT_QUERY, "key_batch", 1)); session().execute(new CustomStatement(batchStatement)); ResultSet rs = session().execute(SELECT_QUERY, "key_batch"); assertThat(rs.one().getInt("v")).isEqualTo(1); }
@Override public ListenableFuture<ResultSet> apply(ResultSet rs) throws Exception { int remainingInPage = rs.getAvailableWithoutFetching(); for (Row row : rs) { all.add(row.getInt(0)); if (--remainingInPage == 0) break; } boolean wasLastPage = rs.getExecutionInfo().getPagingState() == null; if (wasLastPage) return Futures.immediateFuture(rs); else return GuavaCompatibility.INSTANCE.transformAsync(rs.fetchMoreResults(), this); } }
@CassandraVersion("2.0.0") @Test(groups = "short") public void should_execute_wrapped_simple_statement() { session().execute(new CustomStatement(new SimpleStatement(INSERT_QUERY, "key_simple", 1))); ResultSet rs = session().execute(new CustomStatement(new SimpleStatement(SELECT_QUERY, "key_simple"))); assertThat(rs.one().getInt("v")).isEqualTo(1); }
@CassandraVersion("2.0.0") @Test(groups = "short") public void should_add_wrapped_batch_statement_to_batch_statement() { BatchStatement batchStatementForWrapping = new BatchStatement(); batchStatementForWrapping.add(new SimpleStatement(INSERT_QUERY, "key1", 1)); BatchStatement batchStatement = new BatchStatement(); batchStatement.add(new CustomStatement(new SimpleStatement(INSERT_QUERY, "key2", 2))); batchStatement.add(new CustomStatement(batchStatementForWrapping)); session().execute(batchStatement); ResultSet rs = session().execute(SELECT_QUERY, "key1"); assertThat(rs.one().getInt("v")).isEqualTo(1); rs = session().execute(SELECT_QUERY, "key2"); assertThat(rs.one().getInt("v")).isEqualTo(2); }
@Test(groups = "short") public void should_execute_wrapped_bound_statement() { PreparedStatement preparedStatement = session().prepare(new SimpleStatement(INSERT_QUERY)); session().execute(new CustomStatement(preparedStatement.bind("key_bound", 1))); preparedStatement = session().prepare(new SimpleStatement(SELECT_QUERY)); ResultSet rs = session().execute(new CustomStatement(preparedStatement.bind("key_bound"))); assertThat(rs.one().getInt("v")).isEqualTo(1); }
static void checkExecuteResultSet(ResultSet rs, String key) { assertThat(rs.isExhausted()).isFalse(); Row row = rs.one(); assertThat(rs.isExhausted()).isTrue(); assertThat(row.getString("k")).isEqualTo(key); assertThat(row.getString("t")).isEqualTo("foo"); assertThat(row.getInt("i")).isEqualTo(42); assertThat(row.getFloat("f")).isEqualTo(24.03f, offset(0.1f)); }
@Test(groups = "short") public void should_handle_contains_on_list_with_index() { PreparedStatement byBuyer = session() .prepare( select("id", "description", "buyers") .from("products") .where(contains("buyers", bindMarker("buyer")))); ResultSet results = session().execute(byBuyer.bind().setInt("buyer", 4)); Row row = results.one(); assertThat(row).isNotNull(); assertThat(row.getInt("id")).isEqualTo(38471); assertThat(row.getList("buyers", Integer.class)).contains(4); }
private void testWideTable(int key) throws Throwable { // Write data Insert insertStatement = insertInto("wide_table").value("k", key); for (int i = 0; i < 330; ++i) { insertStatement = insertStatement.value(createColumnName(i), i); } session().execute(insertStatement.setConsistencyLevel(ConsistencyLevel.QUORUM)); // Read data Row row = session().execute(select().all().from("wide_table").where(eq("k", key))).one(); // Verify data for (int i = 0; i < 330; ++i) { assertTrue(row.getInt(createColumnName(i)) == i); } }