#
# patch "ChangeLog"
# from [b62f15f717fc6e20423c234e28e14a9ab4911ce8]
# to [479f8d96506852ef9a05ed25bae57211b82bd929]
#
# patch "database.cc"
# from [181e7b79e4435b2ffa1561ce8b9162a41563ed72]
# to [1ce26993177acbeb3e3d18aba17f43700372fa3c]
#
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,9 @@
+2005-06-17 Matt Johnston
+
+ * database.cc (database::execute()): truncate long query log messages
+ before copying, saving memory.
+ Patch from Eric Anderson < ea at cello hpl hp com >
+
2005-06-17 Riccardo Ghetta
Adds include()/includedir() to lua hooks and extend --rcfile
* lua.cc: handle --rcfile with directories, implement
--- database.cc
+++ database.cc
@@ -12,6 +12,7 @@
#include
#include
+#include
#include
#include
@@ -643,24 +644,28 @@
database::execute(char const * query, ...)
{
va_list ap;
- int res;
- char * errmsg = NULL;
va_start(ap, query);
// log it
char * formatted = sqlite3_vmprintf(query, ap);
- string qq(formatted);
- if (qq.size() > constants::db_log_line_sz)
- qq = qq.substr(0, constants::db_log_line_sz) + string(" ...");
+ string qq;
+
+ if (strlen(formatted) > constants::db_log_line_sz)
+ {
+ qq.assign(formatted, constants::db_log_line_sz);
+ qq.append(" ...");
+ }
+ else
+ {
+ qq = formatted;
+ }
L(F("db.execute(\"%s\")\n") % qq);
- sqlite3_free(formatted);
- va_end(ap);
- va_start(ap, query);
-
// do it
- res = sqlite3_exec_vprintf(sql(), query, NULL, NULL, &errmsg, ap);
+ char * errmsg = NULL;
+ int res = sqlite3_exec(sql(), formatted, NULL, NULL, &errmsg);
+ sqlite3_free(formatted);
va_end(ap);