]> git.notmuchmail.org Git - notmuch/blobdiff - lib/database.cc
lib: Report progress for combined upgrade operation
[notmuch] / lib / database.cc
index 6a7ce29933638892180ebe94059070ce578ee298..53397bb0dd7abcbf70378aba8eadd59373b7a660 100644 (file)
@@ -1241,6 +1241,19 @@ notmuch_database_upgrade (notmuch_database_t *notmuch,
        timer_is_active = TRUE;
     }
 
+    /* Figure out how much total work we need to do. */
+    if (new_features &
+       (NOTMUCH_FEATURE_FILE_TERMS | NOTMUCH_FEATURE_BOOL_FOLDER)) {
+       notmuch_query_t *query = notmuch_query_create (notmuch, "");
+       total += notmuch_query_count_messages (query);
+       notmuch_query_destroy (query);
+    }
+    if (new_features & NOTMUCH_FEATURE_DIRECTORY_DOCS) {
+       t_end = db->allterms_end ("XTIMESTAMP");
+       for (t = db->allterms_begin ("XTIMESTAMP"); t != t_end; t++)
+           ++total;
+    }
+
     /* Perform the upgrade in a transaction. */
     db->begin_transaction (true);
 
@@ -1256,8 +1269,6 @@ notmuch_database_upgrade (notmuch_database_t *notmuch,
        notmuch_message_t *message;
        char *filename;
 
-       total = notmuch_query_count_messages (query);
-
        for (messages = notmuch_query_search_messages (query);
             notmuch_messages_valid (messages);
             notmuch_messages_move_to_next (messages))
@@ -1340,6 +1351,8 @@ notmuch_database_upgrade (notmuch_database_t *notmuch,
 
                db->delete_document (*p);
            }
+
+           ++count;
        }
     }