Class: Ilios::Cassandra::Statement
- Inherits:
-
Object
- Object
- Ilios::Cassandra::Statement
- Defined in:
- ext/ilios/ilios.c
Instance Method Summary collapse
-
#bind(hash) ⇒ Cassandra::Statement
Binds a specified column value to a query.
-
#idempotent=(idempotent) ⇒ Cassandra::Statement
Sets whether the statement is idempotent.
-
#page_size=(page_size) ⇒ Cassandra::Statement
Sets the statement's page size.
Instance Method Details
#bind(hash) ⇒ Cassandra::Statement
Binds a specified column value to a query. A hash object should be given with column name as key.
568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 |
# File 'ext/ilios/statement.c', line 568 static VALUE statement_bind(VALUE self, VALUE hash) { CassandraStatement *cassandra_statement; statement_bind_context ctx; VALUE bound_values; Check_Type(hash, T_HASH); TypedData_Get_Struct(self, CassandraStatement, &cassandra_statement_data_type, cassandra_statement); // Merge into a copy instead of mutating in place: the previous hash may be // shared with a frozen (Ractor-shareable) statement or be iterated by an // execution on another thread. if (NIL_P(cassandra_statement->bound_values)) { bound_values = rb_hash_new(); } else { bound_values = rb_hash_dup(cassandra_statement->bound_values); } RB_OBJ_WRITE(self, &cassandra_statement->bound_values, bound_values); ctx.prepared = cassandra_statement->prepared; ctx.statement = cassandra_statement->statement; ctx.bound_values = bound_values; rb_hash_foreach(hash, hash_cb, (VALUE)&ctx); return self; } |
#idempotent=(idempotent) ⇒ Cassandra::Statement
Sets whether the statement is idempotent. Idempotent statements are able to be
automatically retried after timeouts/errors and can be speculatively executed.
The default is false.
619 620 621 622 623 624 625 626 627 |
# File 'ext/ilios/statement.c', line 619 static VALUE statement_idempotent(VALUE self, VALUE idempotent) { CassandraStatement *cassandra_statement; GET_STATEMENT(self, cassandra_statement); cassandra_statement->idempotent = RTEST(idempotent) ? idempotency_true : idempotency_false; cass_statement_set_is_idempotent(cassandra_statement->statement, cassandra_statement->idempotent == idempotency_true ? cass_true : cass_false); return self; } |
#page_size=(page_size) ⇒ Cassandra::Statement
Sets the statement's page size. The default is 10000.
601 602 603 604 605 606 607 608 609 |
# File 'ext/ilios/statement.c', line 601 static VALUE statement_page_size(VALUE self, VALUE page_size) { CassandraStatement *cassandra_statement; GET_STATEMENT(self, cassandra_statement); cassandra_statement->page_size = NUM2INT(page_size); cass_statement_set_paging_size(cassandra_statement->statement, cassandra_statement->page_size); return self; } |