]> 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>
Fri, 9 Dec 2022 16:33:04 +0000 (17:33 +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 c44330b02dffe5750e2a6bc682a729b333519a3f..4ceee0150c5fb501a8924230f2f0f1a0c130ecbc 100644 (file)
@@ -1039,6 +1039,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 e26f7bc0cd136785557a5a1535378a5de2decd9d..30265129a8a98446cba814a5fb37669eef5c65ae 100644 (file)
@@ -192,6 +192,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 986332634cdc6035a03be0ac0a1418e6a9529b1c..cd16a5f246c2c2741c464e9ec8dfab2a59cb30c5 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 7936b98628bde04d70b5cff7edf4e03ed5b404da..669a8515d2acaf5e9f690220e432257ef866d193 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,