[tracker] TrackerMinerFS: Delete recursively when a directory is deleted.
- From: Carlos Garnacho <carlosg src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] TrackerMinerFS: Delete recursively when a directory is deleted.
- Date: Tue, 6 Oct 2009 15:40:27 +0000 (UTC)
commit 90ba37b835e816b2b1ce23a344d60cbab7e7a860
Author: Carlos Garnacho <carlos lanedo com>
Date: Tue Oct 6 14:02:18 2009 +0200
TrackerMinerFS: Delete recursively when a directory is deleted.
src/libtracker-miner/tracker-miner-fs.c | 31 +++++++++++++++++++++++++------
1 files changed, 25 insertions(+), 6 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner-fs.c b/src/libtracker-miner/tracker-miner-fs.c
index aee7db4..5731425 100644
--- a/src/libtracker-miner/tracker-miner-fs.c
+++ b/src/libtracker-miner/tracker-miner-fs.c
@@ -761,7 +761,8 @@ static void
item_remove (TrackerMinerFS *fs,
GFile *file)
{
- gchar *sparql, *uri;
+ GString *sparql;
+ gchar *uri, *slash_uri;
uri = g_file_get_uri (file);
@@ -773,12 +774,30 @@ item_remove (TrackerMinerFS *fs,
return;
}
- /* Delete resource */
- sparql = g_strdup_printf ("DELETE { <%s> a rdfs:Resource }", uri);
- tracker_miner_execute_batch_update (TRACKER_MINER (fs), sparql, NULL);
- g_free (sparql);
+ if (!g_str_has_suffix (uri, "/")) {
+ slash_uri = g_strconcat (uri, "/", NULL);
+ } else {
+ slash_uri = g_strdup (uri);
+ }
+
+ sparql = g_string_new ("");
+
+ /* Delete all children */
+ g_string_append_printf (sparql,
+ "DELETE { ?u a rdfs:Resource } "
+ "WHERE { ?u nfo:belongsToContainer ?p . FILTER (fn:starts-with (?p, \"%s\")) } ",
+ slash_uri);
- /* FIXME: Should delete recursively? */
+ /* Delete resource itself */
+ g_string_append_printf (sparql,
+ "DELETE { <%s> a rdfs:Resource }",
+ uri);
+
+ tracker_miner_execute_batch_update (TRACKER_MINER (fs), sparql->str, NULL);
+
+ g_string_free (sparql, TRUE);
+ g_free (slash_uri);
+ g_free (uri);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]