]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-sql: Add sql_statement_set_no_log_expanded_values()
authorMarkus Valentin <markus.valentin@open-xchange.com>
Thu, 1 Dec 2022 09:54:38 +0000 (10:54 +0100)
committerMarkus Valentin <markus.valentin@open-xchange.com>
Thu, 8 Dec 2022 12:52:20 +0000 (13:52 +0100)
This allows to store no_log_expanded_values to sql_statement.

src/lib-dict-backend/dict-sql.c
src/lib-sql/sql-api-private.h
src/lib-sql/sql-api.c
src/lib-sql/sql-api.h

index f520a76d433eda4d8899a3b76aa40876805e7bd1..8d685cd5b51daf5bec710e98f7b27bb481791db1 100644 (file)
@@ -1076,6 +1076,8 @@ sql_dict_transaction_stmt_init(struct sql_dict_transaction_context *ctx,
 
        if (ctx->ctx.timestamp.tv_sec != 0)
                sql_statement_set_timestamp(stmt, &ctx->ctx.timestamp);
+       if (ctx->ctx.set.hide_log_values)
+               sql_statement_set_no_log_expanded_values(stmt, ctx->ctx.set.hide_log_values);
        return stmt;
 }
 
index a9c9b645a9201f16a14e55f71ac1db8cd8aefa07..e53607386bb88d08452c5507202262fd1507caa8 100644 (file)
@@ -199,6 +199,9 @@ struct sql_statement {
        pool_t pool;
        const char *query_template;
        ARRAY_TYPE(const_string) args;
+
+       /* Tell the driver to not log this query with expanded values. */
+       bool no_log_expanded_values;
 };
 
 struct sql_field_map {
index 75ee334b66f2ca4b7504b0c4490984aef8456b7b..24c3b0db9de227b42354ce6a830303294e74c7fa 100644 (file)
@@ -250,6 +250,8 @@ default_sql_statement_init_prepared(struct sql_prepared_statement *stmt)
 
 const char *sql_statement_get_log_query(struct sql_statement *stmt)
 {
+       if (stmt->no_log_expanded_values)
+               return stmt->query_template;
        return sql_statement_get_query(stmt);
 }
 
@@ -391,6 +393,12 @@ void sql_statement_set_timestamp(struct sql_statement *stmt,
                stmt->db->v.statement_set_timestamp(stmt, ts);
 }
 
+void sql_statement_set_no_log_expanded_values(struct sql_statement *stmt,
+                                             bool no_expand)
+{
+       stmt->no_log_expanded_values = no_expand;
+}
+
 void sql_statement_bind_str(struct sql_statement *stmt,
                            unsigned int column_idx, const char *value)
 {
index fc28ddd50efa191513912455c47d08c7f41161a0..2115acf73b2a0e45d04fd629650eb915016823a7 100644 (file)
@@ -143,6 +143,8 @@ sql_statement_init_prepared(struct sql_prepared_statement *prep_stmt);
 void sql_statement_abort(struct sql_statement **stmt);
 void sql_statement_set_timestamp(struct sql_statement *stmt,
                                 const struct timespec *ts);
+void sql_statement_set_no_log_expanded_values(struct sql_statement *stmt,
+                                             bool no_expand);
 void sql_statement_bind_str(struct sql_statement *stmt,
                            unsigned int column_idx, const char *value);
 void sql_statement_bind_binary(struct sql_statement *stmt,