[tracker/wip/carlosg/fixes-for-music: 2/2] libtracker-data: Ensure conversion to string in topmost SELECT



commit ac5ba653c02d2edc6cb31809ce21ce8779cba6ea
Author: Carlos Garnacho <carlosg gnome org>
Date:   Thu Nov 15 12:54:19 2018 +0100

    libtracker-data: Ensure conversion to string in topmost SELECT
    
    We were missing it in the "SELECT ?a AS ?b ..." case, breaking
    those types that require a conversion to string when exposed
    through a cursor (resource, and presumably date/datetime).

 src/libtracker-data/tracker-sparql.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
---
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c
index 4f3c39b1a..12e321a23 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -1894,13 +1894,15 @@ translate_SelectClause (TrackerSparql  *sparql,
                                _append_string_printf (sparql, "%s ",
                                                       tracker_variable_get_sql_expression (var));
 
+                               if (sparql->current_state.select_context == sparql->context)
+                                       convert_expression_to_string (sparql, binding->data_type);
+
                                select_context->type = binding->data_type;
 
                                if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_AS)) {
                                        if (!handle_as (sparql, binding->data_type, error))
                                                return FALSE;
                                } else if (sparql->current_state.select_context == sparql->context) {
-                                       convert_expression_to_string (sparql, binding->data_type);
                                        tracker_sparql_add_select_var (sparql, var->name, binding->data_type);
                                }
 


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