]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
driver-sqlite: Add error to sql_query_finished event on error
authorAki Tuomi <aki.tuomi@dovecot.fi>
Wed, 12 Sep 2018 07:19:16 +0000 (10:19 +0300)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Wed, 14 Nov 2018 08:15:44 +0000 (10:15 +0200)
src/lib-sql/driver-sqlite.c

index 819c61d254f14374946f30637d1e56fcf84e4766..40c4868d5aa8d70d172c941bb6ba3accbc8a15e8 100644 (file)
@@ -144,17 +144,22 @@ static void driver_sqlite_result_log(const struct sql_result *result, const char
        bool failed = !db->connected || (db->rc == SQLITE_OK);
        int duration;
        const char *suffix = "";
+       struct event_passthrough *e =
+               sql_query_finished_event(&db->api, result->event, query, failed,
+                                        &duration);
        io_loop_time_refresh();
 
        if (!db->connected) {
                suffix = ": Cannot connect to database";
+               e->add_str("error", "Cannot connect to database");
        } else if (db->rc != SQLITE_OK) {
                suffix = t_strdup_printf(": %s (%d)", sqlite3_errmsg(db->sqlite),
                                         db->rc);
+               e->add_str("error", sqlite3_errmsg(db->sqlite));
+               e->add_int("error_code", db->rc);
        }
-       e_debug(sql_query_finished_event(&db->api, result->event, query,
-                                        failed, &duration)->event(),
-               SQL_QUERY_FINISHED_FMT"%s", query, duration, suffix);
+
+       e_debug(e->event(), SQL_QUERY_FINISHED_FMT"%s", query, duration, suffix);
 }
 
 static void driver_sqlite_exec(struct sql_db *_db, const char *query)