tracker r1738 - in branches/indexer-split: . src/libtracker-db



Author: mr
Date: Mon Jun 23 16:04:15 2008
New Revision: 1738
URL: http://svn.gnome.org/viewvc/tracker?rev=1738&view=rev

Log:
	* src/libtracker-db/tracker-db-interface-sqlite.c: Improve error
	reporting here so we say if the query used is foobar OR if it is a
	geniune error.

	* src/libtracker-db/tracker-db-manager.c: Strip whitespace before
	trying to load queries from SQL files. Also, present a count when
	done so we know how many we loaded as a measure of testing it
	worked properly.


Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/src/libtracker-db/tracker-db-interface-sqlite.c
   branches/indexer-split/src/libtracker-db/tracker-db-manager.c

Modified: branches/indexer-split/src/libtracker-db/tracker-db-interface-sqlite.c
==============================================================================
--- branches/indexer-split/src/libtracker-db/tracker-db-interface-sqlite.c	(original)
+++ branches/indexer-split/src/libtracker-db/tracker-db-interface-sqlite.c	Mon Jun 23 16:04:15 2008
@@ -516,18 +516,27 @@
 	TrackerDBInterfaceSqlitePrivate *priv;
 	TrackerDBResultSet *result_set;
 	sqlite3_stmt *stmt;
+        int retval;
 
 	priv = TRACKER_DB_INTERFACE_SQLITE_GET_PRIVATE (db_interface);
 
-	sqlite3_prepare_v2 (priv->db, query, -1, &stmt, NULL);
+	retval = sqlite3_prepare_v2 (priv->db, query, -1, &stmt, NULL);
 
-	if (!stmt) {
+        if (retval != SQLITE_OK) {
 		g_set_error (error,
 			     TRACKER_DB_INTERFACE_ERROR,
 			     TRACKER_DB_QUERY_ERROR,
 			     sqlite3_errmsg (priv->db));
 		return NULL;
-	}
+	} else if (stmt == NULL) {
+		g_set_error (error,
+			     TRACKER_DB_INTERFACE_ERROR,
+			     TRACKER_DB_QUERY_ERROR,
+			     "Could not prepare SQL statement:'%s'",
+                             query);
+
+		return NULL;
+        }
 
 	result_set = create_result_set_from_stmt (TRACKER_DB_INTERFACE_SQLITE (db_interface), stmt, error);
 	sqlite3_finalize (stmt);

Modified: branches/indexer-split/src/libtracker-db/tracker-db-manager.c
==============================================================================
--- branches/indexer-split/src/libtracker-db/tracker-db-manager.c	(original)
+++ branches/indexer-split/src/libtracker-db/tracker-db-manager.c	Mon Jun 23 16:04:15 2008
@@ -180,7 +180,8 @@
 	       const gchar        *delimiter)
 {
 	gchar *path, *content, **queries;
-	gint i;
+	gint   count;
+	gint   i;
 
 	path = g_build_filename (sql_dir, file, NULL);
 
@@ -196,16 +197,29 @@
 
 	queries = g_strsplit (content, delimiter, -1);
 
-	for (i = 0; queries[i]; i++) {
+	for (i = 0, count = 0; queries[i]; i++) {
 		GError *error = NULL;
-		tracker_db_interface_execute_query (iface, &error, queries[i]);
+		gchar  *sql;
+
+		/* Skip white space, including control characters */
+		for (sql = queries[i]; sql && g_ascii_isspace (sql[0]); sql++);
+		
+		if (!sql || sql[0] == '\0') {
+			continue;
+		}
+
+		tracker_db_interface_execute_query (iface, &error, sql);
+
 		if (error) {
-			g_warning ("Error loading '%s:%d': '%s'", file, i, error->message);
+			g_warning ("Error loading query:'%s' #%d, %s", file, i, error->message);
 			g_error_free (error);
+			continue;
 		}
+
+		count++;
 	}
 
-	g_message ("  Loaded SQL file:'%s'", file);
+	g_message ("  Loaded SQL file:'%s' (%d queries)", file, count);
 
 	g_strfreev (queries);
 	g_free (content);



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