[tracker/domain-specific-indexes-review: 15/16] libtracker-data: Fixed deleting a tracker:domainIndex



commit cf6854e4c014056b078dc25afe5b084a8af7149e
Author: Philip Van Hoof <philip codeminded be>
Date:   Tue Jul 6 15:32:42 2010 +0200

    libtracker-data: Fixed deleting a tracker:domainIndex
    
    The normal columns where not being recreated after deleting a
    tracker:domainIndex from a class.

 src/libtracker-data/tracker-data-manager.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 53f176e..8006536 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -861,9 +861,24 @@ check_for_deleted_domain_index (TrackerClass *class)
 
 	if (deleted) {
 		GSList *l;
+		TrackerProperty **properties;
+		guint n_props, i;
 
 		tracker_class_set_db_schema_changed (class, TRUE);
 
+		properties = tracker_ontologies_get_properties (&n_props);
+		for (i = 0; i < n_props; i++) {
+			if (tracker_property_get_domain (properties[i]) == class &&
+			    !tracker_property_get_multiple_values (properties[i])) {
+
+				/* These aren't domain-indexes, but it's just a flag for the
+				 * functionality that'll recreate the table to know that the
+				 * property must be involved in the recreation and copy */
+
+				tracker_property_set_is_new_domain_index (properties[i], TRUE);
+			}
+		}
+
 		for (l = hfound; l != NULL; l = l->next) {
 			TrackerProperty *prop = l->data;
 			g_debug ("Ontology change: keeping tracker:domainIndex: %s",



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