[tracker/wip/carlosg/property-path-fixes: 3/4] libtracker-data: Fix '?' property path on edge cases
- From: Carlos Garnacho <carlosg src gnome org>
 
- To: commits-list gnome org
 
- Cc: 
 
- Subject: [tracker/wip/carlosg/property-path-fixes: 3/4] libtracker-data: Fix '?' property path on edge cases
 
- Date: Mon, 18 May 2020 19:36:47 +0000 (UTC)
 
commit c631637827f374fe0644fce14b34bbbaac35ffa5
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sun May 17 15:39:35 2020 +0200
    libtracker-data: Fix '?' property path on edge cases
    
    The query fails for resources that don't define the property, eg:
    
    SELECT ?u {
      <file:///home/carlos> (nfo:belongsToContainer/nie:isStoredAs)? ?u
    }
    
    would come up empty because the home folder does not have any
    nfo:belongsToContainer property. In this case we still expect to
    return the element itself.
    
    Ensure such element is included for these edge cases.
 src/libtracker-data/tracker-sparql.c | 4 ++++
 1 file changed, 4 insertions(+)
---
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c
index 78b0f4499..d355c7035 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -847,9 +847,13 @@ _prepend_path_element (TrackerSparql      *sparql,
                                       "FROM \"%s\" "
                                       "UNION "
                                       "SELECT ID, value, graph, ID_type, value_type "
+                                      "FROM \"%s\" "
+                                      "UNION "
+                                      "SELECT value, value, graph, value_type, value_type "
                                       "FROM \"%s\") ",
                                       path_elem->name,
                                       path_elem->data.composite.child1->name,
+                                      path_elem->data.composite.child1->name,
                                       path_elem->data.composite.child1->name);
                break;
        case TRACKER_PATH_OPERATOR_NEGATED:
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]