[tracker] Add tracker:modified property



commit 631a609f3f8440f3993f917198e3660d7ba11713
Author: Jürg Billeter <j bitron ch>
Date:   Tue May 19 17:00:42 2009 +0200

    Add tracker:modified property
    
    This property gets implicitly updated when statements about the resource
    are inserted or deleted. It can be used for synchronization purposes.
---
 data/ontologies/11-rdf.ontology            |    7 +++++++
 src/libtracker-data/tracker-data-manager.c |    4 ++--
 src/libtracker-data/tracker-data-update.c  |    6 +++---
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/data/ontologies/11-rdf.ontology b/data/ontologies/11-rdf.ontology
index f67957d..28c7589 100644
--- a/data/ontologies/11-rdf.ontology
+++ b/data/ontologies/11-rdf.ontology
@@ -84,3 +84,10 @@ tracker:transient a rdf:Property ;
 	nrl:maxCardinality 1 ;
 	rdfs:domain rdf:Property ;
 	rdfs:range xsd:boolean .
+
+# implicitly updated modification time
+tracker:modified a rdf:Property ;
+	nrl:maxCardinality 1 ;
+	rdfs:domain rdfs:Resource ;
+	rdfs:range xsd:dateTime .
+
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 16f7ef0..7e5fef6 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -636,7 +636,7 @@ create_decomposed_metadata_tables (TrackerDBInterface *iface,
 	sql = g_string_new ("");
 	g_string_append_printf (sql, "CREATE TABLE \"%s\" (ID INTEGER NOT NULL PRIMARY KEY", service_name);
 	if (main_class) {
-		g_string_append (sql, ", Uri TEXT NOT NULL, Modified INTEGER NOT NULL, Available INTEGER NOT NULL");
+		g_string_append (sql, ", Uri TEXT NOT NULL, Available INTEGER NOT NULL");
 	}
 
 	properties = tracker_ontology_get_properties ();
@@ -696,7 +696,7 @@ create_decomposed_metadata_tables (TrackerDBInterface *iface,
 		TrackerDBStatement *stmt;
 
 		stmt = tracker_db_interface_create_statement (iface,
-							      "INSERT OR IGNORE INTO \"rdfs:Resource\" (ID, Uri, Modified) VALUES (?, ?, ?)");
+							      "INSERT OR IGNORE INTO \"rdfs:Resource\" (ID, Uri, \"tracker:modified\") VALUES (?, ?, ?)");
 		tracker_db_statement_bind_int (stmt, 0, ++(*max_id));
 		tracker_db_statement_bind_text (stmt, 1, tracker_class_get_uri (service));
 		tracker_db_statement_bind_int64 (stmt, 2, (gint64) time (NULL));
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index a970a23..5cbdc35 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -253,7 +253,7 @@ ensure_resource_id (const gchar *uri)
 		iface = tracker_db_manager_get_db_interface ();
 
 		id = tracker_data_update_get_new_service_id (common);
-		stmt = tracker_db_interface_create_statement (iface, "INSERT INTO \"rdfs:Resource\" (ID, Uri, Modified, Available) VALUES (?, ?, ?, 1)");
+		stmt = tracker_db_interface_create_statement (iface, "INSERT INTO \"rdfs:Resource\" (ID, Uri, \"tracker:modified\", Available) VALUES (?, ?, ?, 1)");
 		tracker_db_statement_bind_int (stmt, 0, id);
 		tracker_db_statement_bind_text (stmt, 1, uri);
 		tracker_db_statement_bind_int64 (stmt, 2, (gint64) time(NULL));
@@ -957,7 +957,7 @@ tracker_data_insert_statement (const gchar            *subject,
 		update_buffer.types = tracker_data_query_rdf_type (update_buffer.id);
 
 		g_value_set_int64 (&gvalue, (gint64) time (NULL));
-		cache_insert_value ("rdfs:Resource", "Modified", &gvalue, FALSE, FALSE);
+		cache_insert_value ("rdfs:Resource", "tracker:modified", &gvalue, FALSE, FALSE);
 	}
 
 	if (strcmp (predicate, RDF_PREFIX "type") == 0) {
@@ -1043,7 +1043,7 @@ tracker_data_update_replace_service (const gchar *uri,
 	iface = tracker_db_manager_get_db_interface ();
 
 	result_set = tracker_db_interface_execute_query (iface, &error,
-							 "SELECT ID, Modified < '%s' FROM \"rdfs:Resource\" "
+							 "SELECT ID, \"tracker:modified\" < '%s' FROM \"rdfs:Resource\" "
 							 "WHERE Uri = '%s'",
 							 modified,
 							 escaped_uri);



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