]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-sql: Move query_template to struct sql_prepared_statement directly
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Sun, 15 Sep 2019 18:35:01 +0000 (21:35 +0300)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 16 Sep 2019 08:00:54 +0000 (08:00 +0000)
src/lib-sql/driver-cassandra.c
src/lib-sql/sql-api-private.h
src/lib-sql/sql-api.c

index e7e39568c2289473c9385028dab54661098d9620..1976dd27f1aa42e0fa39f8417b6475fdcd562cbe 100644 (file)
@@ -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) {
index 5355f31635b8deeb9440e533299cc82af007ab22..1c3a5426564e518e13c0a7558182daf59b493602 100644 (file)
@@ -176,6 +176,7 @@ struct sql_result_vfuncs {
 
 struct sql_prepared_statement {
        struct sql_db *db;
+       char *query_template;
 };
 
 struct sql_statement {
index 4e4b8e8e90cca57b468f1ea8dc657c33ec49a747..0aaadb6b3b02ae12eed24c154e283a1e2a89d7c1 100644 (file)
@@ -9,11 +9,6 @@
 
 #include <time.h>
 
-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)