diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2018-11-13 23:26:04 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-11-13 23:33:01 +0100 |
commit | 4755e78cec764a395dced9f8ee3188dbc725758b (patch) | |
tree | 7d366af358b5a8b7a55bee5e93bd974efaf6dbf0 | |
parent | 2a2796ac0ef904670504e47d8dc413c4687e7368 (diff) | |
download | tracker-4755e78cec764a395dced9f8ee3188dbc725758b.tar.gz |
libtracker-data: Also set up blank node map on InsertDatawip/carlosg/issue-56
The blank node map must be set up there, both for the URN storage
aspect and the GVariant generation one.
Closes: https://gitlab.gnome.org/GNOME/tracker/issues/56
-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; } |