diff options
-rw-r--r-- | src/libutil/sqlite_utils.c | 8 | ||||
-rw-r--r-- | src/libutil/sqlite_utils.h | 3 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/libutil/sqlite_utils.c b/src/libutil/sqlite_utils.c index 5691be132..61ba49caf 100644 --- a/src/libutil/sqlite_utils.c +++ b/src/libutil/sqlite_utils.c @@ -156,6 +156,10 @@ rspamd_sqlite3_run_prstmt (sqlite3 *db, GArray *stmts, } } + if (!(nst->flags & RSPAMD_SQLITE3_STMT_MULTIPLE)) { + sqlite3_reset (stmt); + } + return SQLITE_OK; } else if (retcode != SQLITE_DONE) { @@ -163,6 +167,10 @@ rspamd_sqlite3_run_prstmt (sqlite3 *db, GArray *stmts, retcode, sqlite3_errmsg (db)); } + if (!(nst->flags & RSPAMD_SQLITE3_STMT_MULTIPLE)) { + sqlite3_reset (stmt); + } + return retcode; } diff --git a/src/libutil/sqlite_utils.h b/src/libutil/sqlite_utils.h index 18dd20a6f..3a8f81b18 100644 --- a/src/libutil/sqlite_utils.h +++ b/src/libutil/sqlite_utils.h @@ -29,6 +29,8 @@ #include "config.h" #include "sqlite3.h" +#define RSPAMD_SQLITE3_STMT_MULTIPLE (1 << 0) + struct rspamd_sqlite3_prstmt { gint idx; const gchar *sql; @@ -36,6 +38,7 @@ struct rspamd_sqlite3_prstmt { sqlite3_stmt *stmt; gint result; const gchar *ret; + gint flags; }; /** |