diff options
author | Milan Crha <mcrha@redhat.com> | 2016-07-18 12:29:16 +0200 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2016-07-18 12:29:16 +0200 |
commit | ccfa9d0a37c78ef4ff12089c7a30eeae5e56bc7b (patch) | |
tree | 29aee8e4c2945518f2bd190ec0955f348f5fbf8a | |
parent | 46ed3bb055ccbaf5775a4cfa101c2046c4480205 (diff) | |
download | evolution-data-server-ccfa9d0a37c78ef4ff12089c7a30eeae5e56bc7b.tar.gz |
Bug 768599 - Drop unused 'Deletes' table from folders.db
-rw-r--r-- | camel/camel-db.c | 129 |
1 files changed, 11 insertions, 118 deletions
diff --git a/camel/camel-db.c b/camel/camel-db.c index 89c575e57..e51f162a7 100644 --- a/camel/camel-db.c +++ b/camel/camel-db.c @@ -1525,6 +1525,7 @@ gint camel_db_create_folders_table (CamelDB *cdb, GError **error) { + gint ret; const gchar *query = "CREATE TABLE IF NOT EXISTS folders ( " "folder_name TEXT PRIMARY KEY, " "version REAL, " @@ -1539,7 +1540,15 @@ camel_db_create_folders_table (CamelDB *cdb, "jnd_count INTEGER, " "bdata TEXT )"; CAMEL_DB_RELEASE_SQLITE_MEMORY; - return ((camel_db_command (cdb, query, error))); + + ret = camel_db_command (cdb, query, error); + + if (ret != -1) { + /* Drop 'Deletes' table, leftover from the previous versions. */ + ret = camel_db_command (cdb, "DROP TABLE IF EXISTS 'Deletes'", error); + } + + return ret; } static gint @@ -2218,41 +2227,6 @@ camel_db_read_message_info_records (CamelDB *cdb, } /** - * camel_db_create_deleted_table: - * - * Since: 2.24 - **/ -static gint -camel_db_create_deleted_table (CamelDB *cdb, - GError **error) -{ - gint ret; - gchar *table_creation_query; - table_creation_query = sqlite3_mprintf ( - "CREATE TABLE IF NOT EXISTS Deletes (" - "id INTEGER primary key AUTOINCREMENT not null, " - "uid TEXT, " - "time TEXT, " - "mailbox TEXT)"); - ret = camel_db_add_to_transaction (cdb, table_creation_query, error); - sqlite3_free (table_creation_query); - return ret; -} - -static gint -camel_db_trim_deleted_table (CamelDB *cdb, - GError **error) -{ - gint ret = 0; - - /* TODO: We need a mechanism to get rid of very old deletes, or something - * that keeps the list trimmed at a certain max (deleting upfront when - * appending at the back) */ - - return ret; -} - -/** * camel_db_delete_uid: * * Since: 2.24 @@ -2268,17 +2242,6 @@ camel_db_delete_uid (CamelDB *cdb, camel_db_begin_transaction (cdb, error); - ret = camel_db_create_deleted_table (cdb, error); - - tab = sqlite3_mprintf ( - "INSERT OR REPLACE INTO Deletes (uid, mailbox, time) " - "SELECT uid, %Q, strftime(\"%%s\", 'now') FROM %Q " - "WHERE uid = %Q", folder, folder, uid); - ret = camel_db_add_to_transaction (cdb, tab, error); - sqlite3_free (tab); - - ret = camel_db_trim_deleted_table (cdb, error); - tab = sqlite3_mprintf ("DELETE FROM '%q_bodystructure' WHERE uid = %Q", folder, uid); ret = camel_db_add_to_transaction (cdb, tab, error); sqlite3_free (tab); @@ -2303,35 +2266,12 @@ cdb_delete_ids (CamelDB *cdb, { gchar *tmp; gint ret = 0; - gchar *tab; gboolean first = TRUE; GString *str = g_string_new ("DELETE FROM "); GList *iterator; - GString *ins_str = NULL; - - if (strcmp (field, "vuid") != 0) - ins_str = g_string_new ("INSERT OR REPLACE INTO Deletes (uid, mailbox, time) SELECT uid, "); camel_db_begin_transaction (cdb, error); - if (ins_str) { - ret = camel_db_create_deleted_table (cdb, error); - if (ret == -1) { - camel_db_abort_transaction (cdb, NULL); - - g_string_free (ins_str, TRUE); - g_string_free (str, TRUE); - - return ret; - } - } - - if (ins_str) { - tab = sqlite3_mprintf ("%Q, strftime(\"%%s\", 'now') FROM %Q WHERE %s IN (", folder_name, folder_name, field); - g_string_append_printf (ins_str, "%s ", tab); - sqlite3_free (tab); - } - tmp = sqlite3_mprintf ("%Q WHERE %s IN (", folder_name, field); g_string_append_printf (str, "%s ", tmp); sqlite3_free (tmp); @@ -2346,24 +2286,15 @@ cdb_delete_ids (CamelDB *cdb, if (first == TRUE) { g_string_append_printf (str, " %s ", tmp); - if (ins_str) - g_string_append_printf (ins_str, " %s ", tmp); first = FALSE; } else { g_string_append_printf (str, ", %s ", tmp); - if (ins_str) - g_string_append_printf (ins_str, ", %s ", tmp); } sqlite3_free (tmp); } g_string_append (str, ")"); - if (ins_str) { - g_string_append (ins_str, ")"); - ret = camel_db_add_to_transaction (cdb, ins_str->str, error); - ret = ret == -1 ? ret : camel_db_trim_deleted_table (cdb, error); - } ret = ret == -1 ? ret : camel_db_add_to_transaction (cdb, str->str, error); @@ -2374,8 +2305,6 @@ cdb_delete_ids (CamelDB *cdb, CAMEL_DB_RELEASE_SQLITE_MEMORY; - if (ins_str) - g_string_free (ins_str, TRUE); g_string_free (str, TRUE); return ret; @@ -2411,11 +2340,9 @@ camel_db_clear_folder_summary (CamelDB *cdb, GError **error) { gint ret; - gchar *folders_del; gchar *msginfo_del; gchar *bstruct_del; - gchar *tab; folders_del = sqlite3_mprintf ("DELETE FROM folders WHERE folder_name = %Q", folder); msginfo_del = sqlite3_mprintf ("DELETE FROM %Q ", folder); @@ -2423,17 +2350,6 @@ camel_db_clear_folder_summary (CamelDB *cdb, camel_db_begin_transaction (cdb, error); - ret = camel_db_create_deleted_table (cdb, error); - - tab = sqlite3_mprintf ( - "INSERT OR REPLACE INTO Deletes (uid, mailbox, time) " - "SELECT uid, %Q, strftime(\"%%s\", 'now') FROM %Q", - folder, folder); - ret = camel_db_add_to_transaction (cdb, tab, error); - sqlite3_free (tab); - - ret = camel_db_trim_deleted_table (cdb, error); - camel_db_add_to_transaction (cdb, msginfo_del, error); camel_db_add_to_transaction (cdb, folders_del, error); camel_db_add_to_transaction (cdb, bstruct_del, error); @@ -2459,21 +2375,9 @@ camel_db_delete_folder (CamelDB *cdb, { gint ret; gchar *del; - gchar *tab; camel_db_begin_transaction (cdb, error); - ret = camel_db_create_deleted_table (cdb, error); - - tab = sqlite3_mprintf ( - "INSERT OR REPLACE INTO Deletes (uid, mailbox, time) " - "SELECT uid, %Q, strftime(\"%%s\", 'now') FROM %Q", - folder, folder); - ret = camel_db_add_to_transaction (cdb, tab, error); - sqlite3_free (tab); - - ret = camel_db_trim_deleted_table (cdb, error); - del = sqlite3_mprintf ("DELETE FROM folders WHERE folder_name = %Q", folder); ret = camel_db_add_to_transaction (cdb, del, error); sqlite3_free (del); @@ -2504,21 +2408,10 @@ camel_db_rename_folder (CamelDB *cdb, GError **error) { gint ret; - gchar *cmd, *tab; + gchar *cmd; camel_db_begin_transaction (cdb, error); - ret = camel_db_create_deleted_table (cdb, error); - - tab = sqlite3_mprintf ( - "INSERT OR REPLACE INTO Deletes (uid, mailbox, time) " - "SELECT uid, %Q, strftime(\"%%s\", 'now') FROM %Q", - old_folder, old_folder); - ret = camel_db_add_to_transaction (cdb, tab, error); - sqlite3_free (tab); - - ret = camel_db_trim_deleted_table (cdb, error); - cmd = sqlite3_mprintf ("ALTER TABLE %Q RENAME TO %Q", old_folder, new_folder); ret = camel_db_add_to_transaction (cdb, cmd, error); sqlite3_free (cmd); |