[tracker/wip/carlosg/joining-services: 22/26] libtracker-data: Interpret bindings from a service table as strings



commit 1e51a9f0c44d09ec7536db149a0cc2d37be69004
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed May 13 10:47:44 2020 +0200

    libtracker-data: Interpret bindings from a service table as strings
    
    This is basically so we can handle resources being given to us as URIs
    instead of numeric IDs, as the services table does. This is a rough shot,
    as we can't infer from the query the actual types that a variable might
    hold, however all other types should cast properly from/to strings, so
    this shouldn't pose a problem.
    
    This makes other places in the query aware that the variable is bound as
    a "string" somewhere else in the query, and act accordingly.

 src/libtracker-data/tracker-sparql.c | 1 +
 1 file changed, 1 insertion(+)
---
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c
index e4fc610db..114b710cd 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -4679,6 +4679,7 @@ translate_ServiceGraphPattern (TrackerSparql  *sparql,
                var = _extract_node_variable (node, sparql);
                variables = g_list_prepend (variables, var);
                binding = tracker_variable_binding_new (var, NULL, NULL);
+               tracker_binding_set_data_type (binding, TRACKER_PROPERTY_TYPE_STRING);
                _add_binding (sparql, binding);
 
                _append_string_printf (sparql, "col%d AS %s ",


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