return rse.extractData(execute(new SessionCallback<ResultSet>() {
@Override
public ResultSet doInSession(Session s) throws DataAccessException {
Statement statement = new SimpleStatement(cql);
addQueryOptions(statement, options);
ResultSetFuture rsf = s.executeAsync(statement);
ResultSet rs = null;
try {
rs = rsf.get(timeout, timeUnit);
} catch (TimeoutException e) {
throw new QueryTimeoutException("Asyncronous Query Timed Out.", e);
} catch (InterruptedException e) {
throw translateExceptionIfPossible(e);
} catch (ExecutionException e) {