[tracker] Fixes NB#157277, Not able to search for files based on a particular tag



commit 1a6a7813b375efe97625f9a7f45073ae5770eee7
Author: Martyn Russell <martyn lanedo com>
Date:   Thu Feb 18 12:26:08 2010 +0000

    Fixes NB#157277, Not able to search for files based on a particular tag
    
    Don't use regex matching for searching by tag name, use exact matching

 src/tracker-utils/tracker-tag.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/src/tracker-utils/tracker-tag.c b/src/tracker-utils/tracker-tag.c
index 8c177fa..eb8162d 100644
--- a/src/tracker-utils/tracker-tag.c
+++ b/src/tracker-utils/tracker-tag.c
@@ -148,7 +148,8 @@ get_escaped_sparql_string (const gchar *str)
 static gchar *
 get_fts_string (GStrv    search_words,
                 gboolean use_or_operator,
-                gboolean for_regex)
+                gboolean for_regex,
+                gboolean use_asterisk)
 {
 	GString *fts;
 	gint i, len;
@@ -162,7 +163,10 @@ get_fts_string (GStrv    search_words,
 
 	for (i = 0; i < len; i++) {
 		g_string_append (fts, search_words[i]);
-		g_string_append_c (fts, '*');
+
+                if (use_asterisk) {
+                        g_string_append_c (fts, '*');
+                }
 
 		if (i < len - 1) {
 			if (for_regex) {
@@ -313,7 +317,7 @@ get_all_tags (TrackerClient *client,
 	gchar *fts;
 	gchar *query;
 
-	fts = get_fts_string (files, use_or_operator, TRUE);
+	fts = get_fts_string (files, use_or_operator, TRUE, FALSE);
 
 	if (fts) {
 		query = g_strdup_printf ("SELECT ?tag ?label COUNT(?urns) AS urns "
@@ -323,7 +327,7 @@ get_all_tags (TrackerClient *client,
 		                         "  OPTIONAL {"
 		                         "     ?urns nao:hasTag ?tag"
 		                         "  } ."
-		                         "  FILTER regex (?label, \"%s\")"
+		                         "  FILTER (?label = \"%s\")"
 		                         "} "
 		                         "GROUP BY ?tag "
 		                         "ORDER BY ASC(?label) "



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