aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libutil/sqlite_utils.c8
-rw-r--r--src/libutil/sqlite_utils.h3
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;
};
/**