Class: Ilios::Cassandra::Result

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
ext/ilios/ilios.c

Instance Method Summary collapse

Instance Method Details

#eachCassandra::Result, Enumerator

Yield the row of result into a block.

Returns:

  • (Cassandra::Result, Enumerator)

    returns self or Enumerator if block is not given.



214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
# File 'ext/ilios/result.c', line 214

static VALUE result_each(VALUE self)
{
    CassandraResult *cassandra_result;
    CassIterator *iterator;
    struct result_each_arg args;

    RETURN_ENUMERATOR(self, 0, 0);

    GET_RESULT(self, cassandra_result);

    iterator = cass_iterator_from_result(cassandra_result->result);
    args.cassandra_result = cassandra_result;
    args.iterator = iterator;
    rb_ensure(result_each_body, (VALUE)&args, result_each_ensure, (VALUE)iterator);

    return self;
}

#next_pageCassandra::Result?

Loads next page synchronously

Returns:

Raises:



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'ext/ilios/result.c', line 42

static VALUE result_next_page(VALUE self)
{
    CassandraResult *cassandra_result;
    CassandraStatement *cassandra_statement;
    CassandraSession *cassandra_session;
    CassFuture *result_future;

    GET_RESULT(self, cassandra_result);

    if (cass_result_has_more_pages(cassandra_result->result) == cass_false) {
        return Qnil;
    }

    GET_STATEMENT(cassandra_result->statement_obj, cassandra_statement);
    GET_SESSION(cassandra_statement->session_obj, cassandra_session);

    cass_statement_set_paging_state(cassandra_statement->statement, cassandra_result->result);

    result_future = nogvl_session_execute(cassandra_session->session, cassandra_statement->statement);

    cass_result_free(cassandra_result->result);
    cass_future_free(cassandra_result->future);
    cassandra_result->result = NULL;
    cassandra_result->future = result_future;

    result_await(cassandra_result);
    return self;
}