[tracker/tracker-store: 4/11] SPARQL: Initial support for DROP GRAPH queries



commit 36623e1ce996db26f9ce64a9cabb14bbf0dc7e3c
Author: Jürg Billeter <j bitron ch>
Date:   Wed Apr 29 11:17:24 2009 +0200

    SPARQL: Initial support for DROP GRAPH queries
    
    There is currently no real named graph support. DROP GRAPH is handled
    by deleting the resource description (embedded metadata) but retaining
    user annotations.
---
 src/libtracker-data/libtracker-data.vapi      |    1 +
 src/libtracker-data/tracker-sparql-query.vala |    2 ++
 2 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/libtracker-data/libtracker-data.vapi b/src/libtracker-data/libtracker-data.vapi
index 629fdd4..5833400 100644
--- a/src/libtracker-data/libtracker-data.vapi
+++ b/src/libtracker-data/libtracker-data.vapi
@@ -25,6 +25,7 @@ namespace Tracker {
 		public void commit_transaction ();
 		public void delete_statement (string subject, string predicate, string object);
 		public void insert_statement (string subject, string predicate, string object);
+		public void delete_resource_description (string uri);
 	}
 }
 
diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
index 44407cf..0745c23 100644
--- a/src/libtracker-data/tracker-sparql-query.vala
+++ b/src/libtracker-data/tracker-sparql-query.vala
@@ -352,6 +352,8 @@ public class Tracker.SparqlQuery : Object {
 					execute_insert (operation);
 				} else if (operation.get_verb () == Rasqal.QueryVerb.DELETE) {
 					execute_delete (operation);
+				} else if (operation.get_verb () == Rasqal.QueryVerb.DROP) {
+					Data.delete_resource_description (operation.get_data_graph (0).name_uri.as_string ());
 				} else {
 					Data.commit_transaction ();
 					throw new SparqlError.PARSE ("SELECT, CONSTRUCT, DESCRIBE, and ASK are not supported in update mode");



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