Fix return values. Suppress No such table exception.
authorSrinivasa Ragavan <sragavan@novell.com>
Thu, 7 Aug 2008 04:45:20 +0000 (04:45 +0000)
committerSrinivasa Ragavan <sragavan@src.gnome.org>
Thu, 7 Aug 2008 04:45:20 +0000 (04:45 +0000)
2008-08-07  Srinivasa Ragavan  <sragavan@novell.com>

* camel/camel-db.c: Fix return values.
* camel/camel-folder-search.c: Suppress No such table exception.

svn path=/trunk/; revision=9292

camel/ChangeLog
camel/camel-db.c
camel/camel-folder-search.c

index 1b8a3b5..383563d 100644 (file)
@@ -1,5 +1,10 @@
 2008-08-07  Srinivasa Ragavan  <sragavan@novell.com>
 
+       * camel/camel-db.c: Fix return values.
+       * camel/camel-folder-search.c: Suppress No such table exception.
+
+2008-08-07  Srinivasa Ragavan  <sragavan@novell.com>
+
        * camel/camel-folder-summary.c: Store to db intelligently.
 
 2008-08-07  Srinivasa Ragavan  <sragavan@novell.com>
index 349ac80..45adfe8 100644 (file)
@@ -415,7 +415,7 @@ camel_db_select (CamelDB *cdb, const char* stmt, CamelDBSelectCB callback, gpoin
        int ret = -1;
 
        if (!cdb)
-               return TRUE;
+               return ret;
        
        d(g_print ("\n%s:\n%s \n", __FUNCTION__, stmt));
        g_mutex_lock (cdb->lock);
index d4e0689..40fea3e 100644 (file)
@@ -493,6 +493,13 @@ camel_folder_search_search(CamelFolderSearch *search, const char *expr, GPtrArra
                matches = g_ptr_array_new();
                cdb = (CamelDB *) (search->folder->cdb);
                camel_db_select (cdb, tmp, (CamelDBSelectCB) read_uid_callback, matches, ex);
+               if (camel_exception_is_set(ex)) {
+                       const char *exception = camel_exception_get_description (ex);
+                       if (strncmp(exception, "no such table", 13) == 0) {
+                               g_warning ("Error during searching %s: %s\n", tmp, exception);
+                               camel_exception_clear (ex); /* Suppress no such table */
+                       }
+               }
                g_free (tmp);
 
        }