void validate_results(int num_rows) { std::string select_query = str(boost::format("SELECT * FROM %s WHERE tweet_id = ?;") % BatchTests::SIMPLE_TABLE_NAME); for (int y = 0; y < num_rows; y++) { test_utils::CassStatementPtr select_statement(cass_statement_new(select_query.c_str(), 1)); BOOST_REQUIRE(cass_statement_bind_int32(select_statement.get(), 0, y) == CASS_OK); test_utils::CassFuturePtr select_future(cass_session_execute(session, select_statement.get())); test_utils::wait_and_check_error(select_future.get()); test_utils::CassResultPtr result(cass_future_get_result(select_future.get())); const CassValue* column = cass_row_get_column(cass_result_first_row(result.get()), 1); CassString result_value; BOOST_REQUIRE(cass_value_type(column) == CASS_VALUE_TYPE_VARCHAR); BOOST_REQUIRE(test_utils::Value<CassString>::get(column, &result_value) == CASS_OK); BOOST_REQUIRE(test_utils::Value<CassString>::equal(result_value, str(boost::format("test data %s") % y).c_str())); } }
statement_ptr connection::prepare_statement(const string_ref& _q) { string_ref q = select_statement(_q); BOOST_AUTO(found, (boost::equal_range(cache_, q, string_ref_less()))); if (boost::empty(found)) { statement_ptr st = prepare_statement_impl(q); cache_.resize(cache_.size() + 1); cache_.back().first.assign(q.begin(), q.end()); cache_.back().second = st; boost::sort(cache_, string_ref_less()); return st; } else { found.first->second->bindings_reset(); return found.first->second; } }
statement_ptr connection::create_statement(const string_ref& _q) { string_ref q = select_statement(_q); return create_statement_impl(q); }