tracker r1903 - in branches/indexer-split: . data src/tracker-indexer src/trackerd



Author: pvanhoof
Date: Tue Jul 22 14:24:43 2008
New Revision: 1903
URL: http://svn.gnome.org/viewvc/tracker?rev=1903&view=rev

Log:
2008-07-22  Philip Van Hoof  <pvanhoof gnome org>

        * data/sqlite-stored-procs.sql:
        * data/sqlite-cache.sql:
        * src/tracker-indexer/tracker-indexer-db.c:
        * src/tracker-indexer/tracker-indexer-db.h:
        * src/tracker-indexer/tracker-indexer.c:

        Removed the need for GetNewID and UpdateNewID from the indexer
        Replaced the GetNewEventID and UpdateNewEventID with an autoincrement



Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/data/sqlite-cache.sql
   branches/indexer-split/data/sqlite-stored-procs.sql
   branches/indexer-split/src/tracker-indexer/tracker-indexer-db.c
   branches/indexer-split/src/tracker-indexer/tracker-indexer-db.h
   branches/indexer-split/src/tracker-indexer/tracker-indexer.c
   branches/indexer-split/src/trackerd/tracker-db.c

Modified: branches/indexer-split/data/sqlite-cache.sql
==============================================================================
--- branches/indexer-split/data/sqlite-cache.sql	(original)
+++ branches/indexer-split/data/sqlite-cache.sql	Tue Jul 22 14:24:43 2008
@@ -71,7 +71,7 @@
 
 CREATE TABLE Events
 (
-	ID		Integer primary key not null,
+	ID		Integer primary key autoincrement,
 	ServiceID	Integer not null,
 	BeingHandled	Integer default 0,
 	EventType	Text

Modified: branches/indexer-split/data/sqlite-stored-procs.sql
==============================================================================
--- branches/indexer-split/data/sqlite-stored-procs.sql	(original)
+++ branches/indexer-split/data/sqlite-stored-procs.sql	Tue Jul 22 14:24:43 2008
@@ -22,9 +22,10 @@
 GetServices SELECT TypeName, Description, Parent  FROM ServiceTypes ORDER BY TypeID;
 GetAllServices SELECT TypeID, TypeName, Parent, Enabled, Embedded, HasMetadata, HasFullText, HasThumbs, ContentMetadata, Database, ShowServiceFiles, ShowServiceDirectories, KeyMetadata1, KeyMetadata2, KeyMetadata3, KeyMetadata4, KeyMetadata5, KeyMetadata6, KeyMetadata7, KeyMetadata8, KeyMetadata9, KeyMetadata10, KeyMetadata11  FROM ServiceTypes;
 
+/* GetNewID and UpdateNewID are deprecated !! */
 GetNewID SELECT OptionValue FROM Options WHERE OptionKey = 'Sequence';
 UpdateNewID UPDATE Options set OptionValue = ? WHERE OptionKey = 'Sequence';
-CreateEvent INSERT INTO Events (ID, ServiceID, EventType) VALUES (?,?,?); 
+CreateEvent INSERT INTO Events (ServiceID, EventType) VALUES (?,?); 
 GetEvents SELECT ID, ServiceID, EventType FROM Events WHERE BeingHandled = 1;
 SetEventsBeingHandled UPDATE Events SET BeingHandled = 1;
 
@@ -35,6 +36,7 @@
 GetLiveSearchHitCount SELECT count(*) FROM cache.LiveSearches WHERE SearchID = ?;
 LiveSearchStopSearch DELETE FROM cache.LiveSearches WHERE SearchID = ?
 
+/* GetNewEventID and UpdateNewEventID are deprecated !! */
 GetNewEventID SELECT OptionValue FROM Options WHERE OptionKey = 'EventSequence';
 UpdateNewEventID UPDATE Options set OptionValue = ? WHERE OptionKey = 'EventSequence';
 

Modified: branches/indexer-split/src/tracker-indexer/tracker-indexer-db.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-indexer-db.c	(original)
+++ branches/indexer-split/src/tracker-indexer/tracker-indexer-db.c	Tue Jul 22 14:24:43 2008
@@ -24,79 +24,58 @@
 #include <stdlib.h>
 
 #include <libtracker-common/tracker-type-utils.h>
+#include <libtracker-db/tracker-db-manager.h>
 
 #include "tracker-indexer-db.h"
 
-void
-tracker_db_inc_service_id (TrackerDBInterface *iface, guint32 id)
-{
-	gchar              *id_str;
-
-	id_str = tracker_int_to_string (id);
-
-	tracker_db_interface_execute_procedure (iface, NULL, "UpdateNewID", id_str, NULL);
-	g_free (id_str);
-}
 
 guint32
 tracker_db_get_new_service_id (TrackerDBInterface *iface)
 {
+	guint32             files_max;
 	TrackerDBResultSet *result_set;
-	gchar              *id_str;
-	guint32             id;
-
-	result_set = tracker_db_interface_execute_procedure (iface, NULL, "GetNewID", NULL);
+	TrackerDBInterface *temp_iface;
+	static guint32      max = 0;
 
-	if (!result_set) {
-		g_critical ("Could not create service, GetNewID failed");
-		return 0;
+	if (max != 0) {
+		return ++max;
 	}
 
-	tracker_db_result_set_get (result_set, 0, &id_str, -1);
-	g_object_unref (result_set);
-
-	id = atoi (id_str);
-	id++;
-	g_free (id_str);
-
-	return id;
-}
-
-void
-tracker_db_inc_event_id (TrackerDBInterface *iface, guint32 id)
-{
-	gchar              *id_str;
+	temp_iface = tracker_db_manager_get_db_interface (TRACKER_DB_FILE_METADATA);
 
-	id_str = tracker_int_to_string (id);
+	result_set = tracker_db_interface_execute_query (temp_iface, NULL,
+							 "SELECT MAX(ID) AS A FROM Services");
 
-	tracker_db_interface_execute_procedure (iface, NULL, "UpdateNewEventID", id_str, NULL);
-	g_free (id_str);
-}
+	if (result_set) {
+		GValue val = {0, };
+		_tracker_db_result_set_get_value (result_set, 0, &val);
+		if (G_VALUE_TYPE (&val) == G_TYPE_INT) {
+			max = g_value_get_int (&val);
+		}
+		g_value_unset (&val);
+		g_object_unref (result_set);
+	}
 
-guint32
-tracker_db_get_new_event_id (TrackerDBInterface *iface)
-{
-	TrackerDBResultSet *result_set;
-	gchar              *id_str;
-	guint32             id;
+	temp_iface = tracker_db_manager_get_db_interface (TRACKER_DB_EMAIL_METADATA);
 
-	result_set = tracker_db_interface_execute_procedure (iface, NULL, "GetNewEventID", NULL);
+	result_set = tracker_db_interface_execute_query (temp_iface, NULL,
+							 "SELECT MAX(ID) AS A FROM Services");
 
-	if (!result_set) {
-		g_critical ("Could not create event, GetNewEventID failed");
-		return 0;
+	if (result_set) {
+		GValue val = {0, };
+		_tracker_db_result_set_get_value (result_set, 0, &val);
+		if (G_VALUE_TYPE (&val) == G_TYPE_INT) {
+			files_max = g_value_get_int (&val);
+			max = MAX (files_max, max);
+		}
+		g_value_unset (&val);
+		g_object_unref (result_set);
 	}
 
-	tracker_db_result_set_get (result_set, 0, &id_str, -1);
-	g_object_unref (result_set);
-
-	id = atoi (id_str);
-	id++;
-	g_free (id_str);
-
-	return id;
+	return ++max;
 }
 
+
 void
 tracker_db_increment_stats (TrackerDBInterface *iface,
 			    TrackerService     *service)
@@ -115,22 +94,18 @@
 
 gboolean
 tracker_db_create_event (TrackerDBInterface *iface,
-			   guint32 id, 
 			   guint32 service_id, 
 			   const gchar *type)
 {
-	gchar *id_str, *service_id_str;
+	gchar *service_id_str;
 
-	id_str = tracker_guint32_to_string (id);
 	service_id_str = tracker_guint32_to_string (service_id);
 
 	tracker_db_interface_execute_procedure (iface, NULL, "CreateEvent", 
-						id_str,
 						service_id_str,
 						type,
 						NULL);
 
-	g_free (id_str);
 	g_free (service_id_str);
 
 	return TRUE;

Modified: branches/indexer-split/src/tracker-indexer/tracker-indexer-db.h
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-indexer-db.h	(original)
+++ branches/indexer-split/src/tracker-indexer/tracker-indexer-db.h	Tue Jul 22 14:24:43 2008
@@ -28,7 +28,6 @@
 G_BEGIN_DECLS
 
 guint32  tracker_db_get_new_service_id (TrackerDBInterface *iface);
-guint32  tracker_db_get_new_event_id   (TrackerDBInterface *iface);
 void     tracker_db_increment_stats    (TrackerDBInterface *iface,
                                         TrackerService     *service);
 gboolean tracker_db_create_service     (TrackerDBInterface *iface,
@@ -45,13 +44,8 @@
 					guint32             id,
 					const gchar        *text);
 gboolean tracker_db_create_event       (TrackerDBInterface *iface,
-                                        guint32             id,
                                         guint32             service_id,
                                         const gchar        *type);
-void     tracker_db_inc_service_id      (TrackerDBInterface *iface, 
-					 guint32 id);
-void     tracker_db_inc_event_id        (TrackerDBInterface *iface, 
-					 guint32 id);
 
 
 G_END_DECLS

Modified: branches/indexer-split/src/tracker-indexer/tracker-indexer.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-indexer.c	(original)
+++ branches/indexer-split/src/tracker-indexer/tracker-indexer.c	Tue Jul 22 14:24:43 2008
@@ -776,6 +776,7 @@
 		mimetype = tracker_file_get_mime_type (info->file->path);
 		service_type = tracker_ontology_get_service_type_for_mime (mimetype);
 		service_def = tracker_ontology_get_service_type_by_name (service_type);
+
 		id = tracker_db_get_new_service_id (indexer->private->common);
 
 		created = tracker_db_create_service (indexer->private->metadata, 
@@ -789,19 +790,10 @@
 		
 		if (created) {
 			gchar *text;
-			guint32 eid;
-			gboolean inc_events = FALSE;
-
-			eid = tracker_db_get_new_event_id (indexer->private->common);
 
 			created = tracker_db_create_event (indexer->private->cache, 
-							   eid, 
 							   id,
 							   "Create");
-			if (created) {
-				inc_events = TRUE;
-			}
-
 			tracker_db_increment_stats (indexer->private->common, service_def);
 
 			index_metadata (indexer, id, service_def, metadata);
@@ -813,11 +805,6 @@
 				g_free (text);
 			}
 
-			if (inc_events) {
-				tracker_db_inc_event_id (indexer->private->common, eid);
-			}
-
-			tracker_db_inc_service_id (indexer->private->common, id);
 		}
 
 		g_hash_table_destroy (metadata);

Modified: branches/indexer-split/src/trackerd/tracker-db.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-db.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-db.c	Tue Jul 22 14:24:43 2008
@@ -2739,6 +2739,11 @@
 		path = tracker_file_get_vfs_path (info->uri);
 	}
 
+	/* Using GetNewUID is deprecated, use 
+
+	SELECT MAX(ID) from files-meta.Services followed by 
+	SELECT MAX(ID) from email-meta.Services instead !!! */
+
 	/* Get a new unique ID for the service - use mutex to prevent race conditions */
 	result_set = tracker_db_exec_proc (iface, "GetNewID", NULL);
 



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