[evolution-data-server] Bug 660974 - sqlite backend: use INSERT OR IGNORE in add_folder_into_db()
- From: Christophe Dumez <cdumez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Bug 660974 - sqlite backend: use INSERT OR IGNORE in add_folder_into_db()
- Date: Fri, 11 Nov 2011 17:39:24 +0000 (UTC)
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]