[tracker] libtracker-data: Set has_persistent when deleting rdf:type statements



commit 5b173e69fcbd380c16c5255c3a591095b7129d93
Author: Jürg Billeter <j bitron ch>
Date:   Mon Jan 31 14:04:02 2011 +0100

    libtracker-data: Set has_persistent when deleting rdf:type statements
    
    This moves has_persistent assignments from low level functions to the
    higher level insert_statement_with_* and delete_statement functions as
    it is easier to cover all cases that way.

 src/libtracker-data/tracker-data-update.c |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index 94d654e..52868d2 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -564,10 +564,6 @@ cache_insert_value (const gchar            *table_name,
 #endif
 	property.date_time = date_time;
 
-	if (!transient) {
-		has_persistent = TRUE;
-	}
-
 	table = cache_ensure_table (table_name, multiple_values, transient);
 	g_array_append_val (table->properties, property);
 }
@@ -602,10 +598,6 @@ cache_delete_value (const gchar            *table_name,
 #endif
 	property.date_time = date_time;
 
-	if (!transient) {
-		has_persistent = TRUE;
-	}
-
 	table = cache_ensure_table (table_name, multiple_values, transient);
 	table->delete_value = TRUE;
 	g_array_append_val (table->properties, property);
@@ -2034,6 +2026,8 @@ tracker_data_delete_statement (const gchar  *graph,
 	if (object && g_strcmp0 (predicate, RDF_PREFIX "type") == 0) {
 		class = tracker_ontologies_get_class_by_uri (object);
 		if (class != NULL) {
+			has_persistent = TRUE;
+
 			if (!in_journal_replay) {
 				tracker_db_journal_append_delete_statement_id (
 				       (graph != NULL ? query_resource_id (graph) : 0),
@@ -2053,6 +2047,10 @@ tracker_data_delete_statement (const gchar  *graph,
 
 		field = tracker_ontologies_get_property_by_uri (predicate);
 		if (field != NULL) {
+			if (!tracker_property_get_transient (field)) {
+				has_persistent = TRUE;
+			}
+
 			change = delete_metadata_decomposed (field, object, 0, error);
 			if (!in_journal_replay && change && !tracker_property_get_transient (field)) {
 				if (tracker_property_get_data_type (field) == TRACKER_PROPERTY_TYPE_RESOURCE) {
@@ -2219,6 +2217,10 @@ tracker_data_insert_statement_with_uri (const gchar            *graph,
 		prop_id = tracker_property_get_id (property);
 	}
 
+	if (!tracker_property_get_transient (property)) {
+		has_persistent = TRUE;
+	}
+
 	/* subjects and objects starting with `:' are anonymous blank nodes */
 	if (g_str_has_prefix (object, ":")) {
 		/* anonymous blank node used as object in a statement */
@@ -2353,6 +2355,10 @@ tracker_data_insert_statement_with_string (const gchar            *graph,
 		pred_id = tracker_property_get_id (property);
 	}
 
+	if (!tracker_property_get_transient (property)) {
+		has_persistent = TRUE;
+	}
+
 	if (!tracker_data_insert_statement_common (graph, subject, predicate, object, &actual_error)) {
 		if (actual_error) {
 			g_propagate_error (error, actual_error);



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