]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
cassandra: Split off cassandra_statement_send_query()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 9 Nov 2023 09:59:17 +0000 (11:59 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 10 Nov 2023 16:48:25 +0000 (16:48 +0000)
src/lib-sql/driver-cassandra.c

index 47a492adff0dd23a8a412a4d0ea2e58e1800d346..b4d9ee7f4129b30630199b3dc9874223d581a0a4 100644 (file)
@@ -2071,6 +2071,18 @@ transaction_commit_callback(struct sql_result *result, void *context)
        driver_cassandra_transaction_unref(&ctx);
 }
 
+static void
+cassandra_statement_send_query(struct cassandra_sql_statement **_stmt)
+{
+       struct cassandra_sql_statement *stmt = *_stmt;
+
+       *_stmt = NULL;
+       stmt->result->statement = stmt->cass_stmt;
+       stmt->result->timestamp = stmt->timestamp;
+       (void)driver_cassandra_send_query(stmt->result);
+       pool_unref(&stmt->stmt.pool);
+}
+
 static void
 driver_cassandra_transaction_commit(struct sql_transaction_context *_ctx,
                                    sql_commit_callback_t *callback, void *context)
@@ -2126,10 +2138,7 @@ driver_cassandra_transaction_commit(struct sql_transaction_context *_ctx,
                if (ctx->stmt->cass_stmt == NULL) {
                        /* wait for prepare to finish */
                } else {
-                       ctx->stmt->result->statement = ctx->stmt->cass_stmt;
-                       ctx->stmt->result->timestamp = ctx->stmt->timestamp;
-                       (void)driver_cassandra_send_query(ctx->stmt->result);
-                       pool_unref(&ctx->stmt->stmt.pool);
+                       cassandra_statement_send_query(&ctx->stmt);
                }
        }
 }
@@ -2320,12 +2329,8 @@ static void prepare_finish_statement(struct cassandra_sql_statement *stmt)
                array_foreach(&stmt->pending_args, arg)
                        prepare_finish_arg(stmt, arg);
        }
-       if (stmt->result != NULL) {
-               stmt->result->statement = stmt->cass_stmt;
-               stmt->result->timestamp = stmt->timestamp;
-               (void)driver_cassandra_send_query(stmt->result);
-               pool_unref(&stmt->stmt.pool);
-       }
+       if (stmt->result != NULL)
+               cassandra_statement_send_query(&stmt);
 }
 
 static void