evolution-data-server r9057 - branches/camel-db-summary/camel
- From: psankar svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-data-server r9057 - branches/camel-db-summary/camel
- Date: Thu, 26 Jun 2008 14:45:12 +0000 (UTC)
Author: psankar
Date: Thu Jun 26 14:45:12 2008
New Revision: 9057
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9057&view=rev
Log:
Code cleanups and use sqlite's timeout
Modified:
branches/camel-db-summary/camel/camel-db.c
branches/camel-db-summary/camel/camel-db.h
Modified: branches/camel-db-summary/camel/camel-db.c
==============================================================================
--- branches/camel-db-summary/camel/camel-db.c (original)
+++ branches/camel-db-summary/camel/camel-db.c Thu Jun 26 14:45:12 2008
@@ -1,6 +1,7 @@
/* Srinivasa Ragavan - <sragavan novell com> - GPL v2 or later */
#include "camel-db.h"
+#include "camel-string-utils.h"
#include <config.h>
@@ -12,29 +13,29 @@
#define d(x)
-#define CAMEL_DB_SLEEP_INTERVAL 2
+#define CAMEL_DB_SLEEP_INTERVAL 1*1000
static int
cdb_sql_exec (sqlite3 *db, const char* stmt, CamelException *ex)
{
- char *errmsg;
- int ret = -1;
+ char *errmsg;
+ int ret = -1;
- while (ret == SQLITE_BUSY || ret == SQLITE_LOCKED || ret == -1) {
- if (ret != -1)
- sleep (CAMEL_DB_SLEEP_INTERVAL);
-
- ret = sqlite3_exec(db, stmt, 0, 0, &errmsg);
- }
-
d(g_print("%s\n", stmt));
- if (ret != SQLITE_OK) {
- d(g_print ("Error in SQL EXEC statement: %s [%s].\n", stmt, errmsg));
- if (ex)
- camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _(errmsg));
- sqlite3_free (errmsg);
- return -1;
- }
+
+ ret = sqlite3_exec(db, stmt, 0, 0, &errmsg);
+ if (ret == SQLITE_BUSY || ret == SQLITE_LOCKED || ret == -1) {
+ sqlite3_busy_timeout (db, CAMEL_DB_SLEEP_INTERVAL);
+ ret = sqlite3_exec(db, stmt, 0, 0, &errmsg);
+ }
+
+ if (ret != SQLITE_OK) {
+ d(g_print ("Error in SQL EXEC statement: %s [%s].\n", stmt, errmsg));
+ if (ex)
+ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _(errmsg));
+ sqlite3_free (errmsg);
+ return -1;
+ }
return 0;
}
@@ -203,13 +204,12 @@
int ret = -1;
char *errmsg;
- while (ret == SQLITE_BUSY || ret == SQLITE_LOCKED || ret == -1) {
- if (ret != -1)
- sleep (CAMEL_DB_SLEEP_INTERVAL);
- ret = sqlite3_exec (cdb->db, query, count_cb, count, &errmsg);
-
+ ret = sqlite3_exec(cdb->db, query, 0, 0, &errmsg);
+ if (ret == SQLITE_BUSY || ret == SQLITE_LOCKED || ret == -1) {
+ sqlite3_busy_timeout (cdb->db, CAMEL_DB_SLEEP_INTERVAL);
+ ret = sqlite3_exec (cdb->db, query, 0, 0, &errmsg);
}
-
+
if (ret != SQLITE_OK) {
g_print ("Error in SQL SELECT statement: %s [%s]\n", query, errmsg);
camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _(errmsg));
@@ -348,13 +348,13 @@
if (!cdb)
return TRUE;
- while (ret == SQLITE_BUSY || ret == SQLITE_LOCKED || ret == -1) {
- if (ret != -1)
- sleep (CAMEL_DB_SLEEP_INTERVAL);
- ret = sqlite3_exec(cdb->db, stmt, callback, data, &errmsg);
+ ret = sqlite3_exec(cdb->db, stmt, 0, 0, &errmsg);
+ if (ret == SQLITE_BUSY || ret == SQLITE_LOCKED || ret == -1) {
+ sqlite3_busy_timeout (cdb->db, CAMEL_DB_SLEEP_INTERVAL);
+ ret = sqlite3_exec (cdb->db, stmt, 0, 0, &errmsg);
}
-
+
if (ret != SQLITE_OK) {
d(g_warning ("Error in select statement '%s' [%s].\n", stmt, errmsg));
camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, errmsg);
@@ -376,7 +376,6 @@
return ret;
}
-#warning "add to .h file"
int
camel_db_create_vfolder (CamelDB *db, const char *folder_name, CamelException *ex)
{
@@ -423,7 +422,7 @@
#warning Sankar check if it is OK.
for (i = 0; i < ncol; ++i) {
if (!strcmp (name [i], "vuid"))
- g_ptr_array_add (array, camel_pstring_strdup(cols [i]+8));
+ g_ptr_array_add (array, (char *) (camel_pstring_strdup(cols [i]+8)));
}
return 0;
@@ -443,12 +442,12 @@
if (cond)
sqlite3_free (cond);
- printf("QUEY %s\n", sel_query);
+ g_print ("QUEY %s\n", sel_query);
#warning "handle return values"
array = g_ptr_array_new ();
camel_db_select (db, sel_query, read_uids_callback, array, ex);
sqlite3_free (sel_query);
- printf("result = %d\n", array->len);
+ g_print ("result = %d\n", array->len);
/* We make sure to return NULL if we don't get anything. Be good to your caller */
if (!array->len) {
g_ptr_array_free (array, TRUE);
Modified: branches/camel-db-summary/camel/camel-db.h
==============================================================================
--- branches/camel-db-summary/camel/camel-db.h (original)
+++ branches/camel-db-summary/camel/camel-db.h Thu Jun 26 14:45:12 2008
@@ -124,6 +124,11 @@
int camel_db_count_deleted_message_info (CamelDB *cdb, const char *table_name, guint32 *count, CamelException *ex);
int camel_db_count_total_message_info (CamelDB *cdb, const char *table_name, guint32 *count, CamelException *ex);
+int camel_db_count_visible_message_info (CamelDB *cdb, const char *table_name, guint32 *count, CamelException *ex);
+int camel_db_count_visible_unread_message_info (CamelDB *cdb, const char *table_name, guint32 *count, CamelException *ex);
+
+int camel_db_count_junk_not_deleted_message_info (CamelDB *cdb, const char *table_name, guint32 *count, CamelException *ex);
+
void camel_db_camel_mir_free (CamelMIRecord *record);
int camel_db_create_vfolder (CamelDB *db, const char *folder_name, CamelException *ex);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]