sql_query_callback_t *callback;
void *context;
+ bool is_prepared:1;
bool query_sent:1;
bool finished:1;
bool paging_continues:1;
i_fatal("gettimeofday() failed: %m");
string_t *str = t_str_new(128);
- str_printfa(str, "cassandra: Finished query '%s' (", result->query);
+ str_printfa(str, "cassandra: Finished %squery '%s' (",
+ result->is_prepared ? "prepared " : "", result->query);
if (all_pages) {
str_printfa(str, "%u pages in total, ", result->page_num);
row_count = result->total_row_count;
static struct cassandra_result *
driver_cassandra_query_init(struct cassandra_db *db, const char *query,
enum cassandra_query_type query_type,
+ bool is_prepared,
sql_query_callback_t *callback, void *context)
{
struct cassandra_result *result;
result->context = context;
result->query_type = query_type;
result->query = i_strdup(query);
+ result->is_prepared = is_prepared;
array_append(&db->results, &result, 1);
return result;
}
struct cassandra_db *db = (struct cassandra_db *)_db;
struct cassandra_result *result;
- result = driver_cassandra_query_init(db, query, query_type,
+ result = driver_cassandra_query_init(db, query, query_type, FALSE,
callback, context);
result->statement = cass_statement_new(query, 0);
(void)driver_cassandra_send_query(result);
/* Initialize the next page as a new sql_result */
new_result = driver_cassandra_query_init(db, old_result->query,
CASSANDRA_QUERY_TYPE_READ_MORE,
+ old_result->is_prepared,
callback, context);
/* Preserve the statement and update its paging state */
transaction_commit_callback, ctx);
} else {
ctx->stmt->result =
- driver_cassandra_query_init(db, query, query_type,
+ driver_cassandra_query_init(db, query, query_type, TRUE,
transaction_commit_callback, ctx);
if (ctx->stmt->cass_stmt == NULL) {
/* wait for prepare to finish */
(struct cassandra_sql_statement *)_stmt;
struct cassandra_db *db = (struct cassandra_db *)_stmt->db;
const char *query = sql_statement_get_query(_stmt);
+ bool is_prepared = stmt->cass_stmt != NULL || stmt->prep != NULL;
stmt->result = driver_cassandra_query_init(db, query,
CASSANDRA_QUERY_TYPE_READ,
+ is_prepared,
callback, context);
if (stmt->cass_stmt != NULL) {
stmt->result->statement = stmt->cass_stmt;