[evolution-data-server] Bug 660974 - sqlite backend: use INSERT OR IGNORE in add_folder_into_db()



commit 1ccb38e49744dcd7fd1d8134d6712d505f782bb9
Author: Christophe Dumez <christophe dumez intel com>
Date:   Wed Oct 5 13:48:50 2011 +0300

    Bug 660974 - sqlite backend: use INSERT OR IGNORE in add_folder_into_db()
    
    Use "INSERT OR IGNORE" SQL request instead of having two steps
    (existence check + insert). This simplifies the code and is
    probably more efficient.

 .../libedata-book/e-book-backend-sqlitedb.c        |   37 +-------------------
 1 files changed, 1 insertions(+), 36 deletions(-)
---
diff --git a/addressbook/libedata-book/e-book-backend-sqlitedb.c b/addressbook/libedata-book/e-book-backend-sqlitedb.c
index 87f1ddd..75eef42 100644
--- a/addressbook/libedata-book/e-book-backend-sqlitedb.c
+++ b/addressbook/libedata-book/e-book-backend-sqlitedb.c
@@ -337,38 +337,6 @@ create_folders_table (EBookBackendSqliteDB *ebsdb,
 	return;
 }
 
-static gint
-folder_found_cb (gpointer ref,
-                 gint col,
-                 gchar **cols,
-                 gchar **name)
-{
-	gboolean *found = ref;
-
-	*found = TRUE;
-
-	return 0;
-}
-
-static gboolean
-folder_exists (EBookBackendSqliteDB *ebsdb,
-               const gchar *folderid,
-               GError **error)
-{
-	gchar *stmt;
-	gboolean found = FALSE;
-
-	READER_LOCK (ebsdb);
-
-	stmt = sqlite3_mprintf ("SELECT folder_id FROM folders WHERE folder_id = %Q", folderid);
-	book_backend_sql_exec (ebsdb->priv->db, stmt, folder_found_cb , &found, error);
-	sqlite3_free (stmt);
-
-	READER_UNLOCK (ebsdb);
-
-	return found;
-}
-
 static void
 add_folder_into_db (EBookBackendSqliteDB *ebsdb,
                     const gchar *folderid,
@@ -378,14 +346,11 @@ add_folder_into_db (EBookBackendSqliteDB *ebsdb,
 	gchar *stmt;
 	GError *err = NULL;
 
-	if (folder_exists (ebsdb, folderid, error))
-		return;
-
 	WRITER_LOCK (ebsdb);
 	book_backend_sqlitedb_start_transaction (ebsdb, &err);
 
 	if (!err) {
-		stmt = sqlite3_mprintf ("INSERT OR REPLACE INTO folders VALUES ( %Q, %Q, %Q, %d, %d, %d ) ",
+		stmt = sqlite3_mprintf ("INSERT OR IGNORE INTO folders VALUES ( %Q, %Q, %Q, %d, %d, %d ) ",
 					folderid, folder_name, NULL, 0, 0, FOLDER_VERSION);
 
 		book_backend_sql_exec (ebsdb->priv->db, stmt, NULL, NULL, &err);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]