[tracker/wip/carlosg/sparql1.1: 180/201] libtracker-data: Discard unnamed graph a graph is requested



commit dafc434d182a541f74e9b8f58dac25e19f4b5570
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sun Jul 28 20:34:21 2019 +0200

    libtracker-data: Discard unnamed graph a graph is requested
    
    GraphGraphPattern mandates that the matched graph is not the unnamed
    one, skip over it if no named graphs are specified.

 src/libtracker-data/tracker-sparql.c | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c
index d17a904cd..26e852969 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -1839,11 +1839,14 @@ _end_triples_block (TrackerSparql  *sparql,
                                _append_graph_checks (sparql, "graph",
                                                      (GStrv) sparql->anon_graphs->pdata,
                                                      sparql->anon_graphs->len);
-                       } else if (sparql->named_graphs->len > 0 &&
-                                  tracker_token_get_variable (&sparql->current_state.graph)) {
-                               _append_graph_checks (sparql, "graph",
-                                                     (GStrv) sparql->named_graphs->pdata,
-                                                     sparql->named_graphs->len);
+                       } else if (tracker_token_get_variable (&sparql->current_state.graph)) {
+                               if (sparql->named_graphs->len > 0) {
+                                       _append_graph_checks (sparql, "graph",
+                                                             (GStrv) sparql->named_graphs->pdata,
+                                                             sparql->named_graphs->len);
+                               } else {
+                                       _append_string (sparql, "WHERE \"graph\" != 0 ");
+                               }
                        }
 
                        _append_string (sparql, ") ");
@@ -1868,11 +1871,14 @@ _end_triples_block (TrackerSparql  *sparql,
                                        _append_graph_checks (sparql, "graph",
                                                              (GStrv) sparql->anon_graphs->pdata,
                                                              sparql->anon_graphs->len);
-                               } else if (sparql->named_graphs->len > 0 &&
-                                          tracker_token_get_variable (&sparql->current_state.graph)) {
-                                       _append_graph_checks (sparql, "graph",
-                                                             (GStrv) sparql->named_graphs->pdata,
-                                                             sparql->named_graphs->len);
+                               } else if (tracker_token_get_variable (&sparql->current_state.graph)) {
+                                       if (sparql->named_graphs->len > 0) {
+                                               _append_graph_checks (sparql, "graph",
+                                                                     (GStrv) sparql->named_graphs->pdata,
+                                                                     sparql->named_graphs->len);
+                                       } else {
+                                               _append_string (sparql, "WHERE \"graph\" != 0 ");
+                                       }
                                }
 
                                _append_string (sparql, ") ");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]