tracker-0.16.2/src/libtracker-data/tracker-sparql-expression.c

Location Tool Test ID Function Issue
tracker-sparql-expression.c:1387:2 clang-analyzer Value stored to 'type' is never read
tracker-sparql-expression.c:2054:9 gcc unused-but-set-variable tracker_sparql_expression_translate_select_expression variable '_tmp99__length1' set but not used
tracker-sparql-expression.c:2069:4 clang-analyzer Value stored to '_tmp99_' is never read
tracker-sparql-expression.c:2071:4 clang-analyzer Value stored to '_tmp99__length1' is never read
tracker-sparql-expression.c:2123:4 clang-analyzer Value stored to '_tmp113_' is never read
tracker-sparql-expression.c:2125:4 clang-analyzer Value stored to '_tmp113__length1' is never read
tracker-sparql-expression.c:2242:3 clang-analyzer Value stored to '_tmp136_' is never read
tracker-sparql-expression.c:2244:3 clang-analyzer Value stored to '_tmp136__length1' is never read
tracker-sparql-expression.c:2274:3 clang-analyzer Value stored to '_tmp145_' is never read
tracker-sparql-expression.c:2276:3 clang-analyzer Value stored to '_tmp145__length1' is never read
tracker-sparql-expression.c:3325:13 gcc unused-but-set-variable tracker_sparql_expression_translate_expression_as_string variable 'is_var' set but not used
tracker-sparql-expression.c:3345:4 clang-analyzer Value stored to 'is_var' is never read
tracker-sparql-expression.c:6299:31 gcc unused-but-set-variable tracker_sparql_expression_translate_function variable 'is_var' set but not used
tracker-sparql-expression.c:6314:22 clang-analyzer Value stored to 'is_var' is never read
tracker-sparql-expression.c:6380:23 clang-analyzer Value stored to 'is_var' is never read
tracker-sparql-expression.c:6483:24 clang-analyzer Value stored to 'is_var' is never read
tracker-sparql-expression.c:15203:28 gcc unused-but-set-variable _vala_tracker_sparql_expression_get_property variable 'self' set but not used
tracker-sparql-expression.c:15206:2 clang-analyzer Value stored to 'self' is never read
    1 /* tracker-sparql-expression.c generated by valac 0.18.1, the Vala compiler
    2  * generated from tracker-sparql-expression.vala, do not modify */
    3 
    4 /*
    5  * Copyright (C) 2008-2010, Nokia
    6  *
    7  * This library is free software; you can redistribute it and/or
    8  * modify it under the terms of the GNU Lesser General Public
    9  * License as published by the Free Software Foundation; either
   10  * version 2.1 of the License, or (at your option) any later version.
   11  *
   12  * This library is distributed in the hope that it will be useful,
   13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
   14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   15  * Lesser General Public License for more details.
   16  *
   17  * You should have received a copy of the GNU Lesser General Public
   18  * License along with this library; if not, write to the
   19  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
   20  * Boston, MA  02110-1301, USA.
   21  */
   22 
   23 #include <glib.h>
   24 #include <glib-object.h>
   25 #include <stdlib.h>
   26 #include <string.h>
   27 #include "libtracker-sparql/tracker-sparql.h"
   28 #include "libtracker-data/tracker-property.h"
   29 #include "libtracker-data/tracker-db-interface-sqlite.h"
   30 #include "libtracker-data/tracker-class.h"
   31 #include "libtracker-data/tracker-collation.h"
   32 #include "libtracker-data/tracker-ontologies.h"
   33 
   34 
   35 #define TRACKER_SPARQL_TYPE_EXPRESSION (tracker_sparql_expression_get_type ())
   36 #define TRACKER_SPARQL_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_EXPRESSION, TrackerSparqlExpression))
   37 #define TRACKER_SPARQL_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_EXPRESSION, TrackerSparqlExpressionClass))
   38 #define TRACKER_SPARQL_IS_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_EXPRESSION))
   39 #define TRACKER_SPARQL_IS_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_EXPRESSION))
   40 #define TRACKER_SPARQL_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_EXPRESSION, TrackerSparqlExpressionClass))
   41 
   42 typedef struct _TrackerSparqlExpression TrackerSparqlExpression;
   43 typedef struct _TrackerSparqlExpressionClass TrackerSparqlExpressionClass;
   44 typedef struct _TrackerSparqlExpressionPrivate TrackerSparqlExpressionPrivate;
   45 
   46 #define TRACKER_SPARQL_TYPE_QUERY (tracker_sparql_query_get_type ())
   47 #define TRACKER_SPARQL_QUERY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_QUERY, TrackerSparqlQuery))
   48 #define TRACKER_SPARQL_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_QUERY, TrackerSparqlQueryClass))
   49 #define TRACKER_SPARQL_IS_QUERY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_QUERY))
   50 #define TRACKER_SPARQL_IS_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_QUERY))
   51 #define TRACKER_SPARQL_QUERY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_QUERY, TrackerSparqlQueryClass))
   52 
   53 typedef struct _TrackerSparqlQuery TrackerSparqlQuery;
   54 typedef struct _TrackerSparqlQueryClass TrackerSparqlQueryClass;
   55 #define _g_free0(var) (var = (g_free (var), NULL))
   56 
   57 #define TRACKER_TYPE_SPARQL_TOKEN_TYPE (tracker_sparql_token_type_get_type ())
   58 
   59 #define TRACKER_SPARQL_TYPE_VARIABLE (tracker_sparql_variable_get_type ())
   60 #define TRACKER_SPARQL_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_VARIABLE, TrackerSparqlVariable))
   61 #define TRACKER_SPARQL_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_VARIABLE, TrackerSparqlVariableClass))
   62 #define TRACKER_SPARQL_IS_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_VARIABLE))
   63 #define TRACKER_SPARQL_IS_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_VARIABLE))
   64 #define TRACKER_SPARQL_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_VARIABLE, TrackerSparqlVariableClass))
   65 
   66 typedef struct _TrackerSparqlVariable TrackerSparqlVariable;
   67 typedef struct _TrackerSparqlVariableClass TrackerSparqlVariableClass;
   68 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
   69 
   70 #define TRACKER_SPARQL_TYPE_CONTEXT (tracker_sparql_context_get_type ())
   71 #define TRACKER_SPARQL_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_CONTEXT, TrackerSparqlContext))
   72 #define TRACKER_SPARQL_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_CONTEXT, TrackerSparqlContextClass))
   73 #define TRACKER_SPARQL_IS_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_CONTEXT))
   74 #define TRACKER_SPARQL_IS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_CONTEXT))
   75 #define TRACKER_SPARQL_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_CONTEXT, TrackerSparqlContextClass))
   76 
   77 typedef struct _TrackerSparqlContext TrackerSparqlContext;
   78 typedef struct _TrackerSparqlContextClass TrackerSparqlContextClass;
   79 typedef struct _TrackerSparqlVariablePrivate TrackerSparqlVariablePrivate;
   80 
   81 #define TRACKER_SPARQL_TYPE_DATA_BINDING (tracker_sparql_data_binding_get_type ())
   82 #define TRACKER_SPARQL_DATA_BINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_DATA_BINDING, TrackerSparqlDataBinding))
   83 #define TRACKER_SPARQL_DATA_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_DATA_BINDING, TrackerSparqlDataBindingClass))
   84 #define TRACKER_SPARQL_IS_DATA_BINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_DATA_BINDING))
   85 #define TRACKER_SPARQL_IS_DATA_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_DATA_BINDING))
   86 #define TRACKER_SPARQL_DATA_BINDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_DATA_BINDING, TrackerSparqlDataBindingClass))
   87 
   88 typedef struct _TrackerSparqlDataBinding TrackerSparqlDataBinding;
   89 typedef struct _TrackerSparqlDataBindingClass TrackerSparqlDataBindingClass;
   90 
   91 #define TRACKER_SPARQL_TYPE_VARIABLE_BINDING (tracker_sparql_variable_binding_get_type ())
   92 #define TRACKER_SPARQL_VARIABLE_BINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_VARIABLE_BINDING, TrackerSparqlVariableBinding))
   93 #define TRACKER_SPARQL_VARIABLE_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_VARIABLE_BINDING, TrackerSparqlVariableBindingClass))
   94 #define TRACKER_SPARQL_IS_VARIABLE_BINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_VARIABLE_BINDING))
   95 #define TRACKER_SPARQL_IS_VARIABLE_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_VARIABLE_BINDING))
   96 #define TRACKER_SPARQL_VARIABLE_BINDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_VARIABLE_BINDING, TrackerSparqlVariableBindingClass))
   97 
   98 typedef struct _TrackerSparqlVariableBinding TrackerSparqlVariableBinding;
   99 typedef struct _TrackerSparqlVariableBindingClass TrackerSparqlVariableBindingClass;
  100 
  101 #define TRACKER_SPARQL_TYPE_PATTERN (tracker_sparql_pattern_get_type ())
  102 #define TRACKER_SPARQL_PATTERN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_PATTERN, TrackerSparqlPattern))
  103 #define TRACKER_SPARQL_PATTERN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_PATTERN, TrackerSparqlPatternClass))
  104 #define TRACKER_SPARQL_IS_PATTERN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_PATTERN))
  105 #define TRACKER_SPARQL_IS_PATTERN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_PATTERN))
  106 #define TRACKER_SPARQL_PATTERN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_PATTERN, TrackerSparqlPatternClass))
  107 
  108 typedef struct _TrackerSparqlPattern TrackerSparqlPattern;
  109 typedef struct _TrackerSparqlPatternClass TrackerSparqlPatternClass;
  110 
  111 #define TRACKER_SPARQL_TYPE_SELECT_CONTEXT (tracker_sparql_select_context_get_type ())
  112 #define TRACKER_SPARQL_SELECT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContext))
  113 #define TRACKER_SPARQL_SELECT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContextClass))
  114 #define TRACKER_SPARQL_IS_SELECT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_SELECT_CONTEXT))
  115 #define TRACKER_SPARQL_IS_SELECT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_SELECT_CONTEXT))
  116 #define TRACKER_SPARQL_SELECT_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContextClass))
  117 
  118 typedef struct _TrackerSparqlSelectContext TrackerSparqlSelectContext;
  119 typedef struct _TrackerSparqlSelectContextClass TrackerSparqlSelectContextClass;
  120 #define _tracker_sparql_context_unref0(var) ((var == NULL) ? NULL : (var = (tracker_sparql_context_unref (var), NULL)))
  121 typedef struct _TrackerSparqlContextPrivate TrackerSparqlContextPrivate;
  122 
  123 #define TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE (tracker_sparql_predicate_variable_get_type ())
  124 #define TRACKER_SPARQL_PREDICATE_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE, TrackerSparqlPredicateVariable))
  125 #define TRACKER_SPARQL_PREDICATE_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE, TrackerSparqlPredicateVariableClass))
  126 #define TRACKER_SPARQL_IS_PREDICATE_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE))
  127 #define TRACKER_SPARQL_IS_PREDICATE_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE))
  128 #define TRACKER_SPARQL_PREDICATE_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE, TrackerSparqlPredicateVariableClass))
  129 
  130 typedef struct _TrackerSparqlPredicateVariable TrackerSparqlPredicateVariable;
  131 typedef struct _TrackerSparqlPredicateVariableClass TrackerSparqlPredicateVariableClass;
  132 typedef struct _TrackerSparqlSelectContextPrivate TrackerSparqlSelectContextPrivate;
  133 typedef struct _TrackerSparqlDataBindingPrivate TrackerSparqlDataBindingPrivate;
  134 
  135 #define TRACKER_SPARQL_TYPE_DATA_TABLE (tracker_sparql_data_table_get_type ())
  136 #define TRACKER_SPARQL_DATA_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_DATA_TABLE, TrackerSparqlDataTable))
  137 #define TRACKER_SPARQL_DATA_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_DATA_TABLE, TrackerSparqlDataTableClass))
  138 #define TRACKER_SPARQL_IS_DATA_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_DATA_TABLE))
  139 #define TRACKER_SPARQL_IS_DATA_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_DATA_TABLE))
  140 #define TRACKER_SPARQL_DATA_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_DATA_TABLE, TrackerSparqlDataTableClass))
  141 
  142 typedef struct _TrackerSparqlDataTable TrackerSparqlDataTable;
  143 typedef struct _TrackerSparqlDataTableClass TrackerSparqlDataTableClass;
  144 typedef struct _TrackerSparqlVariableBindingPrivate TrackerSparqlVariableBindingPrivate;
  145 
  146 #define TRACKER_SPARQL_TYPE_VARIABLE_STATE (tracker_sparql_variable_state_get_type ())
  147 #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
  148 typedef struct _TrackerSparqlPatternPrivate TrackerSparqlPatternPrivate;
  149 
  150 #define TRACKER_SPARQL_TYPE_LITERAL_BINDING (tracker_sparql_literal_binding_get_type ())
  151 #define TRACKER_SPARQL_LITERAL_BINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_LITERAL_BINDING, TrackerSparqlLiteralBinding))
  152 #define TRACKER_SPARQL_LITERAL_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_LITERAL_BINDING, TrackerSparqlLiteralBindingClass))
  153 #define TRACKER_SPARQL_IS_LITERAL_BINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_LITERAL_BINDING))
  154 #define TRACKER_SPARQL_IS_LITERAL_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_LITERAL_BINDING))
  155 #define TRACKER_SPARQL_LITERAL_BINDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_LITERAL_BINDING, TrackerSparqlLiteralBindingClass))
  156 
  157 typedef struct _TrackerSparqlLiteralBinding TrackerSparqlLiteralBinding;
  158 typedef struct _TrackerSparqlLiteralBindingClass TrackerSparqlLiteralBindingClass;
  159 typedef struct _TrackerSparqlLiteralBindingPrivate TrackerSparqlLiteralBindingPrivate;
  160 typedef struct _TrackerSparqlQueryPrivate TrackerSparqlQueryPrivate;
  161 
  162 struct _TrackerSparqlExpression {
  163 	GObject parent_instance;
  164 	TrackerSparqlExpressionPrivate * priv;
  165 };
  166 
  167 struct _TrackerSparqlExpressionClass {
  168 	GObjectClass parent_class;
  169 };
  170 
  171 struct _TrackerSparqlExpressionPrivate {
  172 	TrackerSparqlQuery* query;
  173 	gchar* fts_sql;
  174 };
  175 
  176 typedef enum  {
  177 	TRACKER_SPARQL_TOKEN_TYPE_NONE,
  178 	TRACKER_SPARQL_TOKEN_TYPE_A,
  179 	TRACKER_SPARQL_TOKEN_TYPE_AS,
  180 	TRACKER_SPARQL_TOKEN_TYPE_ASC,
  181 	TRACKER_SPARQL_TOKEN_TYPE_ASK,
  182 	TRACKER_SPARQL_TOKEN_TYPE_ATBASE,
  183 	TRACKER_SPARQL_TOKEN_TYPE_ATPREFIX,
  184 	TRACKER_SPARQL_TOKEN_TYPE_AVG,
  185 	TRACKER_SPARQL_TOKEN_TYPE_BASE,
  186 	TRACKER_SPARQL_TOKEN_TYPE_BLANK_NODE,
  187 	TRACKER_SPARQL_TOKEN_TYPE_BOUND,
  188 	TRACKER_SPARQL_TOKEN_TYPE_BY,
  189 	TRACKER_SPARQL_TOKEN_TYPE_CLOSE_BRACE,
  190 	TRACKER_SPARQL_TOKEN_TYPE_CLOSE_BRACKET,
  191 	TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS,
  192 	TRACKER_SPARQL_TOKEN_TYPE_COALESCE,
  193 	TRACKER_SPARQL_TOKEN_TYPE_COLON,
  194 	TRACKER_SPARQL_TOKEN_TYPE_COMMA,
  195 	TRACKER_SPARQL_TOKEN_TYPE_CONSTRUCT,
  196 	TRACKER_SPARQL_TOKEN_TYPE_COUNT,
  197 	TRACKER_SPARQL_TOKEN_TYPE_DATA,
  198 	TRACKER_SPARQL_TOKEN_TYPE_DATATYPE,
  199 	TRACKER_SPARQL_TOKEN_TYPE_DECIMAL,
  200 	TRACKER_SPARQL_TOKEN_TYPE_DELETE,
  201 	TRACKER_SPARQL_TOKEN_TYPE_DESC,
  202 	TRACKER_SPARQL_TOKEN_TYPE_DESCRIBE,
  203 	TRACKER_SPARQL_TOKEN_TYPE_DISTINCT,
  204 	TRACKER_SPARQL_TOKEN_TYPE_DIV,
  205 	TRACKER_SPARQL_TOKEN_TYPE_DOT,
  206 	TRACKER_SPARQL_TOKEN_TYPE_DOUBLE,
  207 	TRACKER_SPARQL_TOKEN_TYPE_DOUBLE_CIRCUMFLEX,
  208 	TRACKER_SPARQL_TOKEN_TYPE_DROP,
  209 	TRACKER_SPARQL_TOKEN_TYPE_EOF,
  210 	TRACKER_SPARQL_TOKEN_TYPE_EXISTS,
  211 	TRACKER_SPARQL_TOKEN_TYPE_FALSE,
  212 	TRACKER_SPARQL_TOKEN_TYPE_FILTER,
  213 	TRACKER_SPARQL_TOKEN_TYPE_FROM,
  214 	TRACKER_SPARQL_TOKEN_TYPE_GRAPH,
  215 	TRACKER_SPARQL_TOKEN_TYPE_GROUP,
  216 	TRACKER_SPARQL_TOKEN_TYPE_GROUP_CONCAT,
  217 	TRACKER_SPARQL_TOKEN_TYPE_HAVING,
  218 	TRACKER_SPARQL_TOKEN_TYPE_IF,
  219 	TRACKER_SPARQL_TOKEN_TYPE_INSERT,
  220 	TRACKER_SPARQL_TOKEN_TYPE_INTEGER,
  221 	TRACKER_SPARQL_TOKEN_TYPE_INTO,
  222 	TRACKER_SPARQL_TOKEN_TYPE_IRI_REF,
  223 	TRACKER_SPARQL_TOKEN_TYPE_ISBLANK,
  224 	TRACKER_SPARQL_TOKEN_TYPE_ISIRI,
  225 	TRACKER_SPARQL_TOKEN_TYPE_ISLITERAL,
  226 	TRACKER_SPARQL_TOKEN_TYPE_ISURI,
  227 	TRACKER_SPARQL_TOKEN_TYPE_LANG,
  228 	TRACKER_SPARQL_TOKEN_TYPE_LANGMATCHES,
  229 	TRACKER_SPARQL_TOKEN_TYPE_LIMIT,
  230 	TRACKER_SPARQL_TOKEN_TYPE_MAX,
  231 	TRACKER_SPARQL_TOKEN_TYPE_MIN,
  232 	TRACKER_SPARQL_TOKEN_TYPE_MINUS,
  233 	TRACKER_SPARQL_TOKEN_TYPE_NAMED,
  234 	TRACKER_SPARQL_TOKEN_TYPE_NOT,
  235 	TRACKER_SPARQL_TOKEN_TYPE_NULL,
  236 	TRACKER_SPARQL_TOKEN_TYPE_OFFSET,
  237 	TRACKER_SPARQL_TOKEN_TYPE_OP_AND,
  238 	TRACKER_SPARQL_TOKEN_TYPE_OP_EQ,
  239 	TRACKER_SPARQL_TOKEN_TYPE_OP_GE,
  240 	TRACKER_SPARQL_TOKEN_TYPE_OP_GT,
  241 	TRACKER_SPARQL_TOKEN_TYPE_OP_LE,
  242 	TRACKER_SPARQL_TOKEN_TYPE_OP_LT,
  243 	TRACKER_SPARQL_TOKEN_TYPE_OP_NE,
  244 	TRACKER_SPARQL_TOKEN_TYPE_OP_NEG,
  245 	TRACKER_SPARQL_TOKEN_TYPE_OP_OR,
  246 	TRACKER_SPARQL_TOKEN_TYPE_OP_IN,
  247 	TRACKER_SPARQL_TOKEN_TYPE_OPEN_BRACE,
  248 	TRACKER_SPARQL_TOKEN_TYPE_OPEN_BRACKET,
  249 	TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS,
  250 	TRACKER_SPARQL_TOKEN_TYPE_OPTIONAL,
  251 	TRACKER_SPARQL_TOKEN_TYPE_OR,
  252 	TRACKER_SPARQL_TOKEN_TYPE_ORDER,
  253 	TRACKER_SPARQL_TOKEN_TYPE_PLUS,
  254 	TRACKER_SPARQL_TOKEN_TYPE_PN_PREFIX,
  255 	TRACKER_SPARQL_TOKEN_TYPE_PREFIX,
  256 	TRACKER_SPARQL_TOKEN_TYPE_REDUCED,
  257 	TRACKER_SPARQL_TOKEN_TYPE_REGEX,
  258 	TRACKER_SPARQL_TOKEN_TYPE_REPLACE,
  259 	TRACKER_SPARQL_TOKEN_TYPE_SAMETERM,
  260 	TRACKER_SPARQL_TOKEN_TYPE_SELECT,
  261 	TRACKER_SPARQL_TOKEN_TYPE_SEMICOLON,
  262 	TRACKER_SPARQL_TOKEN_TYPE_SILENT,
  263 	TRACKER_SPARQL_TOKEN_TYPE_STAR,
  264 	TRACKER_SPARQL_TOKEN_TYPE_STR,
  265 	TRACKER_SPARQL_TOKEN_TYPE_STRING_LITERAL1,
  266 	TRACKER_SPARQL_TOKEN_TYPE_STRING_LITERAL2,
  267 	TRACKER_SPARQL_TOKEN_TYPE_STRING_LITERAL_LONG1,
  268 	TRACKER_SPARQL_TOKEN_TYPE_STRING_LITERAL_LONG2,
  269 	TRACKER_SPARQL_TOKEN_TYPE_SUM,
  270 	TRACKER_SPARQL_TOKEN_TYPE_TRUE,
  271 	TRACKER_SPARQL_TOKEN_TYPE_UNION,
  272 	TRACKER_SPARQL_TOKEN_TYPE_VAR,
  273 	TRACKER_SPARQL_TOKEN_TYPE_WHERE,
  274 	TRACKER_SPARQL_TOKEN_TYPE_WITH
  275 } TrackerSparqlTokenType;
  276 
  277 struct _TrackerSparqlVariable {
  278 	GObject parent_instance;
  279 	TrackerSparqlVariablePrivate * priv;
  280 	TrackerSparqlVariableBinding* binding;
  281 };
  282 
  283 struct _TrackerSparqlVariableClass {
  284 	GObjectClass parent_class;
  285 };
  286 
  287 struct _TrackerSparqlContext {
  288 	GTypeInstance parent_instance;
  289 	volatile int ref_count;
  290 	TrackerSparqlContextPrivate * priv;
  291 	TrackerSparqlQuery* query;
  292 	TrackerSparqlContext* parent_context;
  293 	GHashTable* var_set;
  294 	GHashTable* var_map;
  295 	GHashTable* select_var_set;
  296 	GHashTable* predicate_variable_map;
  297 	gboolean scalar_subquery;
  298 };
  299 
  300 struct _TrackerSparqlContextClass {
  301 	GTypeClass parent_class;
  302 	void (*finalize) (TrackerSparqlContext *self);
  303 };
  304 
  305 struct _TrackerSparqlSelectContext {
  306 	TrackerSparqlContext parent_instance;
  307 	TrackerSparqlSelectContextPrivate * priv;
  308 	TrackerPropertyType type;
  309 	TrackerPropertyType* types;
  310 	gint types_length1;
  311 	gint _types_size_;
  312 	gchar** variable_names;
  313 	gint variable_names_length1;
  314 	gint _variable_names_size_;
  315 };
  316 
  317 struct _TrackerSparqlSelectContextClass {
  318 	TrackerSparqlContextClass parent_class;
  319 };
  320 
  321 struct _TrackerSparqlDataBinding {
  322 	GObject parent_instance;
  323 	TrackerSparqlDataBindingPrivate * priv;
  324 	TrackerPropertyType data_type;
  325 	TrackerSparqlDataTable* table;
  326 	gchar* sql_db_column_name;
  327 };
  328 
  329 struct _TrackerSparqlDataBindingClass {
  330 	GObjectClass parent_class;
  331 };
  332 
  333 struct _TrackerSparqlVariableBinding {
  334 	TrackerSparqlDataBinding parent_instance;
  335 	TrackerSparqlVariableBindingPrivate * priv;
  336 	TrackerSparqlVariable* variable;
  337 	gboolean maybe_null;
  338 	gboolean in_simple_optional;
  339 	TrackerClass* type;
  340 };
  341 
  342 struct _TrackerSparqlVariableBindingClass {
  343 	TrackerSparqlDataBindingClass parent_class;
  344 };
  345 
  346 typedef enum  {
  347 	TRACKER_SPARQL_VARIABLE_STATE_NONE,
  348 	TRACKER_SPARQL_VARIABLE_STATE_BOUND,
  349 	TRACKER_SPARQL_VARIABLE_STATE_OPTIONAL
  350 } TrackerSparqlVariableState;
  351 
  352 struct _TrackerSparqlPattern {
  353 	GObject parent_instance;
  354 	TrackerSparqlPatternPrivate * priv;
  355 	gchar* current_graph;
  356 	TrackerSparqlVariable* fts_subject;
  357 	gchar** fts_variables;
  358 	gint fts_variables_length1;
  359 	gint _fts_variables_size_;
  360 	GString* match_str;
  361 	gboolean queries_fts_data;
  362 };
  363 
  364 struct _TrackerSparqlPatternClass {
  365 	GObjectClass parent_class;
  366 };
  367 
  368 struct _TrackerSparqlLiteralBinding {
  369 	TrackerSparqlDataBinding parent_instance;
  370 	TrackerSparqlLiteralBindingPrivate * priv;
  371 	gboolean is_fts_match;
  372 	gchar* literal;
  373 };
  374 
  375 struct _TrackerSparqlLiteralBindingClass {
  376 	TrackerSparqlDataBindingClass parent_class;
  377 };
  378 
  379 struct _TrackerSparqlQuery {
  380 	GObject parent_instance;
  381 	TrackerSparqlQueryPrivate * priv;
  382 	TrackerSparqlExpression* expression;
  383 	TrackerSparqlPattern* pattern;
  384 	GList* bindings;
  385 	TrackerSparqlContext* context;
  386 	gint last_var_index;
  387 };
  388 
  389 struct _TrackerSparqlQueryClass {
  390 	GObjectClass parent_class;
  391 };
  392 
  393 
  394 static gpointer tracker_sparql_expression_parent_class = NULL;
  395 
  396 GType tracker_sparql_expression_get_type (void) G_GNUC_CONST;
  397 GType tracker_sparql_query_get_type (void) G_GNUC_CONST;
  398 #define TRACKER_SPARQL_EXPRESSION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TRACKER_SPARQL_TYPE_EXPRESSION, TrackerSparqlExpressionPrivate))
  399 enum  {
  400 	TRACKER_SPARQL_EXPRESSION_DUMMY_PROPERTY
  401 };
  402 #define TRACKER_SPARQL_EXPRESSION_MAX_VARIABLES_FOR_IN 20
  403 #define TRACKER_SPARQL_EXPRESSION_XSD_NS "http://www.w3.org/2001/XMLSchema#"
  404 #define TRACKER_SPARQL_EXPRESSION_FN_NS "http://www.w3.org/2005/xpath-functions#"
  405 #define TRACKER_SPARQL_EXPRESSION_FTS_NS "http://www.tracker-project.org/ontologies/fts#"
  406 #define TRACKER_SPARQL_EXPRESSION_TRACKER_NS "http://www.tracker-project.org/ontologies/tracker#"
  407 TrackerSparqlExpression* tracker_sparql_expression_new (TrackerSparqlQuery* query);
  408 TrackerSparqlExpression* tracker_sparql_expression_construct (GType object_type, TrackerSparqlQuery* query);
  409 static inline gboolean tracker_sparql_expression_next (TrackerSparqlExpression* self, GError** error);
  410 gboolean tracker_sparql_query_next (TrackerSparqlQuery* self, GError** error);
  411 GType tracker_sparql_token_type_get_type (void) G_GNUC_CONST;
  412 static inline TrackerSparqlTokenType tracker_sparql_expression_current (TrackerSparqlExpression* self);
  413 TrackerSparqlTokenType tracker_sparql_query_current (TrackerSparqlQuery* self);
  414 static inline TrackerSparqlTokenType tracker_sparql_expression_last (TrackerSparqlExpression* self);
  415 TrackerSparqlTokenType tracker_sparql_query_last (TrackerSparqlQuery* self);
  416 static inline gboolean tracker_sparql_expression_accept (TrackerSparqlExpression* self, TrackerSparqlTokenType type, GError** error);
  417 gboolean tracker_sparql_query_accept (TrackerSparqlQuery* self, TrackerSparqlTokenType type, GError** error);
  418 static GError* tracker_sparql_expression_get_error (TrackerSparqlExpression* self, const gchar* msg);
  419 GError* tracker_sparql_query_get_error (TrackerSparqlQuery* self, const gchar* msg);
  420 static gboolean tracker_sparql_expression_expect (TrackerSparqlExpression* self, TrackerSparqlTokenType type, GError** error);
  421 gboolean tracker_sparql_query_expect (TrackerSparqlQuery* self, TrackerSparqlTokenType type, GError** error);
  422 static gchar* tracker_sparql_expression_get_last_string (TrackerSparqlExpression* self, gint strip);
  423 gchar* tracker_sparql_query_get_last_string (TrackerSparqlQuery* self, gint strip);
  424 static gchar* tracker_sparql_expression_escape_sql_string_literal (TrackerSparqlExpression* self, const gchar* literal);
  425 static gboolean tracker_sparql_expression_maybe_numeric (TrackerSparqlExpression* self, TrackerPropertyType type);
  426 static void tracker_sparql_expression_append_collate (TrackerSparqlExpression* self, GString* sql);
  427 static void tracker_sparql_expression_skip_bracketted_expression (TrackerSparqlExpression* self, GError** error);
  428 void tracker_sparql_expression_skip_select_variables (TrackerSparqlExpression* self, GError** error);
  429 TrackerPropertyType tracker_sparql_expression_translate_select_expression (TrackerSparqlExpression* self, GString* sql, gboolean subquery, gint variable_index, GError** error);
  430 GType tracker_sparql_variable_get_type (void) G_GNUC_CONST;
  431 TrackerPropertyType tracker_sparql_expression_translate_expression (TrackerSparqlExpression* self, GString* sql, GError** error);
  432 gpointer tracker_sparql_context_ref (gpointer instance);
  433 void tracker_sparql_context_unref (gpointer instance);
  434 GParamSpec* tracker_sparql_param_spec_context (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
  435 void tracker_sparql_value_set_context (GValue* value, gpointer v_object);
  436 void tracker_sparql_value_take_context (GValue* value, gpointer v_object);
  437 gpointer tracker_sparql_value_get_context (const GValue* value);
  438 GType tracker_sparql_context_get_type (void) G_GNUC_CONST;
  439 static TrackerSparqlContext* tracker_sparql_expression_get_context (TrackerSparqlExpression* self);
  440 TrackerSparqlVariable* tracker_sparql_context_get_variable (TrackerSparqlContext* self, const gchar* name);
  441 GType tracker_sparql_data_binding_get_type (void) G_GNUC_CONST;
  442 GType tracker_sparql_variable_binding_get_type (void) G_GNUC_CONST;
  443 const gchar* tracker_sparql_variable_get_name (TrackerSparqlVariable* self);
  444 GType tracker_sparql_pattern_get_type (void) G_GNUC_CONST;
  445 static TrackerSparqlPattern* tracker_sparql_expression_get_pattern (TrackerSparqlExpression* self);
  446 GType tracker_sparql_select_context_get_type (void) G_GNUC_CONST;
  447 TrackerSparqlSelectContext* tracker_sparql_pattern_translate_select (TrackerSparqlPattern* self, GString* sql, gboolean subquery, gboolean scalar_subquery, GError** error);
  448 GType tracker_sparql_predicate_variable_get_type (void) G_GNUC_CONST;
  449 static void tracker_sparql_expression_convert_expression_to_string (GString* sql, TrackerPropertyType type, glong begin);
  450 const gchar* tracker_sparql_variable_get_sql_expression (TrackerSparqlVariable* self);
  451 TrackerSparqlVariableBinding* tracker_sparql_variable_binding_new (void);
  452 TrackerSparqlVariableBinding* tracker_sparql_variable_binding_construct (GType object_type);
  453 GType tracker_sparql_data_table_get_type (void) G_GNUC_CONST;
  454 void tracker_sparql_data_binding_set_sql_expression (TrackerSparqlDataBinding* self, const gchar* value);
  455 GType tracker_sparql_variable_state_get_type (void) G_GNUC_CONST;
  456 void tracker_sparql_pattern_add_variable_binding (TrackerSparqlPattern* self, GString* sql, TrackerSparqlVariableBinding* binding, TrackerSparqlVariableState variable_state);
  457 static void _vala_array_add1 (gchar*** array, int* length, int* size, gchar* value);
  458 static void _vala_array_add2 (gchar*** array, int* length, int* size, gchar* value);
  459 static void _vala_array_add3 (gchar*** array, int* length, int* size, gchar* value);
  460 static void _vala_array_add4 (gchar*** array, int* length, int* size, gchar* value);
  461 static void tracker_sparql_expression_translate_expression_as_order_condition (TrackerSparqlExpression* self, GString* sql, GError** error);
  462 void tracker_sparql_expression_translate_order_condition (TrackerSparqlExpression* self, GString* sql, GError** error);
  463 static void tracker_sparql_expression_translate_bound_call (TrackerSparqlExpression* self, GString* sql, GError** error);
  464 static TrackerPropertyType tracker_sparql_expression_translate_if_call (TrackerSparqlExpression* self, GString* sql, GError** error);
  465 static void tracker_sparql_expression_translate_regex (TrackerSparqlExpression* self, GString* sql, GError** error);
  466 static void tracker_sparql_expression_translate_expression_as_string (TrackerSparqlExpression* self, GString* sql, GError** error);
  467 gchar* tracker_sparql_expression_parse_string_literal (TrackerSparqlExpression* self, TrackerPropertyType* type, GError** error);
  468 static void tracker_sparql_expression_translate_exists (TrackerSparqlExpression* self, GString* sql, GError** error);
  469 void tracker_sparql_pattern_translate_exists (TrackerSparqlPattern* self, GString* sql, GError** error);
  470 void tracker_sparql_expression_append_expression_as_string (GString* sql, const gchar* expression, TrackerPropertyType type);
  471 TrackerSparqlLiteralBinding* tracker_sparql_literal_binding_new (void);
  472 TrackerSparqlLiteralBinding* tracker_sparql_literal_binding_construct (GType object_type);
  473 GType tracker_sparql_literal_binding_get_type (void) G_GNUC_CONST;
  474 gchar* tracker_sparql_pattern_parse_var_or_term (TrackerSparqlPattern* self, GString* sql, gboolean* is_var, GError** error);
  475 static TrackerPropertyType tracker_sparql_expression_translate_function (TrackerSparqlExpression* self, GString* sql, const gchar* uri, GError** error);
  476 static void tracker_sparql_expression_translate_str (TrackerSparqlExpression* self, GString* sql, GError** error);
  477 static void tracker_sparql_expression_translate_isuri (TrackerSparqlExpression* self, GString* sql, GError** error);
  478 static void tracker_sparql_expression_translate_datatype (TrackerSparqlExpression* self, GString* sql, GError** error);
  479 gchar* tracker_sparql_variable_get_extra_sql_expression (TrackerSparqlVariable* self, const gchar* suffix);
  480 static TrackerPropertyType tracker_sparql_expression_parse_type_uri (TrackerSparqlExpression* self, GError** error);
  481 gchar* tracker_sparql_query_resolve_prefixed_name (TrackerSparqlQuery* self, const gchar* prefix, const gchar* local_name, GError** error);
  482 static TrackerPropertyType tracker_sparql_expression_translate_uri_expression (TrackerSparqlExpression* self, GString* sql, const gchar* uri, GError** error);
  483 static TrackerPropertyType tracker_sparql_expression_translate_primary_expression (TrackerSparqlExpression* self, GString* sql, GError** error);
  484 static TrackerPropertyType tracker_sparql_expression_translate_bracketted_expression (TrackerSparqlExpression* self, GString* sql, GError** error);
  485 gboolean tracker_sparql_query_get_no_cache (TrackerSparqlQuery* self);
  486 void tracker_sparql_query_set_no_cache (TrackerSparqlQuery* self, gboolean value);
  487 static TrackerPropertyType tracker_sparql_expression_translate_aggregate_expression (TrackerSparqlExpression* self, GString* sql, GError** error);
  488 static TrackerPropertyType tracker_sparql_expression_translate_unary_expression (TrackerSparqlExpression* self, GString* sql, GError** error);
  489 static TrackerPropertyType tracker_sparql_expression_translate_multiplicative_expression (TrackerSparqlExpression* self, GString* sql, GError** error);
  490 static TrackerPropertyType tracker_sparql_expression_translate_additive_expression (TrackerSparqlExpression* self, GString* sql, GError** error);
  491 static TrackerPropertyType tracker_sparql_expression_translate_numeric_expression (TrackerSparqlExpression* self, GString* sql, GError** error);
  492 static TrackerPropertyType tracker_sparql_expression_process_relational_expression (TrackerSparqlExpression* self, GString* sql, glong begin, guint n_bindings, TrackerPropertyType op1type, const gchar* operator, GError** error);
  493 static TrackerPropertyType tracker_sparql_expression_translate_in (TrackerSparqlExpression* self, GString* sql, gboolean not, GError** error);
  494 static TrackerPropertyType tracker_sparql_expression_translate_relational_expression (TrackerSparqlExpression* self, GString* sql, GError** error);
  495 static TrackerPropertyType tracker_sparql_expression_translate_value_logical (TrackerSparqlExpression* self, GString* sql, GError** error);
  496 static TrackerPropertyType tracker_sparql_expression_translate_conditional_and_expression (TrackerSparqlExpression* self, GString* sql, GError** error);
  497 static TrackerPropertyType tracker_sparql_expression_translate_conditional_or_expression (TrackerSparqlExpression* self, GString* sql, GError** error);
  498 TrackerPropertyType tracker_sparql_expression_translate_constraint (TrackerSparqlExpression* self, GString* sql, GError** error);
  499 static void tracker_sparql_expression_finalize (GObject* obj);
  500 static void _vala_tracker_sparql_expression_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
  501 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
  502 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
  503 static gint _vala_array_length (gpointer array);
  504 
  505 
  506 TrackerSparqlExpression* tracker_sparql_expression_construct (GType object_type, TrackerSparqlQuery* query) {
  507 	TrackerSparqlExpression * self = NULL;
  508 	TrackerSparqlQuery* _tmp0_;
  509 #line 31 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  510 	g_return_val_if_fail (query != NULL, NULL);
  511 #line 31 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  512 	self = (TrackerSparqlExpression*) g_object_new (object_type, NULL);
  513 #line 32 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  514 	_tmp0_ = query;
  515 #line 32 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  516 	self->priv->query = _tmp0_;
  517 #line 31 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  518 	return self;
  519 #line 520 "tracker-sparql-expression.c"
  520 }
  521 
  522 
  523 TrackerSparqlExpression* tracker_sparql_expression_new (TrackerSparqlQuery* query) {
  524 #line 31 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  525 	return tracker_sparql_expression_construct (TRACKER_SPARQL_TYPE_EXPRESSION, query);
  526 #line 527 "tracker-sparql-expression.c"
  527 }
  528 
  529 
  530 static inline gboolean tracker_sparql_expression_next (TrackerSparqlExpression* self, GError** error) {
  531 	gboolean result = FALSE;
  532 	TrackerSparqlQuery* _tmp0_;
  533 	gboolean _tmp1_ = FALSE;
  534 	gboolean _tmp2_;
  535 	GError * _inner_error_ = NULL;
  536 #line 43 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  537 	g_return_val_if_fail (self != NULL, FALSE);
  538 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  539 	_tmp0_ = self->priv->query;
  540 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  541 	_tmp1_ = tracker_sparql_query_next (_tmp0_, &_inner_error_);
  542 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  543 	_tmp2_ = _tmp1_;
  544 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  545 	if (_inner_error_ != NULL) {
  546 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  547 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
  548 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  549 			g_propagate_error (error, _inner_error_);
  550 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  551 			return FALSE;
  552 #line 553 "tracker-sparql-expression.c"
  553 		} else {
  554 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  555 			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  556 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  557 			g_clear_error (&_inner_error_);
  558 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  559 			return FALSE;
  560 #line 561 "tracker-sparql-expression.c"
  561 		}
  562 	}
  563 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  564 	result = _tmp2_;
  565 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  566 	return result;
  567 #line 568 "tracker-sparql-expression.c"
  568 }
  569 
  570 
  571 static inline TrackerSparqlTokenType tracker_sparql_expression_current (TrackerSparqlExpression* self) {
  572 	TrackerSparqlTokenType result = 0;
  573 	TrackerSparqlQuery* _tmp0_;
  574 	TrackerSparqlTokenType _tmp1_ = 0;
  575 #line 47 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  576 	g_return_val_if_fail (self != NULL, 0);
  577 #line 48 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  578 	_tmp0_ = self->priv->query;
  579 #line 48 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  580 	_tmp1_ = tracker_sparql_query_current (_tmp0_);
  581 #line 48 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  582 	result = _tmp1_;
  583 #line 48 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  584 	return result;
  585 #line 586 "tracker-sparql-expression.c"
  586 }
  587 
  588 
  589 static inline TrackerSparqlTokenType tracker_sparql_expression_last (TrackerSparqlExpression* self) {
  590 	TrackerSparqlTokenType result = 0;
  591 	TrackerSparqlQuery* _tmp0_;
  592 	TrackerSparqlTokenType _tmp1_ = 0;
  593 #line 51 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  594 	g_return_val_if_fail (self != NULL, 0);
  595 #line 52 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  596 	_tmp0_ = self->priv->query;
  597 #line 52 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  598 	_tmp1_ = tracker_sparql_query_last (_tmp0_);
  599 #line 52 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  600 	result = _tmp1_;
  601 #line 52 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  602 	return result;
  603 #line 604 "tracker-sparql-expression.c"
  604 }
  605 
  606 
  607 static inline gboolean tracker_sparql_expression_accept (TrackerSparqlExpression* self, TrackerSparqlTokenType type, GError** error) {
  608 	gboolean result = FALSE;
  609 	TrackerSparqlQuery* _tmp0_;
  610 	TrackerSparqlTokenType _tmp1_;
  611 	gboolean _tmp2_ = FALSE;
  612 	gboolean _tmp3_;
  613 	GError * _inner_error_ = NULL;
  614 #line 55 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  615 	g_return_val_if_fail (self != NULL, FALSE);
  616 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  617 	_tmp0_ = self->priv->query;
  618 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  619 	_tmp1_ = type;
  620 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  621 	_tmp2_ = tracker_sparql_query_accept (_tmp0_, _tmp1_, &_inner_error_);
  622 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  623 	_tmp3_ = _tmp2_;
  624 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  625 	if (_inner_error_ != NULL) {
  626 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  627 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
  628 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  629 			g_propagate_error (error, _inner_error_);
  630 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  631 			return FALSE;
  632 #line 633 "tracker-sparql-expression.c"
  633 		} else {
  634 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  635 			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  636 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  637 			g_clear_error (&_inner_error_);
  638 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  639 			return FALSE;
  640 #line 641 "tracker-sparql-expression.c"
  641 		}
  642 	}
  643 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  644 	result = _tmp3_;
  645 #line 56 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  646 	return result;
  647 #line 648 "tracker-sparql-expression.c"
  648 }
  649 
  650 
  651 static GError* tracker_sparql_expression_get_error (TrackerSparqlExpression* self, const gchar* msg) {
  652 	GError* result = NULL;
  653 	TrackerSparqlQuery* _tmp0_;
  654 	const gchar* _tmp1_;
  655 	GError* _tmp2_ = NULL;
  656 #line 59 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  657 	g_return_val_if_fail (self != NULL, NULL);
  658 #line 59 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  659 	g_return_val_if_fail (msg != NULL, NULL);
  660 #line 60 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  661 	_tmp0_ = self->priv->query;
  662 #line 60 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  663 	_tmp1_ = msg;
  664 #line 60 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  665 	_tmp2_ = tracker_sparql_query_get_error (_tmp0_, _tmp1_);
  666 #line 60 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  667 	result = _tmp2_;
  668 #line 60 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  669 	return result;
  670 #line 671 "tracker-sparql-expression.c"
  671 }
  672 
  673 
  674 static gboolean tracker_sparql_expression_expect (TrackerSparqlExpression* self, TrackerSparqlTokenType type, GError** error) {
  675 	gboolean result = FALSE;
  676 	TrackerSparqlQuery* _tmp0_;
  677 	TrackerSparqlTokenType _tmp1_;
  678 	gboolean _tmp2_ = FALSE;
  679 	gboolean _tmp3_;
  680 	GError * _inner_error_ = NULL;
  681 #line 63 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  682 	g_return_val_if_fail (self != NULL, FALSE);
  683 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  684 	_tmp0_ = self->priv->query;
  685 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  686 	_tmp1_ = type;
  687 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  688 	_tmp2_ = tracker_sparql_query_expect (_tmp0_, _tmp1_, &_inner_error_);
  689 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  690 	_tmp3_ = _tmp2_;
  691 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  692 	if (_inner_error_ != NULL) {
  693 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  694 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
  695 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  696 			g_propagate_error (error, _inner_error_);
  697 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  698 			return FALSE;
  699 #line 700 "tracker-sparql-expression.c"
  700 		} else {
  701 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  702 			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  703 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  704 			g_clear_error (&_inner_error_);
  705 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  706 			return FALSE;
  707 #line 708 "tracker-sparql-expression.c"
  708 		}
  709 	}
  710 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  711 	result = _tmp3_;
  712 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  713 	return result;
  714 #line 715 "tracker-sparql-expression.c"
  715 }
  716 
  717 
  718 static gchar* tracker_sparql_expression_get_last_string (TrackerSparqlExpression* self, gint strip) {
  719 	gchar* result = NULL;
  720 	TrackerSparqlQuery* _tmp0_;
  721 	gint _tmp1_;
  722 	gchar* _tmp2_ = NULL;
  723 #line 67 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  724 	g_return_val_if_fail (self != NULL, NULL);
  725 #line 68 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  726 	_tmp0_ = self->priv->query;
  727 #line 68 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  728 	_tmp1_ = strip;
  729 #line 68 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  730 	_tmp2_ = tracker_sparql_query_get_last_string (_tmp0_, _tmp1_);
  731 #line 68 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  732 	result = _tmp2_;
  733 #line 68 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  734 	return result;
  735 #line 736 "tracker-sparql-expression.c"
  736 }
  737 
  738 
  739 static gchar* tracker_sparql_expression_escape_sql_string_literal (TrackerSparqlExpression* self, const gchar* literal) {
  740 	gchar* result = NULL;
  741 	const gchar* _tmp0_;
  742 	gchar** _tmp1_;
  743 	gchar** _tmp2_ = NULL;
  744 	gchar** _tmp3_;
  745 	gint _tmp3__length1;
  746 	gchar* _tmp4_ = NULL;
  747 	gchar* _tmp5_;
  748 	gchar* _tmp6_ = NULL;
  749 	gchar* _tmp7_;
  750 #line 71 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  751 	g_return_val_if_fail (self != NULL, NULL);
  752 #line 71 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  753 	g_return_val_if_fail (literal != NULL, NULL);
  754 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  755 	_tmp0_ = literal;
  756 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  757 	_tmp2_ = _tmp1_ = g_strsplit (_tmp0_, "'", 0);
  758 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  759 	_tmp3_ = _tmp2_;
  760 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  761 	_tmp3__length1 = _vala_array_length (_tmp1_);
  762 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  763 	_tmp4_ = g_strjoinv ("''", _tmp3_);
  764 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  765 	_tmp5_ = _tmp4_;
  766 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  767 	_tmp6_ = g_strdup_printf ("'%s'", _tmp5_);
  768 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  769 	_tmp7_ = _tmp6_;
  770 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  771 	_g_free0 (_tmp5_);
  772 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  773 	_tmp3_ = (_vala_array_free (_tmp3_, _tmp3__length1, (GDestroyNotify) g_free), NULL);
  774 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  775 	result = _tmp7_;
  776 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  777 	return result;
  778 #line 779 "tracker-sparql-expression.c"
  779 }
  780 
  781 
  782 static gboolean tracker_sparql_expression_maybe_numeric (TrackerSparqlExpression* self, TrackerPropertyType type) {
  783 	gboolean result = FALSE;
  784 	gboolean _tmp0_ = FALSE;
  785 	gboolean _tmp1_ = FALSE;
  786 	gboolean _tmp2_ = FALSE;
  787 	gboolean _tmp3_ = FALSE;
  788 	TrackerPropertyType _tmp4_;
  789 	gboolean _tmp6_;
  790 	gboolean _tmp8_;
  791 	gboolean _tmp10_;
  792 	gboolean _tmp12_;
  793 #line 75 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  794 	g_return_val_if_fail (self != NULL, FALSE);
  795 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  796 	_tmp4_ = type;
  797 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  798 	if (_tmp4_ == TRACKER_PROPERTY_TYPE_INTEGER) {
  799 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  800 		_tmp3_ = TRUE;
  801 #line 802 "tracker-sparql-expression.c"
  802 	} else {
  803 		TrackerPropertyType _tmp5_;
  804 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  805 		_tmp5_ = type;
  806 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  807 		_tmp3_ = _tmp5_ == TRACKER_PROPERTY_TYPE_DOUBLE;
  808 #line 809 "tracker-sparql-expression.c"
  809 	}
  810 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  811 	_tmp6_ = _tmp3_;
  812 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  813 	if (_tmp6_) {
  814 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  815 		_tmp2_ = TRUE;
  816 #line 817 "tracker-sparql-expression.c"
  817 	} else {
  818 		TrackerPropertyType _tmp7_;
  819 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  820 		_tmp7_ = type;
  821 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  822 		_tmp2_ = _tmp7_ == TRACKER_PROPERTY_TYPE_DATE;
  823 #line 824 "tracker-sparql-expression.c"
  824 	}
  825 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  826 	_tmp8_ = _tmp2_;
  827 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  828 	if (_tmp8_) {
  829 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  830 		_tmp1_ = TRUE;
  831 #line 832 "tracker-sparql-expression.c"
  832 	} else {
  833 		TrackerPropertyType _tmp9_;
  834 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  835 		_tmp9_ = type;
  836 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  837 		_tmp1_ = _tmp9_ == TRACKER_PROPERTY_TYPE_DATETIME;
  838 #line 839 "tracker-sparql-expression.c"
  839 	}
  840 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  841 	_tmp10_ = _tmp1_;
  842 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  843 	if (_tmp10_) {
  844 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  845 		_tmp0_ = TRUE;
  846 #line 847 "tracker-sparql-expression.c"
  847 	} else {
  848 		TrackerPropertyType _tmp11_;
  849 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  850 		_tmp11_ = type;
  851 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  852 		_tmp0_ = _tmp11_ == TRACKER_PROPERTY_TYPE_UNKNOWN;
  853 #line 854 "tracker-sparql-expression.c"
  854 	}
  855 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  856 	_tmp12_ = _tmp0_;
  857 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  858 	result = _tmp12_;
  859 #line 76 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  860 	return result;
  861 #line 862 "tracker-sparql-expression.c"
  862 }
  863 
  864 
  865 static void tracker_sparql_expression_append_collate (TrackerSparqlExpression* self, GString* sql) {
  866 	GString* _tmp0_;
  867 #line 79 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  868 	g_return_if_fail (self != NULL);
  869 #line 79 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  870 	g_return_if_fail (sql != NULL);
  871 #line 80 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  872 	_tmp0_ = sql;
  873 #line 80 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  874 	g_string_append_printf (_tmp0_, " COLLATE %s", TRACKER_COLLATION_NAME);
  875 #line 876 "tracker-sparql-expression.c"
  876 }
  877 
  878 
  879 static void tracker_sparql_expression_skip_bracketted_expression (TrackerSparqlExpression* self, GError** error) {
  880 	GError * _inner_error_ = NULL;
  881 #line 83 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  882 	g_return_if_fail (self != NULL);
  883 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  884 	tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS, &_inner_error_);
  885 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  886 	if (_inner_error_ != NULL) {
  887 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  888 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
  889 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  890 			g_propagate_error (error, _inner_error_);
  891 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  892 			return;
  893 #line 894 "tracker-sparql-expression.c"
  894 		} else {
  895 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  896 			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  897 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  898 			g_clear_error (&_inner_error_);
  899 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  900 			return;
  901 #line 902 "tracker-sparql-expression.c"
  902 		}
  903 	}
  904 #line 85 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  905 	while (TRUE) {
  906 #line 907 "tracker-sparql-expression.c"
  907 		TrackerSparqlTokenType _tmp0_ = 0;
  908 #line 86 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  909 		_tmp0_ = tracker_sparql_expression_current (self);
  910 #line 86 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  911 		switch (_tmp0_) {
  912 #line 86 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  913 			case TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS:
  914 #line 915 "tracker-sparql-expression.c"
  915 			{
  916 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  917 				tracker_sparql_expression_skip_bracketted_expression (self, &_inner_error_);
  918 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  919 				if (_inner_error_ != NULL) {
  920 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  921 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
  922 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  923 						g_propagate_error (error, _inner_error_);
  924 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  925 						return;
  926 #line 927 "tracker-sparql-expression.c"
  927 					} else {
  928 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  929 						g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  930 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  931 						g_clear_error (&_inner_error_);
  932 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  933 						return;
  934 #line 935 "tracker-sparql-expression.c"
  935 					}
  936 				}
  937 #line 90 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  938 				continue;
  939 #line 940 "tracker-sparql-expression.c"
  940 			}
  941 #line 86 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  942 			case TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS:
  943 #line 86 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  944 			case TRACKER_SPARQL_TOKEN_TYPE_EOF:
  945 #line 946 "tracker-sparql-expression.c"
  946 			{
  947 #line 93 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  948 				break;
  949 #line 950 "tracker-sparql-expression.c"
  950 			}
  951 			default:
  952 			{
  953 #line 95 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  954 				tracker_sparql_expression_next (self, &_inner_error_);
  955 #line 95 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  956 				if (_inner_error_ != NULL) {
  957 #line 95 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  958 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
  959 #line 95 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  960 						g_propagate_error (error, _inner_error_);
  961 #line 95 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  962 						return;
  963 #line 964 "tracker-sparql-expression.c"
  964 					} else {
  965 #line 95 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  966 						g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  967 #line 95 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  968 						g_clear_error (&_inner_error_);
  969 #line 95 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  970 						return;
  971 #line 972 "tracker-sparql-expression.c"
  972 					}
  973 				}
  974 #line 96 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  975 				continue;
  976 #line 977 "tracker-sparql-expression.c"
  977 			}
  978 		}
  979 #line 98 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  980 		break;
  981 #line 982 "tracker-sparql-expression.c"
  982 	}
  983 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  984 	tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS, &_inner_error_);
  985 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  986 	if (_inner_error_ != NULL) {
  987 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  988 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
  989 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  990 			g_propagate_error (error, _inner_error_);
  991 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  992 			return;
  993 #line 994 "tracker-sparql-expression.c"
  994 		} else {
  995 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  996 			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  997 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
  998 			g_clear_error (&_inner_error_);
  999 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1000 			return;
 1001 #line 1002 "tracker-sparql-expression.c"
 1002 		}
 1003 	}
 1004 }
 1005 
 1006 
 1007 void tracker_sparql_expression_skip_select_variables (TrackerSparqlExpression* self, GError** error) {
 1008 	GError * _inner_error_ = NULL;
 1009 #line 103 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1010 	g_return_if_fail (self != NULL);
 1011 #line 104 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1012 	while (TRUE) {
 1013 #line 1014 "tracker-sparql-expression.c"
 1014 		TrackerSparqlTokenType _tmp0_ = 0;
 1015 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1016 		_tmp0_ = tracker_sparql_expression_current (self);
 1017 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1018 		switch (_tmp0_) {
 1019 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1020 			case TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS:
 1021 #line 1022 "tracker-sparql-expression.c"
 1022 			{
 1023 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1024 				tracker_sparql_expression_skip_bracketted_expression (self, &_inner_error_);
 1025 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1026 				if (_inner_error_ != NULL) {
 1027 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1028 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 1029 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1030 						g_propagate_error (error, _inner_error_);
 1031 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1032 						return;
 1033 #line 1034 "tracker-sparql-expression.c"
 1034 					} else {
 1035 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1036 						g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 1037 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1038 						g_clear_error (&_inner_error_);
 1039 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1040 						return;
 1041 #line 1042 "tracker-sparql-expression.c"
 1042 					}
 1043 				}
 1044 #line 108 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1045 				continue;
 1046 #line 1047 "tracker-sparql-expression.c"
 1047 			}
 1048 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1049 			case TRACKER_SPARQL_TOKEN_TYPE_FROM:
 1050 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1051 			case TRACKER_SPARQL_TOKEN_TYPE_WHERE:
 1052 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1053 			case TRACKER_SPARQL_TOKEN_TYPE_OPEN_BRACE:
 1054 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1055 			case TRACKER_SPARQL_TOKEN_TYPE_GROUP:
 1056 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1057 			case TRACKER_SPARQL_TOKEN_TYPE_ORDER:
 1058 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1059 			case TRACKER_SPARQL_TOKEN_TYPE_LIMIT:
 1060 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1061 			case TRACKER_SPARQL_TOKEN_TYPE_OFFSET:
 1062 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1063 			case TRACKER_SPARQL_TOKEN_TYPE_EOF:
 1064 #line 1065 "tracker-sparql-expression.c"
 1065 			{
 1066 #line 117 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1067 				break;
 1068 #line 1069 "tracker-sparql-expression.c"
 1069 			}
 1070 			default:
 1071 			{
 1072 #line 119 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1073 				tracker_sparql_expression_next (self, &_inner_error_);
 1074 #line 119 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1075 				if (_inner_error_ != NULL) {
 1076 #line 119 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1077 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 1078 #line 119 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1079 						g_propagate_error (error, _inner_error_);
 1080 #line 119 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1081 						return;
 1082 #line 1083 "tracker-sparql-expression.c"
 1083 					} else {
 1084 #line 119 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1085 						g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 1086 #line 119 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1087 						g_clear_error (&_inner_error_);
 1088 #line 119 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1089 						return;
 1090 #line 1091 "tracker-sparql-expression.c"
 1091 					}
 1092 				}
 1093 #line 120 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1094 				continue;
 1095 #line 1096 "tracker-sparql-expression.c"
 1096 			}
 1097 		}
 1098 #line 122 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1099 		break;
 1100 #line 1101 "tracker-sparql-expression.c"
 1101 	}
 1102 }
 1103 
 1104 
 1105 static glong string_strnlen (gchar* str, glong maxlen) {
 1106 	glong result = 0L;
 1107 	gchar* _tmp0_;
 1108 	glong _tmp1_;
 1109 	gchar* _tmp2_ = NULL;
 1110 	gchar* end;
 1111 	gchar* _tmp3_;
 1112 #line 1147 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1113 	_tmp0_ = str;
 1114 #line 1147 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1115 	_tmp1_ = maxlen;
 1116 #line 1147 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1117 	_tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
 1118 #line 1147 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1119 	end = _tmp2_;
 1120 #line 1148 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1121 	_tmp3_ = end;
 1122 #line 1148 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1123 	if (_tmp3_ == NULL) {
 1124 #line 1125 "tracker-sparql-expression.c"
 1125 		glong _tmp4_;
 1126 #line 1149 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1127 		_tmp4_ = maxlen;
 1128 #line 1149 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1129 		result = _tmp4_;
 1130 #line 1149 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1131 		return result;
 1132 #line 1133 "tracker-sparql-expression.c"
 1133 	} else {
 1134 		gchar* _tmp5_;
 1135 		gchar* _tmp6_;
 1136 #line 1151 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1137 		_tmp5_ = end;
 1138 #line 1151 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1139 		_tmp6_ = str;
 1140 #line 1151 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1141 		result = (glong) (_tmp5_ - _tmp6_);
 1142 #line 1151 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1143 		return result;
 1144 #line 1145 "tracker-sparql-expression.c"
 1145 	}
 1146 }
 1147 
 1148 
 1149 static gchar* string_substring (const gchar* self, glong offset, glong len) {
 1150 	gchar* result = NULL;
 1151 	glong string_length = 0L;
 1152 	gboolean _tmp0_ = FALSE;
 1153 	glong _tmp1_;
 1154 	gboolean _tmp3_;
 1155 	glong _tmp9_;
 1156 	glong _tmp15_;
 1157 	glong _tmp18_;
 1158 	glong _tmp19_;
 1159 	glong _tmp20_;
 1160 	glong _tmp21_;
 1161 	glong _tmp22_;
 1162 	gchar* _tmp23_ = NULL;
 1163 #line 1158 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1164 	g_return_val_if_fail (self != NULL, NULL);
 1165 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1166 	_tmp1_ = offset;
 1167 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1168 	if (_tmp1_ >= ((glong) 0)) {
 1169 #line 1170 "tracker-sparql-expression.c"
 1170 		glong _tmp2_;
 1171 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1172 		_tmp2_ = len;
 1173 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1174 		_tmp0_ = _tmp2_ >= ((glong) 0);
 1175 #line 1176 "tracker-sparql-expression.c"
 1176 	} else {
 1177 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1178 		_tmp0_ = FALSE;
 1179 #line 1180 "tracker-sparql-expression.c"
 1180 	}
 1181 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1182 	_tmp3_ = _tmp0_;
 1183 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1184 	if (_tmp3_) {
 1185 #line 1186 "tracker-sparql-expression.c"
 1186 		glong _tmp4_;
 1187 		glong _tmp5_;
 1188 		glong _tmp6_ = 0L;
 1189 #line 1162 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1190 		_tmp4_ = offset;
 1191 #line 1162 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1192 		_tmp5_ = len;
 1193 #line 1162 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1194 		_tmp6_ = string_strnlen ((gchar*) self, _tmp4_ + _tmp5_);
 1195 #line 1162 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1196 		string_length = _tmp6_;
 1197 #line 1198 "tracker-sparql-expression.c"
 1198 	} else {
 1199 		gint _tmp7_;
 1200 		gint _tmp8_;
 1201 #line 1164 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1202 		_tmp7_ = strlen (self);
 1203 #line 1164 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1204 		_tmp8_ = _tmp7_;
 1205 #line 1164 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1206 		string_length = (glong) _tmp8_;
 1207 #line 1208 "tracker-sparql-expression.c"
 1208 	}
 1209 #line 1167 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1210 	_tmp9_ = offset;
 1211 #line 1167 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1212 	if (_tmp9_ < ((glong) 0)) {
 1213 #line 1214 "tracker-sparql-expression.c"
 1214 		glong _tmp10_;
 1215 		glong _tmp11_;
 1216 		glong _tmp12_;
 1217 #line 1168 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1218 		_tmp10_ = string_length;
 1219 #line 1168 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1220 		_tmp11_ = offset;
 1221 #line 1168 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1222 		offset = _tmp10_ + _tmp11_;
 1223 #line 1169 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1224 		_tmp12_ = offset;
 1225 #line 1169 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1226 		g_return_val_if_fail (_tmp12_ >= ((glong) 0), NULL);
 1227 #line 1228 "tracker-sparql-expression.c"
 1228 	} else {
 1229 		glong _tmp13_;
 1230 		glong _tmp14_;
 1231 #line 1171 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1232 		_tmp13_ = offset;
 1233 #line 1171 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1234 		_tmp14_ = string_length;
 1235 #line 1171 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1236 		g_return_val_if_fail (_tmp13_ <= _tmp14_, NULL);
 1237 #line 1238 "tracker-sparql-expression.c"
 1238 	}
 1239 #line 1173 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1240 	_tmp15_ = len;
 1241 #line 1173 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1242 	if (_tmp15_ < ((glong) 0)) {
 1243 #line 1244 "tracker-sparql-expression.c"
 1244 		glong _tmp16_;
 1245 		glong _tmp17_;
 1246 #line 1174 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1247 		_tmp16_ = string_length;
 1248 #line 1174 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1249 		_tmp17_ = offset;
 1250 #line 1174 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1251 		len = _tmp16_ - _tmp17_;
 1252 #line 1253 "tracker-sparql-expression.c"
 1253 	}
 1254 #line 1176 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1255 	_tmp18_ = offset;
 1256 #line 1176 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1257 	_tmp19_ = len;
 1258 #line 1176 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1259 	_tmp20_ = string_length;
 1260 #line 1176 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1261 	g_return_val_if_fail ((_tmp18_ + _tmp19_) <= _tmp20_, NULL);
 1262 #line 1177 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1263 	_tmp21_ = offset;
 1264 #line 1177 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1265 	_tmp22_ = len;
 1266 #line 1177 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1267 	_tmp23_ = g_strndup (((gchar*) self) + _tmp21_, (gsize) _tmp22_);
 1268 #line 1177 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1269 	result = _tmp23_;
 1270 #line 1177 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 1271 	return result;
 1272 #line 1273 "tracker-sparql-expression.c"
 1273 }
 1274 
 1275 
 1276 static gpointer _g_object_ref0 (gpointer self) {
 1277 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1278 	return self ? g_object_ref (self) : NULL;
 1279 #line 1280 "tracker-sparql-expression.c"
 1280 }
 1281 
 1282 
 1283 static void _vala_array_add1 (gchar*** array, int* length, int* size, gchar* value) {
 1284 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1285 	if ((*length) == (*size)) {
 1286 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1287 		*size = (*size) ? (2 * (*size)) : 4;
 1288 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1289 		*array = g_renew (gchar*, *array, (*size) + 1);
 1290 #line 1291 "tracker-sparql-expression.c"
 1291 	}
 1292 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1293 	(*array)[(*length)++] = value;
 1294 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1295 	(*array)[*length] = NULL;
 1296 #line 1297 "tracker-sparql-expression.c"
 1297 }
 1298 
 1299 
 1300 static void _vala_array_add2 (gchar*** array, int* length, int* size, gchar* value) {
 1301 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1302 	if ((*length) == (*size)) {
 1303 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1304 		*size = (*size) ? (2 * (*size)) : 4;
 1305 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1306 		*array = g_renew (gchar*, *array, (*size) + 1);
 1307 #line 1308 "tracker-sparql-expression.c"
 1308 	}
 1309 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1310 	(*array)[(*length)++] = value;
 1311 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1312 	(*array)[*length] = NULL;
 1313 #line 1314 "tracker-sparql-expression.c"
 1314 }
 1315 
 1316 
 1317 static void _vala_array_add3 (gchar*** array, int* length, int* size, gchar* value) {
 1318 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1319 	if ((*length) == (*size)) {
 1320 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1321 		*size = (*size) ? (2 * (*size)) : 4;
 1322 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1323 		*array = g_renew (gchar*, *array, (*size) + 1);
 1324 #line 1325 "tracker-sparql-expression.c"
 1325 	}
 1326 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1327 	(*array)[(*length)++] = value;
 1328 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1329 	(*array)[*length] = NULL;
 1330 #line 1331 "tracker-sparql-expression.c"
 1331 }
 1332 
 1333 
 1334 static void _vala_array_add4 (gchar*** array, int* length, int* size, gchar* value) {
 1335 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1336 	if ((*length) == (*size)) {
 1337 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1338 		*size = (*size) ? (2 * (*size)) : 4;
 1339 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1340 		*array = g_renew (gchar*, *array, (*size) + 1);
 1341 #line 1342 "tracker-sparql-expression.c"
 1342 	}
 1343 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1344 	(*array)[(*length)++] = value;
 1345 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1346 	(*array)[*length] = NULL;
 1347 #line 1348 "tracker-sparql-expression.c"
 1348 }
 1349 
 1350 
 1351 TrackerPropertyType tracker_sparql_expression_translate_select_expression (TrackerSparqlExpression* self, GString* sql, gboolean subquery, gint variable_index, GError** error) {
 1352 	TrackerPropertyType result = 0;
 1353 	TrackerSparqlVariable* variable;
 1354 	gboolean expect_close_parens;
 1355 	gboolean as_handled;
 1356 	GString* _tmp0_;
 1357 	gssize _tmp1_;
 1358 	glong begin;
 1359 	TrackerPropertyType type;
 1360 	TrackerSparqlTokenType _tmp2_ = 0;
 1361 	gboolean _tmp42_;
 1362 	gboolean _tmp46_ = FALSE;
 1363 	gboolean _tmp47_;
 1364 	TrackerSparqlPattern* _tmp83_;
 1365 	TrackerSparqlPattern* _tmp84_;
 1366 	TrackerSparqlVariable* _tmp85_;
 1367 	gboolean _tmp118_;
 1368 	TrackerSparqlVariable* _tmp119_;
 1369 	GError * _inner_error_ = NULL;
 1370 #line 126 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1371 	g_return_val_if_fail (self != NULL, 0);
 1372 #line 126 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1373 	g_return_val_if_fail (sql != NULL, 0);
 1374 #line 127 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1375 	variable = NULL;
 1376 #line 128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1377 	expect_close_parens = FALSE;
 1378 #line 129 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1379 	as_handled = FALSE;
 1380 #line 131 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1381 	_tmp0_ = sql;
 1382 #line 131 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1383 	_tmp1_ = _tmp0_->len;
 1384 #line 131 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1385 	begin = (glong) _tmp1_;
 1386 #line 132 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala"
 1387 	type = TRACKER_PROPERTY_TYPE_UNKNOWN;
Value stored to 'type' is never read
(emitted by clang-analyzer)

TODO: a detailed trace is available in the data model (not yet rendered in this report)

1388 #line 133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1389 _tmp2_ = tracker_sparql_expression_current (self); 1390 #line 133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1391 if (_tmp2_ == TRACKER_SPARQL_TOKEN_TYPE_VAR) { 1392 #line 1393 "tracker-sparql-expression.c" 1393 GString* _tmp3_; 1394 TrackerPropertyType _tmp4_ = 0; 1395 TrackerPropertyType _tmp5_; 1396 TrackerSparqlContext* _tmp6_; 1397 TrackerSparqlContext* _tmp7_; 1398 gchar* _tmp8_ = NULL; 1399 gchar* _tmp9_; 1400 gchar* _tmp10_ = NULL; 1401 gchar* _tmp11_; 1402 TrackerSparqlVariable* _tmp12_ = NULL; 1403 TrackerSparqlVariable* _tmp13_; 1404 TrackerSparqlVariable* _tmp14_; 1405 TrackerSparqlVariableBinding* _tmp15_; 1406 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1407 _tmp3_ = sql; 1408 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1409 _tmp4_ = tracker_sparql_expression_translate_expression (self, _tmp3_, &_inner_error_); 1410 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1411 _tmp5_ = _tmp4_; 1412 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1413 if (_inner_error_ != NULL) { 1414 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1415 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 1416 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1417 g_propagate_error (error, _inner_error_); 1418 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1419 _g_object_unref0 (variable); 1420 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1421 return 0; 1422 #line 1423 "tracker-sparql-expression.c" 1423 } else { 1424 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1425 _g_object_unref0 (variable); 1426 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1427 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 1428 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1429 g_clear_error (&_inner_error_); 1430 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1431 return 0; 1432 #line 1433 "tracker-sparql-expression.c" 1433 } 1434 } 1435 #line 134 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1436 type = _tmp5_; 1437 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1438 _tmp6_ = tracker_sparql_expression_get_context (self); 1439 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1440 _tmp7_ = _tmp6_; 1441 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1442 _tmp8_ = tracker_sparql_expression_get_last_string (self, 0); 1443 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1444 _tmp9_ = _tmp8_; 1445 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1446 _tmp10_ = string_substring (_tmp9_, (glong) 1, (glong) (-1)); 1447 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1448 _tmp11_ = _tmp10_; 1449 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1450 _tmp12_ = tracker_sparql_context_get_variable (_tmp7_, _tmp11_); 1451 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1452 _tmp13_ = _g_object_ref0 (_tmp12_); 1453 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1454 _g_object_unref0 (variable); 1455 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1456 variable = _tmp13_; 1457 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1458 _g_free0 (_tmp11_); 1459 #line 136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1460 _g_free0 (_tmp9_); 1461 #line 138 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1462 _tmp14_ = variable; 1463 #line 138 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1464 _tmp15_ = _tmp14_->binding; 1465 #line 138 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1466 if (_tmp15_ == NULL) { 1467 #line 1468 "tracker-sparql-expression.c" 1468 TrackerSparqlVariable* _tmp16_; 1469 const gchar* _tmp17_; 1470 const gchar* _tmp18_; 1471 gchar* _tmp19_ = NULL; 1472 gchar* _tmp20_; 1473 GError* _tmp21_ = NULL; 1474 GError* _tmp22_; 1475 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1476 _tmp16_ = variable; 1477 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1478 _tmp17_ = tracker_sparql_variable_get_name (_tmp16_); 1479 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1480 _tmp18_ = _tmp17_; 1481 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1482 _tmp19_ = g_strdup_printf ("use of undefined variable `%s'", _tmp18_); 1483 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1484 _tmp20_ = _tmp19_; 1485 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1486 _tmp21_ = tracker_sparql_expression_get_error (self, _tmp20_); 1487 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1488 _tmp22_ = _tmp21_; 1489 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1490 _g_free0 (_tmp20_); 1491 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1492 _inner_error_ = _tmp22_; 1493 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1494 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 1495 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1496 g_propagate_error (error, _inner_error_); 1497 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1498 _g_object_unref0 (variable); 1499 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1500 return 0; 1501 #line 1502 "tracker-sparql-expression.c" 1502 } else { 1503 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1504 _g_object_unref0 (variable); 1505 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1506 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 1507 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1508 g_clear_error (&_inner_error_); 1509 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1510 return 0; 1511 #line 1512 "tracker-sparql-expression.c" 1512 } 1513 } 1514 } else { 1515 gboolean _tmp23_ = FALSE; 1516 gboolean _tmp24_; 1517 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1518 _tmp23_ = tracker_sparql_expression_accept (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS, &_inner_error_); 1519 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1520 _tmp24_ = _tmp23_; 1521 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1522 if (_inner_error_ != NULL) { 1523 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1524 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 1525 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1526 g_propagate_error (error, _inner_error_); 1527 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1528 _g_object_unref0 (variable); 1529 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1530 return 0; 1531 #line 1532 "tracker-sparql-expression.c" 1532 } else { 1533 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1534 _g_object_unref0 (variable); 1535 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1536 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 1537 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1538 g_clear_error (&_inner_error_); 1539 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1540 return 0; 1541 #line 1542 "tracker-sparql-expression.c" 1542 } 1543 } 1544 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1545 if (_tmp24_) { 1546 #line 1547 "tracker-sparql-expression.c" 1547 TrackerSparqlTokenType _tmp25_ = 0; 1548 #line 142 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1549 _tmp25_ = tracker_sparql_expression_current (self); 1550 #line 142 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1551 if (_tmp25_ == TRACKER_SPARQL_TOKEN_TYPE_SELECT) { 1552 #line 1553 "tracker-sparql-expression.c" 1553 GString* _tmp26_; 1554 TrackerSparqlPattern* _tmp27_; 1555 TrackerSparqlPattern* _tmp28_; 1556 GString* _tmp29_; 1557 TrackerSparqlSelectContext* _tmp30_ = NULL; 1558 TrackerSparqlSelectContext* select_context; 1559 GString* _tmp31_; 1560 TrackerSparqlSelectContext* _tmp32_; 1561 TrackerPropertyType _tmp33_; 1562 #line 145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1563 _tmp26_ = sql; 1564 #line 145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1565 g_string_append (_tmp26_, "("); 1566 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1567 _tmp27_ = tracker_sparql_expression_get_pattern (self); 1568 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1569 _tmp28_ = _tmp27_; 1570 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1571 _tmp29_ = sql; 1572 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1573 _tmp30_ = tracker_sparql_pattern_translate_select (_tmp28_, _tmp29_, TRUE, TRUE, &_inner_error_); 1574 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1575 select_context = _tmp30_; 1576 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1577 if (_inner_error_ != NULL) { 1578 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1579 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 1580 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1581 g_propagate_error (error, _inner_error_); 1582 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1583 _g_object_unref0 (variable); 1584 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1585 return 0; 1586 #line 1587 "tracker-sparql-expression.c" 1587 } else { 1588 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1589 _g_object_unref0 (variable); 1590 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1591 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 1592 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1593 g_clear_error (&_inner_error_); 1594 #line 146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1595 return 0; 1596 #line 1597 "tracker-sparql-expression.c" 1597 } 1598 } 1599 #line 147 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1600 _tmp31_ = sql; 1601 #line 147 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1602 g_string_append (_tmp31_, ")"); 1603 #line 149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1604 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS, &_inner_error_); 1605 #line 149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1606 if (_inner_error_ != NULL) { 1607 #line 149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1608 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 1609 #line 149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1610 g_propagate_error (error, _inner_error_); 1611 #line 149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1612 _tracker_sparql_context_unref0 (select_context); 1613 #line 149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1614 _g_object_unref0 (variable); 1615 #line 149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1616 return 0; 1617 #line 1618 "tracker-sparql-expression.c" 1618 } else { 1619 #line 149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1620 _tracker_sparql_context_unref0 (select_context); 1621 #line 149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1622 _g_object_unref0 (variable); 1623 #line 149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1624 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 1625 #line 149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1626 g_clear_error (&_inner_error_); 1627 #line 149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1628 return 0; 1629 #line 1630 "tracker-sparql-expression.c" 1630 } 1631 } 1632 #line 150 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1633 _tmp32_ = select_context; 1634 #line 150 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1635 _tmp33_ = _tmp32_->type; 1636 #line 150 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1637 type = _tmp33_; 1638 #line 142 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1639 _tracker_sparql_context_unref0 (select_context); 1640 #line 1641 "tracker-sparql-expression.c" 1641 } else { 1642 GString* _tmp34_; 1643 TrackerPropertyType _tmp35_ = 0; 1644 TrackerPropertyType _tmp36_; 1645 gboolean _tmp37_ = FALSE; 1646 gboolean _tmp38_; 1647 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1648 _tmp34_ = sql; 1649 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1650 _tmp35_ = tracker_sparql_expression_translate_expression (self, _tmp34_, &_inner_error_); 1651 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1652 _tmp36_ = _tmp35_; 1653 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1654 if (_inner_error_ != NULL) { 1655 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1656 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 1657 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1658 g_propagate_error (error, _inner_error_); 1659 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1660 _g_object_unref0 (variable); 1661 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1662 return 0; 1663 #line 1664 "tracker-sparql-expression.c" 1664 } else { 1665 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1666 _g_object_unref0 (variable); 1667 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1668 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 1669 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1670 g_clear_error (&_inner_error_); 1671 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1672 return 0; 1673 #line 1674 "tracker-sparql-expression.c" 1674 } 1675 } 1676 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1677 type = _tmp36_; 1678 #line 153 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1679 _tmp37_ = tracker_sparql_expression_accept (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS, &_inner_error_); 1680 #line 153 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1681 _tmp38_ = _tmp37_; 1682 #line 153 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1683 if (_inner_error_ != NULL) { 1684 #line 153 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1685 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 1686 #line 153 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1687 g_propagate_error (error, _inner_error_); 1688 #line 153 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1689 _g_object_unref0 (variable); 1690 #line 153 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1691 return 0; 1692 #line 1693 "tracker-sparql-expression.c" 1693 } else { 1694 #line 153 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1695 _g_object_unref0 (variable); 1696 #line 153 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1697 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 1698 #line 153 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1699 g_clear_error (&_inner_error_); 1700 #line 153 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1701 return 0; 1702 #line 1703 "tracker-sparql-expression.c" 1703 } 1704 } 1705 #line 153 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1706 if (_tmp38_) { 1707 #line 1708 "tracker-sparql-expression.c" 1708 } else { 1709 #line 159 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1710 expect_close_parens = TRUE; 1711 #line 1712 "tracker-sparql-expression.c" 1712 } 1713 } 1714 } else { 1715 GString* _tmp39_; 1716 TrackerPropertyType _tmp40_ = 0; 1717 TrackerPropertyType _tmp41_; 1718 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1719 _tmp39_ = sql; 1720 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1721 _tmp40_ = tracker_sparql_expression_translate_expression (self, _tmp39_, &_inner_error_); 1722 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1723 _tmp41_ = _tmp40_; 1724 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1725 if (_inner_error_ != NULL) { 1726 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1727 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 1728 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1729 g_propagate_error (error, _inner_error_); 1730 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1731 _g_object_unref0 (variable); 1732 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1733 return 0; 1734 #line 1735 "tracker-sparql-expression.c" 1735 } else { 1736 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1737 _g_object_unref0 (variable); 1738 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1739 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 1740 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1741 g_clear_error (&_inner_error_); 1742 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1743 return 0; 1744 #line 1745 "tracker-sparql-expression.c" 1745 } 1746 } 1747 #line 165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1748 type = _tmp41_; 1749 #line 1750 "tracker-sparql-expression.c" 1750 } 1751 } 1752 #line 168 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1753 _tmp42_ = subquery; 1754 #line 168 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1755 if (!_tmp42_) { 1756 #line 1757 "tracker-sparql-expression.c" 1757 GString* _tmp43_; 1758 TrackerPropertyType _tmp44_; 1759 glong _tmp45_; 1760 #line 169 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1761 _tmp43_ = sql; 1762 #line 169 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1763 _tmp44_ = type; 1764 #line 169 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1765 _tmp45_ = begin; 1766 #line 169 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1767 tracker_sparql_expression_convert_expression_to_string (_tmp43_, _tmp44_, _tmp45_); 1768 #line 1769 "tracker-sparql-expression.c" 1769 } 1770 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1771 _tmp46_ = tracker_sparql_expression_accept (self, TRACKER_SPARQL_TOKEN_TYPE_AS, &_inner_error_); 1772 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1773 _tmp47_ = _tmp46_; 1774 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1775 if (_inner_error_ != NULL) { 1776 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1777 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 1778 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1779 g_propagate_error (error, _inner_error_); 1780 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1781 _g_object_unref0 (variable); 1782 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1783 return 0; 1784 #line 1785 "tracker-sparql-expression.c" 1785 } else { 1786 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1787 _g_object_unref0 (variable); 1788 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1789 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 1790 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1791 g_clear_error (&_inner_error_); 1792 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1793 return 0; 1794 #line 1795 "tracker-sparql-expression.c" 1795 } 1796 } 1797 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1798 if (_tmp47_) { 1799 #line 1800 "tracker-sparql-expression.c" 1800 gboolean _tmp48_ = FALSE; 1801 gboolean _tmp49_; 1802 GString* _tmp64_; 1803 TrackerSparqlVariable* _tmp65_; 1804 const gchar* _tmp66_; 1805 const gchar* _tmp67_; 1806 gboolean _tmp68_; 1807 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1808 _tmp48_ = tracker_sparql_expression_accept (self, TRACKER_SPARQL_TOKEN_TYPE_PN_PREFIX, &_inner_error_); 1809 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1810 _tmp49_ = _tmp48_; 1811 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1812 if (_inner_error_ != NULL) { 1813 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1814 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 1815 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1816 g_propagate_error (error, _inner_error_); 1817 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1818 _g_object_unref0 (variable); 1819 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1820 return 0; 1821 #line 1822 "tracker-sparql-expression.c" 1822 } else { 1823 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1824 _g_object_unref0 (variable); 1825 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1826 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 1827 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1828 g_clear_error (&_inner_error_); 1829 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1830 return 0; 1831 #line 1832 "tracker-sparql-expression.c" 1832 } 1833 } 1834 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1835 if (_tmp49_) { 1836 #line 1837 "tracker-sparql-expression.c" 1837 TrackerSparqlContext* _tmp50_; 1838 TrackerSparqlContext* _tmp51_; 1839 gchar* _tmp52_ = NULL; 1840 gchar* _tmp53_; 1841 TrackerSparqlVariable* _tmp54_ = NULL; 1842 TrackerSparqlVariable* _tmp55_; 1843 #line 176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1844 _tmp50_ = tracker_sparql_expression_get_context (self); 1845 #line 176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1846 _tmp51_ = _tmp50_; 1847 #line 176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1848 _tmp52_ = tracker_sparql_expression_get_last_string (self, 0); 1849 #line 176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1850 _tmp53_ = _tmp52_; 1851 #line 176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1852 _tmp54_ = tracker_sparql_context_get_variable (_tmp51_, _tmp53_); 1853 #line 176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1854 _tmp55_ = _g_object_ref0 (_tmp54_); 1855 #line 176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1856 _g_object_unref0 (variable); 1857 #line 176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1858 variable = _tmp55_; 1859 #line 176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1860 _g_free0 (_tmp53_); 1861 #line 1862 "tracker-sparql-expression.c" 1862 } else { 1863 TrackerSparqlContext* _tmp56_; 1864 TrackerSparqlContext* _tmp57_; 1865 gchar* _tmp58_ = NULL; 1866 gchar* _tmp59_; 1867 gchar* _tmp60_ = NULL; 1868 gchar* _tmp61_; 1869 TrackerSparqlVariable* _tmp62_ = NULL; 1870 TrackerSparqlVariable* _tmp63_; 1871 #line 180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1872 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_VAR, &_inner_error_); 1873 #line 180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1874 if (_inner_error_ != NULL) { 1875 #line 180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1876 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 1877 #line 180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1878 g_propagate_error (error, _inner_error_); 1879 #line 180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1880 _g_object_unref0 (variable); 1881 #line 180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1882 return 0; 1883 #line 1884 "tracker-sparql-expression.c" 1884 } else { 1885 #line 180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1886 _g_object_unref0 (variable); 1887 #line 180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1888 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 1889 #line 180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1890 g_clear_error (&_inner_error_); 1891 #line 180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1892 return 0; 1893 #line 1894 "tracker-sparql-expression.c" 1894 } 1895 } 1896 #line 181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1897 _tmp56_ = tracker_sparql_expression_get_context (self); 1898 #line 181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1899 _tmp57_ = _tmp56_; 1900 #line 181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1901 _tmp58_ = tracker_sparql_expression_get_last_string (self, 0); 1902 #line 181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1903 _tmp59_ = _tmp58_; 1904 #line 181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1905 _tmp60_ = string_substring (_tmp59_, (glong) 1, (glong) (-1)); 1906 #line 181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1907 _tmp61_ = _tmp60_; 1908 #line 181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1909 _tmp62_ = tracker_sparql_context_get_variable (_tmp57_, _tmp61_); 1910 #line 181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1911 _tmp63_ = _g_object_ref0 (_tmp62_); 1912 #line 181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1913 _g_object_unref0 (variable); 1914 #line 181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1915 variable = _tmp63_; 1916 #line 181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1917 _g_free0 (_tmp61_); 1918 #line 181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1919 _g_free0 (_tmp59_); 1920 #line 1921 "tracker-sparql-expression.c" 1921 } 1922 #line 183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1923 _tmp64_ = sql; 1924 #line 183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1925 _tmp65_ = variable; 1926 #line 183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1927 _tmp66_ = tracker_sparql_variable_get_sql_expression (_tmp65_); 1928 #line 183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1929 _tmp67_ = _tmp66_; 1930 #line 183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1931 g_string_append_printf (_tmp64_, " AS %s", _tmp67_); 1932 #line 184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1933 as_handled = TRUE; 1934 #line 186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1935 _tmp68_ = subquery; 1936 #line 186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1937 if (_tmp68_) { 1938 #line 1939 "tracker-sparql-expression.c" 1939 TrackerSparqlVariableBinding* _tmp69_; 1940 TrackerSparqlVariableBinding* binding; 1941 TrackerSparqlVariableBinding* _tmp70_; 1942 TrackerPropertyType _tmp71_; 1943 TrackerSparqlVariableBinding* _tmp72_; 1944 TrackerSparqlVariable* _tmp73_; 1945 TrackerSparqlVariableBinding* _tmp74_; 1946 TrackerSparqlVariable* _tmp75_; 1947 const gchar* _tmp76_; 1948 const gchar* _tmp77_; 1949 TrackerSparqlPattern* _tmp78_; 1950 TrackerSparqlPattern* _tmp79_; 1951 GString* _tmp80_; 1952 GString* _tmp81_; 1953 TrackerSparqlVariableBinding* _tmp82_; 1954 #line 187 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1955 _tmp69_ = tracker_sparql_variable_binding_new (); 1956 #line 187 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1957 binding = _tmp69_; 1958 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1959 _tmp70_ = binding; 1960 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1961 _tmp71_ = type; 1962 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1963 ((TrackerSparqlDataBinding*) _tmp70_)->data_type = _tmp71_; 1964 #line 189 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1965 _tmp72_ = binding; 1966 #line 189 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1967 _tmp73_ = variable; 1968 #line 189 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1969 _tmp72_->variable = _tmp73_; 1970 #line 190 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1971 _tmp74_ = binding; 1972 #line 190 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1973 _tmp75_ = variable; 1974 #line 190 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1975 _tmp76_ = tracker_sparql_variable_get_sql_expression (_tmp75_); 1976 #line 190 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1977 _tmp77_ = _tmp76_; 1978 #line 190 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1979 tracker_sparql_data_binding_set_sql_expression ((TrackerSparqlDataBinding*) _tmp74_, _tmp77_); 1980 #line 191 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1981 _tmp78_ = tracker_sparql_expression_get_pattern (self); 1982 #line 191 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1983 _tmp79_ = _tmp78_; 1984 #line 191 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1985 _tmp80_ = g_string_new (""); 1986 #line 191 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1987 _tmp81_ = _tmp80_; 1988 #line 191 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1989 _tmp82_ = binding; 1990 #line 191 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1991 tracker_sparql_pattern_add_variable_binding (_tmp79_, _tmp81_, _tmp82_, TRACKER_SPARQL_VARIABLE_STATE_BOUND); 1992 #line 191 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1993 _g_string_free0 (_tmp81_); 1994 #line 186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 1995 _g_object_unref0 (binding); 1996 #line 1997 "tracker-sparql-expression.c" 1997 } 1998 } 1999 #line 195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2000 _tmp83_ = tracker_sparql_expression_get_pattern (self); 2001 #line 195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2002 _tmp84_ = _tmp83_; 2003 #line 195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2004 _tmp85_ = _tmp84_->fts_subject; 2005 #line 195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2006 if (_tmp85_ != NULL) { 2007 #line 2008 "tracker-sparql-expression.c" 2008 TrackerSparqlVariable* _tmp86_; 2009 const gchar* _tmp94_; 2010 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2011 _tmp86_ = variable; 2012 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2013 if (_tmp86_ == NULL) { 2014 #line 2015 "tracker-sparql-expression.c" 2015 TrackerSparqlContext* _tmp87_; 2016 TrackerSparqlContext* _tmp88_; 2017 gint _tmp89_; 2018 gchar* _tmp90_ = NULL; 2019 gchar* _tmp91_; 2020 TrackerSparqlVariable* _tmp92_ = NULL; 2021 TrackerSparqlVariable* _tmp93_; 2022 #line 199 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2023 _tmp87_ = tracker_sparql_expression_get_context (self); 2024 #line 199 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2025 _tmp88_ = _tmp87_; 2026 #line 199 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2027 _tmp89_ = variable_index; 2028 #line 199 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2029 _tmp90_ = g_strdup_printf ("var%d", _tmp89_ + 1); 2030 #line 199 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2031 _tmp91_ = _tmp90_; 2032 #line 199 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2033 _tmp92_ = tracker_sparql_context_get_variable (_tmp88_, _tmp91_); 2034 #line 199 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2035 _tmp93_ = _g_object_ref0 (_tmp92_); 2036 #line 199 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2037 _g_object_unref0 (variable); 2038 #line 199 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2039 variable = _tmp93_; 2040 #line 199 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2041 _g_free0 (_tmp91_); 2042 #line 2043 "tracker-sparql-expression.c" 2043 } 2044 #line 202 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2045 _tmp94_ = self->priv->fts_sql; 2046 #line 202 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2047 if (_tmp94_ == NULL) { 2048 #line 2049 "tracker-sparql-expression.c" 2049 TrackerSparqlPattern* _tmp95_; 2050 TrackerSparqlPattern* _tmp96_; 2051 TrackerSparqlPattern* _tmp97_; 2052 TrackerSparqlPattern* _tmp98_; 2053 gchar** _tmp99_; 2054 gint _tmp99__length1;
variable '_tmp99__length1' set but not used
(emitted by gcc)
2055 TrackerSparqlVariable* _tmp100_; 2056 const gchar* _tmp101_; 2057 const gchar* _tmp102_; 2058 gchar* _tmp103_; 2059 gboolean _tmp104_; 2060 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2061 _tmp95_ = tracker_sparql_expression_get_pattern (self); 2062 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2063 _tmp96_ = _tmp95_; 2064 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2065 _tmp97_ = tracker_sparql_expression_get_pattern (self); 2066 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2067 _tmp98_ = _tmp97_; 2068 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2069 _tmp99_ = _tmp98_->fts_variables;
Value stored to '_tmp99_' is never read
(emitted by clang-analyzer)

TODO: a detailed trace is available in the data model (not yet rendered in this report)

2070 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2071 _tmp99__length1 = _tmp98_->fts_variables_length1;
Value stored to '_tmp99__length1' is never read
(emitted by clang-analyzer)

TODO: a detailed trace is available in the data model (not yet rendered in this report)

2072 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2073 _tmp100_ = variable; 2074 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2075 _tmp101_ = tracker_sparql_variable_get_sql_expression (_tmp100_); 2076 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2077 _tmp102_ = _tmp101_; 2078 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2079 _tmp103_ = g_strdup (_tmp102_); 2080 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2081 _vala_array_add1 (&_tmp96_->fts_variables, &_tmp96_->fts_variables_length1, &_tmp96_->_fts_variables_size_, _tmp103_); 2082 #line 205 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2083 _tmp104_ = as_handled; 2084 #line 205 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2085 if (_tmp104_ == FALSE) { 2086 #line 2087 "tracker-sparql-expression.c" 2087 GString* _tmp105_; 2088 TrackerSparqlVariable* _tmp106_; 2089 const gchar* _tmp107_; 2090 const gchar* _tmp108_; 2091 #line 206 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2092 _tmp105_ = sql; 2093 #line 206 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2094 _tmp106_ = variable; 2095 #line 206 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2096 _tmp107_ = tracker_sparql_variable_get_sql_expression (_tmp106_); 2097 #line 206 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2098 _tmp108_ = _tmp107_; 2099 #line 206 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2100 g_string_append_printf (_tmp105_, " AS %s", _tmp108_); 2101 #line 2102 "tracker-sparql-expression.c" 2102 } 2103 } else { 2104 TrackerSparqlPattern* _tmp109_; 2105 TrackerSparqlPattern* _tmp110_; 2106 TrackerSparqlPattern* _tmp111_; 2107 TrackerSparqlPattern* _tmp112_; 2108 gchar** _tmp113_; 2109 gint _tmp113__length1; 2110 const gchar* _tmp114_; 2111 gchar* _tmp115_; 2112 TrackerSparqlPattern* _tmp116_; 2113 TrackerSparqlPattern* _tmp117_; 2114 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2115 _tmp109_ = tracker_sparql_expression_get_pattern (self); 2116 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2117 _tmp110_ = _tmp109_; 2118 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2119 _tmp111_ = tracker_sparql_expression_get_pattern (self); 2120 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2121 _tmp112_ = _tmp111_; 2122 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2123 _tmp113_ = _tmp112_->fts_variables;
Value stored to '_tmp113_' is never read
(emitted by clang-analyzer)

TODO: a detailed trace is available in the data model (not yet rendered in this report)

2124 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2125 _tmp113__length1 = _tmp112_->fts_variables_length1;
Value stored to '_tmp113__length1' is never read
(emitted by clang-analyzer)

TODO: a detailed trace is available in the data model (not yet rendered in this report)

2126 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2127 _tmp114_ = self->priv->fts_sql; 2128 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2129 _tmp115_ = g_strdup (_tmp114_); 2130 #line 209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2131 _vala_array_add2 (&_tmp110_->fts_variables, &_tmp110_->fts_variables_length1, &_tmp110_->_fts_variables_size_, _tmp115_); 2132 #line 210 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2133 _tmp116_ = tracker_sparql_expression_get_pattern (self); 2134 #line 210 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2135 _tmp117_ = _tmp116_; 2136 #line 210 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2137 _tmp117_->queries_fts_data = TRUE; 2138 #line 2139 "tracker-sparql-expression.c" 2139 } 2140 } 2141 #line 214 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2142 _tmp118_ = expect_close_parens; 2143 #line 214 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2144 if (_tmp118_) { 2145 #line 215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2146 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS, &_inner_error_); 2147 #line 215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2148 if (_inner_error_ != NULL) { 2149 #line 215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2150 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2151 #line 215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2152 g_propagate_error (error, _inner_error_); 2153 #line 215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2154 _g_object_unref0 (variable); 2155 #line 215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2156 return 0; 2157 #line 2158 "tracker-sparql-expression.c" 2158 } else { 2159 #line 215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2160 _g_object_unref0 (variable); 2161 #line 215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2162 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2163 #line 215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2164 g_clear_error (&_inner_error_); 2165 #line 215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2166 return 0; 2167 #line 2168 "tracker-sparql-expression.c" 2168 } 2169 } 2170 } 2171 #line 218 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2172 _tmp119_ = variable; 2173 #line 218 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2174 if (_tmp119_ != NULL) { 2175 #line 2176 "tracker-sparql-expression.c" 2176 TrackerSparqlContext* _tmp120_; 2177 TrackerSparqlContext* _tmp121_; 2178 GHashTable* _tmp122_; 2179 TrackerSparqlVariable* _tmp123_; 2180 gconstpointer _tmp124_ = NULL; 2181 gint state; 2182 gint _tmp125_; 2183 TrackerSparqlContext* _tmp126_; 2184 TrackerSparqlContext* _tmp127_; 2185 GHashTable* _tmp128_; 2186 TrackerSparqlVariable* _tmp129_; 2187 TrackerSparqlVariable* _tmp130_; 2188 gint _tmp131_; 2189 TrackerSparqlContext* _tmp132_; 2190 TrackerSparqlContext* _tmp133_; 2191 TrackerSparqlContext* _tmp134_; 2192 TrackerSparqlContext* _tmp135_; 2193 gchar** _tmp136_; 2194 gint _tmp136__length1; 2195 TrackerSparqlVariable* _tmp137_; 2196 const gchar* _tmp138_; 2197 const gchar* _tmp139_; 2198 gchar* _tmp140_; 2199 #line 219 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2200 _tmp120_ = tracker_sparql_expression_get_context (self); 2201 #line 219 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2202 _tmp121_ = _tmp120_; 2203 #line 219 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2204 _tmp122_ = _tmp121_->var_set; 2205 #line 219 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2206 _tmp123_ = variable; 2207 #line 219 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2208 _tmp124_ = g_hash_table_lookup (_tmp122_, _tmp123_); 2209 #line 219 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2210 state = (gint) ((gintptr) _tmp124_); 2211 #line 220 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2212 _tmp125_ = state; 2213 #line 220 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2214 if (_tmp125_ == 0) { 2215 #line 221 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2216 state = (gint) TRACKER_SPARQL_VARIABLE_STATE_BOUND; 2217 #line 2218 "tracker-sparql-expression.c" 2218 } 2219 #line 223 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2220 _tmp126_ = tracker_sparql_expression_get_context (self); 2221 #line 223 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2222 _tmp127_ = _tmp126_; 2223 #line 223 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2224 _tmp128_ = _tmp127_->select_var_set; 2225 #line 223 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2226 _tmp129_ = variable; 2227 #line 223 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2228 _tmp130_ = _g_object_ref0 (_tmp129_); 2229 #line 223 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2230 _tmp131_ = state; 2231 #line 223 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2232 g_hash_table_insert (_tmp128_, _tmp130_, (gpointer) ((gintptr) _tmp131_)); 2233 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2234 _tmp132_ = tracker_sparql_expression_get_context (self); 2235 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2236 _tmp133_ = _tmp132_; 2237 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2238 _tmp134_ = tracker_sparql_expression_get_context (self); 2239 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2240 _tmp135_ = _tmp134_; 2241 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2242 _tmp136_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp135_, TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContext)->variable_names;
Value stored to '_tmp136_' is never read
(emitted by clang-analyzer)

TODO: a detailed trace is available in the data model (not yet rendered in this report)

2243 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2244 _tmp136__length1 = G_TYPE_CHECK_INSTANCE_CAST (_tmp135_, TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContext)->variable_names_length1;
Value stored to '_tmp136__length1' is never read
(emitted by clang-analyzer)

TODO: a detailed trace is available in the data model (not yet rendered in this report)

2245 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2246 _tmp137_ = variable; 2247 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2248 _tmp138_ = tracker_sparql_variable_get_name (_tmp137_); 2249 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2250 _tmp139_ = _tmp138_; 2251 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2252 _tmp140_ = g_strdup (_tmp139_); 2253 #line 225 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2254 _vala_array_add3 (&G_TYPE_CHECK_INSTANCE_CAST (_tmp133_, TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContext)->variable_names, &G_TYPE_CHECK_INSTANCE_CAST (_tmp133_, TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContext)->variable_names_length1, &G_TYPE_CHECK_INSTANCE_CAST (_tmp133_, TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContext)->_variable_names_size_, _tmp140_); 2255 #line 2256 "tracker-sparql-expression.c" 2256 } else { 2257 TrackerSparqlContext* _tmp141_; 2258 TrackerSparqlContext* _tmp142_; 2259 TrackerSparqlContext* _tmp143_; 2260 TrackerSparqlContext* _tmp144_; 2261 gchar** _tmp145_; 2262 gint _tmp145__length1; 2263 gint _tmp146_; 2264 gchar* _tmp147_ = NULL; 2265 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2266 _tmp141_ = tracker_sparql_expression_get_context (self); 2267 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2268 _tmp142_ = _tmp141_; 2269 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2270 _tmp143_ = tracker_sparql_expression_get_context (self); 2271 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2272 _tmp144_ = _tmp143_; 2273 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2274 _tmp145_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp144_, TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContext)->variable_names;
Value stored to '_tmp145_' is never read
(emitted by clang-analyzer)

TODO: a detailed trace is available in the data model (not yet rendered in this report)

2275 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2276 _tmp145__length1 = G_TYPE_CHECK_INSTANCE_CAST (_tmp144_, TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContext)->variable_names_length1;
Value stored to '_tmp145__length1' is never read
(emitted by clang-analyzer)

TODO: a detailed trace is available in the data model (not yet rendered in this report)

2277 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2278 _tmp146_ = variable_index; 2279 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2280 _tmp147_ = g_strdup_printf ("var%d", _tmp146_ + 1); 2281 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2282 _vala_array_add4 (&G_TYPE_CHECK_INSTANCE_CAST (_tmp142_, TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContext)->variable_names, &G_TYPE_CHECK_INSTANCE_CAST (_tmp142_, TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContext)->variable_names_length1, &G_TYPE_CHECK_INSTANCE_CAST (_tmp142_, TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContext)->_variable_names_size_, _tmp147_); 2283 #line 2284 "tracker-sparql-expression.c" 2284 } 2285 #line 230 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2286 _g_free0 (self->priv->fts_sql); 2287 #line 230 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2288 self->priv->fts_sql = NULL; 2289 #line 232 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2290 result = type; 2291 #line 232 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2292 _g_object_unref0 (variable); 2293 #line 232 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2294 return result; 2295 #line 2296 "tracker-sparql-expression.c" 2296 } 2297 2298 2299 static void tracker_sparql_expression_translate_expression_as_order_condition (TrackerSparqlExpression* self, GString* sql, GError** error) { 2300 GString* _tmp0_; 2301 gssize _tmp1_; 2302 glong begin; 2303 GString* _tmp2_; 2304 TrackerPropertyType _tmp3_ = 0; 2305 TrackerPropertyType _tmp4_; 2306 GError * _inner_error_ = NULL; 2307 #line 235 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2308 g_return_if_fail (self != NULL); 2309 #line 235 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2310 g_return_if_fail (sql != NULL); 2311 #line 236 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2312 _tmp0_ = sql; 2313 #line 236 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2314 _tmp1_ = _tmp0_->len; 2315 #line 236 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2316 begin = (glong) _tmp1_; 2317 #line 237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2318 _tmp2_ = sql; 2319 #line 237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2320 _tmp3_ = tracker_sparql_expression_translate_expression (self, _tmp2_, &_inner_error_); 2321 #line 237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2322 _tmp4_ = _tmp3_; 2323 #line 237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2324 if (_inner_error_ != NULL) { 2325 #line 237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2326 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2327 #line 237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2328 g_propagate_error (error, _inner_error_); 2329 #line 237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2330 return; 2331 #line 2332 "tracker-sparql-expression.c" 2332 } else { 2333 #line 237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2334 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2335 #line 237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2336 g_clear_error (&_inner_error_); 2337 #line 237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2338 return; 2339 #line 2340 "tracker-sparql-expression.c" 2340 } 2341 } 2342 #line 237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2343 if (_tmp4_ == TRACKER_PROPERTY_TYPE_RESOURCE) { 2344 #line 2345 "tracker-sparql-expression.c" 2345 GString* _tmp5_; 2346 GString* _tmp6_; 2347 #line 239 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2348 _tmp5_ = sql; 2349 #line 239 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2350 g_string_insert (_tmp5_, (gssize) begin, "(SELECT Uri FROM Resource WHERE ID = "); 2351 #line 240 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2352 _tmp6_ = sql; 2353 #line 240 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2354 g_string_append (_tmp6_, ")"); 2355 #line 2356 "tracker-sparql-expression.c" 2356 } 2357 } 2358 2359 2360 void tracker_sparql_expression_translate_order_condition (TrackerSparqlExpression* self, GString* sql, GError** error) { 2361 gboolean _tmp0_ = FALSE; 2362 gboolean _tmp1_; 2363 GError * _inner_error_ = NULL; 2364 #line 244 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2365 g_return_if_fail (self != NULL); 2366 #line 244 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2367 g_return_if_fail (sql != NULL); 2368 #line 245 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2369 _tmp0_ = tracker_sparql_expression_accept (self, TRACKER_SPARQL_TOKEN_TYPE_ASC, &_inner_error_); 2370 #line 245 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2371 _tmp1_ = _tmp0_; 2372 #line 245 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2373 if (_inner_error_ != NULL) { 2374 #line 245 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2375 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2376 #line 245 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2377 g_propagate_error (error, _inner_error_); 2378 #line 245 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2379 return; 2380 #line 2381 "tracker-sparql-expression.c" 2381 } else { 2382 #line 245 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2383 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2384 #line 245 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2385 g_clear_error (&_inner_error_); 2386 #line 245 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2387 return; 2388 #line 2389 "tracker-sparql-expression.c" 2389 } 2390 } 2391 #line 245 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2392 if (_tmp1_) { 2393 #line 2394 "tracker-sparql-expression.c" 2394 GString* _tmp2_; 2395 GString* _tmp3_; 2396 #line 246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2397 _tmp2_ = sql; 2398 #line 246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2399 tracker_sparql_expression_translate_expression_as_order_condition (self, _tmp2_, &_inner_error_); 2400 #line 246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2401 if (_inner_error_ != NULL) { 2402 #line 246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2403 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2404 #line 246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2405 g_propagate_error (error, _inner_error_); 2406 #line 246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2407 return; 2408 #line 2409 "tracker-sparql-expression.c" 2409 } else { 2410 #line 246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2411 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2412 #line 246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2413 g_clear_error (&_inner_error_); 2414 #line 246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2415 return; 2416 #line 2417 "tracker-sparql-expression.c" 2417 } 2418 } 2419 #line 247 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2420 _tmp3_ = sql; 2421 #line 247 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2422 g_string_append (_tmp3_, " ASC"); 2423 #line 2424 "tracker-sparql-expression.c" 2424 } else { 2425 gboolean _tmp4_ = FALSE; 2426 gboolean _tmp5_; 2427 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2428 _tmp4_ = tracker_sparql_expression_accept (self, TRACKER_SPARQL_TOKEN_TYPE_DESC, &_inner_error_); 2429 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2430 _tmp5_ = _tmp4_; 2431 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2432 if (_inner_error_ != NULL) { 2433 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2434 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2435 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2436 g_propagate_error (error, _inner_error_); 2437 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2438 return; 2439 #line 2440 "tracker-sparql-expression.c" 2440 } else { 2441 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2442 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2443 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2444 g_clear_error (&_inner_error_); 2445 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2446 return; 2447 #line 2448 "tracker-sparql-expression.c" 2448 } 2449 } 2450 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2451 if (_tmp5_) { 2452 #line 2453 "tracker-sparql-expression.c" 2453 GString* _tmp6_; 2454 GString* _tmp7_; 2455 #line 249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2456 _tmp6_ = sql; 2457 #line 249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2458 tracker_sparql_expression_translate_expression_as_order_condition (self, _tmp6_, &_inner_error_); 2459 #line 249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2460 if (_inner_error_ != NULL) { 2461 #line 249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2462 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2463 #line 249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2464 g_propagate_error (error, _inner_error_); 2465 #line 249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2466 return; 2467 #line 2468 "tracker-sparql-expression.c" 2468 } else { 2469 #line 249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2470 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2471 #line 249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2472 g_clear_error (&_inner_error_); 2473 #line 249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2474 return; 2475 #line 2476 "tracker-sparql-expression.c" 2476 } 2477 } 2478 #line 250 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2479 _tmp7_ = sql; 2480 #line 250 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2481 g_string_append (_tmp7_, " DESC"); 2482 #line 2483 "tracker-sparql-expression.c" 2483 } else { 2484 GString* _tmp8_; 2485 #line 252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2486 _tmp8_ = sql; 2487 #line 252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2488 tracker_sparql_expression_translate_expression_as_order_condition (self, _tmp8_, &_inner_error_); 2489 #line 252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2490 if (_inner_error_ != NULL) { 2491 #line 252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2492 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2493 #line 252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2494 g_propagate_error (error, _inner_error_); 2495 #line 252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2496 return; 2497 #line 2498 "tracker-sparql-expression.c" 2498 } else { 2499 #line 252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2500 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2501 #line 252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2502 g_clear_error (&_inner_error_); 2503 #line 252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2504 return; 2505 #line 2506 "tracker-sparql-expression.c" 2506 } 2507 } 2508 } 2509 } 2510 } 2511 2512 2513 static void tracker_sparql_expression_translate_bound_call (TrackerSparqlExpression* self, GString* sql, GError** error) { 2514 GString* _tmp0_; 2515 GString* _tmp1_; 2516 GString* _tmp2_; 2517 GError * _inner_error_ = NULL; 2518 #line 256 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2519 g_return_if_fail (self != NULL); 2520 #line 256 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2521 g_return_if_fail (sql != NULL); 2522 #line 257 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2523 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_BOUND, &_inner_error_); 2524 #line 257 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2525 if (_inner_error_ != NULL) { 2526 #line 257 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2527 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2528 #line 257 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2529 g_propagate_error (error, _inner_error_); 2530 #line 257 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2531 return; 2532 #line 2533 "tracker-sparql-expression.c" 2533 } else { 2534 #line 257 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2535 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2536 #line 257 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2537 g_clear_error (&_inner_error_); 2538 #line 257 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2539 return; 2540 #line 2541 "tracker-sparql-expression.c" 2541 } 2542 } 2543 #line 258 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2544 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS, &_inner_error_); 2545 #line 258 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2546 if (_inner_error_ != NULL) { 2547 #line 258 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2548 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2549 #line 258 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2550 g_propagate_error (error, _inner_error_); 2551 #line 258 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2552 return; 2553 #line 2554 "tracker-sparql-expression.c" 2554 } else { 2555 #line 258 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2556 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2557 #line 258 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2558 g_clear_error (&_inner_error_); 2559 #line 258 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2560 return; 2561 #line 2562 "tracker-sparql-expression.c" 2562 } 2563 } 2564 #line 259 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2565 _tmp0_ = sql; 2566 #line 259 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2567 g_string_append (_tmp0_, "("); 2568 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2569 _tmp1_ = sql; 2570 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2571 tracker_sparql_expression_translate_expression (self, _tmp1_, &_inner_error_); 2572 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2573 if (_inner_error_ != NULL) { 2574 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2575 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2576 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2577 g_propagate_error (error, _inner_error_); 2578 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2579 return; 2580 #line 2581 "tracker-sparql-expression.c" 2581 } else { 2582 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2583 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2584 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2585 g_clear_error (&_inner_error_); 2586 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2587 return; 2588 #line 2589 "tracker-sparql-expression.c" 2589 } 2590 } 2591 #line 261 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2592 _tmp2_ = sql; 2593 #line 261 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2594 g_string_append (_tmp2_, " IS NOT NULL)"); 2595 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2596 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS, &_inner_error_); 2597 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2598 if (_inner_error_ != NULL) { 2599 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2600 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2601 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2602 g_propagate_error (error, _inner_error_); 2603 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2604 return; 2605 #line 2606 "tracker-sparql-expression.c" 2606 } else { 2607 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2608 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2609 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2610 g_clear_error (&_inner_error_); 2611 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2612 return; 2613 #line 2614 "tracker-sparql-expression.c" 2614 } 2615 } 2616 } 2617 2618 2619 static TrackerPropertyType tracker_sparql_expression_translate_if_call (TrackerSparqlExpression* self, GString* sql, GError** error) { 2620 TrackerPropertyType result = 0; 2621 GString* _tmp0_; 2622 GString* _tmp1_; 2623 GString* _tmp2_; 2624 GString* _tmp3_; 2625 TrackerPropertyType _tmp4_ = 0; 2626 TrackerPropertyType type; 2627 GString* _tmp5_; 2628 GString* _tmp6_; 2629 GString* _tmp7_; 2630 GError * _inner_error_ = NULL; 2631 #line 265 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2632 g_return_val_if_fail (self != NULL, 0); 2633 #line 265 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2634 g_return_val_if_fail (sql != NULL, 0); 2635 #line 266 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2636 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_IF, &_inner_error_); 2637 #line 266 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2638 if (_inner_error_ != NULL) { 2639 #line 266 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2640 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2641 #line 266 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2642 g_propagate_error (error, _inner_error_); 2643 #line 266 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2644 return 0; 2645 #line 2646 "tracker-sparql-expression.c" 2646 } else { 2647 #line 266 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2648 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2649 #line 266 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2650 g_clear_error (&_inner_error_); 2651 #line 266 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2652 return 0; 2653 #line 2654 "tracker-sparql-expression.c" 2654 } 2655 } 2656 #line 267 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2657 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS, &_inner_error_); 2658 #line 267 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2659 if (_inner_error_ != NULL) { 2660 #line 267 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2661 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2662 #line 267 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2663 g_propagate_error (error, _inner_error_); 2664 #line 267 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2665 return 0; 2666 #line 2667 "tracker-sparql-expression.c" 2667 } else { 2668 #line 267 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2669 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2670 #line 267 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2671 g_clear_error (&_inner_error_); 2672 #line 267 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2673 return 0; 2674 #line 2675 "tracker-sparql-expression.c" 2675 } 2676 } 2677 #line 270 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2678 _tmp0_ = sql; 2679 #line 270 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2680 g_string_append (_tmp0_, "(CASE "); 2681 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2682 _tmp1_ = sql; 2683 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2684 tracker_sparql_expression_translate_expression (self, _tmp1_, &_inner_error_); 2685 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2686 if (_inner_error_ != NULL) { 2687 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2688 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2689 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2690 g_propagate_error (error, _inner_error_); 2691 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2692 return 0; 2693 #line 2694 "tracker-sparql-expression.c" 2694 } else { 2695 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2696 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2697 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2698 g_clear_error (&_inner_error_); 2699 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2700 return 0; 2701 #line 2702 "tracker-sparql-expression.c" 2702 } 2703 } 2704 #line 274 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2705 _tmp2_ = sql; 2706 #line 274 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2707 g_string_append (_tmp2_, " WHEN 1 THEN "); 2708 #line 275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2709 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_COMMA, &_inner_error_); 2710 #line 275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2711 if (_inner_error_ != NULL) { 2712 #line 275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2713 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2714 #line 275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2715 g_propagate_error (error, _inner_error_); 2716 #line 275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2717 return 0; 2718 #line 2719 "tracker-sparql-expression.c" 2719 } else { 2720 #line 275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2721 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2722 #line 275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2723 g_clear_error (&_inner_error_); 2724 #line 275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2725 return 0; 2726 #line 2727 "tracker-sparql-expression.c" 2727 } 2728 } 2729 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2730 _tmp3_ = sql; 2731 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2732 _tmp4_ = tracker_sparql_expression_translate_expression (self, _tmp3_, &_inner_error_); 2733 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2734 type = _tmp4_; 2735 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2736 if (_inner_error_ != NULL) { 2737 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2738 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2739 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2740 g_propagate_error (error, _inner_error_); 2741 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2742 return 0; 2743 #line 2744 "tracker-sparql-expression.c" 2744 } else { 2745 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2746 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2747 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2748 g_clear_error (&_inner_error_); 2749 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2750 return 0; 2751 #line 2752 "tracker-sparql-expression.c" 2752 } 2753 } 2754 #line 279 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2755 _tmp5_ = sql; 2756 #line 279 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2757 g_string_append (_tmp5_, " WHEN 0 THEN "); 2758 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2759 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_COMMA, &_inner_error_); 2760 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2761 if (_inner_error_ != NULL) { 2762 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2763 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2764 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2765 g_propagate_error (error, _inner_error_); 2766 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2767 return 0; 2768 #line 2769 "tracker-sparql-expression.c" 2769 } else { 2770 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2771 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2772 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2773 g_clear_error (&_inner_error_); 2774 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2775 return 0; 2776 #line 2777 "tracker-sparql-expression.c" 2777 } 2778 } 2779 #line 281 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2780 _tmp6_ = sql; 2781 #line 281 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2782 tracker_sparql_expression_translate_expression (self, _tmp6_, &_inner_error_); 2783 #line 281 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2784 if (_inner_error_ != NULL) { 2785 #line 281 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2786 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2787 #line 281 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2788 g_propagate_error (error, _inner_error_); 2789 #line 281 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2790 return 0; 2791 #line 2792 "tracker-sparql-expression.c" 2792 } else { 2793 #line 281 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2794 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2795 #line 281 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2796 g_clear_error (&_inner_error_); 2797 #line 281 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2798 return 0; 2799 #line 2800 "tracker-sparql-expression.c" 2800 } 2801 } 2802 #line 283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2803 _tmp7_ = sql; 2804 #line 283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2805 g_string_append (_tmp7_, " ELSE NULL END)"); 2806 #line 285 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2807 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS, &_inner_error_); 2808 #line 285 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2809 if (_inner_error_ != NULL) { 2810 #line 285 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2811 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2812 #line 285 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2813 g_propagate_error (error, _inner_error_); 2814 #line 285 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2815 return 0; 2816 #line 2817 "tracker-sparql-expression.c" 2817 } else { 2818 #line 285 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2819 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2820 #line 285 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2821 g_clear_error (&_inner_error_); 2822 #line 285 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2823 return 0; 2824 #line 2825 "tracker-sparql-expression.c" 2825 } 2826 } 2827 #line 287 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2828 result = type; 2829 #line 287 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2830 return result; 2831 #line 2832 "tracker-sparql-expression.c" 2832 } 2833 2834 2835 static void tracker_sparql_expression_translate_regex (TrackerSparqlExpression* self, GString* sql, GError** error) { 2836 GString* _tmp0_; 2837 GString* _tmp1_; 2838 GString* _tmp2_; 2839 gchar* _tmp3_ = NULL; 2840 gchar* _tmp4_; 2841 GString* _tmp5_; 2842 gchar* _tmp6_; 2843 gchar* _tmp7_ = NULL; 2844 gchar* _tmp8_; 2845 GString* _tmp9_; 2846 gboolean _tmp10_ = FALSE; 2847 gboolean _tmp11_; 2848 GString* _tmp19_; 2849 GError * _inner_error_ = NULL; 2850 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2851 g_return_if_fail (self != NULL); 2852 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2853 g_return_if_fail (sql != NULL); 2854 #line 291 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2855 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_REGEX, &_inner_error_); 2856 #line 291 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2857 if (_inner_error_ != NULL) { 2858 #line 291 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2859 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2860 #line 291 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2861 g_propagate_error (error, _inner_error_); 2862 #line 291 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2863 return; 2864 #line 2865 "tracker-sparql-expression.c" 2865 } else { 2866 #line 291 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2867 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2868 #line 291 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2869 g_clear_error (&_inner_error_); 2870 #line 291 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2871 return; 2872 #line 2873 "tracker-sparql-expression.c" 2873 } 2874 } 2875 #line 292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2876 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS, &_inner_error_); 2877 #line 292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2878 if (_inner_error_ != NULL) { 2879 #line 292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2880 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2881 #line 292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2882 g_propagate_error (error, _inner_error_); 2883 #line 292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2884 return; 2885 #line 2886 "tracker-sparql-expression.c" 2886 } else { 2887 #line 292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2888 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2889 #line 292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2890 g_clear_error (&_inner_error_); 2891 #line 292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2892 return; 2893 #line 2894 "tracker-sparql-expression.c" 2894 } 2895 } 2896 #line 293 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2897 _tmp0_ = sql; 2898 #line 293 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2899 g_string_append (_tmp0_, "SparqlRegex("); 2900 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2901 _tmp1_ = sql; 2902 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2903 tracker_sparql_expression_translate_expression_as_string (self, _tmp1_, &_inner_error_); 2904 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2905 if (_inner_error_ != NULL) { 2906 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2907 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2908 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2909 g_propagate_error (error, _inner_error_); 2910 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2911 return; 2912 #line 2913 "tracker-sparql-expression.c" 2913 } else { 2914 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2915 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2916 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2917 g_clear_error (&_inner_error_); 2918 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2919 return; 2920 #line 2921 "tracker-sparql-expression.c" 2921 } 2922 } 2923 #line 295 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2924 _tmp2_ = sql; 2925 #line 295 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2926 g_string_append (_tmp2_, ", "); 2927 #line 296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2928 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_COMMA, &_inner_error_); 2929 #line 296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2930 if (_inner_error_ != NULL) { 2931 #line 296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2932 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2933 #line 296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2934 g_propagate_error (error, _inner_error_); 2935 #line 296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2936 return; 2937 #line 2938 "tracker-sparql-expression.c" 2938 } else { 2939 #line 296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2940 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2941 #line 296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2942 g_clear_error (&_inner_error_); 2943 #line 296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2944 return; 2945 #line 2946 "tracker-sparql-expression.c" 2946 } 2947 } 2948 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2949 _tmp3_ = tracker_sparql_expression_parse_string_literal (self, NULL, &_inner_error_); 2950 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2951 _tmp4_ = _tmp3_; 2952 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2953 if (_inner_error_ != NULL) { 2954 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2955 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2956 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2957 g_propagate_error (error, _inner_error_); 2958 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2959 return; 2960 #line 2961 "tracker-sparql-expression.c" 2961 } else { 2962 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2963 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 2964 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2965 g_clear_error (&_inner_error_); 2966 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2967 return; 2968 #line 2969 "tracker-sparql-expression.c" 2969 } 2970 } 2971 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2972 _tmp5_ = sql; 2973 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2974 _tmp6_ = _tmp4_; 2975 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2976 _tmp7_ = tracker_sparql_expression_escape_sql_string_literal (self, _tmp6_); 2977 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2978 _tmp8_ = _tmp7_; 2979 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2980 g_string_append (_tmp5_, _tmp8_); 2981 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2982 _g_free0 (_tmp8_); 2983 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2984 _g_free0 (_tmp6_); 2985 #line 301 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2986 _tmp9_ = sql; 2987 #line 301 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2988 g_string_append (_tmp9_, ", "); 2989 #line 302 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2990 _tmp10_ = tracker_sparql_expression_accept (self, TRACKER_SPARQL_TOKEN_TYPE_COMMA, &_inner_error_); 2991 #line 302 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2992 _tmp11_ = _tmp10_; 2993 #line 302 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2994 if (_inner_error_ != NULL) { 2995 #line 302 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2996 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 2997 #line 302 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 2998 g_propagate_error (error, _inner_error_); 2999 #line 302 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3000 return; 3001 #line 3002 "tracker-sparql-expression.c" 3002 } else { 3003 #line 302 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3004 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3005 #line 302 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3006 g_clear_error (&_inner_error_); 3007 #line 302 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3008 return; 3009 #line 3010 "tracker-sparql-expression.c" 3010 } 3011 } 3012 #line 302 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3013 if (_tmp11_) { 3014 #line 3015 "tracker-sparql-expression.c" 3015 gchar* _tmp12_ = NULL; 3016 gchar* _tmp13_; 3017 GString* _tmp14_; 3018 gchar* _tmp15_; 3019 gchar* _tmp16_ = NULL; 3020 gchar* _tmp17_; 3021 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3022 _tmp12_ = tracker_sparql_expression_parse_string_literal (self, NULL, &_inner_error_); 3023 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3024 _tmp13_ = _tmp12_; 3025 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3026 if (_inner_error_ != NULL) { 3027 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3028 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3029 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3030 g_propagate_error (error, _inner_error_); 3031 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3032 return; 3033 #line 3034 "tracker-sparql-expression.c" 3034 } else { 3035 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3036 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3037 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3038 g_clear_error (&_inner_error_); 3039 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3040 return; 3041 #line 3042 "tracker-sparql-expression.c" 3042 } 3043 } 3044 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3045 _tmp14_ = sql; 3046 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3047 _tmp15_ = _tmp13_; 3048 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3049 _tmp16_ = tracker_sparql_expression_escape_sql_string_literal (self, _tmp15_); 3050 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3051 _tmp17_ = _tmp16_; 3052 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3053 g_string_append (_tmp14_, _tmp17_); 3054 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3055 _g_free0 (_tmp17_); 3056 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3057 _g_free0 (_tmp15_); 3058 #line 3059 "tracker-sparql-expression.c" 3059 } else { 3060 GString* _tmp18_; 3061 #line 307 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3062 _tmp18_ = sql; 3063 #line 307 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3064 g_string_append (_tmp18_, "''"); 3065 #line 3066 "tracker-sparql-expression.c" 3066 } 3067 #line 309 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3068 _tmp19_ = sql; 3069 #line 309 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3070 g_string_append (_tmp19_, ")"); 3071 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3072 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS, &_inner_error_); 3073 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3074 if (_inner_error_ != NULL) { 3075 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3076 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3077 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3078 g_propagate_error (error, _inner_error_); 3079 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3080 return; 3081 #line 3082 "tracker-sparql-expression.c" 3082 } else { 3083 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3084 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3085 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3086 g_clear_error (&_inner_error_); 3087 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3088 return; 3089 #line 3090 "tracker-sparql-expression.c" 3090 } 3091 } 3092 } 3093 3094 3095 static void tracker_sparql_expression_translate_exists (TrackerSparqlExpression* self, GString* sql, GError** error) { 3096 GString* _tmp0_; 3097 TrackerSparqlPattern* _tmp1_; 3098 TrackerSparqlPattern* _tmp2_; 3099 GString* _tmp3_; 3100 GString* _tmp4_; 3101 GError * _inner_error_ = NULL; 3102 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3103 g_return_if_fail (self != NULL); 3104 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3105 g_return_if_fail (sql != NULL); 3106 #line 314 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3107 _tmp0_ = sql; 3108 #line 314 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3109 g_string_append (_tmp0_, "("); 3110 #line 315 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3111 _tmp1_ = tracker_sparql_expression_get_pattern (self); 3112 #line 315 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3113 _tmp2_ = _tmp1_; 3114 #line 315 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3115 _tmp3_ = sql; 3116 #line 315 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3117 tracker_sparql_pattern_translate_exists (_tmp2_, _tmp3_, &_inner_error_); 3118 #line 315 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3119 if (_inner_error_ != NULL) { 3120 #line 315 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3121 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3122 #line 315 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3123 g_propagate_error (error, _inner_error_); 3124 #line 315 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3125 return; 3126 #line 3127 "tracker-sparql-expression.c" 3127 } else { 3128 #line 315 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3129 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3130 #line 315 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3131 g_clear_error (&_inner_error_); 3132 #line 315 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3133 return; 3134 #line 3135 "tracker-sparql-expression.c" 3135 } 3136 } 3137 #line 316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3138 _tmp4_ = sql; 3139 #line 316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3140 g_string_append (_tmp4_, ")"); 3141 #line 3142 "tracker-sparql-expression.c" 3142 } 3143 3144 3145 void tracker_sparql_expression_append_expression_as_string (GString* sql, const gchar* expression, TrackerPropertyType type) { 3146 GString* _tmp0_; 3147 gssize _tmp1_; 3148 glong begin; 3149 GString* _tmp2_; 3150 const gchar* _tmp3_; 3151 GString* _tmp4_; 3152 TrackerPropertyType _tmp5_; 3153 #line 319 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3154 g_return_if_fail (sql != NULL); 3155 #line 319 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3156 g_return_if_fail (expression != NULL); 3157 #line 320 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3158 _tmp0_ = sql; 3159 #line 320 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3160 _tmp1_ = _tmp0_->len; 3161 #line 320 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3162 begin = (glong) _tmp1_; 3163 #line 321 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3164 _tmp2_ = sql; 3165 #line 321 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3166 _tmp3_ = expression; 3167 #line 321 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3168 g_string_append (_tmp2_, _tmp3_); 3169 #line 322 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3170 _tmp4_ = sql; 3171 #line 322 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3172 _tmp5_ = type; 3173 #line 322 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3174 tracker_sparql_expression_convert_expression_to_string (_tmp4_, _tmp5_, begin); 3175 #line 3176 "tracker-sparql-expression.c" 3176 } 3177 3178 3179 static void tracker_sparql_expression_convert_expression_to_string (GString* sql, TrackerPropertyType type, glong begin) { 3180 TrackerPropertyType _tmp0_; 3181 #line 325 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3182 g_return_if_fail (sql != NULL); 3183 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3184 _tmp0_ = type; 3185 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3186 switch (_tmp0_) { 3187 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3188 case TRACKER_PROPERTY_TYPE_STRING: 3189 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3190 case TRACKER_PROPERTY_TYPE_INTEGER: 3191 #line 3192 "tracker-sparql-expression.c" 3192 { 3193 #line 332 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3194 break; 3195 #line 3196 "tracker-sparql-expression.c" 3196 } 3197 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3198 case TRACKER_PROPERTY_TYPE_RESOURCE: 3199 #line 3200 "tracker-sparql-expression.c" 3200 { 3201 GString* _tmp1_; 3202 glong _tmp2_; 3203 GString* _tmp3_; 3204 #line 335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3205 _tmp1_ = sql; 3206 #line 335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3207 _tmp2_ = begin; 3208 #line 335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3209 g_string_insert (_tmp1_, (gssize) _tmp2_, "(SELECT Uri FROM Resource WHERE ID = "); 3210 #line 336 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3211 _tmp3_ = sql; 3212 #line 336 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3213 g_string_append (_tmp3_, ")"); 3214 #line 337 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3215 break; 3216 #line 3217 "tracker-sparql-expression.c" 3217 } 3218 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3219 case TRACKER_PROPERTY_TYPE_BOOLEAN: 3220 #line 3221 "tracker-sparql-expression.c" 3221 { 3222 GString* _tmp4_; 3223 glong _tmp5_; 3224 GString* _tmp6_; 3225 #line 340 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3226 _tmp4_ = sql; 3227 #line 340 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3228 _tmp5_ = begin; 3229 #line 340 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3230 g_string_insert (_tmp4_, (gssize) _tmp5_, "CASE "); 3231 #line 341 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3232 _tmp6_ = sql; 3233 #line 341 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3234 g_string_append (_tmp6_, " WHEN 1 THEN 'true' WHEN 0 THEN 'false' ELSE NULL END"); 3235 #line 342 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3236 break; 3237 #line 3238 "tracker-sparql-expression.c" 3238 } 3239 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3240 case TRACKER_PROPERTY_TYPE_DATE: 3241 #line 3242 "tracker-sparql-expression.c" 3242 { 3243 GString* _tmp7_; 3244 glong _tmp8_; 3245 GString* _tmp9_; 3246 #line 345 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3247 _tmp7_ = sql; 3248 #line 345 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3249 _tmp8_ = begin; 3250 #line 345 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3251 g_string_insert (_tmp7_, (gssize) _tmp8_, "strftime (\"%Y-%m-%d\", "); 3252 #line 346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3253 _tmp9_ = sql; 3254 #line 346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3255 g_string_append (_tmp9_, ", \"unixepoch\")"); 3256 #line 347 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3257 break; 3258 #line 3259 "tracker-sparql-expression.c" 3259 } 3260 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3261 case TRACKER_PROPERTY_TYPE_DATETIME: 3262 #line 3263 "tracker-sparql-expression.c" 3263 { 3264 GString* _tmp10_; 3265 glong _tmp11_; 3266 GString* _tmp12_; 3267 #line 350 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3268 _tmp10_ = sql; 3269 #line 350 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3270 _tmp11_ = begin; 3271 #line 350 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3272 g_string_insert (_tmp10_, (gssize) _tmp11_, "SparqlFormatTime ("); 3273 #line 351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3274 _tmp12_ = sql; 3275 #line 351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3276 g_string_append (_tmp12_, ")"); 3277 #line 352 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3278 break; 3279 #line 3280 "tracker-sparql-expression.c" 3280 } 3281 default: 3282 { 3283 GString* _tmp13_; 3284 glong _tmp14_; 3285 GString* _tmp15_; 3286 #line 355 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3287 _tmp13_ = sql; 3288 #line 355 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3289 _tmp14_ = begin; 3290 #line 355 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3291 g_string_insert (_tmp13_, (gssize) _tmp14_, "CAST ("); 3292 #line 356 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3293 _tmp15_ = sql; 3294 #line 356 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3295 g_string_append (_tmp15_, " AS TEXT)"); 3296 #line 357 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3297 break; 3298 #line 3299 "tracker-sparql-expression.c" 3299 } 3300 } 3301 } 3302 3303 3304 static void tracker_sparql_expression_translate_expression_as_string (TrackerSparqlExpression* self, GString* sql, GError** error) { 3305 TrackerSparqlTokenType _tmp0_ = 0; 3306 GError * _inner_error_ = NULL; 3307 #line 361 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3308 g_return_if_fail (self != NULL); 3309 #line 361 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3310 g_return_if_fail (sql != NULL); 3311 #line 362 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3312 _tmp0_ = tracker_sparql_expression_current (self); 3313 #line 362 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3314 switch (_tmp0_) { 3315 #line 362 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3316 case TRACKER_SPARQL_TOKEN_TYPE_IRI_REF: 3317 #line 362 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3318 case TRACKER_SPARQL_TOKEN_TYPE_PN_PREFIX: 3319 #line 362 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3320 case TRACKER_SPARQL_TOKEN_TYPE_COLON: 3321 #line 3322 "tracker-sparql-expression.c" 3322 { 3323 TrackerSparqlLiteralBinding* _tmp1_; 3324 TrackerSparqlLiteralBinding* binding; 3325 gboolean is_var = FALSE;
variable 'is_var' set but not used
(emitted by gcc)
3326 TrackerSparqlPattern* _tmp2_; 3327 TrackerSparqlPattern* _tmp3_; 3328 gboolean _tmp4_ = FALSE; 3329 gchar* _tmp5_ = NULL; 3330 gchar* _tmp6_; 3331 TrackerSparqlLiteralBinding* _tmp7_; 3332 gboolean _tmp8_ = FALSE; 3333 gboolean _tmp9_; 3334 #line 367 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3335 _tmp1_ = tracker_sparql_literal_binding_new (); 3336 #line 367 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3337 binding = _tmp1_; 3338 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3339 _tmp2_ = tracker_sparql_expression_get_pattern (self); 3340 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3341 _tmp3_ = _tmp2_; 3342 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3343 _tmp5_ = tracker_sparql_pattern_parse_var_or_term (_tmp3_, NULL, &_tmp4_, &_inner_error_); 3344 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3345 is_var = _tmp4_;
Value stored to 'is_var' is never read
(emitted by clang-analyzer)

TODO: a detailed trace is available in the data model (not yet rendered in this report)

3346 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3347 _tmp6_ = _tmp5_; 3348 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3349 if (_inner_error_ != NULL) { 3350 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3351 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3352 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3353 g_propagate_error (error, _inner_error_); 3354 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3355 _g_object_unref0 (binding); 3356 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3357 return; 3358 #line 3359 "tracker-sparql-expression.c" 3359 } else { 3360 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3361 _g_object_unref0 (binding); 3362 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3363 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3364 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3365 g_clear_error (&_inner_error_); 3366 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3367 return; 3368 #line 3369 "tracker-sparql-expression.c" 3369 } 3370 } 3371 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3372 _tmp7_ = binding; 3373 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3374 _g_free0 (_tmp7_->literal); 3375 #line 369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3376 _tmp7_->literal = _tmp6_; 3377 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3378 _tmp8_ = tracker_sparql_expression_accept (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS, &_inner_error_); 3379 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3380 _tmp9_ = _tmp8_; 3381 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3382 if (_inner_error_ != NULL) { 3383 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3384 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3385 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3386 g_propagate_error (error, _inner_error_); 3387 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3388 _g_object_unref0 (binding); 3389 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3390 return; 3391 #line 3392 "tracker-sparql-expression.c" 3392 } else { 3393 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3394 _g_object_unref0 (binding); 3395 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3396 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3397 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3398 g_clear_error (&_inner_error_); 3399 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3400 return; 3401 #line 3402 "tracker-sparql-expression.c" 3402 } 3403 } 3404 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3405 if (_tmp9_) { 3406 #line 3407 "tracker-sparql-expression.c" 3407 GString* _tmp10_; 3408 gssize _tmp11_; 3409 glong begin; 3410 GString* _tmp12_; 3411 TrackerSparqlLiteralBinding* _tmp13_; 3412 const gchar* _tmp14_; 3413 TrackerPropertyType _tmp15_ = 0; 3414 TrackerPropertyType type; 3415 GString* _tmp16_; 3416 TrackerPropertyType _tmp17_; 3417 glong _tmp18_; 3418 #line 372 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3419 _tmp10_ = sql; 3420 #line 372 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3421 _tmp11_ = _tmp10_->len; 3422 #line 372 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3423 begin = (glong) _tmp11_; 3424 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3425 _tmp12_ = sql; 3426 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3427 _tmp13_ = binding; 3428 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3429 _tmp14_ = _tmp13_->literal; 3430 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3431 _tmp15_ = tracker_sparql_expression_translate_function (self, _tmp12_, _tmp14_, &_inner_error_); 3432 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3433 type = _tmp15_; 3434 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3435 if (_inner_error_ != NULL) { 3436 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3437 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3438 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3439 g_propagate_error (error, _inner_error_); 3440 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3441 _g_object_unref0 (binding); 3442 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3443 return; 3444 #line 3445 "tracker-sparql-expression.c" 3445 } else { 3446 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3447 _g_object_unref0 (binding); 3448 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3449 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3450 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3451 g_clear_error (&_inner_error_); 3452 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3453 return; 3454 #line 3455 "tracker-sparql-expression.c" 3455 } 3456 } 3457 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3458 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS, &_inner_error_); 3459 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3460 if (_inner_error_ != NULL) { 3461 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3462 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3463 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3464 g_propagate_error (error, _inner_error_); 3465 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3466 _g_object_unref0 (binding); 3467 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3468 return; 3469 #line 3470 "tracker-sparql-expression.c" 3470 } else { 3471 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3472 _g_object_unref0 (binding); 3473 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3474 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3475 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3476 g_clear_error (&_inner_error_); 3477 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3478 return; 3479 #line 3480 "tracker-sparql-expression.c" 3480 } 3481 } 3482 #line 375 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3483 _tmp16_ = sql; 3484 #line 375 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3485 _tmp17_ = type; 3486 #line 375 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3487 _tmp18_ = begin; 3488 #line 375 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3489 tracker_sparql_expression_convert_expression_to_string (_tmp16_, _tmp17_, _tmp18_); 3490 #line 3491 "tracker-sparql-expression.c" 3491 } else { 3492 GString* _tmp19_; 3493 TrackerSparqlQuery* _tmp20_; 3494 TrackerSparqlLiteralBinding* _tmp21_; 3495 TrackerSparqlLiteralBinding* _tmp22_; 3496 #line 377 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3497 _tmp19_ = sql; 3498 #line 377 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3499 g_string_append (_tmp19_, "?"); 3500 #line 378 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3501 _tmp20_ = self->priv->query; 3502 #line 378 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3503 _tmp21_ = binding; 3504 #line 378 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3505 _tmp22_ = _g_object_ref0 (_tmp21_); 3506 #line 378 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3507 _tmp20_->bindings = g_list_append (_tmp20_->bindings, _tmp22_); 3508 #line 3509 "tracker-sparql-expression.c" 3509 } 3510 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3511 _g_object_unref0 (binding); 3512 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3513 break; 3514 #line 3515 "tracker-sparql-expression.c" 3515 } 3516 default: 3517 { 3518 GString* _tmp23_; 3519 gssize _tmp24_; 3520 glong begin; 3521 GString* _tmp25_; 3522 TrackerPropertyType _tmp26_ = 0; 3523 TrackerPropertyType type; 3524 GString* _tmp27_; 3525 TrackerPropertyType _tmp28_; 3526 glong _tmp29_; 3527 #line 382 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3528 _tmp23_ = sql; 3529 #line 382 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3530 _tmp24_ = _tmp23_->len; 3531 #line 382 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3532 begin = (glong) _tmp24_; 3533 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3534 _tmp25_ = sql; 3535 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3536 _tmp26_ = tracker_sparql_expression_translate_expression (self, _tmp25_, &_inner_error_); 3537 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3538 type = _tmp26_; 3539 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3540 if (_inner_error_ != NULL) { 3541 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3542 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3543 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3544 g_propagate_error (error, _inner_error_); 3545 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3546 return; 3547 #line 3548 "tracker-sparql-expression.c" 3548 } else { 3549 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3550 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3551 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3552 g_clear_error (&_inner_error_); 3553 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3554 return; 3555 #line 3556 "tracker-sparql-expression.c" 3556 } 3557 } 3558 #line 384 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3559 _tmp27_ = sql; 3560 #line 384 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3561 _tmp28_ = type; 3562 #line 384 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3563 _tmp29_ = begin; 3564 #line 384 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3565 tracker_sparql_expression_convert_expression_to_string (_tmp27_, _tmp28_, _tmp29_); 3566 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3567 break; 3568 #line 3569 "tracker-sparql-expression.c" 3569 } 3570 } 3571 } 3572 3573 3574 static void tracker_sparql_expression_translate_str (TrackerSparqlExpression* self, GString* sql, GError** error) { 3575 GString* _tmp0_; 3576 GError * _inner_error_ = NULL; 3577 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3578 g_return_if_fail (self != NULL); 3579 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3580 g_return_if_fail (sql != NULL); 3581 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3582 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_STR, &_inner_error_); 3583 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3584 if (_inner_error_ != NULL) { 3585 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3586 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3587 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3588 g_propagate_error (error, _inner_error_); 3589 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3590 return; 3591 #line 3592 "tracker-sparql-expression.c" 3592 } else { 3593 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3594 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3595 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3596 g_clear_error (&_inner_error_); 3597 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3598 return; 3599 #line 3600 "tracker-sparql-expression.c" 3600 } 3601 } 3602 #line 391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3603 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS, &_inner_error_); 3604 #line 391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3605 if (_inner_error_ != NULL) { 3606 #line 391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3607 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3608 #line 391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3609 g_propagate_error (error, _inner_error_); 3610 #line 391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3611 return; 3612 #line 3613 "tracker-sparql-expression.c" 3613 } else { 3614 #line 391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3615 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3616 #line 391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3617 g_clear_error (&_inner_error_); 3618 #line 391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3619 return; 3620 #line 3621 "tracker-sparql-expression.c" 3621 } 3622 } 3623 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3624 _tmp0_ = sql; 3625 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3626 tracker_sparql_expression_translate_expression_as_string (self, _tmp0_, &_inner_error_); 3627 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3628 if (_inner_error_ != NULL) { 3629 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3630 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3631 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3632 g_propagate_error (error, _inner_error_); 3633 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3634 return; 3635 #line 3636 "tracker-sparql-expression.c" 3636 } else { 3637 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3638 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3639 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3640 g_clear_error (&_inner_error_); 3641 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3642 return; 3643 #line 3644 "tracker-sparql-expression.c" 3644 } 3645 } 3646 #line 395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3647 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS, &_inner_error_); 3648 #line 395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3649 if (_inner_error_ != NULL) { 3650 #line 395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3651 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3652 #line 395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3653 g_propagate_error (error, _inner_error_); 3654 #line 395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3655 return; 3656 #line 3657 "tracker-sparql-expression.c" 3657 } else { 3658 #line 395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3659 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3660 #line 395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3661 g_clear_error (&_inner_error_); 3662 #line 395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3663 return; 3664 #line 3665 "tracker-sparql-expression.c" 3665 } 3666 } 3667 } 3668 3669 3670 static void tracker_sparql_expression_translate_isuri (TrackerSparqlExpression* self, GString* sql, GError** error) { 3671 gboolean _tmp0_ = FALSE; 3672 gboolean _tmp1_; 3673 GString* _tmp2_; 3674 TrackerSparqlLiteralBinding* _tmp3_; 3675 TrackerSparqlLiteralBinding* new_binding; 3676 TrackerSparqlLiteralBinding* _tmp4_; 3677 TrackerSparqlTokenType _tmp5_ = 0; 3678 TrackerSparqlQuery* _tmp17_; 3679 TrackerSparqlLiteralBinding* _tmp18_; 3680 TrackerSparqlLiteralBinding* _tmp19_; 3681 GError * _inner_error_ = NULL; 3682 #line 398 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3683 g_return_if_fail (self != NULL); 3684 #line 398 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3685 g_return_if_fail (sql != NULL); 3686 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3687 _tmp0_ = tracker_sparql_expression_accept (self, TRACKER_SPARQL_TOKEN_TYPE_ISURI, &_inner_error_); 3688 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3689 _tmp1_ = _tmp0_; 3690 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3691 if (_inner_error_ != NULL) { 3692 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3693 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3694 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3695 g_propagate_error (error, _inner_error_); 3696 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3697 return; 3698 #line 3699 "tracker-sparql-expression.c" 3699 } else { 3700 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3701 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3702 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3703 g_clear_error (&_inner_error_); 3704 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3705 return; 3706 #line 3707 "tracker-sparql-expression.c" 3707 } 3708 } 3709 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3710 if (!_tmp1_) { 3711 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3712 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_ISIRI, &_inner_error_); 3713 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3714 if (_inner_error_ != NULL) { 3715 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3716 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3717 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3718 g_propagate_error (error, _inner_error_); 3719 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3720 return; 3721 #line 3722 "tracker-sparql-expression.c" 3722 } else { 3723 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3724 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3725 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3726 g_clear_error (&_inner_error_); 3727 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3728 return; 3729 #line 3730 "tracker-sparql-expression.c" 3730 } 3731 } 3732 } 3733 #line 403 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3734 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS, &_inner_error_); 3735 #line 403 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3736 if (_inner_error_ != NULL) { 3737 #line 403 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3738 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3739 #line 403 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3740 g_propagate_error (error, _inner_error_); 3741 #line 403 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3742 return; 3743 #line 3744 "tracker-sparql-expression.c" 3744 } else { 3745 #line 403 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3746 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3747 #line 403 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3748 g_clear_error (&_inner_error_); 3749 #line 403 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3750 return; 3751 #line 3752 "tracker-sparql-expression.c" 3752 } 3753 } 3754 #line 405 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3755 _tmp2_ = sql; 3756 #line 405 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3757 g_string_append (_tmp2_, "?"); 3758 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3759 _tmp3_ = tracker_sparql_literal_binding_new (); 3760 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3761 new_binding = _tmp3_; 3762 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3763 _tmp4_ = new_binding; 3764 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3765 ((TrackerSparqlDataBinding*) _tmp4_)->data_type = TRACKER_PROPERTY_TYPE_INTEGER; 3766 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3767 _tmp5_ = tracker_sparql_expression_current (self); 3768 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3769 if (_tmp5_ == TRACKER_SPARQL_TOKEN_TYPE_IRI_REF) { 3770 #line 3771 "tracker-sparql-expression.c" 3771 TrackerSparqlLiteralBinding* _tmp6_; 3772 gchar* _tmp7_; 3773 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3774 _tmp6_ = new_binding; 3775 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3776 _tmp7_ = g_strdup ("1"); 3777 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3778 _g_free0 (_tmp6_->literal); 3779 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3780 _tmp6_->literal = _tmp7_; 3781 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3782 tracker_sparql_expression_next (self, &_inner_error_); 3783 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3784 if (_inner_error_ != NULL) { 3785 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3786 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3787 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3788 g_propagate_error (error, _inner_error_); 3789 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3790 _g_object_unref0 (new_binding); 3791 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3792 return; 3793 #line 3794 "tracker-sparql-expression.c" 3794 } else { 3795 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3796 _g_object_unref0 (new_binding); 3797 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3798 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3799 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3800 g_clear_error (&_inner_error_); 3801 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3802 return; 3803 #line 3804 "tracker-sparql-expression.c" 3804 } 3805 } 3806 } else { 3807 GString* _tmp8_; 3808 GString* _tmp9_; 3809 TrackerPropertyType _tmp10_ = 0; 3810 TrackerPropertyType _tmp11_; 3811 TrackerPropertyType _tmp12_; 3812 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3813 _tmp8_ = g_string_new (""); 3814 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3815 _tmp9_ = _tmp8_; 3816 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3817 _tmp10_ = tracker_sparql_expression_translate_expression (self, _tmp9_, &_inner_error_); 3818 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3819 _tmp11_ = _tmp10_; 3820 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3821 _g_string_free0 (_tmp9_); 3822 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3823 _tmp12_ = _tmp11_; 3824 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3825 if (_inner_error_ != NULL) { 3826 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3827 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3828 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3829 g_propagate_error (error, _inner_error_); 3830 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3831 _g_object_unref0 (new_binding); 3832 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3833 return; 3834 #line 3835 "tracker-sparql-expression.c" 3835 } else { 3836 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3837 _g_object_unref0 (new_binding); 3838 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3839 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3840 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3841 g_clear_error (&_inner_error_); 3842 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3843 return; 3844 #line 3845 "tracker-sparql-expression.c" 3845 } 3846 } 3847 #line 412 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3848 if (_tmp12_ == TRACKER_PROPERTY_TYPE_RESOURCE) { 3849 #line 3850 "tracker-sparql-expression.c" 3850 TrackerSparqlLiteralBinding* _tmp13_; 3851 gchar* _tmp14_; 3852 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3853 _tmp13_ = new_binding; 3854 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3855 _tmp14_ = g_strdup ("1"); 3856 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3857 _g_free0 (_tmp13_->literal); 3858 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3859 _tmp13_->literal = _tmp14_; 3860 #line 3861 "tracker-sparql-expression.c" 3861 } else { 3862 TrackerSparqlLiteralBinding* _tmp15_; 3863 gchar* _tmp16_; 3864 #line 415 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3865 _tmp15_ = new_binding; 3866 #line 415 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3867 _tmp16_ = g_strdup ("0"); 3868 #line 415 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3869 _g_free0 (_tmp15_->literal); 3870 #line 415 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3871 _tmp15_->literal = _tmp16_; 3872 #line 3873 "tracker-sparql-expression.c" 3873 } 3874 } 3875 #line 418 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3876 _tmp17_ = self->priv->query; 3877 #line 418 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3878 _tmp18_ = new_binding; 3879 #line 418 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3880 _tmp19_ = _g_object_ref0 (_tmp18_); 3881 #line 418 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3882 _tmp17_->bindings = g_list_append (_tmp17_->bindings, _tmp19_); 3883 #line 420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3884 tracker_sparql_expression_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS, &_inner_error_); 3885 #line 420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3886 if (_inner_error_ != NULL) { 3887 #line 420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3888 if (_inner_error_->domain == TRACKER_SPARQL_ERROR) { 3889 #line 420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3890 g_propagate_error (error, _inner_error_); 3891 #line 420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3892 _g_object_unref0 (new_binding); 3893 #line 420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3894 return; 3895 #line 3896 "tracker-sparql-expression.c" 3896 } else { 3897 #line 420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3898 _g_object_unref0 (new_binding); 3899 #line 420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3900 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); 3901 #line 420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3902 g_clear_error (&_inner_error_); 3903 #line 420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3904 return; 3905 #line 3906 "tracker-sparql-expression.c" 3906 } 3907 } 3908 #line 398 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-expression.vala" 3909 _g_object_unref0 (new_binding); 3910 #line 3911 "tracker-sparql-expression.c" 3911 } 3912 3913 3914 static void tracker_sparql_expression_translate_datatype (TrackerSparqlExpression* self, GString* sql