extern crate cql_bindgen;
use std::mem;
use cql_bindgen::*;
fn main() {
unsafe {
let cluster = cass_cluster_new();
let session = cass_session_new();
cass_cluster_set_contact_points(cluster, str2ref("127.0.0.1"));
let connect_future = cass_session_connect(session, cluster);
if cass_future_error_code(connect_future) == CASS_OK {
let query = "SELECT keyspace_name FROM system.schema_keyspaces;";
let statement = cass_statement_new(str2ref(query), 0);
let result_future = cass_session_execute(session, statement);
if cass_future_error_code(result_future) == CASS_OK {
let result = cass_future_get_result(result_future);
let rows = cass_iterator_from_result(result);
while cass_iterator_next(rows) > 0 {
let row = cass_iterator_get_row(rows);
let value = cass_row_get_column_by_name(row, str2ref("keyspace_name"));
let mut keyspace_name = mem::zeroed();
let mut keyspace_name_length = mem::zeroed();
cass_value_get_string(value, &mut keyspace_name, &mut keyspace_name_length);
println!("keyspace_name: {:?}", raw2utf8(keyspace_name,keyspace_name_length));
}
cass_result_free(result);
cass_iterator_free(rows);
} else {
let mut message = mem::zeroed();
let mut message_length = mem::zeroed();
cass_future_error_message(result_future, &mut message, &mut message_length);
println!("Unable to run query: {:?}", raw2utf8(message,message_length));
}
cass_statement_free(statement);
cass_future_free(result_future);
let close_future = cass_session_close(session);
cass_future_wait(close_future);
cass_future_free(close_future);
} else {
let mut message = mem::zeroed();
let mut message_length = mem::zeroed();
cass_future_error_message(connect_future, &mut message, &mut message_length);
println!("Unable to connect: {:?}", raw2utf8(message,message_length));
}
cass_future_free(connect_future);
cass_cluster_free(cluster);
cass_session_free(session);
}
}