From: Timo Sirainen Date: Sun, 15 Sep 2019 18:35:01 +0000 (+0300) Subject: lib-sql: Move query_template to struct sql_prepared_statement directly X-Git-Tag: 2.3.9~154 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c1d35be0240fff4d2a7b578954895165fee05266;p=thirdparty%2Fdovecot%2Fcore.git lib-sql: Move query_template to struct sql_prepared_statement directly --- diff --git a/src/lib-sql/driver-cassandra.c b/src/lib-sql/driver-cassandra.c index e7e39568c2..1976dd27f1 100644 --- a/src/lib-sql/driver-cassandra.c +++ b/src/lib-sql/driver-cassandra.c @@ -189,7 +189,6 @@ struct cassandra_sql_statement { struct cassandra_sql_prepared_statement { struct sql_prepared_statement prep_stmt; - char *query_template; /* NULL, until the prepare is asynchronously finished */ const CassPrepared *prepared; @@ -2025,7 +2024,7 @@ static void prepare_start(struct cassandra_sql_prepared_statement *prep_stmt) /* clear the current error in case we're retrying */ i_free_and_null(prep_stmt->error); - future = cass_session_prepare(db->session, prep_stmt->query_template); + future = cass_session_prepare(db->session, prep_stmt->prep_stmt.query_template); driver_cassandra_set_callback(future, db, prepare_callback, prep_stmt); } @@ -2049,7 +2048,7 @@ driver_cassandra_prepared_statement_init(struct sql_db *db, struct cassandra_sql_prepared_statement *prep_stmt = i_new(struct cassandra_sql_prepared_statement, 1); prep_stmt->prep_stmt.db = db; - prep_stmt->query_template = i_strdup(query_template); + prep_stmt->prep_stmt.query_template = i_strdup(query_template); i_array_init(&prep_stmt->pending_statements, 4); prepare_start(prep_stmt); return &prep_stmt->prep_stmt; @@ -2065,8 +2064,8 @@ driver_cassandra_prepared_statement_deinit(struct sql_prepared_statement *_prep_ if (prep_stmt->prepared != NULL) cass_prepared_free(prep_stmt->prepared); array_free(&prep_stmt->pending_statements); - i_free(prep_stmt->query_template); i_free(prep_stmt->error); + i_free(prep_stmt->prep_stmt.query_template); i_free(prep_stmt); } @@ -2092,7 +2091,7 @@ driver_cassandra_statement_init_prepared(struct sql_prepared_statement *_prep_st stmt->stmt.pool = pool; stmt->stmt.query_template = - p_strdup(stmt->stmt.pool, prep_stmt->query_template); + p_strdup(stmt->stmt.pool, prep_stmt->prep_stmt.query_template); stmt->prep = prep_stmt; if (prep_stmt->prepared != NULL) { diff --git a/src/lib-sql/sql-api-private.h b/src/lib-sql/sql-api-private.h index 5355f31635..1c3a542656 100644 --- a/src/lib-sql/sql-api-private.h +++ b/src/lib-sql/sql-api-private.h @@ -176,6 +176,7 @@ struct sql_result_vfuncs { struct sql_prepared_statement { struct sql_db *db; + char *query_template; }; struct sql_statement { diff --git a/src/lib-sql/sql-api.c b/src/lib-sql/sql-api.c index 4e4b8e8e90..0aaadb6b3b 100644 --- a/src/lib-sql/sql-api.c +++ b/src/lib-sql/sql-api.c @@ -9,11 +9,6 @@ #include -struct default_sql_prepared_statement { - struct sql_prepared_statement prep_stmt; - char *query_template; -}; - struct event_category event_category_sql = { .name = "sql", }; @@ -187,30 +182,25 @@ static struct sql_prepared_statement * default_sql_prepared_statement_init(struct sql_db *db, const char *query_template) { - struct default_sql_prepared_statement *prep_stmt; + struct sql_prepared_statement *prep_stmt; - prep_stmt = i_new(struct default_sql_prepared_statement, 1); - prep_stmt->prep_stmt.db = db; + prep_stmt = i_new(struct sql_prepared_statement, 1); + prep_stmt->db = db; prep_stmt->query_template = i_strdup(query_template); - return &prep_stmt->prep_stmt; + return prep_stmt; } static void -default_sql_prepared_statement_deinit(struct sql_prepared_statement *_prep_stmt) +default_sql_prepared_statement_deinit(struct sql_prepared_statement *prep_stmt) { - struct default_sql_prepared_statement *prep_stmt = - (struct default_sql_prepared_statement *)_prep_stmt; - i_free(prep_stmt->query_template); i_free(prep_stmt); } static struct sql_statement * -default_sql_statement_init_prepared(struct sql_prepared_statement *_stmt) +default_sql_statement_init_prepared(struct sql_prepared_statement *stmt) { - struct default_sql_prepared_statement *stmt = - (struct default_sql_prepared_statement *)_stmt; - return sql_statement_init(_stmt->db, stmt->query_template); + return sql_statement_init(stmt->db, stmt->query_template); } const char *sql_statement_get_query(struct sql_statement *stmt)