+2008-11-07 Srinivasa Ragavan <sragavan@novell.com>
+
+ ** Fix for bug #558883
+
+ * camel-db.c: (camel_db_prepare_message_info_table): Index more
+ fields.
+
2008-11-06 Milan Crha <mcrha@redhat.com>
** Fix for bug #555979
ret = camel_db_add_to_transaction (cdb, table_creation_query, ex);
g_free (safe_index);
sqlite3_free (table_creation_query);
+
+ /* Index on deleted*/
+ safe_index = g_strdup_printf("DELINDEX-%s", folder_name);
+ table_creation_query = sqlite3_mprintf ("CREATE INDEX IF NOT EXISTS %Q ON %Q (deleted)", safe_index, folder_name);
+ ret = camel_db_add_to_transaction (cdb, table_creation_query, ex);
+ g_free (safe_index);
+ sqlite3_free (table_creation_query);
+
+ /* Index on Junk*/
+ safe_index = g_strdup_printf("JUNKINDEX-%s", folder_name);
+ table_creation_query = sqlite3_mprintf ("CREATE INDEX IF NOT EXISTS %Q ON %Q (junk)", safe_index, folder_name);
+ ret = camel_db_add_to_transaction (cdb, table_creation_query, ex);
+ g_free (safe_index);
+ sqlite3_free (table_creation_query);
+
+ /* Index on unread*/
+ safe_index = g_strdup_printf("READINDEX-%s", folder_name);
+ table_creation_query = sqlite3_mprintf ("CREATE INDEX IF NOT EXISTS %Q ON %Q (read)", safe_index, folder_name);
+ ret = camel_db_add_to_transaction (cdb, table_creation_query, ex);
+ g_free (safe_index);
+ sqlite3_free (table_creation_query);
return ret;
}
+2008-11-07 Srinivasa Ragavan <sragavan@novell.com>
+
+ ** Fix for bug #558883
+
+ * camel-imap-folder.c: (imap_expunge): Do in bulk
+
2008-11-06 Milan Crha <mcrha@redhat.com>
** Fix for bug #558737
{
CamelImapStore *store = CAMEL_IMAP_STORE (folder->parent_store);
GPtrArray *uids;
- int i, count;
- CamelMessageInfo *info;
- uids = g_ptr_array_new ();
- count = camel_folder_summary_count (folder->summary);
- for (i = 0; i < count; i++) {
- info = camel_folder_summary_index (folder->summary, i);
- if (camel_message_info_flags(info) & CAMEL_MESSAGE_DELETED)
- g_ptr_array_add (uids, g_strdup (camel_message_info_uid (info)));
- camel_message_info_free(info);
- }
+ camel_folder_summary_save_to_db (folder->summary, ex);
+ uids = camel_db_get_folder_deleted_uids (folder->parent_store->cdb_r, folder->full_name, ex);
if (CAMEL_OFFLINE_STORE (store)->state == CAMEL_OFFLINE_STORE_NETWORK_AVAIL)
imap_expunge_uids_online (folder, uids, ex);
else
imap_expunge_uids_offline (folder, uids, ex);
- for (i = 0; i < uids->len; i++)
- g_free (uids->pdata[i]);
+ g_ptr_array_foreach (uids, (GFunc) camel_pstring_free, NULL);
g_ptr_array_free (uids, TRUE);
}