tracker r1571 - in branches/indexer-split: . src/trackerd



Author: mr
Date: Tue Jun  3 11:10:52 2008
New Revision: 1571
URL: http://svn.gnome.org/viewvc/tracker?rev=1571&view=rev

Log:
	* src/trackerd/tracker-db-sqlite.h:
	* src/trackerd/tracker-rdf-query.c: Cleaned up some uses of
	FieldData and changed them to TrackerFieldData instead.


Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/src/trackerd/tracker-db-sqlite.h
   branches/indexer-split/src/trackerd/tracker-rdf-query.c

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 Jun  3 11:10:52 2008
@@ -49,21 +49,6 @@
 	Indexer         *word_index;
 };
 
-typedef struct {
-	char 		 *alias;
-	char 	 	 *field_name;
-	char	 	 *select_field;
-	char	 	 *where_field;
-	char	 	 *table_name;
-	char	 	 *id_field;
-	TrackerFieldType data_type;
-	guint            multiple_values : 1;
-	guint            is_select : 1;
-	guint            is_condition : 1;
-	guint            needs_join : 1;
-
-} FieldData;
-
 /* Module wide ops */
 gboolean            tracker_db_needs_setup                     (void);
 gboolean            tracker_db_common_need_build               (void);
@@ -308,8 +293,6 @@
 
 gchar *             tracker_db_get_field_name                  (const gchar    *service,
                                                                 const gchar    *meta_name);
-void                tracker_free_metadata_field                (FieldData *field_data);
-
 void                tracker_db_delete_service                  (DBConnection   *db_con,
                                                                 guint32         id,
                                                                 const gchar    *uri);

Modified: branches/indexer-split/src/trackerd/tracker-rdf-query.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-rdf-query.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-rdf-query.c	Tue Jun  3 11:10:52 2008
@@ -19,6 +19,7 @@
 
 #include <string.h>
 
+#include <libtracker-common/tracker-field-data.h>
 #include <libtracker-common/tracker-log.h>
 #include <libtracker-common/tracker-type-utils.h>
 #include <libtracker-common/tracker-utils.h>
@@ -1184,31 +1185,48 @@
 	result = NULL;
 
 	if (!g_markup_parse_context_parse (data.context, query, -1, &error)) {
-
 		g_string_free (data.sql_select, TRUE);
 		g_string_free (data.sql_from, TRUE);
 		g_string_free (data.sql_where, TRUE);
 		g_string_free (data.sql_order, TRUE);
-
 	} else {
-		const GSList *tmp;
-		FieldData    *tmp_field;
+		GSList *l;
 
-		for (tmp = data.fields; tmp; tmp = tmp->next) {
-			tmp_field = tmp->data;
-
-			if (!tmp_field->is_condition) {
-				if (tmp_field->needs_join) {
-					g_string_append_printf (data.sql_from, "\n LEFT OUTER JOIN %s %s ON (S.ID = %s.ServiceID and %s.MetaDataID = %s) ", tmp_field->table_name, tmp_field->alias, tmp_field->alias, tmp_field->alias, tmp_field->id_field);
+		for (l = data.fields; l; l = l->next) {
+			if (!tracker_field_data_get_is_condition (l->data)) {
+				if (tracker_field_data_get_needs_join (l->data)) {
+					g_string_append_printf (data.sql_from, 
+                                                                "\n LEFT OUTER JOIN %s %s ON (S.ID = %s.ServiceID and %s.MetaDataID = %s) ", 
+                                                                tracker_field_data_get_table_name (l->data), 
+                                                                tracker_field_data_get_alias (l->data),
+                                                                tracker_field_data_get_alias (l->data),
+                                                                tracker_field_data_get_alias (l->data),
+                                                                tracker_field_data_get_id_field (l->data));
 				}
 			} else {
-				char *related_metadata = tracker_get_related_metadata_names (db_con, tmp_field->field_name);
-				g_string_append_printf (data.sql_from, "\n INNER JOIN %s %s ON (S.ID = %s.ServiceID and %s.MetaDataID in (%s)) ", tmp_field->table_name, tmp_field->alias, tmp_field->alias, tmp_field->alias, related_metadata);
+				gchar *related_metadata;
+
+                                related_metadata = tracker_get_related_metadata_names (db_con, 
+                                                                                       tracker_field_data_get_field_name (l->data));
+				g_string_append_printf (data.sql_from, 
+                                                        "\n INNER JOIN %s %s ON (S.ID = %s.ServiceID and %s.MetaDataID in (%s)) ", 
+                                                        tracker_field_data_get_table_name (l->data), 
+                                                        tracker_field_data_get_alias (l->data),
+                                                        tracker_field_data_get_alias (l->data),
+                                                        tracker_field_data_get_alias (l->data),
+                                                        related_metadata);
 				g_free (related_metadata);
 			}
 		}
 
-		result = g_strconcat (data.sql_select->str, " ", data.sql_from->str, " ", data.sql_where->str, " ", data.sql_order->str, NULL);
+		result = g_strconcat (data.sql_select->str, 
+                                      " ", 
+                                      data.sql_from->str, 
+                                      " ", 
+                                      data.sql_where->str, 
+                                      " ", 
+                                      data.sql_order->str, 
+                                      NULL);
 		
 		g_string_free (data.sql_select, TRUE);
 		g_string_free (data.sql_from, TRUE);



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