[tracker/tracker-store] tracker-indexer: Use TrackerSparqlBuilder in TrackerModuleMetadata



commit f0e845d46b0693ac7fa213470b8e3cd03919dc41
Author: Jürg Billeter <j bitron ch>
Date:   Fri May 29 15:51:53 2009 +0200

    tracker-indexer: Use TrackerSparqlBuilder in TrackerModuleMetadata
---
 src/libtracker/tracker.c                      |    1 -
 src/tracker-indexer/tracker-module-metadata.c |   74 ++++--------------------
 2 files changed, 13 insertions(+), 62 deletions(-)

diff --git a/src/libtracker/tracker.c b/src/libtracker/tracker.c
index 82931b9..88de01e 100644
--- a/src/libtracker/tracker.c
+++ b/src/libtracker/tracker.c
@@ -136,7 +136,6 @@ tracker_void_reply (DBusGProxy *proxy, GError *error, gpointer user_data)
 }
 
 
-/* copied from tracker-module-metadata.c */
 gchar *
 tracker_sparql_escape (const gchar *str)
 {
diff --git a/src/tracker-indexer/tracker-module-metadata.c b/src/tracker-indexer/tracker-module-metadata.c
index dfbe536..deffca7 100644
--- a/src/tracker-indexer/tracker-module-metadata.c
+++ b/src/tracker-indexer/tracker-module-metadata.c
@@ -22,6 +22,7 @@
 #include <glib.h>
 #include <string.h>
 #include <time.h>
+#include <libtracker-common/tracker-sparql-builder.h>
 #include <libtracker-common/tracker-type-utils.h>
 #include "tracker-module-metadata-private.h"
 
@@ -308,65 +309,15 @@ tracker_module_metadata_foreach (TrackerModuleMetadata        *metadata,
 	}
 }
 
-static gchar *
-sparql_escape (const gchar *str)
-{
-	gchar       *escaped_string;
-	const gchar *p;
-	gchar       *q;
-
-	escaped_string = g_malloc (2 * strlen (str) + 1);
-
-	p = str;
-	q = escaped_string;
-	while (*p != '\0') {
-		switch (*p) {
-		case '\t':
-			*q++ = '\\';
-			*q++ = 't';
-			break;
-		case '\n':
-			*q++ = '\\';
-			*q++ = 'n';
-			break;
-		case '\r':
-			*q++ = '\\';
-			*q++ = 'r';
-			break;
-		case '\b':
-			*q++ = '\\';
-			*q++ = 'b';
-			break;
-		case '\f':
-			*q++ = '\\';
-			*q++ = 'f';
-			break;
-		case '"':
-			*q++ = '\\';
-			*q++ = '"';
-			break;
-		case '\\':
-			*q++ = '\\';
-			*q++ = '\\';
-			break;
-		default:
-			*q++ = *p;
-			break;
-		}
-		p++;
-	}
-	*q = '\0';
-
-	return escaped_string;
-}
-
 gchar *
 tracker_module_metadata_get_sparql (TrackerModuleMetadata        *metadata)
 {
-	GString *sparql;
+	TrackerSparqlBuilder *sparql;
 	gint     i;
+	gchar *result;
 
-	sparql = g_string_new ("INSERT {");
+	sparql = tracker_sparql_builder_new_update ();
+	tracker_sparql_builder_insert_open (sparql);
 
 	for (i = 0; i < metadata->statements->len; i++) {
 		Statement *stmt;
@@ -374,17 +325,18 @@ tracker_module_metadata_get_sparql (TrackerModuleMetadata        *metadata)
 
 		stmt = &g_array_index (metadata->statements, Statement, i);
 
-		object = sparql_escape (stmt->object);
+		tracker_sparql_builder_subject_iri (sparql, stmt->subject);
+		tracker_sparql_builder_predicate_iri (sparql, stmt->predicate);
+		tracker_sparql_builder_object_string (sparql, stmt->object);
+	}
 
-		g_string_append_printf (sparql, " <%s> <%s> \"%s\" .",
-		                        stmt->subject, stmt->predicate, object);
+	tracker_sparql_builder_insert_close (sparql);
 
-		g_free (object);
-	}
+	result = g_strdup (tracker_sparql_builder_get_result (sparql));
 
-	g_string_append (sparql, " }");
+	g_object_unref (sparql);
 
-	return g_string_free (sparql, FALSE);
+	return result;
 }
 
 /**



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