From 7dcc1a4073ee7fcbb803b4fdbb5a486df2f2b697 Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Fri, 10 Oct 2025 11:00:58 +0300 Subject: [PATCH] lib-sql: driver-sqlite - Extract result preparation to driver_sqlite_statement_result_prepare() --- src/lib-sql/driver-sqlite.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/lib-sql/driver-sqlite.c b/src/lib-sql/driver-sqlite.c index 7d4cd6a3f3..50fc424af1 100644 --- a/src/lib-sql/driver-sqlite.c +++ b/src/lib-sql/driver-sqlite.c @@ -514,15 +514,12 @@ static void driver_sqlite_exec(struct sql_db *_db, const char *query) (void)driver_sqlite_exec_query(db, query, &error); } -static struct sql_result * -driver_sqlite_query_s(struct sql_db *_db, const char *query) +static struct sqlite_result * +driver_sqlite_statement_result_prepare(struct sqlite_statement *stmt) { struct sqlite_result *result; result = i_new(struct sqlite_result, 1); - struct sql_statement *_stmt = driver_sqlite_statement_init(_db, query); - struct sqlite_statement *stmt = - container_of(_stmt, struct sqlite_statement, api); if (stmt->error != NULL) { result->api = driver_sqlite_error_result; @@ -540,9 +537,21 @@ driver_sqlite_query_s(struct sql_db *_db, const char *query) result->row = i_new(const char *, result->cols); } - result->api.db = _db; + result->api.db = stmt->api.db; result->api.refcount = 1; - result->api.event = event_create(_db->event); + result->api.event = event_create(stmt->api.db->event); + + return result; +} + +static struct sql_result * +driver_sqlite_query_s(struct sql_db *_db, const char *query) +{ + struct sql_statement *_stmt = driver_sqlite_statement_init(_db, query); + struct sqlite_statement *stmt = + container_of(_stmt, struct sqlite_statement, api); + struct sqlite_result *result = + driver_sqlite_statement_result_prepare(stmt); driver_sqlite_result_log(result, query); return &result->api; -- 2.47.3