# HG changeset patch # User Timo Sirainen # Date 1508155932 -10800 # Node ID 629f44740f506eef911cf8380b967596085a71e3 # Parent ac7bd203229da07b6732ddf8833e326d6cc82c75 cassandra: Include "prepared" when logging about prepared statement queries Mainly useful for debugging/testing. diff -r ac7bd203229d -r 629f44740f50 src/lib-sql/driver-cassandra.c --- a/src/lib-sql/driver-cassandra.c Mon Oct 16 14:49:56 2017 +0300 +++ b/src/lib-sql/driver-cassandra.c Mon Oct 16 15:12:12 2017 +0300 @@ -138,6 +138,7 @@ sql_query_callback_t *callback; void *context; + unsigned int is_prepared:1; unsigned int query_sent:1; unsigned int finished:1; unsigned int paging_continues:1; @@ -774,7 +775,8 @@ 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; @@ -1101,6 +1103,7 @@ 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; @@ -1113,6 +1116,7 @@ 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; } @@ -1125,7 +1129,7 @@ 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); @@ -1350,6 +1354,7 @@ /* 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 */ @@ -1548,7 +1553,7 @@ 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 */ @@ -1956,9 +1961,11 @@ (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;