[tracker/tracker-store] tracker-indexer: Use TrackerSparqlBuilder in TrackerModuleMetadata
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Subject: [tracker/tracker-store] tracker-indexer: Use TrackerSparqlBuilder in TrackerModuleMetadata
- Date: Fri, 29 May 2009 09:54:15 -0400 (EDT)
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]