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



Author: ifrade
Date: Tue May 13 14:11:29 2008
New Revision: 1412
URL: http://svn.gnome.org/viewvc/tracker?rev=1412&view=rev

Log:
Using sql file to create ServiceContents table

Added:
   branches/indexer-split/data/sqlite-contents.sql
Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/data/Makefile.am
   branches/indexer-split/src/trackerd/tracker-db-sqlite.c
   branches/indexer-split/src/trackerd/tracker-db-sqlite.h

Modified: branches/indexer-split/data/Makefile.am
==============================================================================
--- branches/indexer-split/data/Makefile.am	(original)
+++ branches/indexer-split/data/Makefile.am	Tue May 13 14:11:29 2008
@@ -11,6 +11,7 @@
 	tracker-dbus-xesam.xml			\
 	sqlite-tracker.sql 			\
 	sqlite-cache.sql 			\
+	sqlite-contents.sql			\
 	sqlite-email.sql			\
 	sqlite-service-stored-procs.sql 	\
 	sqlite-service-triggers.sql 		\

Added: branches/indexer-split/data/sqlite-contents.sql
==============================================================================
--- (empty file)
+++ branches/indexer-split/data/sqlite-contents.sql	Tue May 13 14:11:29 2008
@@ -0,0 +1,8 @@
+
+CREATE TABLE ServiceContents 
+(
+	ServiceID Int not null, 
+	MetadataID Int not null, 
+	Content Text, 
+	primary key (ServiceID, MetadataID)
+);
\ No newline at end of file

Modified: branches/indexer-split/src/trackerd/tracker-db-sqlite.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-db-sqlite.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-db-sqlite.c	Tue May 13 14:11:29 2008
@@ -937,13 +937,6 @@
 }
 
 
-static void
-open_common_db (DBConnection *db_con)
-{
-	db_con->db = open_db_interface (TRACKER_DB_COMMON);
-}
-
-
 DBConnection *
 tracker_db_connect_common (void)
 {
@@ -952,7 +945,7 @@
 
 	db_con = g_new0 (DBConnection, 1);
 
-	open_common_db (db_con);
+	db_con->db = open_db_interface (TRACKER_DB_COMMON);
 
 	db_con->cache = NULL;
 	db_con->emails = NULL;
@@ -1129,8 +1122,8 @@
 
 	create_table = !tracker_db_manager_file_exists (TRACKER_DB_FILE_META);
 
-	db_con = g_new0 (DBConnection, 1);
-	db_con->db = open_db_interface (TRACKER_DB_FILE_META);
+	db_con = tracker_db_connect_file_meta ();
+
 	db_con->data = db_con;
 	
 	if (create_table) {
@@ -1180,7 +1173,7 @@
 
 	db_con = g_new0 (DBConnection, 1);
 
-	open_file_db (db_con);
+	db_con->db = open_db_interface (TRACKER_DB_FILE_META);
 
 	return db_con;
 }
@@ -1217,7 +1210,7 @@
 	db_con->db = open_db_interface (TRACKER_DB_FILE_CONTENTS);
 
 	if (create) {
-		tracker_db_exec_no_reply (db_con->db, "CREATE TABLE ServiceContents (ServiceID Int not null, MetadataID Int not null, Content Text, primary key (ServiceID, MetadataID))");
+		load_sql_file (db_con, "sqlite-contents.sql");
 		tracker_log ("Creating db: %s",
 			     tracker_db_manager_get_file (TRACKER_DB_FILE_CONTENTS));
 	}
@@ -1250,7 +1243,7 @@
 	db_con->db = open_db_interface (TRACKER_DB_EMAIL_CONTENTS);
 
 	if (create_table) {
-		tracker_db_exec_no_reply (db_con->db, "CREATE TABLE ServiceContents (ServiceID Int not null, MetadataID Int not null, Content Text, primary key (ServiceID, MetadataID))");
+		load_sql_file (db_con, "sqlite-contents.sql");
 		tracker_log ("Creating db: %s",
 			     tracker_db_manager_get_file (TRACKER_DB_EMAIL_CONTENTS));
 	}
@@ -1296,7 +1289,9 @@
 	open_file_content_db (db_con->blob);
 
 	open_email_content_db (emails->blob);
-	open_common_db (emails->common);
+
+	emails->common->db = open_db_interface (TRACKER_DB_COMMON);
+
 	open_email_db (emails);
 		
 	if (cache_trans) {
@@ -1325,7 +1320,9 @@
 	tracker_db_close (emails->db);
 
 	open_email_content_db (emails->blob);
-	open_common_db (emails->common);
+
+	emails->common->db = open_db_interface (TRACKER_DB_COMMON);
+
 	open_email_db (emails);
 
 	if (cache_trans) {
@@ -1424,14 +1421,27 @@
 	return result_set;
 }
 
+TrackerDBResultSet *
+tracker_db_exec_proc (TrackerDBInterface *iface, const char *procedure, ...)
+{
+	TrackerDBResultSet *result_set;
+	va_list args;
 
-gboolean
-tracker_exec_proc_no_reply (DBConnection *db_con, const char *procedure, ...)
+	va_start (args, procedure);
+	result_set = tracker_db_interface_execute_vprocedure (iface, NULL, procedure, args);
+	va_end (args);
+
+	return result_set;
+}
+
+
+static gboolean
+tracker_exec_proc_no_reply (TrackerDBInterface *iface, const char *procedure, ...)
 {
 	va_list args;
 
 	va_start (args, procedure);
-	tracker_db_interface_execute_vprocedure_no_reply (db_con->db, NULL, procedure, args);
+	tracker_db_interface_execute_vprocedure_no_reply (iface, NULL, procedure, args);
 	va_end (args);
 
 	return TRUE;
@@ -1506,7 +1516,7 @@
 	return !tracker_db_manager_file_exists (TRACKER_DB_COMMON);
 }
 
-gint
+static gint
 tracker_metadata_is_key (const gchar *service, const gchar *meta_name)
 {
 	return tracker_service_manager_metadata_in_service (service, meta_name);
@@ -3195,7 +3205,7 @@
 	g_static_rec_mutex_lock (&events_table_lock);
 	/* Uses the Events table */
 	tracker_debug ("SetEventsBeingHandled");
-	tracker_exec_proc_no_reply (db_con->cache, "SetEventsBeingHandled", NULL);
+	tracker_exec_proc_no_reply (db_con->cache->db, "SetEventsBeingHandled", NULL);
 	tracker_debug ("GetEvents");
 	result = tracker_exec_proc (db_con->cache, "GetEvents", NULL);
 	g_static_rec_mutex_unlock (&events_table_lock);
@@ -5032,32 +5042,6 @@
 
 }
 
-gboolean
-tracker_db_integrity_check (DBConnection *db_con)
-{
-	TrackerDBResultSet *result_set;
-	gboolean integrity_check = TRUE;
-
-	result_set = tracker_db_interface_execute_query (db_con->db, NULL, "pragma integrity_check;");
-
-	if (!result_set) {
-		integrity_check = FALSE;
-	} else {
-		gchar *check;
-
-		tracker_db_result_set_get (result_set, 0, &check, -1);
-
-		if (check) {
-			integrity_check = (strcasecmp (check, "ok") == 0);
-			g_free (check);
-		}
-
-		g_object_unref (result_set);
-	}
-
-	return integrity_check;
-}
-
 void
 tracker_free_metadata_field (FieldData *field_data)
 {

Modified: branches/indexer-split/src/trackerd/tracker-db-sqlite.h
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-db-sqlite.h	(original)
+++ branches/indexer-split/src/trackerd/tracker-db-sqlite.h	Tue May 13 14:11:29 2008
@@ -89,13 +89,18 @@
 
 } FieldData;
 
+/* Module wide ops */
 gboolean            tracker_db_needs_setup                     (void);
 gboolean            tracker_db_common_need_build               (void);
 gboolean            tracker_db_load_prepared_queries                      (void);
 void                tracker_db_thread_init                     (void);
 void                tracker_db_thread_end                      (void);
-void                tracker_db_close                           (TrackerDBInterface   *iface);
 void                tracker_db_finalize                        (void);
+void                tracker_create_common_db                   (void);
+void                tracker_db_get_static_data                 (DBConnection   *db_con);
+
+
+/* Open, create, connect DBs */
 DBConnection *      tracker_db_connect                         (void);
 DBConnection *      tracker_db_connect_common                  (void);
 DBConnection *      tracker_db_connect_file_content            (void);
@@ -108,23 +113,46 @@
 void                tracker_db_close_all                       (DBConnection   *db_con);
 void                tracker_db_refresh_all                     (DBConnection   *db_con);
 void                tracker_db_refresh_email                   (DBConnection   *db_con);
+
+/* Operations for TrackerDBInterface */
+void                tracker_db_close                           (TrackerDBInterface   *iface);
+
 TrackerDBResultSet *tracker_exec_proc                          (DBConnection   *db_con,
                                                                 const gchar    *procedure,
                                                                 ...);
-gboolean            tracker_exec_proc_no_reply                 (DBConnection   *db_con,
-                                                                const gchar    *procedure,
-                                                                ...);
+TrackerDBResultSet *tracker_db_exec_proc                       (TrackerDBInterface   *iface,
+								const gchar    *procedure,
+								...);
+
 gboolean            tracker_db_exec_no_reply                   (TrackerDBInterface   *iface,
                                                                 const gchar          *query,
                                                                 ...);
-void                tracker_create_common_db                          (void);
+gboolean            tracker_db_is_in_transaction               (DBConnection   *db_con);
+
+gchar *             tracker_db_get_option_string               (DBConnection   *db_con,
+                                                                const gchar    *option);
+void                tracker_db_set_option_string               (DBConnection   *db_con,
+                                                                const gchar    *option,
+                                                                const gchar    *value);
+gint                tracker_db_get_option_int                  (DBConnection   *db_con,
+                                                                const gchar    *option);
+void                tracker_db_set_option_int                  (DBConnection   *db_con,
+                                                                const gchar    *option,
+                                                                gint            value);
+
+
+/* high level transactions things */
+void                tracker_db_start_index_transaction         (DBConnection   *db_con);
+void                tracker_db_end_index_transaction           (DBConnection   *db_con);
+gboolean            tracker_db_regulate_transactions           (DBConnection   *db_con,
+                                                                gint            interval);
+
+/* High level operations (with application logic and/or using more than one DB */
 void                tracker_db_save_file_contents              (DBConnection   *db_con,
                                                                 GHashTable     *index_table,
                                                                 GHashTable     *old_table,
                                                                 const gchar    *file_name,
                                                                 TrackerDBFileInfo *info);
-gboolean            tracker_db_start_transaction               (DBConnection   *db_con);
-gboolean            tracker_db_end_transaction                 (DBConnection   *db_con);
 void                tracker_db_update_indexes_for_new_service  (guint32         service_id,
                                                                 gint            service_type_id,
                                                                 GHashTable     *table);
@@ -300,7 +328,6 @@
                                                                 const gchar    *id,
                                                                 const gchar    *key,
                                                                 gchar         **values);
-void                tracker_db_get_static_data                 (DBConnection   *db_con);
 DBConnection *      tracker_db_get_service_connection          (DBConnection   *db_con,
                                                                 const gchar    *service);
 gchar *             tracker_db_get_service_for_entity          (DBConnection   *db_con,
@@ -315,12 +342,12 @@
                                                                 guint32         id,
                                                                 GHashTable     *table,
                                                                 gboolean        embedded_only);
-gboolean            tracker_db_has_display_metadata            (FieldDef       *def);
+
 gchar *             tracker_db_get_field_name                  (const gchar    *service,
                                                                 const gchar    *meta_name);
-gint                tracker_metadata_is_key                    (const gchar    *service,
-                                                                const gchar    *meta_name);
 gchar *             tracker_db_get_display_field               (FieldDef       *def);
+void                tracker_free_metadata_field                (FieldData *field_data);
+
 void                tracker_db_delete_service                  (DBConnection   *db_con,
                                                                 guint32         id,
                                                                 const gchar    *uri);
@@ -330,22 +357,8 @@
                                                                 gint            field_count,
                                                                 gboolean        is_select,
                                                                 gboolean        is_condition);
-gboolean            tracker_db_is_in_transaction               (DBConnection   *db_con);
-void                tracker_db_start_index_transaction         (DBConnection   *db_con);
-void                tracker_db_end_index_transaction           (DBConnection   *db_con);
-gboolean            tracker_db_regulate_transactions           (DBConnection   *db_con,
-                                                                gint            interval);
-gchar *             tracker_db_get_option_string               (DBConnection   *db_con,
-                                                                const gchar    *option);
-void                tracker_db_set_option_string               (DBConnection   *db_con,
-                                                                const gchar    *option,
-                                                                const gchar    *value);
-gint                tracker_db_get_option_int                  (DBConnection   *db_con,
-                                                                const gchar    *option);
-void                tracker_db_set_option_int                  (DBConnection   *db_con,
-                                                                const gchar    *option,
-                                                                gint            value);
-gboolean            tracker_db_integrity_check                 (DBConnection   *db_con);
+
+/* XESAM stuff */
 TrackerDBResultSet *tracker_db_get_events                      (DBConnection *db_con);
 void                tracker_db_delete_handled_events           (DBConnection   *db_con, 
                                                                 TrackerDBResultSet *events);
@@ -359,7 +372,6 @@
 TrackerDBResultSet *tracker_db_get_live_search_hit_count       (DBConnection *db_con, 
                                                                 const gchar *search_id);
 
-void                tracker_free_metadata_field                (FieldData *field_data);
 
 G_END_DECLS
 



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