diff options
Diffstat (limited to 'src/libtracker-data/tracker-sparql.c')
-rw-r--r-- | src/libtracker-data/tracker-sparql.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c index 3f1ead05f..a45eb4a17 100644 --- a/src/libtracker-data/tracker-sparql.c +++ b/src/libtracker-data/tracker-sparql.c @@ -2609,9 +2609,23 @@ translate_InsertData (TrackerSparql *sparql, _expect (sparql, RULE_TYPE_LITERAL, LITERAL_INSERT); _expect (sparql, RULE_TYPE_LITERAL, LITERAL_DATA); + if (sparql->blank_nodes) { + g_variant_builder_open (sparql->blank_nodes, G_VARIANT_TYPE ("a{ss}")); + } + + sparql->current_state.blank_node_map = + g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); + sparql->current_state.type = TRACKER_SPARQL_TYPE_INSERT; _call_rule (sparql, NAMED_RULE_QuadData, error); + if (sparql->blank_nodes) { + g_variant_builder_close (sparql->blank_nodes); + } + + g_clear_pointer (&sparql->current_state.blank_node_map, + g_hash_table_unref); + return TRUE; } |