[tracker/wip/carlosg/fixes-for-dataobject-split: 6/8] libtracker-data: Handle property path subqueries on unknown graphs
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/fixes-for-dataobject-split: 6/8] libtracker-data: Handle property path subqueries on unknown graphs
- Date: Thu, 23 Apr 2020 20:57:09 +0000 (UTC)
commit 123cbe34e510671c88529cabe6f7c9cad05e5c7b
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu Apr 23 12:28:36 2020 +0200
libtracker-data: Handle property path subqueries on unknown graphs
That should be equivalent to poking an empty graph, but we instead
trust the table exists and make the query fail.
src/libtracker-data/tracker-sparql.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c
index 2e4808ef9..83d8aa19a 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -743,10 +743,17 @@ _prepend_path_element (TrackerSparql *sparql,
const gchar *graph;
graph = tracker_token_get_idstring (&sparql->current_state.graph);
- table_name = g_strdup_printf ("\"%s\".\"%s\"", graph,
- tracker_property_get_table_name
(path_elem->data.property));
- graph_column = g_strdup_printf ("%d",
- tracker_data_manager_find_graph
(sparql->data_manager, graph));
+
+ if (tracker_data_manager_find_graph (sparql->data_manager, graph)) {
+ table_name = g_strdup_printf ("\"%s\".\"%s\"", graph,
+ tracker_property_get_table_name
(path_elem->data.property));
+ graph_column = g_strdup_printf ("%d",
+ tracker_data_manager_find_graph
(sparql->data_manager, graph));
+ } else {
+ /* Graph does not exist, ensure to come back empty */
+ table_name = g_strdup ("(SELECT 0 AS ID, NULL, NULL, 0, 0 LIMIT 0)");
+ graph_column = g_strdup ("0");
+ }
}
_append_string_printf (sparql,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]