|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.datastax.driver.core.ResultSet
public class ResultSet
The result of a query. Note that this class is not thread-safe.
Method Summary | |
---|---|
List<Row> |
all()
Returns all the remaining rows in this ResultSet as a list. |
com.google.common.util.concurrent.ListenableFuture<Void> |
fetchMoreResults()
Force the fetching the next page of results for this result set, if any. |
List<ExecutionInfo> |
getAllExecutionInfo()
Return the execution informations for all queries made to retrieve this ResultSet. |
int |
getAvailableWithoutFetching()
The number of rows that can be retrieved from this result set without blocking to fetch. |
ColumnDefinitions |
getColumnDefinitions()
Returns the columns returned in this ResultSet. |
ExecutionInfo |
getExecutionInfo()
Returns information on the execution of the last query made for this ResultSet. |
boolean |
isExhausted()
Returns whether this ResultSet has more results. |
boolean |
isFullyFetched()
Whether all results from this result set has been fetched from the database. |
Iterator<Row> |
iterator()
Returns an iterator over the rows contained in this ResultSet. |
Row |
one()
Returns the the next result from this ResultSet. |
String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Method Detail |
---|
public ColumnDefinitions getColumnDefinitions()
public boolean isExhausted()
public Row one()
public List<Row> all()
public Iterator<Row> iterator()
Iterator.next()
method is equivalent to calling one()
.
So this iterator will consume results from this ResultSet and after a
full iteration, the ResultSet will be empty.
The returned iterator does not support the Iterator.remove()
method.
iterator
in interface Iterable<Row>
public int getAvailableWithoutFetching()
isFullyFetched()
, this is the total number of rows remaining
in this result set (after which the result set will be exhausted).public boolean isFullyFetched()
Note that if isFullyFetched()
, then getAvailableWithoutFetching()
will return how much rows remains in the result set before exhaustion. But
please note that !isFullyFetched()
never guarantees that the result set
is not exhausted (you should call isExhausted()
to make sure of it).
public com.google.common.util.concurrent.ListenableFuture<Void> fetchMoreResults()
This method is entirely optional. It will be called automatically while
the result set is consumed (through one()
, all()
or iteration)
when needed (i.e. when getAvailableWithoutFetching() == 0
and
isFullyFetched() == false
).
You can however call this method manually to force the fetching of the next page of results. This can allow to prefetch results before they are stricly needed. For instance, if you want to prefetch the next page of results as soon as there is less than 100 rows readily available in this result set, you can do:
ResultSet rs = session.execute(...); Iterator<Row> iter = rs.iterator(); while (iter.hasNext()) { if (rs.getAvailableWithoutFetching() == 100 && !rs.isFullyFetched()) rs.fetchMoreResults(); Row row = iter.next() ... process the row ... }This method is not blocking, so in the example above, the call to
fetchMoreResults
will not block the processing of the 100 currently available
rows (but iter.hasNext()
will block once those rows have been processed
until the fetch query returns, if it hasn't yet).
Only one page of results (for a given result set) can be fetched at any given time. If this method is called twice and the query triggered by the first call has not returned yet when the second one is performed, then the 2nd call will simply return a future on the currently in progress query.
isFullyFetched() == true
),
then the returned future will return immediately but not particular error will be
thrown (you should thus call isFullyFetched() to know if calling this
method can be of any use
).public ExecutionInfo getExecutionInfo()
Note that in most cases, a ResultSet is fetched with only one query, but large
result sets can be paged and thus be retrieved by multiple queries. If that is
the case, that method return that ExecutionInfo
for the last query
performed. To retrieve the informations for all queries, use getAllExecutionInfo()
.
The returned object includes basic information such as the queried hosts, but also the Cassandra query trace if tracing was enabled for the query.
public List<ExecutionInfo> getAllExecutionInfo()
Unless the ResultSet is large enough to get paged underneath, the returned
list will be singleton. If paging has been used however, the returned list
contains the ExecutionInfo
for all the queries done to obtain this
ResultSet (at the time of the call) in the order those queries were made.
public String toString()
toString
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |