use of com.datastax.oss.driver.api.core.cql.Row in project janusgraph by JanusGraph.
the class CQLResultSetKeyIteratorTest method testIterator.
@Test
public void testIterator() throws IOException {
final Array<Row> rows = Array.rangeClosed(1, 100).map(idx -> {
final Row row = mock(Row.class);
when(row.getByteBuffer("key")).thenReturn(ByteBuffer.wrap(Integer.toString(idx / 5).getBytes()));
when(row.getByteBuffer("column1")).thenReturn(ByteBuffer.wrap(Integer.toString(idx % 5).getBytes()));
when(row.getByteBuffer("value")).thenReturn(ByteBuffer.wrap(Integer.toString(idx).getBytes()));
return row;
});
final ResultSet resultSet = mock(ResultSet.class);
when(resultSet.iterator()).thenReturn(rows.iterator());
final CQLColValGetter getter = new CQLColValGetter(new EntryMetaData[0]);
try (final CQLResultSetKeyIterator resultSetKeyIterator = new CQLResultSetKeyIterator(ALL_COLUMNS, getter, resultSet)) {
int i = 0;
while (resultSetKeyIterator.hasNext()) {
final StaticBuffer next = resultSetKeyIterator.next();
final RecordIterator<Entry> entries = resultSetKeyIterator.getEntries();
while (entries.hasNext()) {
final Row row = rows.get(i++);
final Entry entry = entries.next();
assertEquals(row.getByteBuffer("key"), next.asByteBuffer());
assertEquals(row.getByteBuffer("column1"), entry.getColumn().asByteBuffer());
assertEquals(row.getByteBuffer("value"), entry.getValue().asByteBuffer());
}
}
}
}
use of com.datastax.oss.driver.api.core.cql.Row in project trellis-cassandra by ajs6f.
the class LazyChunkInputStream method initialize.
@Override
protected InputStream initialize() {
Row row = session.execute(query).one();
requireNonNull(row, "Missing binary chunk!");
return row.get("chunk", InputStream.class);
}
use of com.datastax.oss.driver.api.core.cql.Row in project thingsboard by thingsboard.
the class CassandraBaseTimeseriesDao method findAllAsyncSequentiallyWithLimit.
private void findAllAsyncSequentiallyWithLimit(TenantId tenantId, final TsKvQueryCursor cursor, final SimpleListenableFuture<List<TsKvEntry>> resultFuture) {
if (cursor.isFull() || !cursor.hasNextPartition()) {
resultFuture.set(cursor.getData());
} else {
PreparedStatement proto = getFetchStmt(Aggregation.NONE, cursor.getOrderBy());
BoundStatementBuilder stmtBuilder = new BoundStatementBuilder(proto.bind());
stmtBuilder.setString(0, cursor.getEntityType());
stmtBuilder.setUuid(1, cursor.getEntityId());
stmtBuilder.setString(2, cursor.getKey());
stmtBuilder.setLong(3, cursor.getNextPartition());
stmtBuilder.setLong(4, cursor.getStartTs());
stmtBuilder.setLong(5, cursor.getEndTs());
stmtBuilder.setInt(6, cursor.getCurrentLimit());
BoundStatement stmt = stmtBuilder.build();
Futures.addCallback(executeAsyncRead(tenantId, stmt), new FutureCallback<TbResultSet>() {
@Override
public void onSuccess(@Nullable TbResultSet result) {
if (result == null) {
cursor.addData(convertResultToTsKvEntryList(Collections.emptyList()));
findAllAsyncSequentiallyWithLimit(tenantId, cursor, resultFuture);
} else {
Futures.addCallback(result.allRows(readResultsProcessingExecutor), new FutureCallback<List<Row>>() {
@Override
public void onSuccess(@Nullable List<Row> result) {
cursor.addData(convertResultToTsKvEntryList(result == null ? Collections.emptyList() : result));
findAllAsyncSequentiallyWithLimit(tenantId, cursor, resultFuture);
}
@Override
public void onFailure(Throwable t) {
log.error("[{}][{}] Failed to fetch data for query {}-{}", stmt, t);
}
}, readResultsProcessingExecutor);
}
}
@Override
public void onFailure(Throwable t) {
log.error("[{}][{}] Failed to fetch data for query {}-{}", stmt, t);
}
}, readResultsProcessingExecutor);
}
}
use of com.datastax.oss.driver.api.core.cql.Row in project thingsboard by thingsboard.
the class CassandraDbHelper method dumpCfIfExists.
public static Path dumpCfIfExists(KeyspaceMetadata ks, GuavaSession session, String cfName, String[] columns, String[] defaultValues, String dumpPrefix, boolean printHeader) throws Exception {
if (ks.getTable(cfName) != null) {
Path dumpFile = Files.createTempFile(dumpPrefix, null);
Files.deleteIfExists(dumpFile);
CSVFormat csvFormat = CSV_DUMP_FORMAT;
if (printHeader) {
csvFormat = csvFormat.withHeader(columns);
}
try (CSVPrinter csvPrinter = new CSVPrinter(Files.newBufferedWriter(dumpFile), csvFormat)) {
Statement stmt = SimpleStatement.newInstance("SELECT * FROM " + cfName);
stmt.setPageSize(1000);
ResultSet rs = session.execute(stmt);
Iterator<Row> iter = rs.iterator();
while (iter.hasNext()) {
Row row = iter.next();
if (row != null) {
dumpRow(row, columns, defaultValues, csvPrinter);
}
}
}
return dumpFile;
} else {
return null;
}
}
use of com.datastax.oss.driver.api.core.cql.Row in project rocketmq-externals by apache.
the class Querier method poll.
public void poll() {
try {
LinkedList<Table> tableLinkedList = new LinkedList<>();
for (Map.Entry<String, Database> entry : schema.getDbMap().entrySet()) {
String dbName = entry.getKey();
Iterator<Map.Entry<String, Table>> iterator = entry.getValue().getTableMap().entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Table> tableEntry = iterator.next();
String tableName = tableEntry.getKey();
Table table = tableEntry.getValue();
Map<String, String> tableFilterMap = table.getFilterMap();
Select selectFrom = QueryBuilder.selectFrom(dbName, tableName).all();
if (tableFilterMap != null && !tableFilterMap.keySet().contains("NO-FILTER")) {
for (String key : tableFilterMap.keySet()) {
String value = tableFilterMap.get(key);
selectFrom.whereColumn(key).isEqualTo(QueryBuilder.literal(value));
}
}
SimpleStatement stmt;
boolean finishUpdate = false;
log.info("trying to execute sql query,{}", selectFrom.asCql());
ResultSet result = null;
while (!cqlSession.isClosed() && !finishUpdate) {
stmt = selectFrom.build();
result = cqlSession.execute(stmt);
if (result.wasApplied()) {
log.info("query columns success, executed cql query {}", selectFrom.asCql());
}
finishUpdate = true;
}
List<String> colList = tableEntry.getValue().getColList();
List<String> dataTypeList = tableEntry.getValue().getRawDataTypeList();
List<ColumnParser> parserList = tableEntry.getValue().getParserList();
for (Row row : result) {
Table tableWithData = new Table(dbName, tableName);
tableWithData.setColList(colList);
tableWithData.setRawDataTypeList(dataTypeList);
tableWithData.setParserList(parserList);
for (String col : colList) {
tableWithData.getDataList().add(row.getObject(col));
}
tableLinkedList.add(tableWithData);
}
}
}
list = tableLinkedList;
} catch (Exception e) {
log.error("fail to poll data, {}", e);
}
}
Aggregations