summaryrefslogtreecommitdiff
path: root/src/libtracker-data/tracker-data-update.c
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2011-11-10 14:56:28 +0100
committerJürg Billeter <j@bitron.ch>2011-11-10 14:56:28 +0100
commitc594aa518530dd316a4721d8886ca7ae119b5c35 (patch)
treef78a1dc45a0c46d7dbc2ac5a0d044a84acd260d5 /src/libtracker-data/tracker-data-update.c
parent16fe51de1e93016a122ab089b0e0201c18de7ebc (diff)
downloadtracker-c594aa518530dd316a4721d8886ca7ae119b5c35.tar.gz
libtracker-data: Do not implicitly replace values when using blank nodes
Fixes NB#290249.
Diffstat (limited to 'src/libtracker-data/tracker-data-update.c')
-rw-r--r--src/libtracker-data/tracker-data-update.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index 5cfef9db7..c7b478f14 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -2577,6 +2577,7 @@ handle_blank_node (const gchar *subject,
const gchar *predicate,
const gchar *object,
const gchar *graph,
+ gboolean update,
GError **error)
{
GError *actual_error = NULL;
@@ -2599,7 +2600,11 @@ handle_blank_node (const gchar *subject,
if (blank_uri != NULL) {
/* now insert statement referring to blank node */
- tracker_data_update_statement (graph, subject, predicate, blank_uri, &actual_error);
+ if (update) {
+ tracker_data_update_statement (graph, subject, predicate, blank_uri, &actual_error);
+ } else {
+ tracker_data_insert_statement (graph, subject, predicate, blank_uri, &actual_error);
+ }
g_hash_table_remove (blank_buffer.table, object);
@@ -2655,7 +2660,7 @@ tracker_data_insert_statement_with_uri (const gchar *graph,
/* subjects and objects starting with `:' are anonymous blank nodes */
if (g_str_has_prefix (object, ":")) {
- if (handle_blank_node (subject, predicate, object, graph, &actual_error)) {
+ if (handle_blank_node (subject, predicate, object, graph, FALSE, &actual_error)) {
return;
}
@@ -2873,7 +2878,7 @@ tracker_data_update_statement_with_uri (const gchar *graph,
/* subjects and objects starting with `:' are anonymous blank nodes */
if (g_str_has_prefix (object, ":")) {
- if (handle_blank_node (subject, predicate, object, graph, &actual_error)) {
+ if (handle_blank_node (subject, predicate, object, graph, TRUE, &actual_error)) {
return;
}