| Location | Tool | Test ID | Function | Issue | 
|---|---|---|---|---|
| tracker-sparql-pattern.c:799:7 | clang-analyzer | Value stored to 'prop_collection_length1' is never read | ||
| tracker-sparql-pattern.c:1139:8 | clang-analyzer | Value stored to 'prop_collection_length1' is never read | ||
| tracker-sparql-pattern.c:1325:7 | clang-analyzer | Value stored to 'prop_collection_length1' is never read | ||
| tracker-sparql-pattern.c:1393:0 | cppcheck | syntaxError | syntax error | |
| tracker-sparql-pattern.c:2636:11 | gcc | unused-but-set-variable | tracker_sparql_pattern_translate_select | variable '_tmp84__length1' set but not used | 
| tracker-sparql-pattern.c:2727:6 | clang-analyzer | Value stored to '_tmp78_' is never read | ||
| tracker-sparql-pattern.c:2729:6 | clang-analyzer | Value stored to '_tmp78__length1' is never read | ||
| tracker-sparql-pattern.c:2743:6 | clang-analyzer | Value stored to '_tmp84_' is never read | ||
| tracker-sparql-pattern.c:2745:6 | clang-analyzer | Value stored to '_tmp84__length1' is never read | ||
| tracker-sparql-pattern.c:2876:6 | clang-analyzer | Value stored to '_tmp102_' is never read | ||
| tracker-sparql-pattern.c:2878:6 | clang-analyzer | Value stored to '_tmp102__length1' is never read | ||
| tracker-sparql-pattern.c:4343:4 | clang-analyzer | Value stored to 'fts_var_collection_length1' is never read | ||
| tracker-sparql-pattern.c:7950:8 | gcc | unused-variable | tracker_sparql_pattern_is_subclass | unused variable '_superclass_collection_size_' | 
| tracker-sparql-pattern.c:7960:3 | clang-analyzer | Value stored to 'superclass_collection_length1' is never read | ||
| tracker-sparql-pattern.c:9057:2 | gcc | _tracker_sparql_variable_hash_ghash_func | passing argument 1 of 'tracker_sparql_variable_hash' discards 'const' qualifier from pointer target type [enabled by default] | |
| tracker-sparql-pattern.c:9066:2 | gcc | _tracker_sparql_variable_equal_gequal_func | passing argument 1 of 'tracker_sparql_variable_equal' discards 'const' qualifier from pointer target type [enabled by default] | |
| tracker-sparql-pattern.c:10932:12 | gcc | unused-but-set-variable | tracker_sparql_pattern_translate_group_graph_pattern | variable '_tmp273__length1' set but not used | 
| tracker-sparql-pattern.c:10940:7 | clang-analyzer | Value stored to '_tmp273_' is never read | ||
| tracker-sparql-pattern.c:10942:7 | clang-analyzer | Value stored to '_tmp273__length1' is never read | ||
| tracker-sparql-pattern.c:11161:2 | clang-analyzer | Value stored to '_tmp287_' is never read | ||
| tracker-sparql-pattern.c:11189:4 | clang-analyzer | Value stored to 'filter_location_collection_length1' is never read | ||
| tracker-sparql-pattern.c:11193:27 | clang-analyzer | Value stored to 'filter_location' during its initialization is never read | ||
| tracker-sparql-pattern.c:11405:9 | gcc | unused-but-set-variable | tracker_sparql_pattern_translate_group_or_union_graph_pattern | variable '_tmp15__length1' set but not used | 
| tracker-sparql-pattern.c:11467:4 | clang-analyzer | Value stored to '_tmp9_' is never read | ||
| tracker-sparql-pattern.c:11469:4 | clang-analyzer | Value stored to '_tmp9__length1' is never read | ||
| tracker-sparql-pattern.c:11518:4 | clang-analyzer | Value stored to '_tmp15_' is never read | ||
| tracker-sparql-pattern.c:11520:4 | clang-analyzer | Value stored to '_tmp15__length1' is never read | ||
| tracker-sparql-pattern.c:11527:2 | clang-analyzer | Value stored to '_tmp16_' is never read | ||
| tracker-sparql-pattern.c:11550:4 | clang-analyzer | Value stored to 'sub_context_collection_length1' is never read | ||
| tracker-sparql-pattern.c:11610:10 | clang-analyzer | Value stored to '_tmp25_' is never read | ||
| tracker-sparql-pattern.c:11612:10 | clang-analyzer | Value stored to '_tmp25__length1' is never read | ||
| tracker-sparql-pattern.c:11710:6 | clang-analyzer | Value stored to '_tmp40_' is never read | ||
| tracker-sparql-pattern.c:11752:7 | clang-analyzer | Value stored to 'v_collection_length1' is never read | ||
| tracker-sparql-pattern.c:11778:9 | clang-analyzer | Value stored to '_tmp47__length1' is never read | ||
| tracker-sparql-pattern.c:11832:6 | clang-analyzer | Value stored to '_tmp63__length1' is never read | ||
| tracker-sparql-pattern.c:11873:3 | clang-analyzer | Value stored to '_tmp73__length1' is never read | ||
| tracker-sparql-pattern.c:13140:13 | gcc | unused-variable | tracker_sparql_pattern_parse_object | unused variable '_cl_collection_size_' | 
| tracker-sparql-pattern.c:13150:8 | clang-analyzer | Value stored to 'cl_collection_length1' is never read | ||
| tracker-sparql-pattern.c:15056:25 | gcc | unused-but-set-variable | _vala_tracker_sparql_pattern_get_property | variable 'self' set but not used | 
| tracker-sparql-pattern.c:15062:2 | clang-analyzer | Value stored to 'self' is never read | ||
| tracker-sparql-pattern.c:15072:25 | gcc | unused-but-set-variable | _vala_tracker_sparql_pattern_set_property | variable 'self' set but not used | 
| tracker-sparql-pattern.c:15078:2 | clang-analyzer | Value stored to 'self' is never read | 
    1 /* tracker-sparql-pattern.c generated by valac 0.18.1, the Vala compiler
    2  * generated from tracker-sparql-pattern.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-data/tracker-class.h"
   28 #include "libtracker-sparql/tracker-sparql.h"
   29 #include "libtracker-data/tracker-data-query.h"
   30 #include "libtracker-data/tracker-data-update.h"
   31 #include "libtracker-data/tracker-data-backup.h"
   32 #include "libtracker-data/tracker-db-interface.h"
   33 #include "libtracker-data/tracker-db-manager.h"
   34 #include "libtracker-data/tracker-ontologies.h"
   35 #include "libtracker-data/tracker-property.h"
   36 
   37 
   38 #define TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE (tracker_sparql_predicate_variable_get_type ())
   39 #define TRACKER_SPARQL_PREDICATE_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE, TrackerSparqlPredicateVariable))
   40 #define TRACKER_SPARQL_PREDICATE_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE, TrackerSparqlPredicateVariableClass))
   41 #define TRACKER_SPARQL_IS_PREDICATE_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE))
   42 #define TRACKER_SPARQL_IS_PREDICATE_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE))
   43 #define TRACKER_SPARQL_PREDICATE_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE, TrackerSparqlPredicateVariableClass))
   44 
   45 typedef struct _TrackerSparqlPredicateVariable TrackerSparqlPredicateVariable;
   46 typedef struct _TrackerSparqlPredicateVariableClass TrackerSparqlPredicateVariableClass;
   47 typedef struct _TrackerSparqlPredicateVariablePrivate TrackerSparqlPredicateVariablePrivate;
   48 #define _g_free0(var) (var = (g_free (var), NULL))
   49 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
   50 
   51 #define TRACKER_SPARQL_TYPE_QUERY (tracker_sparql_query_get_type ())
   52 #define TRACKER_SPARQL_QUERY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_QUERY, TrackerSparqlQuery))
   53 #define TRACKER_SPARQL_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_QUERY, TrackerSparqlQueryClass))
   54 #define TRACKER_SPARQL_IS_QUERY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_QUERY))
   55 #define TRACKER_SPARQL_IS_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_QUERY))
   56 #define TRACKER_SPARQL_QUERY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_QUERY, TrackerSparqlQueryClass))
   57 
   58 typedef struct _TrackerSparqlQuery TrackerSparqlQuery;
   59 typedef struct _TrackerSparqlQueryClass TrackerSparqlQueryClass;
   60 #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
   61 
   62 #define TRACKER_SPARQL_TYPE_DATA_BINDING (tracker_sparql_data_binding_get_type ())
   63 #define TRACKER_SPARQL_DATA_BINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_DATA_BINDING, TrackerSparqlDataBinding))
   64 #define TRACKER_SPARQL_DATA_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_DATA_BINDING, TrackerSparqlDataBindingClass))
   65 #define TRACKER_SPARQL_IS_DATA_BINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_DATA_BINDING))
   66 #define TRACKER_SPARQL_IS_DATA_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_DATA_BINDING))
   67 #define TRACKER_SPARQL_DATA_BINDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_DATA_BINDING, TrackerSparqlDataBindingClass))
   68 
   69 typedef struct _TrackerSparqlDataBinding TrackerSparqlDataBinding;
   70 typedef struct _TrackerSparqlDataBindingClass TrackerSparqlDataBindingClass;
   71 
   72 #define TRACKER_SPARQL_TYPE_LITERAL_BINDING (tracker_sparql_literal_binding_get_type ())
   73 #define TRACKER_SPARQL_LITERAL_BINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_LITERAL_BINDING, TrackerSparqlLiteralBinding))
   74 #define TRACKER_SPARQL_LITERAL_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_LITERAL_BINDING, TrackerSparqlLiteralBindingClass))
   75 #define TRACKER_SPARQL_IS_LITERAL_BINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_LITERAL_BINDING))
   76 #define TRACKER_SPARQL_IS_LITERAL_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_LITERAL_BINDING))
   77 #define TRACKER_SPARQL_LITERAL_BINDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_LITERAL_BINDING, TrackerSparqlLiteralBindingClass))
   78 
   79 typedef struct _TrackerSparqlLiteralBinding TrackerSparqlLiteralBinding;
   80 typedef struct _TrackerSparqlLiteralBindingClass TrackerSparqlLiteralBindingClass;
   81 typedef struct _TrackerSparqlDataBindingPrivate TrackerSparqlDataBindingPrivate;
   82 
   83 #define TRACKER_SPARQL_TYPE_DATA_TABLE (tracker_sparql_data_table_get_type ())
   84 #define TRACKER_SPARQL_DATA_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_DATA_TABLE, TrackerSparqlDataTable))
   85 #define TRACKER_SPARQL_DATA_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_DATA_TABLE, TrackerSparqlDataTableClass))
   86 #define TRACKER_SPARQL_IS_DATA_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_DATA_TABLE))
   87 #define TRACKER_SPARQL_IS_DATA_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_DATA_TABLE))
   88 #define TRACKER_SPARQL_DATA_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_DATA_TABLE, TrackerSparqlDataTableClass))
   89 
   90 typedef struct _TrackerSparqlDataTable TrackerSparqlDataTable;
   91 typedef struct _TrackerSparqlDataTableClass TrackerSparqlDataTableClass;
   92 typedef struct _TrackerSparqlLiteralBindingPrivate TrackerSparqlLiteralBindingPrivate;
   93 typedef struct _TrackerSparqlQueryPrivate TrackerSparqlQueryPrivate;
   94 
   95 #define TRACKER_SPARQL_TYPE_EXPRESSION (tracker_sparql_expression_get_type ())
   96 #define TRACKER_SPARQL_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_EXPRESSION, TrackerSparqlExpression))
   97 #define TRACKER_SPARQL_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_EXPRESSION, TrackerSparqlExpressionClass))
   98 #define TRACKER_SPARQL_IS_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_EXPRESSION))
   99 #define TRACKER_SPARQL_IS_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_EXPRESSION))
  100 #define TRACKER_SPARQL_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_EXPRESSION, TrackerSparqlExpressionClass))
  101 
  102 typedef struct _TrackerSparqlExpression TrackerSparqlExpression;
  103 typedef struct _TrackerSparqlExpressionClass TrackerSparqlExpressionClass;
  104 
  105 #define TRACKER_SPARQL_TYPE_PATTERN (tracker_sparql_pattern_get_type ())
  106 #define TRACKER_SPARQL_PATTERN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_PATTERN, TrackerSparqlPattern))
  107 #define TRACKER_SPARQL_PATTERN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_PATTERN, TrackerSparqlPatternClass))
  108 #define TRACKER_SPARQL_IS_PATTERN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_PATTERN))
  109 #define TRACKER_SPARQL_IS_PATTERN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_PATTERN))
  110 #define TRACKER_SPARQL_PATTERN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_PATTERN, TrackerSparqlPatternClass))
  111 
  112 typedef struct _TrackerSparqlPattern TrackerSparqlPattern;
  113 typedef struct _TrackerSparqlPatternClass TrackerSparqlPatternClass;
  114 
  115 #define TRACKER_SPARQL_TYPE_CONTEXT (tracker_sparql_context_get_type ())
  116 #define TRACKER_SPARQL_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_CONTEXT, TrackerSparqlContext))
  117 #define TRACKER_SPARQL_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_CONTEXT, TrackerSparqlContextClass))
  118 #define TRACKER_SPARQL_IS_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_CONTEXT))
  119 #define TRACKER_SPARQL_IS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_CONTEXT))
  120 #define TRACKER_SPARQL_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_CONTEXT, TrackerSparqlContextClass))
  121 
  122 typedef struct _TrackerSparqlContext TrackerSparqlContext;
  123 typedef struct _TrackerSparqlContextClass TrackerSparqlContextClass;
  124 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
  125 typedef struct _TrackerSparqlPatternPrivate TrackerSparqlPatternPrivate;
  126 
  127 #define TRACKER_SPARQL_TYPE_VARIABLE (tracker_sparql_variable_get_type ())
  128 #define TRACKER_SPARQL_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_VARIABLE, TrackerSparqlVariable))
  129 #define TRACKER_SPARQL_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_VARIABLE, TrackerSparqlVariableClass))
  130 #define TRACKER_SPARQL_IS_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_VARIABLE))
  131 #define TRACKER_SPARQL_IS_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_VARIABLE))
  132 #define TRACKER_SPARQL_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_VARIABLE, TrackerSparqlVariableClass))
  133 
  134 typedef struct _TrackerSparqlVariable TrackerSparqlVariable;
  135 typedef struct _TrackerSparqlVariableClass TrackerSparqlVariableClass;
  136 
  137 #define TRACKER_SPARQL_PATTERN_TYPE_TRIPLE_CONTEXT (tracker_sparql_pattern_triple_context_get_type ())
  138 #define TRACKER_SPARQL_PATTERN_TRIPLE_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_PATTERN_TYPE_TRIPLE_CONTEXT, TrackerSparqlPatternTripleContext))
  139 #define TRACKER_SPARQL_PATTERN_TRIPLE_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_PATTERN_TYPE_TRIPLE_CONTEXT, TrackerSparqlPatternTripleContextClass))
  140 #define TRACKER_SPARQL_PATTERN_IS_TRIPLE_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_PATTERN_TYPE_TRIPLE_CONTEXT))
  141 #define TRACKER_SPARQL_PATTERN_IS_TRIPLE_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_PATTERN_TYPE_TRIPLE_CONTEXT))
  142 #define TRACKER_SPARQL_PATTERN_TRIPLE_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_PATTERN_TYPE_TRIPLE_CONTEXT, TrackerSparqlPatternTripleContextClass))
  143 
  144 typedef struct _TrackerSparqlPatternTripleContext TrackerSparqlPatternTripleContext;
  145 typedef struct _TrackerSparqlPatternTripleContextClass TrackerSparqlPatternTripleContextClass;
  146 #define _tracker_sparql_context_unref0(var) ((var == NULL) ? NULL : (var = (tracker_sparql_context_unref (var), NULL)))
  147 
  148 #define TRACKER_TYPE_SPARQL_TOKEN_TYPE (tracker_sparql_token_type_get_type ())
  149 
  150 #define TRACKER_TYPE_SOURCE_LOCATION (tracker_source_location_get_type ())
  151 typedef struct _TrackerSourceLocation TrackerSourceLocation;
  152 
  153 #define TRACKER_SPARQL_TYPE_SELECT_CONTEXT (tracker_sparql_select_context_get_type ())
  154 #define TRACKER_SPARQL_SELECT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContext))
  155 #define TRACKER_SPARQL_SELECT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContextClass))
  156 #define TRACKER_SPARQL_IS_SELECT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_SELECT_CONTEXT))
  157 #define TRACKER_SPARQL_IS_SELECT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_SELECT_CONTEXT))
  158 #define TRACKER_SPARQL_SELECT_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_SELECT_CONTEXT, TrackerSparqlSelectContextClass))
  159 
  160 typedef struct _TrackerSparqlSelectContext TrackerSparqlSelectContext;
  161 typedef struct _TrackerSparqlSelectContextClass TrackerSparqlSelectContextClass;
  162 #define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
  163 typedef struct _TrackerSparqlContextPrivate TrackerSparqlContextPrivate;
  164 
  165 #define TRACKER_SPARQL_TYPE_VARIABLE_STATE (tracker_sparql_variable_state_get_type ())
  166 #define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
  167 typedef struct _TrackerSparqlVariablePrivate TrackerSparqlVariablePrivate;
  168 
  169 #define TRACKER_SPARQL_TYPE_VARIABLE_BINDING (tracker_sparql_variable_binding_get_type ())
  170 #define TRACKER_SPARQL_VARIABLE_BINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_VARIABLE_BINDING, TrackerSparqlVariableBinding))
  171 #define TRACKER_SPARQL_VARIABLE_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_VARIABLE_BINDING, TrackerSparqlVariableBindingClass))
  172 #define TRACKER_SPARQL_IS_VARIABLE_BINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_VARIABLE_BINDING))
  173 #define TRACKER_SPARQL_IS_VARIABLE_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_VARIABLE_BINDING))
  174 #define TRACKER_SPARQL_VARIABLE_BINDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_VARIABLE_BINDING, TrackerSparqlVariableBindingClass))
  175 
  176 typedef struct _TrackerSparqlVariableBinding TrackerSparqlVariableBinding;
  177 typedef struct _TrackerSparqlVariableBindingClass TrackerSparqlVariableBindingClass;
  178 typedef struct _TrackerSparqlSelectContextPrivate TrackerSparqlSelectContextPrivate;
  179 typedef struct _TrackerSparqlPatternTripleContextPrivate TrackerSparqlPatternTripleContextPrivate;
  180 
  181 #define TRACKER_SPARQL_TYPE_VARIABLE_BINDING_LIST (tracker_sparql_variable_binding_list_get_type ())
  182 #define TRACKER_SPARQL_VARIABLE_BINDING_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_SPARQL_TYPE_VARIABLE_BINDING_LIST, TrackerSparqlVariableBindingList))
  183 #define TRACKER_SPARQL_VARIABLE_BINDING_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_SPARQL_TYPE_VARIABLE_BINDING_LIST, TrackerSparqlVariableBindingListClass))
  184 #define TRACKER_SPARQL_IS_VARIABLE_BINDING_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_SPARQL_TYPE_VARIABLE_BINDING_LIST))
  185 #define TRACKER_SPARQL_IS_VARIABLE_BINDING_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_SPARQL_TYPE_VARIABLE_BINDING_LIST))
  186 #define TRACKER_SPARQL_VARIABLE_BINDING_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_SPARQL_TYPE_VARIABLE_BINDING_LIST, TrackerSparqlVariableBindingListClass))
  187 
  188 typedef struct _TrackerSparqlVariableBindingList TrackerSparqlVariableBindingList;
  189 typedef struct _TrackerSparqlVariableBindingListClass TrackerSparqlVariableBindingListClass;
  190 typedef struct _TrackerSparqlDataTablePrivate TrackerSparqlDataTablePrivate;
  191 typedef struct _TrackerSparqlVariableBindingListPrivate TrackerSparqlVariableBindingListPrivate;
  192 typedef struct _TrackerSparqlVariableBindingPrivate TrackerSparqlVariableBindingPrivate;
  193 #define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
  194 #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
  195 
  196 struct _TrackerSparqlPredicateVariable {
  197 	GObject parent_instance;
  198 	TrackerSparqlPredicateVariablePrivate * priv;
  199 	gchar* subject;
  200 	gchar* object;
  201 	gboolean return_graph;
  202 	TrackerClass* domain;
  203 };
  204 
  205 struct _TrackerSparqlPredicateVariableClass {
  206 	GObjectClass parent_class;
  207 };
  208 
  209 struct _TrackerSparqlDataBinding {
  210 	GObject parent_instance;
  211 	TrackerSparqlDataBindingPrivate * priv;
  212 	TrackerPropertyType data_type;
  213 	TrackerSparqlDataTable* table;
  214 	gchar* sql_db_column_name;
  215 };
  216 
  217 struct _TrackerSparqlDataBindingClass {
  218 	GObjectClass parent_class;
  219 };
  220 
  221 struct _TrackerSparqlLiteralBinding {
  222 	TrackerSparqlDataBinding parent_instance;
  223 	TrackerSparqlLiteralBindingPrivate * priv;
  224 	gboolean is_fts_match;
  225 	gchar* literal;
  226 };
  227 
  228 struct _TrackerSparqlLiteralBindingClass {
  229 	TrackerSparqlDataBindingClass parent_class;
  230 };
  231 
  232 struct _TrackerSparqlQuery {
  233 	GObject parent_instance;
  234 	TrackerSparqlQueryPrivate * priv;
  235 	TrackerSparqlExpression* expression;
  236 	TrackerSparqlPattern* pattern;
  237 	GList* bindings;
  238 	TrackerSparqlContext* context;
  239 	gint last_var_index;
  240 };
  241 
  242 struct _TrackerSparqlQueryClass {
  243 	GObjectClass parent_class;
  244 };
  245 
  246 struct _TrackerSparqlPattern {
  247 	GObject parent_instance;
  248 	TrackerSparqlPatternPrivate * priv;
  249 	gchar* current_graph;
  250 	TrackerSparqlVariable* fts_subject;
  251 	gchar** fts_variables;
  252 	gint fts_variables_length1;
  253 	gint _fts_variables_size_;
  254 	GString* match_str;
  255 	gboolean queries_fts_data;
  256 };
  257 
  258 struct _TrackerSparqlPatternClass {
  259 	GObjectClass parent_class;
  260 };
  261 
  262 struct _TrackerSparqlPatternPrivate {
  263 	TrackerSparqlQuery* query;
  264 	TrackerSparqlExpression* expression;
  265 	gint counter;
  266 	gint next_table_index;
  267 	gboolean current_graph_is_var;
  268 	gchar* current_subject;
  269 	gboolean current_subject_is_var;
  270 	gchar* current_predicate;
  271 	gboolean current_predicate_is_var;
  272 	TrackerSparqlPatternTripleContext* triple_context;
  273 };
  274 
  275 typedef enum  {
  276 	TRACKER_SPARQL_TOKEN_TYPE_NONE,
  277 	TRACKER_SPARQL_TOKEN_TYPE_A,
  278 	TRACKER_SPARQL_TOKEN_TYPE_AS,
  279 	TRACKER_SPARQL_TOKEN_TYPE_ASC,
  280 	TRACKER_SPARQL_TOKEN_TYPE_ASK,
  281 	TRACKER_SPARQL_TOKEN_TYPE_ATBASE,
  282 	TRACKER_SPARQL_TOKEN_TYPE_ATPREFIX,
  283 	TRACKER_SPARQL_TOKEN_TYPE_AVG,
  284 	TRACKER_SPARQL_TOKEN_TYPE_BASE,
  285 	TRACKER_SPARQL_TOKEN_TYPE_BLANK_NODE,
  286 	TRACKER_SPARQL_TOKEN_TYPE_BOUND,
  287 	TRACKER_SPARQL_TOKEN_TYPE_BY,
  288 	TRACKER_SPARQL_TOKEN_TYPE_CLOSE_BRACE,
  289 	TRACKER_SPARQL_TOKEN_TYPE_CLOSE_BRACKET,
  290 	TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS,
  291 	TRACKER_SPARQL_TOKEN_TYPE_COALESCE,
  292 	TRACKER_SPARQL_TOKEN_TYPE_COLON,
  293 	TRACKER_SPARQL_TOKEN_TYPE_COMMA,
  294 	TRACKER_SPARQL_TOKEN_TYPE_CONSTRUCT,
  295 	TRACKER_SPARQL_TOKEN_TYPE_COUNT,
  296 	TRACKER_SPARQL_TOKEN_TYPE_DATA,
  297 	TRACKER_SPARQL_TOKEN_TYPE_DATATYPE,
  298 	TRACKER_SPARQL_TOKEN_TYPE_DECIMAL,
  299 	TRACKER_SPARQL_TOKEN_TYPE_DELETE,
  300 	TRACKER_SPARQL_TOKEN_TYPE_DESC,
  301 	TRACKER_SPARQL_TOKEN_TYPE_DESCRIBE,
  302 	TRACKER_SPARQL_TOKEN_TYPE_DISTINCT,
  303 	TRACKER_SPARQL_TOKEN_TYPE_DIV,
  304 	TRACKER_SPARQL_TOKEN_TYPE_DOT,
  305 	TRACKER_SPARQL_TOKEN_TYPE_DOUBLE,
  306 	TRACKER_SPARQL_TOKEN_TYPE_DOUBLE_CIRCUMFLEX,
  307 	TRACKER_SPARQL_TOKEN_TYPE_DROP,
  308 	TRACKER_SPARQL_TOKEN_TYPE_EOF,
  309 	TRACKER_SPARQL_TOKEN_TYPE_EXISTS,
  310 	TRACKER_SPARQL_TOKEN_TYPE_FALSE,
  311 	TRACKER_SPARQL_TOKEN_TYPE_FILTER,
  312 	TRACKER_SPARQL_TOKEN_TYPE_FROM,
  313 	TRACKER_SPARQL_TOKEN_TYPE_GRAPH,
  314 	TRACKER_SPARQL_TOKEN_TYPE_GROUP,
  315 	TRACKER_SPARQL_TOKEN_TYPE_GROUP_CONCAT,
  316 	TRACKER_SPARQL_TOKEN_TYPE_HAVING,
  317 	TRACKER_SPARQL_TOKEN_TYPE_IF,
  318 	TRACKER_SPARQL_TOKEN_TYPE_INSERT,
  319 	TRACKER_SPARQL_TOKEN_TYPE_INTEGER,
  320 	TRACKER_SPARQL_TOKEN_TYPE_INTO,
  321 	TRACKER_SPARQL_TOKEN_TYPE_IRI_REF,
  322 	TRACKER_SPARQL_TOKEN_TYPE_ISBLANK,
  323 	TRACKER_SPARQL_TOKEN_TYPE_ISIRI,
  324 	TRACKER_SPARQL_TOKEN_TYPE_ISLITERAL,
  325 	TRACKER_SPARQL_TOKEN_TYPE_ISURI,
  326 	TRACKER_SPARQL_TOKEN_TYPE_LANG,
  327 	TRACKER_SPARQL_TOKEN_TYPE_LANGMATCHES,
  328 	TRACKER_SPARQL_TOKEN_TYPE_LIMIT,
  329 	TRACKER_SPARQL_TOKEN_TYPE_MAX,
  330 	TRACKER_SPARQL_TOKEN_TYPE_MIN,
  331 	TRACKER_SPARQL_TOKEN_TYPE_MINUS,
  332 	TRACKER_SPARQL_TOKEN_TYPE_NAMED,
  333 	TRACKER_SPARQL_TOKEN_TYPE_NOT,
  334 	TRACKER_SPARQL_TOKEN_TYPE_NULL,
  335 	TRACKER_SPARQL_TOKEN_TYPE_OFFSET,
  336 	TRACKER_SPARQL_TOKEN_TYPE_OP_AND,
  337 	TRACKER_SPARQL_TOKEN_TYPE_OP_EQ,
  338 	TRACKER_SPARQL_TOKEN_TYPE_OP_GE,
  339 	TRACKER_SPARQL_TOKEN_TYPE_OP_GT,
  340 	TRACKER_SPARQL_TOKEN_TYPE_OP_LE,
  341 	TRACKER_SPARQL_TOKEN_TYPE_OP_LT,
  342 	TRACKER_SPARQL_TOKEN_TYPE_OP_NE,
  343 	TRACKER_SPARQL_TOKEN_TYPE_OP_NEG,
  344 	TRACKER_SPARQL_TOKEN_TYPE_OP_OR,
  345 	TRACKER_SPARQL_TOKEN_TYPE_OP_IN,
  346 	TRACKER_SPARQL_TOKEN_TYPE_OPEN_BRACE,
  347 	TRACKER_SPARQL_TOKEN_TYPE_OPEN_BRACKET,
  348 	TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS,
  349 	TRACKER_SPARQL_TOKEN_TYPE_OPTIONAL,
  350 	TRACKER_SPARQL_TOKEN_TYPE_OR,
  351 	TRACKER_SPARQL_TOKEN_TYPE_ORDER,
  352 	TRACKER_SPARQL_TOKEN_TYPE_PLUS,
  353 	TRACKER_SPARQL_TOKEN_TYPE_PN_PREFIX,
  354 	TRACKER_SPARQL_TOKEN_TYPE_PREFIX,
  355 	TRACKER_SPARQL_TOKEN_TYPE_REDUCED,
  356 	TRACKER_SPARQL_TOKEN_TYPE_REGEX,
  357 	TRACKER_SPARQL_TOKEN_TYPE_REPLACE,
  358 	TRACKER_SPARQL_TOKEN_TYPE_SAMETERM,
  359 	TRACKER_SPARQL_TOKEN_TYPE_SELECT,
  360 	TRACKER_SPARQL_TOKEN_TYPE_SEMICOLON,
  361 	TRACKER_SPARQL_TOKEN_TYPE_SILENT,
  362 	TRACKER_SPARQL_TOKEN_TYPE_STAR,
  363 	TRACKER_SPARQL_TOKEN_TYPE_STR,
  364 	TRACKER_SPARQL_TOKEN_TYPE_STRING_LITERAL1,
  365 	TRACKER_SPARQL_TOKEN_TYPE_STRING_LITERAL2,
  366 	TRACKER_SPARQL_TOKEN_TYPE_STRING_LITERAL_LONG1,
  367 	TRACKER_SPARQL_TOKEN_TYPE_STRING_LITERAL_LONG2,
  368 	TRACKER_SPARQL_TOKEN_TYPE_SUM,
  369 	TRACKER_SPARQL_TOKEN_TYPE_TRUE,
  370 	TRACKER_SPARQL_TOKEN_TYPE_UNION,
  371 	TRACKER_SPARQL_TOKEN_TYPE_VAR,
  372 	TRACKER_SPARQL_TOKEN_TYPE_WHERE,
  373 	TRACKER_SPARQL_TOKEN_TYPE_WITH
  374 } TrackerSparqlTokenType;
  375 
  376 struct _TrackerSourceLocation {
  377 	gchar* pos;
  378 	gint line;
  379 	gint column;
  380 };
  381 
  382 struct _TrackerSparqlContext {
  383 	GTypeInstance parent_instance;
  384 	volatile int ref_count;
  385 	TrackerSparqlContextPrivate * priv;
  386 	TrackerSparqlQuery* query;
  387 	TrackerSparqlContext* parent_context;
  388 	GHashTable* var_set;
  389 	GHashTable* var_map;
  390 	GHashTable* select_var_set;
  391 	GHashTable* predicate_variable_map;
  392 	gboolean scalar_subquery;
  393 };
  394 
  395 struct _TrackerSparqlContextClass {
  396 	GTypeClass parent_class;
  397 	void (*finalize) (TrackerSparqlContext *self);
  398 };
  399 
  400 typedef enum  {
  401 	TRACKER_SPARQL_VARIABLE_STATE_NONE,
  402 	TRACKER_SPARQL_VARIABLE_STATE_BOUND,
  403 	TRACKER_SPARQL_VARIABLE_STATE_OPTIONAL
  404 } TrackerSparqlVariableState;
  405 
  406 struct _TrackerSparqlVariable {
  407 	GObject parent_instance;
  408 	TrackerSparqlVariablePrivate * priv;
  409 	TrackerSparqlVariableBinding* binding;
  410 };
  411 
  412 struct _TrackerSparqlVariableClass {
  413 	GObjectClass parent_class;
  414 };
  415 
  416 struct _TrackerSparqlSelectContext {
  417 	TrackerSparqlContext parent_instance;
  418 	TrackerSparqlSelectContextPrivate * priv;
  419 	TrackerPropertyType type;
  420 	TrackerPropertyType* types;
  421 	gint types_length1;
  422 	gint _types_size_;
  423 	gchar** variable_names;
  424 	gint variable_names_length1;
  425 	gint _variable_names_size_;
  426 };
  427 
  428 struct _TrackerSparqlSelectContextClass {
  429 	TrackerSparqlContextClass parent_class;
  430 };
  431 
  432 struct _TrackerSparqlPatternTripleContext {
  433 	TrackerSparqlContext parent_instance;
  434 	TrackerSparqlPatternTripleContextPrivate * priv;
  435 	GList* tables;
  436 	GHashTable* table_map;
  437 	GList* bindings;
  438 	GList* variables;
  439 	GHashTable* var_bindings;
  440 };
  441 
  442 struct _TrackerSparqlPatternTripleContextClass {
  443 	TrackerSparqlContextClass parent_class;
  444 };
  445 
  446 struct _TrackerSparqlDataTable {
  447 	GObject parent_instance;
  448 	TrackerSparqlDataTablePrivate * priv;
  449 	gchar* sql_db_tablename;
  450 	gchar* sql_query_tablename;
  451 	TrackerSparqlPredicateVariable* predicate_variable;
  452 };
  453 
  454 struct _TrackerSparqlDataTableClass {
  455 	GObjectClass parent_class;
  456 };
  457 
  458 struct _TrackerSparqlVariableBindingList {
  459 	GObject parent_instance;
  460 	TrackerSparqlVariableBindingListPrivate * priv;
  461 	GList* list;
  462 };
  463 
  464 struct _TrackerSparqlVariableBindingListClass {
  465 	GObjectClass parent_class;
  466 };
  467 
  468 struct _TrackerSparqlVariableBinding {
  469 	TrackerSparqlDataBinding parent_instance;
  470 	TrackerSparqlVariableBindingPrivate * priv;
  471 	TrackerSparqlVariable* variable;
  472 	gboolean maybe_null;
  473 	gboolean in_simple_optional;
  474 	TrackerClass* type;
  475 };
  476 
  477 struct _TrackerSparqlVariableBindingClass {
  478 	TrackerSparqlDataBindingClass parent_class;
  479 };
  480 
  481 
  482 static gpointer tracker_sparql_predicate_variable_parent_class = NULL;
  483 static gpointer tracker_sparql_pattern_parent_class = NULL;
  484 static gpointer tracker_sparql_pattern_triple_context_parent_class = NULL;
  485 
  486 GType tracker_sparql_predicate_variable_get_type (void) G_GNUC_CONST;
  487 enum  {
  488 	TRACKER_SPARQL_PREDICATE_VARIABLE_DUMMY_PROPERTY
  489 };
  490 GType tracker_sparql_query_get_type (void) G_GNUC_CONST;
  491 gchar* tracker_sparql_predicate_variable_get_sql_query (TrackerSparqlPredicateVariable* self, TrackerSparqlQuery* query, GError** error);
  492 void tracker_sparql_expression_append_expression_as_string (GString* sql, const gchar* expression, TrackerPropertyType type);
  493 TrackerSparqlLiteralBinding* tracker_sparql_literal_binding_new (void);
  494 TrackerSparqlLiteralBinding* tracker_sparql_literal_binding_construct (GType object_type);
  495 GType tracker_sparql_data_binding_get_type (void) G_GNUC_CONST;
  496 GType tracker_sparql_literal_binding_get_type (void) G_GNUC_CONST;
  497 GType tracker_sparql_data_table_get_type (void) G_GNUC_CONST;
  498 GType tracker_sparql_expression_get_type (void) G_GNUC_CONST;
  499 GType tracker_sparql_pattern_get_type (void) G_GNUC_CONST;
  500 gpointer tracker_sparql_context_ref (gpointer instance);
  501 void tracker_sparql_context_unref (gpointer instance);
  502 GParamSpec* tracker_sparql_param_spec_context (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
  503 void tracker_sparql_value_set_context (GValue* value, gpointer v_object);
  504 void tracker_sparql_value_take_context (GValue* value, gpointer v_object);
  505 gpointer tracker_sparql_value_get_context (const GValue* value);
  506 GType tracker_sparql_context_get_type (void) G_GNUC_CONST;
  507 GError* tracker_sparql_query_get_internal_error (TrackerSparqlQuery* self, const gchar* msg);
  508 TrackerSparqlPredicateVariable* tracker_sparql_predicate_variable_new (void);
  509 TrackerSparqlPredicateVariable* tracker_sparql_predicate_variable_construct (GType object_type);
  510 static void tracker_sparql_predicate_variable_finalize (GObject* obj);
  511 GType tracker_sparql_variable_get_type (void) G_GNUC_CONST;
  512 static GType tracker_sparql_pattern_triple_context_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
  513 #define TRACKER_SPARQL_PATTERN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TRACKER_SPARQL_TYPE_PATTERN, TrackerSparqlPatternPrivate))
  514 enum  {
  515 	TRACKER_SPARQL_PATTERN_DUMMY_PROPERTY
  516 };
  517 TrackerSparqlPattern* tracker_sparql_pattern_new (TrackerSparqlQuery* query);
  518 TrackerSparqlPattern* tracker_sparql_pattern_construct (GType object_type, TrackerSparqlQuery* query);
  519 static inline gboolean tracker_sparql_pattern_next (TrackerSparqlPattern* self, GError** error);
  520 gboolean tracker_sparql_query_next (TrackerSparqlQuery* self, GError** error);
  521 GType tracker_sparql_token_type_get_type (void) G_GNUC_CONST;
  522 static inline TrackerSparqlTokenType tracker_sparql_pattern_current (TrackerSparqlPattern* self);
  523 TrackerSparqlTokenType tracker_sparql_query_current (TrackerSparqlQuery* self);
  524 static inline gboolean tracker_sparql_pattern_accept (TrackerSparqlPattern* self, TrackerSparqlTokenType type, GError** error);
  525 gboolean tracker_sparql_query_accept (TrackerSparqlQuery* self, TrackerSparqlTokenType type, GError** error);
  526 static GError* tracker_sparql_pattern_get_error (TrackerSparqlPattern* self, const gchar* msg);
  527 GError* tracker_sparql_query_get_error (TrackerSparqlQuery* self, const gchar* msg);
  528 static gboolean tracker_sparql_pattern_expect (TrackerSparqlPattern* self, TrackerSparqlTokenType type, GError** error);
  529 gboolean tracker_sparql_query_expect (TrackerSparqlQuery* self, TrackerSparqlTokenType type, GError** error);
  530 GType tracker_source_location_get_type (void) G_GNUC_CONST;
  531 TrackerSourceLocation* tracker_source_location_dup (const TrackerSourceLocation* self);
  532 void tracker_source_location_free (TrackerSourceLocation* self);
  533 static void tracker_sparql_pattern_get_location (TrackerSparqlPattern* self, TrackerSourceLocation* result);
  534 void tracker_sparql_query_get_location (TrackerSparqlQuery* self, TrackerSourceLocation* result);
  535 static void tracker_sparql_pattern_set_location (TrackerSparqlPattern* self, TrackerSourceLocation* location);
  536 void tracker_sparql_query_set_location (TrackerSparqlQuery* self, TrackerSourceLocation* location);
  537 static gchar* tracker_sparql_pattern_get_last_string (TrackerSparqlPattern* self, gint strip);
  538 gchar* tracker_sparql_query_get_last_string (TrackerSparqlQuery* self, gint strip);
  539 GType tracker_sparql_select_context_get_type (void) G_GNUC_CONST;
  540 TrackerSparqlSelectContext* tracker_sparql_pattern_translate_select (TrackerSparqlPattern* self, GString* sql, gboolean subquery, gboolean scalar_subquery, GError** error);
  541 static TrackerSparqlContext* tracker_sparql_pattern_get_context (TrackerSparqlPattern* self);
  542 TrackerSparqlSelectContext* tracker_sparql_select_context_new_subquery (TrackerSparqlQuery* query, TrackerSparqlContext* parent_context);
  543 TrackerSparqlSelectContext* tracker_sparql_select_context_construct_subquery (GType object_type, TrackerSparqlQuery* query, TrackerSparqlContext* parent_context);
  544 TrackerSparqlSelectContext* tracker_sparql_select_context_new (TrackerSparqlQuery* query, TrackerSparqlContext* parent_context);
  545 TrackerSparqlSelectContext* tracker_sparql_select_context_construct (GType object_type, TrackerSparqlQuery* query, TrackerSparqlContext* parent_context);
  546 static void tracker_sparql_pattern_set_context (TrackerSparqlPattern* self, TrackerSparqlContext* value);
  547 static void _g_object_unref0_ (gpointer var);
  548 static void _g_list_free__g_object_unref0_ (GList* self);
  549 void tracker_sparql_expression_skip_select_variables (TrackerSparqlExpression* self, GError** error);
  550 TrackerSparqlContext* tracker_sparql_pattern_translate_group_graph_pattern (TrackerSparqlPattern* self, GString* sql, GError** error);
  551 GType tracker_sparql_variable_state_get_type (void) G_GNUC_CONST;
  552 GType tracker_sparql_variable_binding_get_type (void) G_GNUC_CONST;
  553 const gchar* tracker_sparql_variable_get_name (TrackerSparqlVariable* self);
  554 const gchar* tracker_sparql_variable_get_sql_expression (TrackerSparqlVariable* self);
  555 static void _vala_array_add5 (TrackerPropertyType** array, int* length, int* size, TrackerPropertyType value);
  556 static void _vala_array_add6 (gchar*** array, int* length, int* size, gchar* value);
  557 TrackerPropertyType tracker_sparql_expression_translate_select_expression (TrackerSparqlExpression* self, GString* sql, gboolean subquery, gint variable_index, GError** error);
  558 static void _vala_array_add7 (TrackerPropertyType** array, int* length, int* size, TrackerPropertyType value);
  559 TrackerPropertyType tracker_sparql_expression_translate_expression (TrackerSparqlExpression* self, GString* sql, GError** error);
  560 TrackerPropertyType tracker_sparql_expression_translate_constraint (TrackerSparqlExpression* self, GString* sql, GError** error);
  561 void tracker_sparql_expression_translate_order_condition (TrackerSparqlExpression* self, GString* sql, GError** error);
  562 void tracker_sparql_pattern_translate_exists (TrackerSparqlPattern* self, GString* sql, GError** error);
  563 gchar* tracker_sparql_pattern_parse_var_or_term (TrackerSparqlPattern* self, GString* sql, gboolean* is_var, GError** error);
  564 gchar* tracker_sparql_query_resolve_prefixed_name (TrackerSparqlQuery* self, const gchar* prefix, const gchar* local_name, GError** error);
  565 gchar* tracker_sparql_query_generate_bnodeid (TrackerSparqlQuery* self, const gchar* user_bnodeid);
  566 gchar* tracker_sparql_expression_parse_string_literal (TrackerSparqlExpression* self, TrackerPropertyType* type, GError** error);
  567 static void tracker_sparql_pattern_parse_property_list_not_empty (TrackerSparqlPattern* self, GString* sql, gboolean in_simple_optional, GError** error);
  568 static void tracker_sparql_pattern_parse_object_list (TrackerSparqlPattern* self, GString* sql, gboolean in_simple_optional, GError** error);
  569 static void tracker_sparql_pattern_parse_object (TrackerSparqlPattern* self, GString* sql, gboolean in_simple_optional, GError** error);
  570 static void tracker_sparql_pattern_translate_filter (TrackerSparqlPattern* self, GString* sql, GError** error);
  571 static void tracker_sparql_pattern_skip_filter (TrackerSparqlPattern* self, GError** error);
  572 static void tracker_sparql_pattern_start_triples_block (TrackerSparqlPattern* self, GString* sql, GError** error);
  573 static TrackerSparqlPatternTripleContext* tracker_sparql_pattern_triple_context_new (TrackerSparqlQuery* query, TrackerSparqlContext* parent_context);
  574 static TrackerSparqlPatternTripleContext* tracker_sparql_pattern_triple_context_construct (GType object_type, TrackerSparqlQuery* query, TrackerSparqlContext* parent_context);
  575 static void tracker_sparql_pattern_end_triples_block (TrackerSparqlPattern* self, GString* sql, gboolean* first_where, gboolean in_group_graph_pattern, GError** error);
  576 GType tracker_sparql_variable_binding_list_get_type (void) G_GNUC_CONST;
  577 const gchar* tracker_sparql_data_binding_get_sql_expression (TrackerSparqlDataBinding* self);
  578 static void tracker_sparql_pattern_parse_triples (TrackerSparqlPattern* self, GString* sql, glong group_graph_pattern_start, gboolean* in_triples_block, gboolean* first_where, gboolean* in_group_graph_pattern, gboolean found_simple_optional, GError** error);
  579 static gboolean tracker_sparql_pattern_is_subclass (TrackerSparqlPattern* self, TrackerClass* class1, TrackerClass* class2);
  580 static gboolean tracker_sparql_pattern_is_simple_optional (TrackerSparqlPattern* self);
  581 TrackerSparqlVariable* tracker_sparql_context_get_variable (TrackerSparqlContext* self, const gchar* name);
  582 guint tracker_sparql_variable_hash (TrackerSparqlVariable* variable);
  583 static guint _tracker_sparql_variable_hash_ghash_func (gconstpointer key);
  584 gboolean tracker_sparql_variable_equal (TrackerSparqlVariable* a, TrackerSparqlVariable* b);
  585 static gboolean _tracker_sparql_variable_equal_gequal_func (gconstpointer a, gconstpointer b);
  586 TrackerSparqlContext* tracker_sparql_context_new (TrackerSparqlQuery* query, TrackerSparqlContext* parent_context);
  587 TrackerSparqlContext* tracker_sparql_context_construct (GType object_type, TrackerSparqlQuery* query, TrackerSparqlContext* parent_context);
  588 gchar* tracker_sparql_variable_get_extra_sql_expression (TrackerSparqlVariable* self, const gchar* suffix);
  589 static void tracker_sparql_pattern_translate_group_or_union_graph_pattern (TrackerSparqlPattern* self, GString* sql, GError** error);
  590 static void _vala_array_add8 (TrackerSourceLocation** array, int* length, int* size, const TrackerSourceLocation* value);
  591 static void _vala_array_add9 (glong** array, int* length, int* size, glong value);
  592 static void _vala_array_add10 (TrackerSparqlContext*** array, int* length, int* size, TrackerSparqlContext* value);
  593 static void _vala_array_add11 (TrackerSparqlVariable*** array, int* length, int* size, TrackerSparqlVariable* value);
  594 static TrackerSparqlVariableBindingList* tracker_sparql_pattern_get_variable_binding_list (TrackerSparqlPattern* self, TrackerSparqlVariable* variable);
  595 TrackerSparqlVariableBinding* tracker_sparql_variable_binding_new (void);
  596 TrackerSparqlVariableBinding* tracker_sparql_variable_binding_construct (GType object_type);
  597 void tracker_sparql_data_binding_set_sql_expression (TrackerSparqlDataBinding* self, const gchar* value);
  598 TrackerSparqlVariableBindingList* tracker_sparql_variable_binding_list_new (void);
  599 TrackerSparqlVariableBindingList* tracker_sparql_variable_binding_list_construct (GType object_type);
  600 void tracker_sparql_pattern_add_variable_binding (TrackerSparqlPattern* self, GString* sql, TrackerSparqlVariableBinding* binding, TrackerSparqlVariableState variable_state);
  601 gchar* tracker_sparql_data_binding_get_extra_sql_expression (TrackerSparqlDataBinding* self, const gchar* suffix);
  602 static TrackerSparqlDataTable* tracker_sparql_pattern_get_table (TrackerSparqlPattern* self, const gchar* subject, const gchar* db_table, gboolean share_table, gboolean* newtable);
  603 TrackerSparqlDataTable* tracker_sparql_data_table_new (void);
  604 TrackerSparqlDataTable* tracker_sparql_data_table_construct (GType object_type);
  605 enum  {
  606 	TRACKER_SPARQL_PATTERN_TRIPLE_CONTEXT_DUMMY_PROPERTY
  607 };
  608 static void tracker_sparql_pattern_triple_context_finalize (TrackerSparqlContext* obj);
  609 static void tracker_sparql_pattern_finalize (GObject* obj);
  610 static void _vala_tracker_sparql_pattern_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
  611 static void _vala_tracker_sparql_pattern_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
  612 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
  613 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
  614 static gint _vala_array_length (gpointer array);
  615 
  616 
  617 static gpointer _g_object_ref0 (gpointer self) {
  618 #line 39 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  619 	return self ? g_object_ref (self) : NULL;
  620 #line 621 "tracker-sparql-pattern.c"
  621 }
  622 
  623 
  624 gchar* tracker_sparql_predicate_variable_get_sql_query (TrackerSparqlPredicateVariable* self, TrackerSparqlQuery* query, GError** error) {
  625 	gchar* result = NULL;
  626 	GError * _inner_error_ = NULL;
  627 #line 29 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  628 	g_return_val_if_fail (self != NULL, NULL);
  629 #line 29 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  630 	g_return_val_if_fail (query != NULL, NULL);
  631 #line 632 "tracker-sparql-pattern.c"
  632 	{
  633 		GString* _tmp0_;
  634 		GString* sql;
  635 		const gchar* _tmp1_;
  636 		GString* _tmp153_;
  637 		const gchar* _tmp154_;
  638 		gchar* _tmp155_;
  639 #line 31 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  640 		_tmp0_ = g_string_new ("");
  641 #line 31 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  642 		sql = _tmp0_;
  643 #line 33 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  644 		_tmp1_ = self->subject;
  645 #line 33 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  646 		if (_tmp1_ != NULL) {
  647 #line 648 "tracker-sparql-pattern.c"
  648 			const gchar* _tmp2_;
  649 			gint _tmp3_ = 0;
  650 			gint subject_id;
  651 			TrackerDBCursor* cursor;
  652 			gint _tmp4_;
  653 			gboolean first;
  654 			TrackerDBCursor* _tmp14_;
  655 			gboolean _tmp63_;
  656 #line 35 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  657 			_tmp2_ = self->subject;
  658 #line 35 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  659 			_tmp3_ = tracker_data_query_resource_id (_tmp2_);
  660 #line 35 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  661 			subject_id = _tmp3_;
  662 #line 37 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  663 			cursor = NULL;
  664 #line 38 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  665 			_tmp4_ = subject_id;
  666 #line 38 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  667 			if (_tmp4_ > 0) {
  668 #line 669 "tracker-sparql-pattern.c"
  669 				TrackerDBInterface* _tmp5_ = NULL;
  670 				TrackerDBInterface* _tmp6_;
  671 				TrackerDBInterface* iface;
  672 				TrackerDBInterface* _tmp7_;
  673 				TrackerDBStatement* _tmp8_ = NULL;
  674 				TrackerDBStatement* stmt;
  675 				TrackerDBStatement* _tmp9_;
  676 				gint _tmp10_;
  677 				TrackerDBStatement* _tmp11_;
  678 				TrackerDBCursor* _tmp12_ = NULL;
  679 				TrackerDBCursor* _tmp13_;
  680 #line 39 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  681 				_tmp5_ = tracker_db_manager_get_db_interface ();
  682 #line 39 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  683 				_tmp6_ = _g_object_ref0 (_tmp5_);
  684 #line 39 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  685 				iface = _tmp6_;
  686 #line 40 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  687 				_tmp7_ = iface;
  688 #line 40 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  689 				_tmp8_ = tracker_db_interface_create_statement (_tmp7_, TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT, &_inner_error_, "SELECT (SELECT Uri FROM Resource WHERE ID = \"rdf:type\") " "FROM \"rdfs:Resource_rdf:type\" WHERE ID = ?");
  690 #line 40 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  691 				stmt = _tmp8_;
  692 #line 40 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  693 				if (_inner_error_ != NULL) {
  694 #line 40 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  695 					_g_object_unref0 (iface);
  696 #line 40 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  697 					_g_object_unref0 (cursor);
  698 #line 40 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  699 					_g_string_free0 (sql);
  700 #line 701 "tracker-sparql-pattern.c"
  701 					goto __catch0_g_error;
  702 				}
  703 #line 43 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  704 				_tmp9_ = stmt;
  705 #line 43 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  706 				_tmp10_ = subject_id;
  707 #line 43 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  708 				tracker_db_statement_bind_int (_tmp9_, 0, _tmp10_);
  709 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  710 				_tmp11_ = stmt;
  711 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  712 				_tmp12_ = tracker_db_statement_start_cursor (_tmp11_, &_inner_error_);
  713 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  714 				_tmp13_ = _tmp12_;
  715 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  716 				if (_inner_error_ != NULL) {
  717 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  718 					_g_object_unref0 (stmt);
  719 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  720 					_g_object_unref0 (iface);
  721 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  722 					_g_object_unref0 (cursor);
  723 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  724 					_g_string_free0 (sql);
  725 #line 726 "tracker-sparql-pattern.c"
  726 					goto __catch0_g_error;
  727 				}
  728 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  729 				_g_object_unref0 (cursor);
  730 #line 44 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  731 				cursor = _tmp13_;
  732 #line 38 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  733 				_g_object_unref0 (stmt);
  734 #line 38 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  735 				_g_object_unref0 (iface);
  736 #line 737 "tracker-sparql-pattern.c"
  737 			}
  738 #line 47 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  739 			first = TRUE;
  740 #line 48 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  741 			_tmp14_ = cursor;
  742 #line 48 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  743 			if (_tmp14_ != NULL) {
  744 #line 49 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  745 				while (TRUE) {
  746 #line 747 "tracker-sparql-pattern.c"
  747 					TrackerDBCursor* _tmp15_;
  748 					gboolean _tmp16_ = FALSE;
  749 					gboolean _tmp17_;
  750 					TrackerDBCursor* _tmp18_;
  751 					const gchar* _tmp19_ = NULL;
  752 					TrackerClass* _tmp20_ = NULL;
  753 					TrackerClass* _tmp21_;
  754 					TrackerClass* domain;
  755 					gint _tmp22_ = 0;
  756 					TrackerProperty** _tmp23_ = NULL;
  757 #line 49 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  758 					_tmp15_ = cursor;
  759 #line 49 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  760 					_tmp16_ = tracker_sparql_cursor_next ((TrackerSparqlCursor*) _tmp15_, NULL, &_inner_error_);
  761 #line 49 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  762 					_tmp17_ = _tmp16_;
  763 #line 49 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  764 					if (_inner_error_ != NULL) {
  765 #line 49 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  766 						_g_object_unref0 (cursor);
  767 #line 49 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  768 						_g_string_free0 (sql);
  769 #line 770 "tracker-sparql-pattern.c"
  770 						goto __catch0_g_error;
  771 					}
  772 #line 49 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  773 					if (!_tmp17_) {
  774 #line 49 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  775 						break;
  776 #line 777 "tracker-sparql-pattern.c"
  777 					}
  778 #line 50 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  779 					_tmp18_ = cursor;
  780 #line 50 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  781 					_tmp19_ = tracker_sparql_cursor_get_string ((TrackerSparqlCursor*) _tmp18_, 0, NULL);
  782 #line 50 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  783 					_tmp20_ = tracker_ontologies_get_class_by_uri (_tmp19_);
  784 #line 50 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  785 					_tmp21_ = _g_object_ref0 (_tmp20_);
  786 #line 50 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  787 					domain = _tmp21_;
  788 #line 52 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  789 					_tmp23_ = tracker_ontologies_get_properties (&_tmp22_);
  790 #line 791 "tracker-sparql-pattern.c"
  791 					{
  792 						TrackerProperty** prop_collection = NULL;
  793 						gint prop_collection_length1 = 0;
  794 						gint _prop_collection_size_ = 0;
  795 						gint prop_it = 0;
  796 #line 52 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  797 						prop_collection = _tmp23_;
  798 #line 52 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  799 						prop_collection_length1 = _tmp22_;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
  800 #line 52 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  801 						for (prop_it = 0; prop_it < _tmp22_; prop_it = prop_it + 1) {
  802 #line 803 "tracker-sparql-pattern.c"
  803 							TrackerProperty* _tmp24_;
  804 							TrackerProperty* prop = NULL;
  805 #line 52 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  806 							_tmp24_ = _g_object_ref0 (prop_collection[prop_it]);
  807 #line 52 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  808 							prop = _tmp24_;
  809 #line 810 "tracker-sparql-pattern.c"
  810 							{
  811 								TrackerProperty* _tmp25_;
  812 								TrackerClass* _tmp26_;
  813 								TrackerClass* _tmp27_;
  814 								TrackerClass* _tmp28_;
  815 #line 53 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  816 								_tmp25_ = prop;
  817 #line 53 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  818 								_tmp26_ = tracker_property_get_domain (_tmp25_);
  819 #line 53 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  820 								_tmp27_ = _tmp26_;
  821 #line 53 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  822 								_tmp28_ = domain;
  823 #line 53 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  824 								if (_tmp27_ == _tmp28_) {
  825 #line 826 "tracker-sparql-pattern.c"
  826 									gboolean _tmp29_;
  827 									GString* _tmp31_;
  828 									TrackerProperty* _tmp32_;
  829 									const gchar* _tmp33_;
  830 									const gchar* _tmp34_;
  831 									GString* _tmp35_;
  832 									TrackerProperty* _tmp36_;
  833 									const gchar* _tmp37_;
  834 									const gchar* _tmp38_;
  835 									gchar* _tmp39_ = NULL;
  836 									gchar* _tmp40_;
  837 									TrackerProperty* _tmp41_;
  838 									TrackerPropertyType _tmp42_;
  839 									TrackerPropertyType _tmp43_;
  840 									GString* _tmp44_;
  841 									gboolean _tmp45_;
  842 									GString* _tmp50_;
  843 									TrackerProperty* _tmp51_;
  844 									const gchar* _tmp52_;
  845 									const gchar* _tmp53_;
  846 									GString* _tmp54_;
  847 									TrackerSparqlLiteralBinding* _tmp55_;
  848 									TrackerSparqlLiteralBinding* binding;
  849 									TrackerSparqlLiteralBinding* _tmp56_;
  850 									gint _tmp57_;
  851 									gchar* _tmp58_ = NULL;
  852 									TrackerSparqlLiteralBinding* _tmp59_;
  853 									TrackerSparqlQuery* _tmp60_;
  854 									TrackerSparqlLiteralBinding* _tmp61_;
  855 									TrackerSparqlLiteralBinding* _tmp62_;
  856 #line 54 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  857 									_tmp29_ = first;
  858 #line 54 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  859 									if (_tmp29_) {
  860 #line 55 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  861 										first = FALSE;
  862 #line 863 "tracker-sparql-pattern.c"
  863 									} else {
  864 										GString* _tmp30_;
  865 #line 57 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  866 										_tmp30_ = sql;
  867 #line 57 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  868 										g_string_append (_tmp30_, " UNION ALL ");
  869 #line 870 "tracker-sparql-pattern.c"
  870 									}
  871 #line 59 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  872 									_tmp31_ = sql;
  873 #line 59 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  874 									_tmp32_ = prop;
  875 #line 59 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  876 									_tmp33_ = tracker_property_get_uri (_tmp32_);
  877 #line 59 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  878 									_tmp34_ = _tmp33_;
  879 #line 59 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  880 									g_string_append_printf (_tmp31_, "SELECT ID, (SELECT ID FROM Resource WHERE Uri = '%s') AS \"predicate\"" \
  881 ", ", _tmp34_);
  882 #line 61 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  883 									_tmp35_ = sql;
  884 #line 61 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  885 									_tmp36_ = prop;
  886 #line 61 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  887 									_tmp37_ = tracker_property_get_name (_tmp36_);
  888 #line 61 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  889 									_tmp38_ = _tmp37_;
  890 #line 61 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  891 									_tmp39_ = g_strdup_printf ("\"%s\"", _tmp38_);
  892 #line 61 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  893 									_tmp40_ = _tmp39_;
  894 #line 61 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  895 									_tmp41_ = prop;
  896 #line 61 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  897 									_tmp42_ = tracker_property_get_data_type (_tmp41_);
  898 #line 61 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  899 									_tmp43_ = _tmp42_;
  900 #line 61 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  901 									tracker_sparql_expression_append_expression_as_string (_tmp35_, _tmp40_, _tmp43_);
  902 #line 61 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  903 									_g_free0 (_tmp40_);
  904 #line 63 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  905 									_tmp44_ = sql;
  906 #line 63 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  907 									g_string_append (_tmp44_, " AS \"object\"");
  908 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  909 									_tmp45_ = self->return_graph;
  910 #line 64 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  911 									if (_tmp45_) {
  912 #line 912 "tracker-sparql-pattern.c"
  913 										GString* _tmp46_;
  914 										TrackerProperty* _tmp47_;
  915 										const gchar* _tmp48_;
  916 										const gchar* _tmp49_;
  917 #line 65 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  918 										_tmp46_ = sql;
  919 #line 65 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  920 										_tmp47_ = prop;
  921 #line 65 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  922 										_tmp48_ = tracker_property_get_name (_tmp47_);
  923 #line 65 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  924 										_tmp49_ = _tmp48_;
  925 #line 65 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  926 										g_string_append_printf (_tmp46_, ", \"%s:graph\" AS \"graph\"", _tmp49_);
  927 #line 927 "tracker-sparql-pattern.c"
  928 									}
  929 #line 67 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  930 									_tmp50_ = sql;
  931 #line 67 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  932 									_tmp51_ = prop;
  933 #line 67 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  934 									_tmp52_ = tracker_property_get_table_name (_tmp51_);
  935 #line 67 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  936 									_tmp53_ = _tmp52_;
  937 #line 67 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  938 									g_string_append_printf (_tmp50_, " FROM \"%s\"", _tmp53_);
  939 #line 69 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  940 									_tmp54_ = sql;
  941 #line 69 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  942 									g_string_append (_tmp54_, " WHERE ID = ?");
  943 #line 71 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  944 									_tmp55_ = tracker_sparql_literal_binding_new ();
  945 #line 71 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  946 									binding = _tmp55_;
  947 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  948 									_tmp56_ = binding;
  949 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  950 									_tmp57_ = subject_id;
  951 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  952 									_tmp58_ = g_strdup_printf ("%i", _tmp57_);
  953 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  954 									_g_free0 (_tmp56_->literal);
  955 #line 72 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  956 									_tmp56_->literal = _tmp58_;
  957 #line 73 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  958 									_tmp59_ = binding;
  959 #line 73 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  960 									((TrackerSparqlDataBinding*) _tmp59_)->data_type = TRACKER_PROPERTY_TYPE_INTEGER;
  961 #line 74 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  962 									_tmp60_ = query;
  963 #line 74 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  964 									_tmp61_ = binding;
  965 #line 74 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  966 									_tmp62_ = _g_object_ref0 (_tmp61_);
  967 #line 74 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  968 									_tmp60_->bindings = g_list_append (_tmp60_->bindings, _tmp62_);
  969 #line 53 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  970 									_g_object_unref0 (binding);
  971 #line 971 "tracker-sparql-pattern.c"
  972 								}
  973 #line 52 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  974 								_g_object_unref0 (prop);
  975 #line 975 "tracker-sparql-pattern.c"
  976 							}
  977 						}
  978 					}
  979 #line 49 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  980 					_g_object_unref0 (domain);
  981 #line 981 "tracker-sparql-pattern.c"
  982 				}
  983 			}
  984 #line 80 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  985 			_tmp63_ = first;
  986 #line 80 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  987 			if (_tmp63_) {
  988 #line 988 "tracker-sparql-pattern.c"
  989 				GString* _tmp64_;
  990 #line 82 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  991 				_tmp64_ = sql;
  992 #line 82 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  993 				g_string_append (_tmp64_, "SELECT NULL AS ID, NULL AS \"predicate\", NULL AS \"object\", NULL AS " \
  994 "\"graph\"");
  995 #line 994 "tracker-sparql-pattern.c"
  996 			}
  997 #line 33 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
  998 			_g_object_unref0 (cursor);
  999 #line 998 "tracker-sparql-pattern.c"
 1000 		} else {
 1001 			const gchar* _tmp65_;
 1002 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1003 			_tmp65_ = self->object;
 1004 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1005 			if (_tmp65_ != NULL) {
 1006 #line 1005 "tracker-sparql-pattern.c"
 1007 				const gchar* _tmp66_;
 1008 				gint _tmp67_ = 0;
 1009 				gint object_id;
 1010 				TrackerDBInterface* _tmp68_ = NULL;
 1011 				TrackerDBInterface* _tmp69_;
 1012 				TrackerDBInterface* iface;
 1013 				TrackerDBInterface* _tmp70_;
 1014 				TrackerDBStatement* _tmp71_ = NULL;
 1015 				TrackerDBStatement* stmt;
 1016 				TrackerDBStatement* _tmp72_;
 1017 				gint _tmp73_;
 1018 				TrackerDBStatement* _tmp74_;
 1019 				TrackerDBCursor* _tmp75_ = NULL;
 1020 				TrackerDBCursor* cursor;
 1021 				gboolean first;
 1022 				TrackerDBCursor* _tmp76_;
 1023 				gboolean _tmp116_;
 1024 #line 86 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1025 				_tmp66_ = self->object;
 1026 #line 86 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1027 				_tmp67_ = tracker_data_query_resource_id (_tmp66_);
 1028 #line 86 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1029 				object_id = _tmp67_;
 1030 #line 88 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1031 				_tmp68_ = tracker_db_manager_get_db_interface ();
 1032 #line 88 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1033 				_tmp69_ = _g_object_ref0 (_tmp68_);
 1034 #line 88 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1035 				iface = _tmp69_;
 1036 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1037 				_tmp70_ = iface;
 1038 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1039 				_tmp71_ = tracker_db_interface_create_statement (_tmp70_, TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT, &_inner_error_, "SELECT (SELECT Uri FROM Resource WHERE ID = \"rdf:type\") " "FROM \"rdfs:Resource_rdf:type\" WHERE ID = ?");
 1040 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1041 				stmt = _tmp71_;
 1042 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1043 				if (_inner_error_ != NULL) {
 1044 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1045 					_g_object_unref0 (iface);
 1046 #line 89 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1047 					_g_string_free0 (sql);
 1048 #line 1047 "tracker-sparql-pattern.c"
 1049 					goto __catch0_g_error;
 1050 				}
 1051 #line 92 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1052 				_tmp72_ = stmt;
 1053 #line 92 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1054 				_tmp73_ = object_id;
 1055 #line 92 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1056 				tracker_db_statement_bind_int (_tmp72_, 0, _tmp73_);
 1057 #line 93 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1058 				_tmp74_ = stmt;
 1059 #line 93 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1060 				_tmp75_ = tracker_db_statement_start_cursor (_tmp74_, &_inner_error_);
 1061 #line 93 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1062 				cursor = _tmp75_;
 1063 #line 93 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1064 				if (_inner_error_ != NULL) {
 1065 #line 93 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1066 					_g_object_unref0 (stmt);
 1067 #line 93 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1068 					_g_object_unref0 (iface);
 1069 #line 93 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1070 					_g_string_free0 (sql);
 1071 #line 1070 "tracker-sparql-pattern.c"
 1072 					goto __catch0_g_error;
 1073 				}
 1074 #line 95 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1075 				first = TRUE;
 1076 #line 96 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1077 				_tmp76_ = cursor;
 1078 #line 96 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1079 				if (_tmp76_ != NULL) {
 1080 #line 97 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1081 					while (TRUE) {
 1082 #line 1081 "tracker-sparql-pattern.c"
 1083 						TrackerDBCursor* _tmp77_;
 1084 						gboolean _tmp78_ = FALSE;
 1085 						gboolean _tmp79_;
 1086 						TrackerDBCursor* _tmp80_;
 1087 						const gchar* _tmp81_ = NULL;
 1088 						TrackerClass* _tmp82_ = NULL;
 1089 						TrackerClass* _tmp83_;
 1090 						TrackerClass* range;
 1091 						gint _tmp84_ = 0;
 1092 						TrackerProperty** _tmp85_ = NULL;
 1093 #line 97 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1094 						_tmp77_ = cursor;
 1095 #line 97 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1096 						_tmp78_ = tracker_sparql_cursor_next ((TrackerSparqlCursor*) _tmp77_, NULL, &_inner_error_);
 1097 #line 97 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1098 						_tmp79_ = _tmp78_;
 1099 #line 97 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1100 						if (_inner_error_ != NULL) {
 1101 #line 97 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1102 							_g_object_unref0 (cursor);
 1103 #line 97 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1104 							_g_object_unref0 (stmt);
 1105 #line 97 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1106 							_g_object_unref0 (iface);
 1107 #line 97 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1108 							_g_string_free0 (sql);
 1109 #line 1108 "tracker-sparql-pattern.c"
 1110 							goto __catch0_g_error;
 1111 						}
 1112 #line 97 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1113 						if (!_tmp79_) {
 1114 #line 97 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1115 							break;
 1116 #line 1115 "tracker-sparql-pattern.c"
 1117 						}
 1118 #line 98 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1119 						_tmp80_ = cursor;
 1120 #line 98 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1121 						_tmp81_ = tracker_sparql_cursor_get_string ((TrackerSparqlCursor*) _tmp80_, 0, NULL);
 1122 #line 98 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1123 						_tmp82_ = tracker_ontologies_get_class_by_uri (_tmp81_);
 1124 #line 98 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1125 						_tmp83_ = _g_object_ref0 (_tmp82_);
 1126 #line 98 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1127 						range = _tmp83_;
 1128 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1129 						_tmp85_ = tracker_ontologies_get_properties (&_tmp84_);
 1130 #line 1129 "tracker-sparql-pattern.c"
 1131 						{
 1132 							TrackerProperty** prop_collection = NULL;
 1133 							gint prop_collection_length1 = 0;
 1134 							gint _prop_collection_size_ = 0;
 1135 							gint prop_it = 0;
 1136 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1137 							prop_collection = _tmp85_;
 1138 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1139 							prop_collection_length1 = _tmp84_;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
 1140 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1141 							for (prop_it = 0; prop_it < _tmp84_; prop_it = prop_it + 1) {
 1142 #line 1141 "tracker-sparql-pattern.c"
 1143 								TrackerProperty* _tmp86_;
 1144 								TrackerProperty* prop = NULL;
 1145 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1146 								_tmp86_ = _g_object_ref0 (prop_collection[prop_it]);
 1147 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1148 								prop = _tmp86_;
 1149 #line 1148 "tracker-sparql-pattern.c"
 1150 								{
 1151 									TrackerProperty* _tmp87_;
 1152 									TrackerClass* _tmp88_;
 1153 									TrackerClass* _tmp89_;
 1154 									TrackerClass* _tmp90_;
 1155 #line 101 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1156 									_tmp87_ = prop;
 1157 #line 101 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1158 									_tmp88_ = tracker_property_get_range (_tmp87_);
 1159 #line 101 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1160 									_tmp89_ = _tmp88_;
 1161 #line 101 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1162 									_tmp90_ = range;
 1163 #line 101 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1164 									if (_tmp89_ == _tmp90_) {
 1165 #line 1164 "tracker-sparql-pattern.c"
 1166 										gboolean _tmp91_;
 1167 										GString* _tmp93_;
 1168 										TrackerProperty* _tmp94_;
 1169 										const gchar* _tmp95_;
 1170 										const gchar* _tmp96_;
 1171 										GString* _tmp97_;
 1172 										TrackerProperty* _tmp98_;
 1173 										const gchar* _tmp99_;
 1174 										const gchar* _tmp100_;
 1175 										gchar* _tmp101_ = NULL;
 1176 										gchar* _tmp102_;
 1177 										TrackerProperty* _tmp103_;
 1178 										TrackerPropertyType _tmp104_;
 1179 										TrackerPropertyType _tmp105_;
 1180 										GString* _tmp106_;
 1181 										gboolean _tmp107_;
 1182 										GString* _tmp112_;
 1183 										TrackerProperty* _tmp113_;
 1184 										const gchar* _tmp114_;
 1185 										const gchar* _tmp115_;
 1186 #line 102 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1187 										_tmp91_ = first;
 1188 #line 102 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1189 										if (_tmp91_) {
 1190 #line 103 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1191 											first = FALSE;
 1192 #line 1191 "tracker-sparql-pattern.c"
 1193 										} else {
 1194 											GString* _tmp92_;
 1195 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1196 											_tmp92_ = sql;
 1197 #line 105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1198 											g_string_append (_tmp92_, " UNION ALL ");
 1199 #line 1198 "tracker-sparql-pattern.c"
 1200 										}
 1201 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1202 										_tmp93_ = sql;
 1203 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1204 										_tmp94_ = prop;
 1205 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1206 										_tmp95_ = tracker_property_get_uri (_tmp94_);
 1207 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1208 										_tmp96_ = _tmp95_;
 1209 #line 107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1210 										g_string_append_printf (_tmp93_, "SELECT ID, (SELECT ID FROM Resource WHERE Uri = '%s') AS \"predicate\"" \
 1211 ", ", _tmp96_);
 1212 #line 109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1213 										_tmp97_ = sql;
 1214 #line 109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1215 										_tmp98_ = prop;
 1216 #line 109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1217 										_tmp99_ = tracker_property_get_name (_tmp98_);
 1218 #line 109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1219 										_tmp100_ = _tmp99_;
 1220 #line 109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1221 										_tmp101_ = g_strdup_printf ("\"%s\"", _tmp100_);
 1222 #line 109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1223 										_tmp102_ = _tmp101_;
 1224 #line 109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1225 										_tmp103_ = prop;
 1226 #line 109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1227 										_tmp104_ = tracker_property_get_data_type (_tmp103_);
 1228 #line 109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1229 										_tmp105_ = _tmp104_;
 1230 #line 109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1231 										tracker_sparql_expression_append_expression_as_string (_tmp97_, _tmp102_, _tmp105_);
 1232 #line 109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1233 										_g_free0 (_tmp102_);
 1234 #line 111 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1235 										_tmp106_ = sql;
 1236 #line 111 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1237 										g_string_append (_tmp106_, " AS \"object\"");
 1238 #line 112 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1239 										_tmp107_ = self->return_graph;
 1240 #line 112 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1241 										if (_tmp107_) {
 1242 #line 1240 "tracker-sparql-pattern.c"
 1243 											GString* _tmp108_;
 1244 											TrackerProperty* _tmp109_;
 1245 											const gchar* _tmp110_;
 1246 											const gchar* _tmp111_;
 1247 #line 113 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1248 											_tmp108_ = sql;
 1249 #line 113 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1250 											_tmp109_ = prop;
 1251 #line 113 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1252 											_tmp110_ = tracker_property_get_name (_tmp109_);
 1253 #line 113 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1254 											_tmp111_ = _tmp110_;
 1255 #line 113 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1256 											g_string_append_printf (_tmp108_, ", \"%s:graph\" AS \"graph\"", _tmp111_);
 1257 #line 1255 "tracker-sparql-pattern.c"
 1258 										}
 1259 #line 115 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1260 										_tmp112_ = sql;
 1261 #line 115 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1262 										_tmp113_ = prop;
 1263 #line 115 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1264 										_tmp114_ = tracker_property_get_table_name (_tmp113_);
 1265 #line 115 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1266 										_tmp115_ = _tmp114_;
 1267 #line 115 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1268 										g_string_append_printf (_tmp112_, " FROM \"%s\"", _tmp115_);
 1269 #line 1267 "tracker-sparql-pattern.c"
 1270 									}
 1271 #line 100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1272 									_g_object_unref0 (prop);
 1273 #line 1271 "tracker-sparql-pattern.c"
 1274 								}
 1275 							}
 1276 						}
 1277 #line 97 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1278 						_g_object_unref0 (range);
 1279 #line 1277 "tracker-sparql-pattern.c"
 1280 					}
 1281 				}
 1282 #line 121 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1283 				_tmp116_ = first;
 1284 #line 121 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1285 				if (_tmp116_) {
 1286 #line 1284 "tracker-sparql-pattern.c"
 1287 					GString* _tmp117_;
 1288 #line 123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1289 					_tmp117_ = sql;
 1290 #line 123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1291 					g_string_append (_tmp117_, "SELECT NULL AS ID, NULL AS \"predicate\", NULL AS \"object\", NULL AS " \
 1292 "\"graph\"");
 1293 #line 1290 "tracker-sparql-pattern.c"
 1294 				}
 1295 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1296 				_g_object_unref0 (cursor);
 1297 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1298 				_g_object_unref0 (stmt);
 1299 #line 84 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1300 				_g_object_unref0 (iface);
 1301 #line 1298 "tracker-sparql-pattern.c"
 1302 			} else {
 1303 				TrackerClass* _tmp118_;
 1304 #line 125 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1305 				_tmp118_ = self->domain;
 1306 #line 125 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1307 				if (_tmp118_ != NULL) {
 1308 #line 1305 "tracker-sparql-pattern.c"
 1309 					gboolean first;
 1310 					gint _tmp119_ = 0;
 1311 					TrackerProperty** _tmp120_ = NULL;
 1312 #line 127 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1313 					first = TRUE;
 1314 #line 128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1315 					_tmp120_ = tracker_ontologies_get_properties (&_tmp119_);
 1316 #line 1313 "tracker-sparql-pattern.c"
 1317 					{
 1318 						TrackerProperty** prop_collection = NULL;
 1319 						gint prop_collection_length1 = 0;
 1320 						gint _prop_collection_size_ = 0;
 1321 						gint prop_it = 0;
 1322 #line 128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1323 						prop_collection = _tmp120_;
 1324 #line 128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1325 						prop_collection_length1 = _tmp119_;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
 1326 #line 128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1327 						for (prop_it = 0; prop_it < _tmp119_; prop_it = prop_it + 1) {
 1328 #line 1325 "tracker-sparql-pattern.c"
 1329 							TrackerProperty* _tmp121_;
 1330 							TrackerProperty* prop = NULL;
 1331 #line 128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1332 							_tmp121_ = _g_object_ref0 (prop_collection[prop_it]);
 1333 #line 128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1334 							prop = _tmp121_;
 1335 #line 1332 "tracker-sparql-pattern.c"
 1336 							{
 1337 								TrackerProperty* _tmp122_;
 1338 								TrackerClass* _tmp123_;
 1339 								TrackerClass* _tmp124_;
 1340 								TrackerClass* _tmp125_;
 1341 #line 129 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1342 								_tmp122_ = prop;
 1343 #line 129 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1344 								_tmp123_ = tracker_property_get_domain (_tmp122_);
 1345 #line 129 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1346 								_tmp124_ = _tmp123_;
 1347 #line 129 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1348 								_tmp125_ = self->domain;
 1349 #line 129 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1350 								if (_tmp124_ == _tmp125_) {
 1351 #line 1348 "tracker-sparql-pattern.c"
 1352 									gboolean _tmp126_;
 1353 									GString* _tmp128_;
 1354 									TrackerProperty* _tmp129_;
 1355 									const gchar* _tmp130_;
 1356 									const gchar* _tmp131_;
 1357 									GString* _tmp132_;
 1358 									TrackerProperty* _tmp133_;
 1359 									const gchar* _tmp134_;
 1360 									const gchar* _tmp135_;
 1361 									gchar* _tmp136_ = NULL;
 1362 									gchar* _tmp137_;
 1363 									TrackerProperty* _tmp138_;
 1364 									TrackerPropertyType _tmp139_;
 1365 									TrackerPropertyType _tmp140_;
 1366 									GString* _tmp141_;
 1367 									gboolean _tmp142_;
 1368 									GString* _tmp147_;
 1369 									TrackerProperty* _tmp148_;
 1370 									const gchar* _tmp149_;
 1371 									const gchar* _tmp150_;
 1372 #line 130 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1373 									_tmp126_ = first;
 1374 #line 130 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1375 									if (_tmp126_) {
 1376 #line 131 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1377 										first = FALSE;
 1378 #line 1375 "tracker-sparql-pattern.c"
 1379 									} else {
 1380 										GString* _tmp127_;
 1381 #line 133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1382 										_tmp127_ = sql;
 1383 #line 133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1384 										g_string_append (_tmp127_, " UNION ALL ");
 1385 #line 1382 "tracker-sparql-pattern.c"
 1386 									}
 1387 #line 135 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1388 									_tmp128_ = sql;
 1389 #line 135 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1390 									_tmp129_ = prop;
 1391 #line 135 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1392 									_tmp130_ = tracker_property_get_uri (_tmp129_);
 1393 #line 135 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
      (emitted by cppcheck) 1394 									_tmp131_ = _tmp130_;
 1395 #line 135 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1396 									g_string_append_printf (_tmp128_, "SELECT ID, (SELECT ID FROM Resource WHERE Uri = '%s') AS \"predicate\"" \
 1397 ", ", _tmp131_);
 1398 #line 137 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1399 									_tmp132_ = sql;
 1400 #line 137 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1401 									_tmp133_ = prop;
 1402 #line 137 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1403 									_tmp134_ = tracker_property_get_name (_tmp133_);
 1404 #line 137 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1405 									_tmp135_ = _tmp134_;
 1406 #line 137 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1407 									_tmp136_ = g_strdup_printf ("\"%s\"", _tmp135_);
 1408 #line 137 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1409 									_tmp137_ = _tmp136_;
 1410 #line 137 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1411 									_tmp138_ = prop;
 1412 #line 137 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1413 									_tmp139_ = tracker_property_get_data_type (_tmp138_);
 1414 #line 137 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1415 									_tmp140_ = _tmp139_;
 1416 #line 137 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1417 									tracker_sparql_expression_append_expression_as_string (_tmp132_, _tmp137_, _tmp140_);
 1418 #line 137 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1419 									_g_free0 (_tmp137_);
 1420 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1421 									_tmp141_ = sql;
 1422 #line 139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1423 									g_string_append (_tmp141_, " AS \"object\"");
 1424 #line 140 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1425 									_tmp142_ = self->return_graph;
 1426 #line 140 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1427 									if (_tmp142_) {
 1428 #line 1424 "tracker-sparql-pattern.c"
 1429 										GString* _tmp143_;
 1430 										TrackerProperty* _tmp144_;
 1431 										const gchar* _tmp145_;
 1432 										const gchar* _tmp146_;
 1433 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1434 										_tmp143_ = sql;
 1435 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1436 										_tmp144_ = prop;
 1437 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1438 										_tmp145_ = tracker_property_get_name (_tmp144_);
 1439 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1440 										_tmp146_ = _tmp145_;
 1441 #line 141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1442 										g_string_append_printf (_tmp143_, ", \"%s:graph\" AS \"graph\"", _tmp146_);
 1443 #line 1439 "tracker-sparql-pattern.c"
 1444 									}
 1445 #line 143 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1446 									_tmp147_ = sql;
 1447 #line 143 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1448 									_tmp148_ = prop;
 1449 #line 143 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1450 									_tmp149_ = tracker_property_get_table_name (_tmp148_);
 1451 #line 143 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1452 									_tmp150_ = _tmp149_;
 1453 #line 143 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1454 									g_string_append_printf (_tmp147_, " FROM \"%s\"", _tmp150_);
 1455 #line 1451 "tracker-sparql-pattern.c"
 1456 								}
 1457 #line 128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1458 								_g_object_unref0 (prop);
 1459 #line 1455 "tracker-sparql-pattern.c"
 1460 							}
 1461 						}
 1462 					}
 1463 				} else {
 1464 					TrackerSparqlQuery* _tmp151_;
 1465 					GError* _tmp152_ = NULL;
 1466 #line 148 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1467 					_tmp151_ = query;
 1468 #line 148 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1469 					_tmp152_ = tracker_sparql_query_get_internal_error (_tmp151_, "Unrestricted predicate variables not supported");
 1470 #line 148 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1471 					_inner_error_ = _tmp152_;
 1472 #line 148 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1473 					_g_string_free0 (sql);
 1474 #line 1470 "tracker-sparql-pattern.c"
 1475 					goto __catch0_g_error;
 1476 				}
 1477 			}
 1478 		}
 1479 #line 150 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1480 		_tmp153_ = sql;
 1481 #line 150 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1482 		_tmp154_ = _tmp153_->str;
 1483 #line 150 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1484 		_tmp155_ = g_strdup (_tmp154_);
 1485 #line 150 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1486 		result = _tmp155_;
 1487 #line 150 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1488 		_g_string_free0 (sql);
 1489 #line 150 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1490 		return result;
 1491 #line 1487 "tracker-sparql-pattern.c"
 1492 	}
 1493 	goto __finally0;
 1494 	__catch0_g_error:
 1495 	{
 1496 		GError* e = NULL;
 1497 		GError* _tmp156_;
 1498 		const gchar* _tmp157_;
 1499 		GError* _tmp158_;
 1500 #line 30 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1501 		e = _inner_error_;
 1502 #line 30 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1503 		_inner_error_ = NULL;
 1504 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1505 		_tmp156_ = e;
 1506 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1507 		_tmp157_ = _tmp156_->message;
 1508 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1509 		_tmp158_ = g_error_new_literal (TRACKER_SPARQL_ERROR, TRACKER_SPARQL_ERROR_INTERNAL, _tmp157_);
 1510 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1511 		_inner_error_ = _tmp158_;
 1512 #line 152 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1513 		_g_error_free0 (e);
 1514 #line 1510 "tracker-sparql-pattern.c"
 1515 		goto __finally0;
 1516 	}
 1517 	__finally0:
 1518 #line 30 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1519 	if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 1520 #line 30 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1521 		g_propagate_error (error, _inner_error_);
 1522 #line 30 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1523 		return NULL;
 1524 #line 1520 "tracker-sparql-pattern.c"
 1525 	} else {
 1526 #line 30 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1527 		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);
 1528 #line 30 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1529 		g_clear_error (&_inner_error_);
 1530 #line 30 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1531 		return NULL;
 1532 #line 1528 "tracker-sparql-pattern.c"
 1533 	}
 1534 }
 1535 
 1536 
 1537 TrackerSparqlPredicateVariable* tracker_sparql_predicate_variable_construct (GType object_type) {
 1538 	TrackerSparqlPredicateVariable * self = NULL;
 1539 #line 22 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1540 	self = (TrackerSparqlPredicateVariable*) g_object_new (object_type, NULL);
 1541 #line 22 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1542 	return self;
 1543 #line 1539 "tracker-sparql-pattern.c"
 1544 }
 1545 
 1546 
 1547 TrackerSparqlPredicateVariable* tracker_sparql_predicate_variable_new (void) {
 1548 #line 22 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1549 	return tracker_sparql_predicate_variable_construct (TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE);
 1550 #line 1546 "tracker-sparql-pattern.c"
 1551 }
 1552 
 1553 
 1554 static void tracker_sparql_predicate_variable_class_init (TrackerSparqlPredicateVariableClass * klass) {
 1555 #line 22 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1556 	tracker_sparql_predicate_variable_parent_class = g_type_class_peek_parent (klass);
 1557 #line 22 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1558 	G_OBJECT_CLASS (klass)->finalize = tracker_sparql_predicate_variable_finalize;
 1559 #line 1555 "tracker-sparql-pattern.c"
 1560 }
 1561 
 1562 
 1563 static void tracker_sparql_predicate_variable_instance_init (TrackerSparqlPredicateVariable * self) {
 1564 }
 1565 
 1566 
 1567 static void tracker_sparql_predicate_variable_finalize (GObject* obj) {
 1568 	TrackerSparqlPredicateVariable * self;
 1569 #line 22 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1570 	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TRACKER_SPARQL_TYPE_PREDICATE_VARIABLE, TrackerSparqlPredicateVariable);
 1571 #line 23 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1572 	_g_free0 (self->subject);
 1573 #line 24 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1574 	_g_free0 (self->object);
 1575 #line 27 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1576 	_g_object_unref0 (self->domain);
 1577 #line 22 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1578 	G_OBJECT_CLASS (tracker_sparql_predicate_variable_parent_class)->finalize (obj);
 1579 #line 1575 "tracker-sparql-pattern.c"
 1580 }
 1581 
 1582 
 1583 GType tracker_sparql_predicate_variable_get_type (void) {
 1584 	static volatile gsize tracker_sparql_predicate_variable_type_id__volatile = 0;
 1585 	if (g_once_init_enter (&tracker_sparql_predicate_variable_type_id__volatile)) {
 1586 		static const GTypeInfo g_define_type_info = { sizeof (TrackerSparqlPredicateVariableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tracker_sparql_predicate_variable_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TrackerSparqlPredicateVariable), 0, (GInstanceInitFunc) tracker_sparql_predicate_variable_instance_init, NULL };
 1587 		GType tracker_sparql_predicate_variable_type_id;
 1588 		tracker_sparql_predicate_variable_type_id = g_type_register_static (G_TYPE_OBJECT, "TrackerSparqlPredicateVariable", &g_define_type_info, 0);
 1589 		g_once_init_leave (&tracker_sparql_predicate_variable_type_id__volatile, tracker_sparql_predicate_variable_type_id);
 1590 	}
 1591 	return tracker_sparql_predicate_variable_type_id__volatile;
 1592 }
 1593 
 1594 
 1595 TrackerSparqlPattern* tracker_sparql_pattern_construct (GType object_type, TrackerSparqlQuery* query) {
 1596 	TrackerSparqlPattern * self = NULL;
 1597 	TrackerSparqlQuery* _tmp0_;
 1598 	TrackerSparqlQuery* _tmp1_;
 1599 	TrackerSparqlExpression* _tmp2_;
 1600 #line 177 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1601 	g_return_val_if_fail (query != NULL, NULL);
 1602 #line 177 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1603 	self = (TrackerSparqlPattern*) g_object_new (object_type, NULL);
 1604 #line 178 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1605 	_tmp0_ = query;
 1606 #line 178 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1607 	self->priv->query = _tmp0_;
 1608 #line 179 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1609 	_tmp1_ = query;
 1610 #line 179 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1611 	_tmp2_ = _tmp1_->expression;
 1612 #line 179 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1613 	self->priv->expression = _tmp2_;
 1614 #line 177 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1615 	return self;
 1616 #line 1612 "tracker-sparql-pattern.c"
 1617 }
 1618 
 1619 
 1620 TrackerSparqlPattern* tracker_sparql_pattern_new (TrackerSparqlQuery* query) {
 1621 #line 177 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1622 	return tracker_sparql_pattern_construct (TRACKER_SPARQL_TYPE_PATTERN, query);
 1623 #line 1619 "tracker-sparql-pattern.c"
 1624 }
 1625 
 1626 
 1627 static inline gboolean tracker_sparql_pattern_next (TrackerSparqlPattern* self, GError** error) {
 1628 	gboolean result = FALSE;
 1629 	TrackerSparqlQuery* _tmp0_;
 1630 	gboolean _tmp1_ = FALSE;
 1631 	gboolean _tmp2_;
 1632 	GError * _inner_error_ = NULL;
 1633 #line 187 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1634 	g_return_val_if_fail (self != NULL, FALSE);
 1635 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1636 	_tmp0_ = self->priv->query;
 1637 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1638 	_tmp1_ = tracker_sparql_query_next (_tmp0_, &_inner_error_);
 1639 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1640 	_tmp2_ = _tmp1_;
 1641 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1642 	if (_inner_error_ != NULL) {
 1643 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1644 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 1645 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1646 			g_propagate_error (error, _inner_error_);
 1647 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1648 			return FALSE;
 1649 #line 1645 "tracker-sparql-pattern.c"
 1650 		} else {
 1651 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1652 			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);
 1653 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1654 			g_clear_error (&_inner_error_);
 1655 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1656 			return FALSE;
 1657 #line 1653 "tracker-sparql-pattern.c"
 1658 		}
 1659 	}
 1660 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1661 	result = _tmp2_;
 1662 #line 188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1663 	return result;
 1664 #line 1660 "tracker-sparql-pattern.c"
 1665 }
 1666 
 1667 
 1668 static inline TrackerSparqlTokenType tracker_sparql_pattern_current (TrackerSparqlPattern* self) {
 1669 	TrackerSparqlTokenType result = 0;
 1670 	TrackerSparqlQuery* _tmp0_;
 1671 	TrackerSparqlTokenType _tmp1_ = 0;
 1672 #line 191 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1673 	g_return_val_if_fail (self != NULL, 0);
 1674 #line 192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1675 	_tmp0_ = self->priv->query;
 1676 #line 192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1677 	_tmp1_ = tracker_sparql_query_current (_tmp0_);
 1678 #line 192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1679 	result = _tmp1_;
 1680 #line 192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1681 	return result;
 1682 #line 1678 "tracker-sparql-pattern.c"
 1683 }
 1684 
 1685 
 1686 static inline gboolean tracker_sparql_pattern_accept (TrackerSparqlPattern* self, TrackerSparqlTokenType type, GError** error) {
 1687 	gboolean result = FALSE;
 1688 	TrackerSparqlQuery* _tmp0_;
 1689 	TrackerSparqlTokenType _tmp1_;
 1690 	gboolean _tmp2_ = FALSE;
 1691 	gboolean _tmp3_;
 1692 	GError * _inner_error_ = NULL;
 1693 #line 195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1694 	g_return_val_if_fail (self != NULL, FALSE);
 1695 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1696 	_tmp0_ = self->priv->query;
 1697 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1698 	_tmp1_ = type;
 1699 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1700 	_tmp2_ = tracker_sparql_query_accept (_tmp0_, _tmp1_, &_inner_error_);
 1701 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1702 	_tmp3_ = _tmp2_;
 1703 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1704 	if (_inner_error_ != NULL) {
 1705 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1706 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 1707 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1708 			g_propagate_error (error, _inner_error_);
 1709 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1710 			return FALSE;
 1711 #line 1707 "tracker-sparql-pattern.c"
 1712 		} else {
 1713 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1714 			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);
 1715 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1716 			g_clear_error (&_inner_error_);
 1717 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1718 			return FALSE;
 1719 #line 1715 "tracker-sparql-pattern.c"
 1720 		}
 1721 	}
 1722 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1723 	result = _tmp3_;
 1724 #line 196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1725 	return result;
 1726 #line 1722 "tracker-sparql-pattern.c"
 1727 }
 1728 
 1729 
 1730 static GError* tracker_sparql_pattern_get_error (TrackerSparqlPattern* self, const gchar* msg) {
 1731 	GError* result = NULL;
 1732 	TrackerSparqlQuery* _tmp0_;
 1733 	const gchar* _tmp1_;
 1734 	GError* _tmp2_ = NULL;
 1735 #line 199 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1736 	g_return_val_if_fail (self != NULL, NULL);
 1737 #line 199 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1738 	g_return_val_if_fail (msg != NULL, NULL);
 1739 #line 200 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1740 	_tmp0_ = self->priv->query;
 1741 #line 200 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1742 	_tmp1_ = msg;
 1743 #line 200 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1744 	_tmp2_ = tracker_sparql_query_get_error (_tmp0_, _tmp1_);
 1745 #line 200 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1746 	result = _tmp2_;
 1747 #line 200 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1748 	return result;
 1749 #line 1745 "tracker-sparql-pattern.c"
 1750 }
 1751 
 1752 
 1753 static gboolean tracker_sparql_pattern_expect (TrackerSparqlPattern* self, TrackerSparqlTokenType type, GError** error) {
 1754 	gboolean result = FALSE;
 1755 	TrackerSparqlQuery* _tmp0_;
 1756 	TrackerSparqlTokenType _tmp1_;
 1757 	gboolean _tmp2_ = FALSE;
 1758 	gboolean _tmp3_;
 1759 	GError * _inner_error_ = NULL;
 1760 #line 203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1761 	g_return_val_if_fail (self != NULL, FALSE);
 1762 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1763 	_tmp0_ = self->priv->query;
 1764 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1765 	_tmp1_ = type;
 1766 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1767 	_tmp2_ = tracker_sparql_query_expect (_tmp0_, _tmp1_, &_inner_error_);
 1768 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1769 	_tmp3_ = _tmp2_;
 1770 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1771 	if (_inner_error_ != NULL) {
 1772 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1773 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 1774 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1775 			g_propagate_error (error, _inner_error_);
 1776 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1777 			return FALSE;
 1778 #line 1774 "tracker-sparql-pattern.c"
 1779 		} else {
 1780 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1781 			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);
 1782 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1783 			g_clear_error (&_inner_error_);
 1784 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1785 			return FALSE;
 1786 #line 1782 "tracker-sparql-pattern.c"
 1787 		}
 1788 	}
 1789 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1790 	result = _tmp3_;
 1791 #line 204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1792 	return result;
 1793 #line 1789 "tracker-sparql-pattern.c"
 1794 }
 1795 
 1796 
 1797 static void tracker_sparql_pattern_get_location (TrackerSparqlPattern* self, TrackerSourceLocation* result) {
 1798 	TrackerSparqlQuery* _tmp0_;
 1799 	TrackerSourceLocation _tmp1_ = {0};
 1800 #line 207 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1801 	g_return_if_fail (self != NULL);
 1802 #line 208 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1803 	_tmp0_ = self->priv->query;
 1804 #line 208 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1805 	tracker_sparql_query_get_location (_tmp0_, &_tmp1_);
 1806 #line 208 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1807 	*result = _tmp1_;
 1808 #line 208 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1809 	return;
 1810 #line 1806 "tracker-sparql-pattern.c"
 1811 }
 1812 
 1813 
 1814 static void tracker_sparql_pattern_set_location (TrackerSparqlPattern* self, TrackerSourceLocation* location) {
 1815 	TrackerSparqlQuery* _tmp0_;
 1816 	TrackerSourceLocation _tmp1_;
 1817 #line 211 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1818 	g_return_if_fail (self != NULL);
 1819 #line 211 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1820 	g_return_if_fail (location != NULL);
 1821 #line 212 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1822 	_tmp0_ = self->priv->query;
 1823 #line 212 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1824 	_tmp1_ = *location;
 1825 #line 212 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1826 	tracker_sparql_query_set_location (_tmp0_, &_tmp1_);
 1827 #line 1823 "tracker-sparql-pattern.c"
 1828 }
 1829 
 1830 
 1831 static gchar* tracker_sparql_pattern_get_last_string (TrackerSparqlPattern* self, gint strip) {
 1832 	gchar* result = NULL;
 1833 	TrackerSparqlQuery* _tmp0_;
 1834 	gint _tmp1_;
 1835 	gchar* _tmp2_ = NULL;
 1836 #line 215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1837 	g_return_val_if_fail (self != NULL, NULL);
 1838 #line 216 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1839 	_tmp0_ = self->priv->query;
 1840 #line 216 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1841 	_tmp1_ = strip;
 1842 #line 216 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1843 	_tmp2_ = tracker_sparql_query_get_last_string (_tmp0_, _tmp1_);
 1844 #line 216 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1845 	result = _tmp2_;
 1846 #line 216 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1847 	return result;
 1848 #line 1844 "tracker-sparql-pattern.c"
 1849 }
 1850 
 1851 
 1852 static void _g_object_unref0_ (gpointer var) {
 1853 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1854 	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
 1855 #line 1851 "tracker-sparql-pattern.c"
 1856 }
 1857 
 1858 
 1859 static void _g_list_free__g_object_unref0_ (GList* self) {
 1860 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1861 	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
 1862 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1863 	g_list_free (self);
 1864 #line 1860 "tracker-sparql-pattern.c"
 1865 }
 1866 
 1867 
 1868 static void _vala_array_add5 (TrackerPropertyType** array, int* length, int* size, TrackerPropertyType value) {
 1869 #line 312 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1870 	if ((*length) == (*size)) {
 1871 #line 312 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1872 		*size = (*size) ? (2 * (*size)) : 4;
 1873 #line 312 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1874 		*array = g_renew (TrackerPropertyType, *array, *size);
 1875 #line 1871 "tracker-sparql-pattern.c"
 1876 	}
 1877 #line 312 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1878 	(*array)[(*length)++] = value;
 1879 #line 1875 "tracker-sparql-pattern.c"
 1880 }
 1881 
 1882 
 1883 static void _vala_array_add6 (gchar*** array, int* length, int* size, gchar* value) {
 1884 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1885 	if ((*length) == (*size)) {
 1886 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1887 		*size = (*size) ? (2 * (*size)) : 4;
 1888 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1889 		*array = g_renew (gchar*, *array, (*size) + 1);
 1890 #line 1886 "tracker-sparql-pattern.c"
 1891 	}
 1892 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1893 	(*array)[(*length)++] = value;
 1894 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1895 	(*array)[*length] = NULL;
 1896 #line 1892 "tracker-sparql-pattern.c"
 1897 }
 1898 
 1899 
 1900 static void _vala_array_add7 (TrackerPropertyType** array, int* length, int* size, TrackerPropertyType value) {
 1901 #line 324 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1902 	if ((*length) == (*size)) {
 1903 #line 324 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1904 		*size = (*size) ? (2 * (*size)) : 4;
 1905 #line 324 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1906 		*array = g_renew (TrackerPropertyType, *array, *size);
 1907 #line 1903 "tracker-sparql-pattern.c"
 1908 	}
 1909 #line 324 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1910 	(*array)[(*length)++] = value;
 1911 #line 1907 "tracker-sparql-pattern.c"
 1912 }
 1913 
 1914 
 1915 TrackerSparqlSelectContext* tracker_sparql_pattern_translate_select (TrackerSparqlPattern* self, GString* sql, gboolean subquery, gboolean scalar_subquery, GError** error) {
 1916 	TrackerSparqlSelectContext* result = NULL;
 1917 	TrackerSparqlSelectContext* _result_ = NULL;
 1918 	gboolean _tmp0_;
 1919 	TrackerSparqlSelectContext* _tmp9_;
 1920 	TrackerPropertyType type;
 1921 	GString* _tmp10_;
 1922 	GString* pattern_sql;
 1923 	TrackerSparqlQuery* _tmp11_;
 1924 	GList* _tmp12_;
 1925 	GList* old_bindings;
 1926 	GString* _tmp13_;
 1927 	gboolean _tmp14_ = FALSE;
 1928 	gboolean _tmp15_;
 1929 	TrackerSourceLocation _tmp19_ = {0};
 1930 	TrackerSourceLocation select_variables_location;
 1931 	TrackerSparqlExpression* _tmp20_;
 1932 	gboolean _tmp21_ = FALSE;
 1933 	gboolean _tmp22_;
 1934 	GString* _tmp23_;
 1935 	TrackerSparqlContext* _tmp24_ = NULL;
 1936 	TrackerSparqlContext* pattern;
 1937 	TrackerSparqlContext* _tmp25_;
 1938 	GHashTable* _tmp26_;
 1939 	GList* _tmp27_ = NULL;
 1940 	TrackerSourceLocation _tmp33_ = {0};
 1941 	TrackerSourceLocation after_where;
 1942 	TrackerSourceLocation _tmp34_;
 1943 	TrackerSparqlContext* _tmp35_;
 1944 	TrackerSparqlContext* _tmp36_;
 1945 	GHashTable* _tmp37_;
 1946 	GList* _tmp38_ = NULL;
 1947 	TrackerSparqlQuery* _tmp48_;
 1948 	GList* _tmp49_;
 1949 	GList* where_bindings;
 1950 	TrackerSparqlQuery* _tmp50_;
 1951 	GList* _tmp51_;
 1952 	gboolean first;
 1953 	gboolean _tmp52_ = FALSE;
 1954 	gboolean _tmp53_;
 1955 	gboolean _tmp105_ = FALSE;
 1956 	gboolean _tmp106_;
 1957 	gboolean _tmp108_;
 1958 	GList* _tmp117_;
 1959 	gboolean _tmp122_;
 1960 	GString* _tmp124_;
 1961 	GString* _tmp125_;
 1962 	GString* _tmp126_;
 1963 	const gchar* _tmp127_;
 1964 	GString* _tmp128_;
 1965 	TrackerSourceLocation _tmp129_;
 1966 	gboolean _tmp130_ = FALSE;
 1967 	gboolean _tmp131_;
 1968 	gboolean _tmp163_ = FALSE;
 1969 	gboolean _tmp164_;
 1970 	gint limit;
 1971 	gint offset;
 1972 	gboolean _tmp185_ = FALSE;
 1973 	gboolean _tmp186_;
 1974 	gint _tmp205_;
 1975 	gboolean _tmp235_ = FALSE;
 1976 	gboolean _tmp236_ = FALSE;
 1977 	gboolean _tmp237_;
 1978 	gboolean _tmp239_;
 1979 	gboolean _tmp241_;
 1980 	TrackerSparqlContext* _tmp258_;
 1981 	TrackerSparqlContext* _tmp259_;
 1982 	TrackerSparqlContext* _tmp260_;
 1983 	TrackerSparqlSelectContext* _tmp261_;
 1984 	TrackerPropertyType _tmp262_;
 1985 	GError * _inner_error_ = NULL;
 1986 #line 244 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1987 	g_return_val_if_fail (self != NULL, NULL);
 1988 #line 244 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1989 	g_return_val_if_fail (sql != NULL, NULL);
 1990 #line 247 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1991 	_tmp0_ = scalar_subquery;
 1992 #line 247 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 1993 	if (_tmp0_) {
 1994 #line 1990 "tracker-sparql-pattern.c"
 1995 		TrackerSparqlQuery* _tmp1_;
 1996 		TrackerSparqlContext* _tmp2_;
 1997 		TrackerSparqlContext* _tmp3_;
 1998 		TrackerSparqlSelectContext* _tmp4_;
 1999 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2000 		_tmp1_ = self->priv->query;
 2001 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2002 		_tmp2_ = tracker_sparql_pattern_get_context (self);
 2003 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2004 		_tmp3_ = _tmp2_;
 2005 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2006 		_tmp4_ = tracker_sparql_select_context_new_subquery (_tmp1_, _tmp3_);
 2007 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2008 		_tracker_sparql_context_unref0 (_result_);
 2009 #line 248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2010 		_result_ = _tmp4_;
 2011 #line 2007 "tracker-sparql-pattern.c"
 2012 	} else {
 2013 		TrackerSparqlQuery* _tmp5_;
 2014 		TrackerSparqlContext* _tmp6_;
 2015 		TrackerSparqlContext* _tmp7_;
 2016 		TrackerSparqlSelectContext* _tmp8_;
 2017 #line 250 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2018 		_tmp5_ = self->priv->query;
 2019 #line 250 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2020 		_tmp6_ = tracker_sparql_pattern_get_context (self);
 2021 #line 250 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2022 		_tmp7_ = _tmp6_;
 2023 #line 250 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2024 		_tmp8_ = tracker_sparql_select_context_new (_tmp5_, _tmp7_);
 2025 #line 250 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2026 		_tracker_sparql_context_unref0 (_result_);
 2027 #line 250 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2028 		_result_ = _tmp8_;
 2029 #line 2025 "tracker-sparql-pattern.c"
 2030 	}
 2031 #line 252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2032 	_tmp9_ = _result_;
 2033 #line 252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2034 	tracker_sparql_pattern_set_context (self, (TrackerSparqlContext*) _tmp9_);
 2035 #line 253 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2036 	type = TRACKER_PROPERTY_TYPE_UNKNOWN;
 2037 #line 255 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2038 	_tmp10_ = g_string_new ("");
 2039 #line 255 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2040 	pattern_sql = _tmp10_;
 2041 #line 256 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2042 	_tmp11_ = self->priv->query;
 2043 #line 256 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2044 	_tmp12_ = _tmp11_->bindings;
 2045 #line 256 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2046 	_tmp11_->bindings = NULL;
 2047 #line 256 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2048 	old_bindings = _tmp12_;
 2049 #line 258 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2050 	_tmp13_ = sql;
 2051 #line 258 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2052 	g_string_append (_tmp13_, "SELECT ");
 2053 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2054 	tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_SELECT, &_inner_error_);
 2055 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2056 	if (_inner_error_ != NULL) {
 2057 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2058 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 2059 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2060 			g_propagate_error (error, _inner_error_);
 2061 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2062 			__g_list_free__g_object_unref0_0 (old_bindings);
 2063 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2064 			_g_string_free0 (pattern_sql);
 2065 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2066 			_tracker_sparql_context_unref0 (_result_);
 2067 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2068 			return NULL;
 2069 #line 2065 "tracker-sparql-pattern.c"
 2070 		} else {
 2071 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2072 			__g_list_free__g_object_unref0_0 (old_bindings);
 2073 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2074 			_g_string_free0 (pattern_sql);
 2075 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2076 			_tracker_sparql_context_unref0 (_result_);
 2077 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2078 			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);
 2079 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2080 			g_clear_error (&_inner_error_);
 2081 #line 260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2082 			return NULL;
 2083 #line 2079 "tracker-sparql-pattern.c"
 2084 		}
 2085 	}
 2086 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2087 	_tmp14_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_DISTINCT, &_inner_error_);
 2088 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2089 	_tmp15_ = _tmp14_;
 2090 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2091 	if (_inner_error_ != NULL) {
 2092 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2093 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 2094 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2095 			g_propagate_error (error, _inner_error_);
 2096 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2097 			__g_list_free__g_object_unref0_0 (old_bindings);
 2098 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2099 			_g_string_free0 (pattern_sql);
 2100 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2101 			_tracker_sparql_context_unref0 (_result_);
 2102 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2103 			return NULL;
 2104 #line 2100 "tracker-sparql-pattern.c"
 2105 		} else {
 2106 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2107 			__g_list_free__g_object_unref0_0 (old_bindings);
 2108 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2109 			_g_string_free0 (pattern_sql);
 2110 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2111 			_tracker_sparql_context_unref0 (_result_);
 2112 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2113 			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);
 2114 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2115 			g_clear_error (&_inner_error_);
 2116 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2117 			return NULL;
 2118 #line 2114 "tracker-sparql-pattern.c"
 2119 		}
 2120 	}
 2121 #line 262 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2122 	if (_tmp15_) {
 2123 #line 2119 "tracker-sparql-pattern.c"
 2124 		GString* _tmp16_;
 2125 #line 263 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2126 		_tmp16_ = sql;
 2127 #line 263 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2128 		g_string_append (_tmp16_, "DISTINCT ");
 2129 #line 2125 "tracker-sparql-pattern.c"
 2130 	} else {
 2131 		gboolean _tmp17_ = FALSE;
 2132 		gboolean _tmp18_;
 2133 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2134 		_tmp17_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_REDUCED, &_inner_error_);
 2135 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2136 		_tmp18_ = _tmp17_;
 2137 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2138 		if (_inner_error_ != NULL) {
 2139 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2140 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 2141 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2142 				g_propagate_error (error, _inner_error_);
 2143 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2144 				__g_list_free__g_object_unref0_0 (old_bindings);
 2145 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2146 				_g_string_free0 (pattern_sql);
 2147 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2148 				_tracker_sparql_context_unref0 (_result_);
 2149 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2150 				return NULL;
 2151 #line 2147 "tracker-sparql-pattern.c"
 2152 			} else {
 2153 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2154 				__g_list_free__g_object_unref0_0 (old_bindings);
 2155 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2156 				_g_string_free0 (pattern_sql);
 2157 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2158 				_tracker_sparql_context_unref0 (_result_);
 2159 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2160 				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);
 2161 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2162 				g_clear_error (&_inner_error_);
 2163 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2164 				return NULL;
 2165 #line 2161 "tracker-sparql-pattern.c"
 2166 			}
 2167 		}
 2168 #line 264 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2169 		if (_tmp18_) {
 2170 #line 2166 "tracker-sparql-pattern.c"
 2171 		}
 2172 	}
 2173 #line 268 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2174 	tracker_sparql_pattern_get_location (self, &_tmp19_);
 2175 #line 268 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2176 	select_variables_location = _tmp19_;
 2177 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2178 	_tmp20_ = self->priv->expression;
 2179 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2180 	tracker_sparql_expression_skip_select_variables (_tmp20_, &_inner_error_);
 2181 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2182 	if (_inner_error_ != NULL) {
 2183 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2184 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 2185 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2186 			g_propagate_error (error, _inner_error_);
 2187 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2188 			__g_list_free__g_object_unref0_0 (old_bindings);
 2189 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2190 			_g_string_free0 (pattern_sql);
 2191 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2192 			_tracker_sparql_context_unref0 (_result_);
 2193 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2194 			return NULL;
 2195 #line 2191 "tracker-sparql-pattern.c"
 2196 		} else {
 2197 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2198 			__g_list_free__g_object_unref0_0 (old_bindings);
 2199 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2200 			_g_string_free0 (pattern_sql);
 2201 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2202 			_tracker_sparql_context_unref0 (_result_);
 2203 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2204 			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);
 2205 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2206 			g_clear_error (&_inner_error_);
 2207 #line 269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2208 			return NULL;
 2209 #line 2205 "tracker-sparql-pattern.c"
 2210 		}
 2211 	}
 2212 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2213 	_tmp21_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_FROM, &_inner_error_);
 2214 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2215 	_tmp22_ = _tmp21_;
 2216 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2217 	if (_inner_error_ != NULL) {
 2218 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2219 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 2220 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2221 			g_propagate_error (error, _inner_error_);
 2222 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2223 			__g_list_free__g_object_unref0_0 (old_bindings);
 2224 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2225 			_g_string_free0 (pattern_sql);
 2226 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2227 			_tracker_sparql_context_unref0 (_result_);
 2228 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2229 			return NULL;
 2230 #line 2226 "tracker-sparql-pattern.c"
 2231 		} else {
 2232 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2233 			__g_list_free__g_object_unref0_0 (old_bindings);
 2234 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2235 			_g_string_free0 (pattern_sql);
 2236 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2237 			_tracker_sparql_context_unref0 (_result_);
 2238 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2239 			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);
 2240 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2241 			g_clear_error (&_inner_error_);
 2242 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2243 			return NULL;
 2244 #line 2240 "tracker-sparql-pattern.c"
 2245 		}
 2246 	}
 2247 #line 271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2248 	if (_tmp22_) {
 2249 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2250 		tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_NAMED, &_inner_error_);
 2251 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2252 		if (_inner_error_ != NULL) {
 2253 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2254 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 2255 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2256 				g_propagate_error (error, _inner_error_);
 2257 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2258 				__g_list_free__g_object_unref0_0 (old_bindings);
 2259 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2260 				_g_string_free0 (pattern_sql);
 2261 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2262 				_tracker_sparql_context_unref0 (_result_);
 2263 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2264 				return NULL;
 2265 #line 2261 "tracker-sparql-pattern.c"
 2266 			} else {
 2267 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2268 				__g_list_free__g_object_unref0_0 (old_bindings);
 2269 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2270 				_g_string_free0 (pattern_sql);
 2271 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2272 				_tracker_sparql_context_unref0 (_result_);
 2273 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2274 				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);
 2275 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2276 				g_clear_error (&_inner_error_);
 2277 #line 272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2278 				return NULL;
 2279 #line 2275 "tracker-sparql-pattern.c"
 2280 			}
 2281 		}
 2282 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2283 		tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_IRI_REF, &_inner_error_);
 2284 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2285 		if (_inner_error_ != NULL) {
 2286 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2287 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 2288 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2289 				g_propagate_error (error, _inner_error_);
 2290 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2291 				__g_list_free__g_object_unref0_0 (old_bindings);
 2292 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2293 				_g_string_free0 (pattern_sql);
 2294 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2295 				_tracker_sparql_context_unref0 (_result_);
 2296 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2297 				return NULL;
 2298 #line 2294 "tracker-sparql-pattern.c"
 2299 			} else {
 2300 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2301 				__g_list_free__g_object_unref0_0 (old_bindings);
 2302 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2303 				_g_string_free0 (pattern_sql);
 2304 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2305 				_tracker_sparql_context_unref0 (_result_);
 2306 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2307 				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);
 2308 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2309 				g_clear_error (&_inner_error_);
 2310 #line 273 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2311 				return NULL;
 2312 #line 2308 "tracker-sparql-pattern.c"
 2313 			}
 2314 		}
 2315 	}
 2316 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2317 	tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_WHERE, &_inner_error_);
 2318 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2319 	if (_inner_error_ != NULL) {
 2320 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2321 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 2322 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2323 			g_propagate_error (error, _inner_error_);
 2324 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2325 			__g_list_free__g_object_unref0_0 (old_bindings);
 2326 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2327 			_g_string_free0 (pattern_sql);
 2328 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2329 			_tracker_sparql_context_unref0 (_result_);
 2330 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2331 			return NULL;
 2332 #line 2328 "tracker-sparql-pattern.c"
 2333 		} else {
 2334 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2335 			__g_list_free__g_object_unref0_0 (old_bindings);
 2336 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2337 			_g_string_free0 (pattern_sql);
 2338 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2339 			_tracker_sparql_context_unref0 (_result_);
 2340 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2341 			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);
 2342 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2343 			g_clear_error (&_inner_error_);
 2344 #line 276 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2345 			return NULL;
 2346 #line 2342 "tracker-sparql-pattern.c"
 2347 		}
 2348 	}
 2349 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2350 	_tmp23_ = pattern_sql;
 2351 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2352 	_tmp24_ = tracker_sparql_pattern_translate_group_graph_pattern (self, _tmp23_, &_inner_error_);
 2353 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2354 	pattern = _tmp24_;
 2355 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2356 	if (_inner_error_ != NULL) {
 2357 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2358 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 2359 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2360 			g_propagate_error (error, _inner_error_);
 2361 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2362 			__g_list_free__g_object_unref0_0 (old_bindings);
 2363 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2364 			_g_string_free0 (pattern_sql);
 2365 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2366 			_tracker_sparql_context_unref0 (_result_);
 2367 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2368 			return NULL;
 2369 #line 2365 "tracker-sparql-pattern.c"
 2370 		} else {
 2371 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2372 			__g_list_free__g_object_unref0_0 (old_bindings);
 2373 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2374 			_g_string_free0 (pattern_sql);
 2375 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2376 			_tracker_sparql_context_unref0 (_result_);
 2377 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2378 			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);
 2379 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2380 			g_clear_error (&_inner_error_);
 2381 #line 278 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2382 			return NULL;
 2383 #line 2379 "tracker-sparql-pattern.c"
 2384 		}
 2385 	}
 2386 #line 279 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2387 	_tmp25_ = pattern;
 2388 #line 279 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2389 	_tmp26_ = _tmp25_->var_set;
 2390 #line 279 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2391 	_tmp27_ = g_hash_table_get_keys (_tmp26_);
 2392 #line 2388 "tracker-sparql-pattern.c"
 2393 	{
 2394 		GList* key_collection = NULL;
 2395 		GList* key_it = NULL;
 2396 #line 279 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2397 		key_collection = _tmp27_;
 2398 #line 279 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2399 		for (key_it = key_collection; key_it != NULL; key_it = key_it->next) {
 2400 #line 2396 "tracker-sparql-pattern.c"
 2401 			TrackerSparqlVariable* key = NULL;
 2402 #line 279 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2403 			key = (TrackerSparqlVariable*) key_it->data;
 2404 #line 2400 "tracker-sparql-pattern.c"
 2405 			{
 2406 				TrackerSparqlContext* _tmp28_;
 2407 				TrackerSparqlContext* _tmp29_;
 2408 				GHashTable* _tmp30_;
 2409 				TrackerSparqlVariable* _tmp31_;
 2410 				TrackerSparqlVariable* _tmp32_;
 2411 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2412 				_tmp28_ = tracker_sparql_pattern_get_context (self);
 2413 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2414 				_tmp29_ = _tmp28_;
 2415 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2416 				_tmp30_ = _tmp29_->var_set;
 2417 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2418 				_tmp31_ = key;
 2419 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2420 				_tmp32_ = _g_object_ref0 (_tmp31_);
 2421 #line 280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2422 				g_hash_table_insert (_tmp30_, _tmp32_, (gpointer) ((gintptr) ((gint) TRACKER_SPARQL_VARIABLE_STATE_BOUND)));
 2423 #line 2419 "tracker-sparql-pattern.c"
 2424 			}
 2425 		}
 2426 #line 279 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2427 		_g_list_free0 (key_collection);
 2428 #line 2424 "tracker-sparql-pattern.c"
 2429 	}
 2430 #line 284 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2431 	tracker_sparql_pattern_get_location (self, &_tmp33_);
 2432 #line 284 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2433 	after_where = _tmp33_;
 2434 #line 285 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2435 	_tmp34_ = select_variables_location;
 2436 #line 285 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2437 	tracker_sparql_pattern_set_location (self, &_tmp34_);
 2438 #line 288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2439 	_tmp35_ = tracker_sparql_pattern_get_context (self);
 2440 #line 288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2441 	_tmp36_ = _tmp35_;
 2442 #line 288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2443 	_tmp37_ = _tmp36_->var_set;
 2444 #line 288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2445 	_tmp38_ = g_hash_table_get_keys (_tmp37_);
 2446 #line 2442 "tracker-sparql-pattern.c"
 2447 	{
 2448 		GList* variable_collection = NULL;
 2449 		GList* variable_it = NULL;
 2450 #line 288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2451 		variable_collection = _tmp38_;
 2452 #line 288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2453 		for (variable_it = variable_collection; variable_it != NULL; variable_it = variable_it->next) {
 2454 #line 2450 "tracker-sparql-pattern.c"
 2455 			TrackerSparqlVariable* variable = NULL;
 2456 #line 288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2457 			variable = (TrackerSparqlVariable*) variable_it->data;
 2458 #line 2454 "tracker-sparql-pattern.c"
 2459 			{
 2460 				TrackerSparqlVariable* _tmp39_;
 2461 				TrackerSparqlVariableBinding* _tmp40_;
 2462 #line 289 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2463 				_tmp39_ = variable;
 2464 #line 289 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2465 				_tmp40_ = _tmp39_->binding;
 2466 #line 289 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2467 				if (_tmp40_ == NULL) {
 2468 #line 2464 "tracker-sparql-pattern.c"
 2469 					TrackerSparqlVariable* _tmp41_;
 2470 					const gchar* _tmp42_;
 2471 					const gchar* _tmp43_;
 2472 					gchar* _tmp44_ = NULL;
 2473 					gchar* _tmp45_;
 2474 					GError* _tmp46_ = NULL;
 2475 					GError* _tmp47_;
 2476 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2477 					_tmp41_ = variable;
 2478 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2479 					_tmp42_ = tracker_sparql_variable_get_name (_tmp41_);
 2480 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2481 					_tmp43_ = _tmp42_;
 2482 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2483 					_tmp44_ = g_strdup_printf ("use of undefined variable `%s'", _tmp43_);
 2484 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2485 					_tmp45_ = _tmp44_;
 2486 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2487 					_tmp46_ = tracker_sparql_pattern_get_error (self, _tmp45_);
 2488 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2489 					_tmp47_ = _tmp46_;
 2490 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2491 					_g_free0 (_tmp45_);
 2492 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2493 					_inner_error_ = _tmp47_;
 2494 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2495 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 2496 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2497 						g_propagate_error (error, _inner_error_);
 2498 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2499 						_g_list_free0 (variable_collection);
 2500 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2501 						_tracker_sparql_context_unref0 (pattern);
 2502 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2503 						__g_list_free__g_object_unref0_0 (old_bindings);
 2504 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2505 						_g_string_free0 (pattern_sql);
 2506 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2507 						_tracker_sparql_context_unref0 (_result_);
 2508 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2509 						return NULL;
 2510 #line 2506 "tracker-sparql-pattern.c"
 2511 					} else {
 2512 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2513 						_g_list_free0 (variable_collection);
 2514 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2515 						_tracker_sparql_context_unref0 (pattern);
 2516 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2517 						__g_list_free__g_object_unref0_0 (old_bindings);
 2518 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2519 						_g_string_free0 (pattern_sql);
 2520 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2521 						_tracker_sparql_context_unref0 (_result_);
 2522 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2523 						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);
 2524 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2525 						g_clear_error (&_inner_error_);
 2526 #line 290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2527 						return NULL;
 2528 #line 2524 "tracker-sparql-pattern.c"
 2529 					}
 2530 				}
 2531 			}
 2532 		}
 2533 #line 288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2534 		_g_list_free0 (variable_collection);
 2535 #line 2531 "tracker-sparql-pattern.c"
 2536 	}
 2537 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2538 	_tmp48_ = self->priv->query;
 2539 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2540 	_tmp49_ = _tmp48_->bindings;
 2541 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2542 	_tmp48_->bindings = NULL;
 2543 #line 294 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2544 	where_bindings = _tmp49_;
 2545 #line 295 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2546 	_tmp50_ = self->priv->query;
 2547 #line 295 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2548 	_tmp51_ = old_bindings;
 2549 #line 295 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2550 	old_bindings = NULL;
 2551 #line 295 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2552 	__g_list_free__g_object_unref0_0 (_tmp50_->bindings);
 2553 #line 295 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2554 	_tmp50_->bindings = _tmp51_;
 2555 #line 297 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2556 	first = TRUE;
 2557 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2558 	_tmp52_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_STAR, &_inner_error_);
 2559 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2560 	_tmp53_ = _tmp52_;
 2561 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2562 	if (_inner_error_ != NULL) {
 2563 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2564 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 2565 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2566 			g_propagate_error (error, _inner_error_);
 2567 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2568 			__g_list_free__g_object_unref0_0 (where_bindings);
 2569 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2570 			_tracker_sparql_context_unref0 (pattern);
 2571 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2572 			__g_list_free__g_object_unref0_0 (old_bindings);
 2573 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2574 			_g_string_free0 (pattern_sql);
 2575 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2576 			_tracker_sparql_context_unref0 (_result_);
 2577 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2578 			return NULL;
 2579 #line 2575 "tracker-sparql-pattern.c"
 2580 		} else {
 2581 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2582 			__g_list_free__g_object_unref0_0 (where_bindings);
 2583 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2584 			_tracker_sparql_context_unref0 (pattern);
 2585 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2586 			__g_list_free__g_object_unref0_0 (old_bindings);
 2587 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2588 			_g_string_free0 (pattern_sql);
 2589 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2590 			_tracker_sparql_context_unref0 (_result_);
 2591 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2592 			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);
 2593 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2594 			g_clear_error (&_inner_error_);
 2595 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2596 			return NULL;
 2597 #line 2593 "tracker-sparql-pattern.c"
 2598 		}
 2599 	}
 2600 #line 298 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2601 	if (_tmp53_) {
 2602 #line 2598 "tracker-sparql-pattern.c"
 2603 		TrackerSparqlContext* _tmp54_;
 2604 		TrackerSparqlContext* _tmp55_;
 2605 		GHashTable* _tmp56_;
 2606 		GList* _tmp57_ = NULL;
 2607 #line 299 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2608 		_tmp54_ = tracker_sparql_pattern_get_context (self);
 2609 #line 299 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2610 		_tmp55_ = _tmp54_;
 2611 #line 299 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2612 		_tmp56_ = _tmp55_->var_set;
 2613 #line 299 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2614 		_tmp57_ = g_hash_table_get_keys (_tmp56_);
 2615 #line 2611 "tracker-sparql-pattern.c"
 2616 		{
 2617 			GList* variable_collection = NULL;
 2618 			GList* variable_it = NULL;
 2619 #line 299 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2620 			variable_collection = _tmp57_;
 2621 #line 299 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2622 			for (variable_it = variable_collection; variable_it != NULL; variable_it = variable_it->next) {
 2623 #line 2619 "tracker-sparql-pattern.c"
 2624 				TrackerSparqlVariable* variable = NULL;
 2625 #line 299 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2626 				variable = (TrackerSparqlVariable*) variable_it->data;
 2627 #line 2623 "tracker-sparql-pattern.c"
 2628 				{
 2629 					gboolean _tmp58_;
 2630 					gboolean _tmp60_;
 2631 					TrackerSparqlSelectContext* _tmp76_;
 2632 					TrackerSparqlSelectContext* _tmp77_;
 2633 					TrackerPropertyType* _tmp78_;
 2634 					gint _tmp78__length1;
 2635 					TrackerSparqlVariable* _tmp79_;
 2636 					TrackerSparqlVariableBinding* _tmp80_;
      (emitted by gcc) 2637 					TrackerPropertyType _tmp81_;
 2638 					TrackerSparqlSelectContext* _tmp82_;
 2639 					TrackerSparqlSelectContext* _tmp83_;
 2640 					gchar** _tmp84_;
 2641 					gint _tmp84__length1;
 2642 					TrackerSparqlVariable* _tmp85_;
 2643 					const gchar* _tmp86_;
 2644 					const gchar* _tmp87_;
 2645 					gchar* _tmp88_;
 2646 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2647 					_tmp58_ = first;
 2648 #line 300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2649 					if (!_tmp58_) {
 2650 #line 2646 "tracker-sparql-pattern.c"
 2651 						GString* _tmp59_;
 2652 #line 301 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2653 						_tmp59_ = sql;
 2654 #line 301 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2655 						g_string_append (_tmp59_, ", ");
 2656 #line 2652 "tracker-sparql-pattern.c"
 2657 					} else {
 2658 #line 303 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2659 						first = FALSE;
 2660 #line 2656 "tracker-sparql-pattern.c"
 2661 					}
 2662 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2663 					_tmp60_ = subquery;
 2664 #line 305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2665 					if (_tmp60_) {
 2666 #line 2662 "tracker-sparql-pattern.c"
 2667 						GString* _tmp61_;
 2668 						TrackerSparqlVariable* _tmp62_;
 2669 						const gchar* _tmp63_;
 2670 						const gchar* _tmp64_;
 2671 #line 307 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2672 						_tmp61_ = sql;
 2673 #line 307 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2674 						_tmp62_ = variable;
 2675 #line 307 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2676 						_tmp63_ = tracker_sparql_variable_get_sql_expression (_tmp62_);
 2677 #line 307 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2678 						_tmp64_ = _tmp63_;
 2679 #line 307 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2680 						g_string_append (_tmp61_, _tmp64_);
 2681 #line 2677 "tracker-sparql-pattern.c"
 2682 					} else {
 2683 						GString* _tmp65_;
 2684 						TrackerSparqlVariable* _tmp66_;
 2685 						const gchar* _tmp67_;
 2686 						const gchar* _tmp68_;
 2687 						TrackerSparqlVariable* _tmp69_;
 2688 						TrackerSparqlVariableBinding* _tmp70_;
 2689 						TrackerPropertyType _tmp71_;
 2690 						GString* _tmp72_;
 2691 						TrackerSparqlVariable* _tmp73_;
 2692 						const gchar* _tmp74_;
 2693 						const gchar* _tmp75_;
 2694 #line 309 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2695 						_tmp65_ = sql;
 2696 #line 309 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2697 						_tmp66_ = variable;
 2698 #line 309 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2699 						_tmp67_ = tracker_sparql_variable_get_sql_expression (_tmp66_);
 2700 #line 309 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2701 						_tmp68_ = _tmp67_;
 2702 #line 309 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2703 						_tmp69_ = variable;
 2704 #line 309 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2705 						_tmp70_ = _tmp69_->binding;
 2706 #line 309 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2707 						_tmp71_ = ((TrackerSparqlDataBinding*) _tmp70_)->data_type;
 2708 #line 309 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2709 						tracker_sparql_expression_append_expression_as_string (_tmp65_, _tmp68_, _tmp71_);
 2710 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2711 						_tmp72_ = sql;
 2712 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2713 						_tmp73_ = variable;
 2714 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2715 						_tmp74_ = tracker_sparql_variable_get_name (_tmp73_);
 2716 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2717 						_tmp75_ = _tmp74_;
 2718 #line 310 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2719 						g_string_append_printf (_tmp72_, " AS \"%s\"", _tmp75_);
 2720 #line 2716 "tracker-sparql-pattern.c"
 2721 					}
 2722 #line 312 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2723 					_tmp76_ = _result_;
 2724 #line 312 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2725 					_tmp77_ = _result_;
 2726 #line 312 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2727 					_tmp78_ = _tmp77_->types;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
 2728 #line 312 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2729 					_tmp78__length1 = _tmp77_->types_length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
 2730 #line 312 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2731 					_tmp79_ = variable;
 2732 #line 312 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2733 					_tmp80_ = _tmp79_->binding;
 2734 #line 312 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2735 					_tmp81_ = ((TrackerSparqlDataBinding*) _tmp80_)->data_type;
 2736 #line 312 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2737 					_vala_array_add5 (&_tmp76_->types, &_tmp76_->types_length1, &_tmp76_->_types_size_, _tmp81_);
 2738 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2739 					_tmp82_ = _result_;
 2740 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2741 					_tmp83_ = _result_;
 2742 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2743 					_tmp84_ = _tmp83_->variable_names;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
 2744 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2745 					_tmp84__length1 = _tmp83_->variable_names_length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
 2746 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2747 					_tmp85_ = variable;
 2748 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2749 					_tmp86_ = tracker_sparql_variable_get_name (_tmp85_);
 2750 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2751 					_tmp87_ = _tmp86_;
 2752 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2753 					_tmp88_ = g_strdup (_tmp87_);
 2754 #line 313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2755 					_vala_array_add6 (&_tmp82_->variable_names, &_tmp82_->variable_names_length1, &_tmp82_->_variable_names_size_, _tmp88_);
 2756 #line 2752 "tracker-sparql-pattern.c"
 2757 				}
 2758 			}
 2759 #line 299 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2760 			_g_list_free0 (variable_collection);
 2761 #line 2757 "tracker-sparql-pattern.c"
 2762 		}
 2763 	} else {
 2764 		{
 2765 			gint i;
 2766 #line 316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2767 			i = 0;
 2768 #line 2764 "tracker-sparql-pattern.c"
 2769 			{
 2770 				gboolean _tmp89_;
 2771 #line 316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2772 				_tmp89_ = TRUE;
 2773 #line 316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2774 				while (TRUE) {
 2775 #line 2771 "tracker-sparql-pattern.c"
 2776 					gboolean _tmp90_;
 2777 					gint _tmp92_;
 2778 					TrackerSparqlExpression* _tmp94_;
 2779 					GString* _tmp95_;
 2780 					gboolean _tmp96_;
 2781 					gint _tmp97_;
 2782 					TrackerPropertyType _tmp98_ = 0;
 2783 					TrackerPropertyType _tmp99_;
 2784 					TrackerSparqlSelectContext* _tmp100_;
 2785 					TrackerSparqlSelectContext* _tmp101_;
 2786 					TrackerPropertyType* _tmp102_;
 2787 					gint _tmp102__length1;
 2788 					TrackerPropertyType _tmp103_;
 2789 					TrackerSparqlTokenType _tmp104_ = 0;
 2790 #line 316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2791 					_tmp90_ = _tmp89_;
 2792 #line 316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2793 					if (!_tmp90_) {
 2794 #line 2790 "tracker-sparql-pattern.c"
 2795 						gint _tmp91_;
 2796 #line 316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2797 						_tmp91_ = i;
 2798 #line 316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2799 						i = _tmp91_ + 1;
 2800 #line 2796 "tracker-sparql-pattern.c"
 2801 					}
 2802 #line 316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2803 					_tmp89_ = FALSE;
 2804 #line 317 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2805 					first = FALSE;
 2806 #line 319 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2807 					_tmp92_ = i;
 2808 #line 319 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2809 					if (_tmp92_ > 0) {
 2810 #line 2806 "tracker-sparql-pattern.c"
 2811 						GString* _tmp93_;
 2812 #line 320 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2813 						_tmp93_ = sql;
 2814 #line 320 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2815 						g_string_append (_tmp93_, ", ");
 2816 #line 2812 "tracker-sparql-pattern.c"
 2817 					}
 2818 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2819 					_tmp94_ = self->priv->expression;
 2820 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2821 					_tmp95_ = sql;
 2822 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2823 					_tmp96_ = subquery;
 2824 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2825 					_tmp97_ = i;
 2826 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2827 					_tmp98_ = tracker_sparql_expression_translate_select_expression (_tmp94_, _tmp95_, _tmp96_, _tmp97_, &_inner_error_);
 2828 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2829 					_tmp99_ = _tmp98_;
 2830 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2831 					if (_inner_error_ != NULL) {
 2832 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2833 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 2834 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2835 							g_propagate_error (error, _inner_error_);
 2836 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2837 							__g_list_free__g_object_unref0_0 (where_bindings);
 2838 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2839 							_tracker_sparql_context_unref0 (pattern);
 2840 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2841 							__g_list_free__g_object_unref0_0 (old_bindings);
 2842 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2843 							_g_string_free0 (pattern_sql);
 2844 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2845 							_tracker_sparql_context_unref0 (_result_);
 2846 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2847 							return NULL;
 2848 #line 2844 "tracker-sparql-pattern.c"
 2849 						} else {
 2850 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2851 							__g_list_free__g_object_unref0_0 (where_bindings);
 2852 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2853 							_tracker_sparql_context_unref0 (pattern);
 2854 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2855 							__g_list_free__g_object_unref0_0 (old_bindings);
 2856 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2857 							_g_string_free0 (pattern_sql);
 2858 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2859 							_tracker_sparql_context_unref0 (_result_);
 2860 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2861 							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);
 2862 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2863 							g_clear_error (&_inner_error_);
 2864 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2865 							return NULL;
 2866 #line 2862 "tracker-sparql-pattern.c"
 2867 						}
 2868 					}
 2869 #line 323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2870 					type = _tmp99_;
 2871 #line 324 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2872 					_tmp100_ = _result_;
 2873 #line 324 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2874 					_tmp101_ = _result_;
 2875 #line 324 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2876 					_tmp102_ = _tmp101_->types;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
 2877 #line 324 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2878 					_tmp102__length1 = _tmp101_->types_length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
 2879 #line 324 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2880 					_tmp103_ = type;
 2881 #line 324 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2882 					_vala_array_add7 (&_tmp100_->types, &_tmp100_->types_length1, &_tmp100_->_types_size_, _tmp103_);
 2883 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2884 					_tmp104_ = tracker_sparql_pattern_current (self);
 2885 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2886 					switch (_tmp104_) {
 2887 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2888 						case TRACKER_SPARQL_TOKEN_TYPE_FROM:
 2889 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2890 						case TRACKER_SPARQL_TOKEN_TYPE_WHERE:
 2891 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2892 						case TRACKER_SPARQL_TOKEN_TYPE_OPEN_BRACE:
 2893 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2894 						case TRACKER_SPARQL_TOKEN_TYPE_GROUP:
 2895 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2896 						case TRACKER_SPARQL_TOKEN_TYPE_ORDER:
 2897 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2898 						case TRACKER_SPARQL_TOKEN_TYPE_LIMIT:
 2899 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2900 						case TRACKER_SPARQL_TOKEN_TYPE_OFFSET:
 2901 #line 326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2902 						case TRACKER_SPARQL_TOKEN_TYPE_EOF:
 2903 #line 2899 "tracker-sparql-pattern.c"
 2904 						{
 2905 #line 335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2906 							break;
 2907 #line 2903 "tracker-sparql-pattern.c"
 2908 						}
 2909 						default:
 2910 						{
 2911 #line 337 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2912 							continue;
 2913 #line 2909 "tracker-sparql-pattern.c"
 2914 						}
 2915 					}
 2916 #line 339 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2917 					break;
 2918 #line 2914 "tracker-sparql-pattern.c"
 2919 				}
 2920 			}
 2921 		}
 2922 	}
 2923 #line 343 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2924 	_tmp106_ = self->queries_fts_data;
 2925 #line 343 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2926 	if (_tmp106_) {
 2927 #line 2923 "tracker-sparql-pattern.c"
 2928 		TrackerSparqlVariable* _tmp107_;
 2929 #line 343 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2930 		_tmp107_ = self->fts_subject;
 2931 #line 343 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2932 		_tmp105_ = _tmp107_ != NULL;
 2933 #line 2929 "tracker-sparql-pattern.c"
 2934 	} else {
 2935 #line 343 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2936 		_tmp105_ = FALSE;
 2937 #line 2933 "tracker-sparql-pattern.c"
 2938 	}
 2939 #line 343 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2940 	_tmp108_ = _tmp105_;
 2941 #line 343 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2942 	if (_tmp108_) {
 2943 #line 2939 "tracker-sparql-pattern.c"
 2944 		gboolean _tmp109_;
 2945 		GString* _tmp111_;
 2946 		TrackerSparqlVariable* _tmp112_;
 2947 		const gchar* _tmp113_;
 2948 		const gchar* _tmp114_;
 2949 		gchar* _tmp115_ = NULL;
 2950 		gchar* _tmp116_;
 2951 #line 345 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2952 		_tmp109_ = first;
 2953 #line 345 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2954 		if (!_tmp109_) {
 2955 #line 2951 "tracker-sparql-pattern.c"
 2956 			GString* _tmp110_;
 2957 #line 346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2958 			_tmp110_ = sql;
 2959 #line 346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2960 			g_string_append (_tmp110_, ", ");
 2961 #line 2957 "tracker-sparql-pattern.c"
 2962 		} else {
 2963 #line 348 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2964 			first = FALSE;
 2965 #line 2961 "tracker-sparql-pattern.c"
 2966 		}
 2967 #line 351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2968 		_tmp111_ = sql;
 2969 #line 351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2970 		_tmp112_ = self->fts_subject;
 2971 #line 351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2972 		_tmp113_ = tracker_sparql_variable_get_sql_expression (_tmp112_);
 2973 #line 351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2974 		_tmp114_ = _tmp113_;
 2975 #line 351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2976 		_tmp115_ = g_strdup_printf ("%s AS docid ", _tmp114_);
 2977 #line 351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2978 		_tmp116_ = _tmp115_;
 2979 #line 351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2980 		g_string_append (_tmp111_, _tmp116_);
 2981 #line 351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2982 		_g_free0 (_tmp116_);
 2983 #line 2979 "tracker-sparql-pattern.c"
 2984 	}
 2985 #line 355 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2986 	_tmp117_ = where_bindings;
 2987 #line 2983 "tracker-sparql-pattern.c"
 2988 	{
 2989 		GList* binding_collection = NULL;
 2990 		GList* binding_it = NULL;
 2991 #line 355 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2992 		binding_collection = _tmp117_;
 2993 #line 355 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2994 		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
 2995 #line 2991 "tracker-sparql-pattern.c"
 2996 			TrackerSparqlLiteralBinding* _tmp118_;
 2997 			TrackerSparqlLiteralBinding* binding = NULL;
 2998 #line 355 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 2999 			_tmp118_ = _g_object_ref0 ((TrackerSparqlLiteralBinding*) binding_it->data);
 3000 #line 355 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3001 			binding = _tmp118_;
 3002 #line 2998 "tracker-sparql-pattern.c"
 3003 			{
 3004 				TrackerSparqlQuery* _tmp119_;
 3005 				TrackerSparqlLiteralBinding* _tmp120_;
 3006 				TrackerSparqlLiteralBinding* _tmp121_;
 3007 #line 356 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3008 				_tmp119_ = self->priv->query;
 3009 #line 356 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3010 				_tmp120_ = binding;
 3011 #line 356 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3012 				_tmp121_ = _g_object_ref0 (_tmp120_);
 3013 #line 356 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3014 				_tmp119_->bindings = g_list_append (_tmp119_->bindings, _tmp121_);
 3015 #line 355 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3016 				_g_object_unref0 (binding);
 3017 #line 3013 "tracker-sparql-pattern.c"
 3018 			}
 3019 		}
 3020 	}
 3021 #line 359 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3022 	_tmp122_ = first;
 3023 #line 359 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3024 	if (_tmp122_) {
 3025 #line 3021 "tracker-sparql-pattern.c"
 3026 		GString* _tmp123_;
 3027 #line 360 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3028 		_tmp123_ = sql;
 3029 #line 360 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3030 		g_string_append (_tmp123_, "NULL");
 3031 #line 3027 "tracker-sparql-pattern.c"
 3032 	}
 3033 #line 364 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3034 	_tmp124_ = sql;
 3035 #line 364 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3036 	g_string_append (_tmp124_, " FROM (");
 3037 #line 365 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3038 	_tmp125_ = sql;
 3039 #line 365 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3040 	_tmp126_ = pattern_sql;
 3041 #line 365 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3042 	_tmp127_ = _tmp126_->str;
 3043 #line 365 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3044 	g_string_append (_tmp125_, _tmp127_);
 3045 #line 366 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3046 	_tmp128_ = sql;
 3047 #line 366 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3048 	g_string_append (_tmp128_, ")");
 3049 #line 368 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3050 	_tmp129_ = after_where;
 3051 #line 368 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3052 	tracker_sparql_pattern_set_location (self, &_tmp129_);
 3053 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3054 	_tmp130_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_GROUP, &_inner_error_);
 3055 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3056 	_tmp131_ = _tmp130_;
 3057 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3058 	if (_inner_error_ != NULL) {
 3059 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3060 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3061 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3062 			g_propagate_error (error, _inner_error_);
 3063 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3064 			__g_list_free__g_object_unref0_0 (where_bindings);
 3065 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3066 			_tracker_sparql_context_unref0 (pattern);
 3067 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3068 			__g_list_free__g_object_unref0_0 (old_bindings);
 3069 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3070 			_g_string_free0 (pattern_sql);
 3071 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3072 			_tracker_sparql_context_unref0 (_result_);
 3073 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3074 			return NULL;
 3075 #line 3071 "tracker-sparql-pattern.c"
 3076 		} else {
 3077 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3078 			__g_list_free__g_object_unref0_0 (where_bindings);
 3079 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3080 			_tracker_sparql_context_unref0 (pattern);
 3081 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3082 			__g_list_free__g_object_unref0_0 (old_bindings);
 3083 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3084 			_g_string_free0 (pattern_sql);
 3085 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3086 			_tracker_sparql_context_unref0 (_result_);
 3087 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3088 			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);
 3089 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3090 			g_clear_error (&_inner_error_);
 3091 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3092 			return NULL;
 3093 #line 3089 "tracker-sparql-pattern.c"
 3094 		}
 3095 	}
 3096 #line 370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3097 	if (_tmp131_) {
 3098 #line 3094 "tracker-sparql-pattern.c"
 3099 		GString* _tmp132_;
 3100 		gboolean first_group;
 3101 		gboolean _tmp158_ = FALSE;
 3102 		gboolean _tmp159_;
 3103 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3104 		tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_BY, &_inner_error_);
 3105 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3106 		if (_inner_error_ != NULL) {
 3107 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3108 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3109 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3110 				g_propagate_error (error, _inner_error_);
 3111 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3112 				__g_list_free__g_object_unref0_0 (where_bindings);
 3113 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3114 				_tracker_sparql_context_unref0 (pattern);
 3115 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3116 				__g_list_free__g_object_unref0_0 (old_bindings);
 3117 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3118 				_g_string_free0 (pattern_sql);
 3119 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3120 				_tracker_sparql_context_unref0 (_result_);
 3121 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3122 				return NULL;
 3123 #line 3119 "tracker-sparql-pattern.c"
 3124 			} else {
 3125 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3126 				__g_list_free__g_object_unref0_0 (where_bindings);
 3127 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3128 				_tracker_sparql_context_unref0 (pattern);
 3129 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3130 				__g_list_free__g_object_unref0_0 (old_bindings);
 3131 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3132 				_g_string_free0 (pattern_sql);
 3133 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3134 				_tracker_sparql_context_unref0 (_result_);
 3135 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3136 				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);
 3137 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3138 				g_clear_error (&_inner_error_);
 3139 #line 371 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3140 				return NULL;
 3141 #line 3137 "tracker-sparql-pattern.c"
 3142 			}
 3143 		}
 3144 #line 372 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3145 		_tmp132_ = sql;
 3146 #line 372 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3147 		g_string_append (_tmp132_, " GROUP BY ");
 3148 #line 373 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3149 		first_group = TRUE;
 3150 #line 3146 "tracker-sparql-pattern.c"
 3151 		{
 3152 			gboolean _tmp133_;
 3153 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3154 			_tmp133_ = TRUE;
 3155 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3156 			while (TRUE) {
 3157 #line 3153 "tracker-sparql-pattern.c"
 3158 				gboolean _tmp134_;
 3159 				gboolean _tmp154_;
 3160 				TrackerSparqlExpression* _tmp156_;
 3161 				GString* _tmp157_;
 3162 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3163 				_tmp134_ = _tmp133_;
 3164 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3165 				if (!_tmp134_) {
 3166 #line 3162 "tracker-sparql-pattern.c"
 3167 					gboolean _tmp135_ = FALSE;
 3168 					gboolean _tmp136_ = FALSE;
 3169 					gboolean _tmp137_ = FALSE;
 3170 					gboolean _tmp138_ = FALSE;
 3171 					gboolean _tmp139_ = FALSE;
 3172 					gboolean _tmp140_ = FALSE;
 3173 					TrackerSparqlTokenType _tmp141_ = 0;
 3174 					gboolean _tmp143_;
 3175 					gboolean _tmp145_;
 3176 					gboolean _tmp147_;
 3177 					gboolean _tmp149_;
 3178 					gboolean _tmp151_;
 3179 					gboolean _tmp153_;
 3180 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3181 					_tmp141_ = tracker_sparql_pattern_current (self);
 3182 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3183 					if (_tmp141_ != TRACKER_SPARQL_TOKEN_TYPE_HAVING) {
 3184 #line 3180 "tracker-sparql-pattern.c"
 3185 						TrackerSparqlTokenType _tmp142_ = 0;
 3186 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3187 						_tmp142_ = tracker_sparql_pattern_current (self);
 3188 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3189 						_tmp140_ = _tmp142_ != TRACKER_SPARQL_TOKEN_TYPE_ORDER;
 3190 #line 3186 "tracker-sparql-pattern.c"
 3191 					} else {
 3192 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3193 						_tmp140_ = FALSE;
 3194 #line 3190 "tracker-sparql-pattern.c"
 3195 					}
 3196 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3197 					_tmp143_ = _tmp140_;
 3198 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3199 					if (_tmp143_) {
 3200 #line 3196 "tracker-sparql-pattern.c"
 3201 						TrackerSparqlTokenType _tmp144_ = 0;
 3202 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3203 						_tmp144_ = tracker_sparql_pattern_current (self);
 3204 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3205 						_tmp139_ = _tmp144_ != TRACKER_SPARQL_TOKEN_TYPE_LIMIT;
 3206 #line 3202 "tracker-sparql-pattern.c"
 3207 					} else {
 3208 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3209 						_tmp139_ = FALSE;
 3210 #line 3206 "tracker-sparql-pattern.c"
 3211 					}
 3212 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3213 					_tmp145_ = _tmp139_;
 3214 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3215 					if (_tmp145_) {
 3216 #line 3212 "tracker-sparql-pattern.c"
 3217 						TrackerSparqlTokenType _tmp146_ = 0;
 3218 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3219 						_tmp146_ = tracker_sparql_pattern_current (self);
 3220 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3221 						_tmp138_ = _tmp146_ != TRACKER_SPARQL_TOKEN_TYPE_OFFSET;
 3222 #line 3218 "tracker-sparql-pattern.c"
 3223 					} else {
 3224 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3225 						_tmp138_ = FALSE;
 3226 #line 3222 "tracker-sparql-pattern.c"
 3227 					}
 3228 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3229 					_tmp147_ = _tmp138_;
 3230 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3231 					if (_tmp147_) {
 3232 #line 3228 "tracker-sparql-pattern.c"
 3233 						TrackerSparqlTokenType _tmp148_ = 0;
 3234 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3235 						_tmp148_ = tracker_sparql_pattern_current (self);
 3236 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3237 						_tmp137_ = _tmp148_ != TRACKER_SPARQL_TOKEN_TYPE_CLOSE_BRACE;
 3238 #line 3234 "tracker-sparql-pattern.c"
 3239 					} else {
 3240 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3241 						_tmp137_ = FALSE;
 3242 #line 3238 "tracker-sparql-pattern.c"
 3243 					}
 3244 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3245 					_tmp149_ = _tmp137_;
 3246 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3247 					if (_tmp149_) {
 3248 #line 3244 "tracker-sparql-pattern.c"
 3249 						TrackerSparqlTokenType _tmp150_ = 0;
 3250 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3251 						_tmp150_ = tracker_sparql_pattern_current (self);
 3252 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3253 						_tmp136_ = _tmp150_ != TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS;
 3254 #line 3250 "tracker-sparql-pattern.c"
 3255 					} else {
 3256 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3257 						_tmp136_ = FALSE;
 3258 #line 3254 "tracker-sparql-pattern.c"
 3259 					}
 3260 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3261 					_tmp151_ = _tmp136_;
 3262 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3263 					if (_tmp151_) {
 3264 #line 3260 "tracker-sparql-pattern.c"
 3265 						TrackerSparqlTokenType _tmp152_ = 0;
 3266 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3267 						_tmp152_ = tracker_sparql_pattern_current (self);
 3268 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3269 						_tmp135_ = _tmp152_ != TRACKER_SPARQL_TOKEN_TYPE_EOF;
 3270 #line 3266 "tracker-sparql-pattern.c"
 3271 					} else {
 3272 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3273 						_tmp135_ = FALSE;
 3274 #line 3270 "tracker-sparql-pattern.c"
 3275 					}
 3276 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3277 					_tmp153_ = _tmp135_;
 3278 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3279 					if (!_tmp153_) {
 3280 #line 381 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3281 						break;
 3282 #line 3278 "tracker-sparql-pattern.c"
 3283 					}
 3284 				}
 3285 #line 374 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3286 				_tmp133_ = FALSE;
 3287 #line 375 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3288 				_tmp154_ = first_group;
 3289 #line 375 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3290 				if (_tmp154_) {
 3291 #line 376 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3292 					first_group = FALSE;
 3293 #line 3289 "tracker-sparql-pattern.c"
 3294 				} else {
 3295 					GString* _tmp155_;
 3296 #line 378 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3297 					_tmp155_ = sql;
 3298 #line 378 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3299 					g_string_append (_tmp155_, ", ");
 3300 #line 3296 "tracker-sparql-pattern.c"
 3301 				}
 3302 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3303 				_tmp156_ = self->priv->expression;
 3304 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3305 				_tmp157_ = sql;
 3306 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3307 				tracker_sparql_expression_translate_expression (_tmp156_, _tmp157_, &_inner_error_);
 3308 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3309 				if (_inner_error_ != NULL) {
 3310 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3311 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3312 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3313 						g_propagate_error (error, _inner_error_);
 3314 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3315 						__g_list_free__g_object_unref0_0 (where_bindings);
 3316 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3317 						_tracker_sparql_context_unref0 (pattern);
 3318 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3319 						__g_list_free__g_object_unref0_0 (old_bindings);
 3320 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3321 						_g_string_free0 (pattern_sql);
 3322 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3323 						_tracker_sparql_context_unref0 (_result_);
 3324 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3325 						return NULL;
 3326 #line 3322 "tracker-sparql-pattern.c"
 3327 					} else {
 3328 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3329 						__g_list_free__g_object_unref0_0 (where_bindings);
 3330 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3331 						_tracker_sparql_context_unref0 (pattern);
 3332 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3333 						__g_list_free__g_object_unref0_0 (old_bindings);
 3334 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3335 						_g_string_free0 (pattern_sql);
 3336 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3337 						_tracker_sparql_context_unref0 (_result_);
 3338 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3339 						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);
 3340 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3341 						g_clear_error (&_inner_error_);
 3342 #line 380 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3343 						return NULL;
 3344 #line 3340 "tracker-sparql-pattern.c"
 3345 					}
 3346 				}
 3347 			}
 3348 		}
 3349 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3350 		_tmp158_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_HAVING, &_inner_error_);
 3351 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3352 		_tmp159_ = _tmp158_;
 3353 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3354 		if (_inner_error_ != NULL) {
 3355 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3356 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3357 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3358 				g_propagate_error (error, _inner_error_);
 3359 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3360 				__g_list_free__g_object_unref0_0 (where_bindings);
 3361 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3362 				_tracker_sparql_context_unref0 (pattern);
 3363 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3364 				__g_list_free__g_object_unref0_0 (old_bindings);
 3365 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3366 				_g_string_free0 (pattern_sql);
 3367 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3368 				_tracker_sparql_context_unref0 (_result_);
 3369 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3370 				return NULL;
 3371 #line 3367 "tracker-sparql-pattern.c"
 3372 			} else {
 3373 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3374 				__g_list_free__g_object_unref0_0 (where_bindings);
 3375 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3376 				_tracker_sparql_context_unref0 (pattern);
 3377 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3378 				__g_list_free__g_object_unref0_0 (old_bindings);
 3379 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3380 				_g_string_free0 (pattern_sql);
 3381 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3382 				_tracker_sparql_context_unref0 (_result_);
 3383 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3384 				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);
 3385 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3386 				g_clear_error (&_inner_error_);
 3387 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3388 				return NULL;
 3389 #line 3385 "tracker-sparql-pattern.c"
 3390 			}
 3391 		}
 3392 #line 383 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3393 		if (_tmp159_) {
 3394 #line 3390 "tracker-sparql-pattern.c"
 3395 			GString* _tmp160_;
 3396 			TrackerSparqlExpression* _tmp161_;
 3397 			GString* _tmp162_;
 3398 #line 384 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3399 			_tmp160_ = sql;
 3400 #line 384 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3401 			g_string_append (_tmp160_, " HAVING ");
 3402 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3403 			_tmp161_ = self->priv->expression;
 3404 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3405 			_tmp162_ = sql;
 3406 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3407 			tracker_sparql_expression_translate_constraint (_tmp161_, _tmp162_, &_inner_error_);
 3408 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3409 			if (_inner_error_ != NULL) {
 3410 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3411 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3412 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3413 					g_propagate_error (error, _inner_error_);
 3414 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3415 					__g_list_free__g_object_unref0_0 (where_bindings);
 3416 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3417 					_tracker_sparql_context_unref0 (pattern);
 3418 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3419 					__g_list_free__g_object_unref0_0 (old_bindings);
 3420 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3421 					_g_string_free0 (pattern_sql);
 3422 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3423 					_tracker_sparql_context_unref0 (_result_);
 3424 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3425 					return NULL;
 3426 #line 3422 "tracker-sparql-pattern.c"
 3427 				} else {
 3428 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3429 					__g_list_free__g_object_unref0_0 (where_bindings);
 3430 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3431 					_tracker_sparql_context_unref0 (pattern);
 3432 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3433 					__g_list_free__g_object_unref0_0 (old_bindings);
 3434 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3435 					_g_string_free0 (pattern_sql);
 3436 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3437 					_tracker_sparql_context_unref0 (_result_);
 3438 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3439 					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);
 3440 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3441 					g_clear_error (&_inner_error_);
 3442 #line 385 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3443 					return NULL;
 3444 #line 3440 "tracker-sparql-pattern.c"
 3445 				}
 3446 			}
 3447 		}
 3448 	}
 3449 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3450 	_tmp163_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_ORDER, &_inner_error_);
 3451 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3452 	_tmp164_ = _tmp163_;
 3453 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3454 	if (_inner_error_ != NULL) {
 3455 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3456 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3457 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3458 			g_propagate_error (error, _inner_error_);
 3459 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3460 			__g_list_free__g_object_unref0_0 (where_bindings);
 3461 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3462 			_tracker_sparql_context_unref0 (pattern);
 3463 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3464 			__g_list_free__g_object_unref0_0 (old_bindings);
 3465 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3466 			_g_string_free0 (pattern_sql);
 3467 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3468 			_tracker_sparql_context_unref0 (_result_);
 3469 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3470 			return NULL;
 3471 #line 3467 "tracker-sparql-pattern.c"
 3472 		} else {
 3473 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3474 			__g_list_free__g_object_unref0_0 (where_bindings);
 3475 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3476 			_tracker_sparql_context_unref0 (pattern);
 3477 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3478 			__g_list_free__g_object_unref0_0 (old_bindings);
 3479 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3480 			_g_string_free0 (pattern_sql);
 3481 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3482 			_tracker_sparql_context_unref0 (_result_);
 3483 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3484 			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);
 3485 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3486 			g_clear_error (&_inner_error_);
 3487 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3488 			return NULL;
 3489 #line 3485 "tracker-sparql-pattern.c"
 3490 		}
 3491 	}
 3492 #line 389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3493 	if (_tmp164_) {
 3494 #line 3490 "tracker-sparql-pattern.c"
 3495 		GString* _tmp165_;
 3496 		gboolean first_order;
 3497 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3498 		tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_BY, &_inner_error_);
 3499 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3500 		if (_inner_error_ != NULL) {
 3501 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3502 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3503 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3504 				g_propagate_error (error, _inner_error_);
 3505 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3506 				__g_list_free__g_object_unref0_0 (where_bindings);
 3507 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3508 				_tracker_sparql_context_unref0 (pattern);
 3509 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3510 				__g_list_free__g_object_unref0_0 (old_bindings);
 3511 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3512 				_g_string_free0 (pattern_sql);
 3513 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3514 				_tracker_sparql_context_unref0 (_result_);
 3515 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3516 				return NULL;
 3517 #line 3513 "tracker-sparql-pattern.c"
 3518 			} else {
 3519 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3520 				__g_list_free__g_object_unref0_0 (where_bindings);
 3521 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3522 				_tracker_sparql_context_unref0 (pattern);
 3523 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3524 				__g_list_free__g_object_unref0_0 (old_bindings);
 3525 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3526 				_g_string_free0 (pattern_sql);
 3527 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3528 				_tracker_sparql_context_unref0 (_result_);
 3529 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3530 				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);
 3531 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3532 				g_clear_error (&_inner_error_);
 3533 #line 390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3534 				return NULL;
 3535 #line 3531 "tracker-sparql-pattern.c"
 3536 			}
 3537 		}
 3538 #line 391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3539 		_tmp165_ = sql;
 3540 #line 391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3541 		g_string_append (_tmp165_, " ORDER BY ");
 3542 #line 392 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3543 		first_order = TRUE;
 3544 #line 3540 "tracker-sparql-pattern.c"
 3545 		{
 3546 			gboolean _tmp166_;
 3547 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3548 			_tmp166_ = TRUE;
 3549 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3550 			while (TRUE) {
 3551 #line 3547 "tracker-sparql-pattern.c"
 3552 				gboolean _tmp167_;
 3553 				gboolean _tmp181_;
 3554 				TrackerSparqlExpression* _tmp183_;
 3555 				GString* _tmp184_;
 3556 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3557 				_tmp167_ = _tmp166_;
 3558 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3559 				if (!_tmp167_) {
 3560 #line 3556 "tracker-sparql-pattern.c"
 3561 					gboolean _tmp168_ = FALSE;
 3562 					gboolean _tmp169_ = FALSE;
 3563 					gboolean _tmp170_ = FALSE;
 3564 					gboolean _tmp171_ = FALSE;
 3565 					TrackerSparqlTokenType _tmp172_ = 0;
 3566 					gboolean _tmp174_;
 3567 					gboolean _tmp176_;
 3568 					gboolean _tmp178_;
 3569 					gboolean _tmp180_;
 3570 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3571 					_tmp172_ = tracker_sparql_pattern_current (self);
 3572 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3573 					if (_tmp172_ != TRACKER_SPARQL_TOKEN_TYPE_LIMIT) {
 3574 #line 3570 "tracker-sparql-pattern.c"
 3575 						TrackerSparqlTokenType _tmp173_ = 0;
 3576 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3577 						_tmp173_ = tracker_sparql_pattern_current (self);
 3578 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3579 						_tmp171_ = _tmp173_ != TRACKER_SPARQL_TOKEN_TYPE_OFFSET;
 3580 #line 3576 "tracker-sparql-pattern.c"
 3581 					} else {
 3582 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3583 						_tmp171_ = FALSE;
 3584 #line 3580 "tracker-sparql-pattern.c"
 3585 					}
 3586 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3587 					_tmp174_ = _tmp171_;
 3588 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3589 					if (_tmp174_) {
 3590 #line 3586 "tracker-sparql-pattern.c"
 3591 						TrackerSparqlTokenType _tmp175_ = 0;
 3592 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3593 						_tmp175_ = tracker_sparql_pattern_current (self);
 3594 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3595 						_tmp170_ = _tmp175_ != TRACKER_SPARQL_TOKEN_TYPE_CLOSE_BRACE;
 3596 #line 3592 "tracker-sparql-pattern.c"
 3597 					} else {
 3598 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3599 						_tmp170_ = FALSE;
 3600 #line 3596 "tracker-sparql-pattern.c"
 3601 					}
 3602 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3603 					_tmp176_ = _tmp170_;
 3604 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3605 					if (_tmp176_) {
 3606 #line 3602 "tracker-sparql-pattern.c"
 3607 						TrackerSparqlTokenType _tmp177_ = 0;
 3608 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3609 						_tmp177_ = tracker_sparql_pattern_current (self);
 3610 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3611 						_tmp169_ = _tmp177_ != TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS;
 3612 #line 3608 "tracker-sparql-pattern.c"
 3613 					} else {
 3614 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3615 						_tmp169_ = FALSE;
 3616 #line 3612 "tracker-sparql-pattern.c"
 3617 					}
 3618 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3619 					_tmp178_ = _tmp169_;
 3620 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3621 					if (_tmp178_) {
 3622 #line 3618 "tracker-sparql-pattern.c"
 3623 						TrackerSparqlTokenType _tmp179_ = 0;
 3624 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3625 						_tmp179_ = tracker_sparql_pattern_current (self);
 3626 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3627 						_tmp168_ = _tmp179_ != TRACKER_SPARQL_TOKEN_TYPE_EOF;
 3628 #line 3624 "tracker-sparql-pattern.c"
 3629 					} else {
 3630 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3631 						_tmp168_ = FALSE;
 3632 #line 3628 "tracker-sparql-pattern.c"
 3633 					}
 3634 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3635 					_tmp180_ = _tmp168_;
 3636 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3637 					if (!_tmp180_) {
 3638 #line 400 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3639 						break;
 3640 #line 3636 "tracker-sparql-pattern.c"
 3641 					}
 3642 				}
 3643 #line 393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3644 				_tmp166_ = FALSE;
 3645 #line 394 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3646 				_tmp181_ = first_order;
 3647 #line 394 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3648 				if (_tmp181_) {
 3649 #line 395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3650 					first_order = FALSE;
 3651 #line 3647 "tracker-sparql-pattern.c"
 3652 				} else {
 3653 					GString* _tmp182_;
 3654 #line 397 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3655 					_tmp182_ = sql;
 3656 #line 397 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3657 					g_string_append (_tmp182_, ", ");
 3658 #line 3654 "tracker-sparql-pattern.c"
 3659 				}
 3660 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3661 				_tmp183_ = self->priv->expression;
 3662 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3663 				_tmp184_ = sql;
 3664 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3665 				tracker_sparql_expression_translate_order_condition (_tmp183_, _tmp184_, &_inner_error_);
 3666 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3667 				if (_inner_error_ != NULL) {
 3668 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3669 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3670 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3671 						g_propagate_error (error, _inner_error_);
 3672 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3673 						__g_list_free__g_object_unref0_0 (where_bindings);
 3674 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3675 						_tracker_sparql_context_unref0 (pattern);
 3676 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3677 						__g_list_free__g_object_unref0_0 (old_bindings);
 3678 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3679 						_g_string_free0 (pattern_sql);
 3680 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3681 						_tracker_sparql_context_unref0 (_result_);
 3682 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3683 						return NULL;
 3684 #line 3680 "tracker-sparql-pattern.c"
 3685 					} else {
 3686 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3687 						__g_list_free__g_object_unref0_0 (where_bindings);
 3688 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3689 						_tracker_sparql_context_unref0 (pattern);
 3690 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3691 						__g_list_free__g_object_unref0_0 (old_bindings);
 3692 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3693 						_g_string_free0 (pattern_sql);
 3694 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3695 						_tracker_sparql_context_unref0 (_result_);
 3696 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3697 						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);
 3698 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3699 						g_clear_error (&_inner_error_);
 3700 #line 399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3701 						return NULL;
 3702 #line 3698 "tracker-sparql-pattern.c"
 3703 					}
 3704 				}
 3705 			}
 3706 		}
 3707 	}
 3708 #line 403 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3709 	limit = -1;
 3710 #line 404 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3711 	offset = -1;
 3712 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3713 	_tmp185_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_LIMIT, &_inner_error_);
 3714 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3715 	_tmp186_ = _tmp185_;
 3716 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3717 	if (_inner_error_ != NULL) {
 3718 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3719 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3720 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3721 			g_propagate_error (error, _inner_error_);
 3722 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3723 			__g_list_free__g_object_unref0_0 (where_bindings);
 3724 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3725 			_tracker_sparql_context_unref0 (pattern);
 3726 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3727 			__g_list_free__g_object_unref0_0 (old_bindings);
 3728 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3729 			_g_string_free0 (pattern_sql);
 3730 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3731 			_tracker_sparql_context_unref0 (_result_);
 3732 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3733 			return NULL;
 3734 #line 3730 "tracker-sparql-pattern.c"
 3735 		} else {
 3736 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3737 			__g_list_free__g_object_unref0_0 (where_bindings);
 3738 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3739 			_tracker_sparql_context_unref0 (pattern);
 3740 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3741 			__g_list_free__g_object_unref0_0 (old_bindings);
 3742 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3743 			_g_string_free0 (pattern_sql);
 3744 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3745 			_tracker_sparql_context_unref0 (_result_);
 3746 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3747 			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);
 3748 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3749 			g_clear_error (&_inner_error_);
 3750 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3751 			return NULL;
 3752 #line 3748 "tracker-sparql-pattern.c"
 3753 		}
 3754 	}
 3755 #line 406 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3756 	if (_tmp186_) {
 3757 #line 3753 "tracker-sparql-pattern.c"
 3758 		gchar* _tmp187_ = NULL;
 3759 		gchar* _tmp188_;
 3760 		gint _tmp189_ = 0;
 3761 		gboolean _tmp190_ = FALSE;
 3762 		gboolean _tmp191_;
 3763 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3764 		tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_INTEGER, &_inner_error_);
 3765 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3766 		if (_inner_error_ != NULL) {
 3767 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3768 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3769 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3770 				g_propagate_error (error, _inner_error_);
 3771 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3772 				__g_list_free__g_object_unref0_0 (where_bindings);
 3773 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3774 				_tracker_sparql_context_unref0 (pattern);
 3775 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3776 				__g_list_free__g_object_unref0_0 (old_bindings);
 3777 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3778 				_g_string_free0 (pattern_sql);
 3779 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3780 				_tracker_sparql_context_unref0 (_result_);
 3781 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3782 				return NULL;
 3783 #line 3779 "tracker-sparql-pattern.c"
 3784 			} else {
 3785 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3786 				__g_list_free__g_object_unref0_0 (where_bindings);
 3787 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3788 				_tracker_sparql_context_unref0 (pattern);
 3789 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3790 				__g_list_free__g_object_unref0_0 (old_bindings);
 3791 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3792 				_g_string_free0 (pattern_sql);
 3793 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3794 				_tracker_sparql_context_unref0 (_result_);
 3795 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3796 				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);
 3797 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3798 				g_clear_error (&_inner_error_);
 3799 #line 407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3800 				return NULL;
 3801 #line 3797 "tracker-sparql-pattern.c"
 3802 			}
 3803 		}
 3804 #line 408 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3805 		_tmp187_ = tracker_sparql_pattern_get_last_string (self, 0);
 3806 #line 408 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3807 		_tmp188_ = _tmp187_;
 3808 #line 408 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3809 		_tmp189_ = atoi (_tmp188_);
 3810 #line 408 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3811 		limit = _tmp189_;
 3812 #line 408 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3813 		_g_free0 (_tmp188_);
 3814 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3815 		_tmp190_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_OFFSET, &_inner_error_);
 3816 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3817 		_tmp191_ = _tmp190_;
 3818 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3819 		if (_inner_error_ != NULL) {
 3820 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3821 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3822 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3823 				g_propagate_error (error, _inner_error_);
 3824 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3825 				__g_list_free__g_object_unref0_0 (where_bindings);
 3826 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3827 				_tracker_sparql_context_unref0 (pattern);
 3828 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3829 				__g_list_free__g_object_unref0_0 (old_bindings);
 3830 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3831 				_g_string_free0 (pattern_sql);
 3832 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3833 				_tracker_sparql_context_unref0 (_result_);
 3834 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3835 				return NULL;
 3836 #line 3832 "tracker-sparql-pattern.c"
 3837 			} else {
 3838 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3839 				__g_list_free__g_object_unref0_0 (where_bindings);
 3840 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3841 				_tracker_sparql_context_unref0 (pattern);
 3842 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3843 				__g_list_free__g_object_unref0_0 (old_bindings);
 3844 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3845 				_g_string_free0 (pattern_sql);
 3846 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3847 				_tracker_sparql_context_unref0 (_result_);
 3848 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3849 				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);
 3850 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3851 				g_clear_error (&_inner_error_);
 3852 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3853 				return NULL;
 3854 #line 3850 "tracker-sparql-pattern.c"
 3855 			}
 3856 		}
 3857 #line 409 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3858 		if (_tmp191_) {
 3859 #line 3855 "tracker-sparql-pattern.c"
 3860 			gchar* _tmp192_ = NULL;
 3861 			gchar* _tmp193_;
 3862 			gint _tmp194_ = 0;
 3863 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3864 			tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_INTEGER, &_inner_error_);
 3865 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3866 			if (_inner_error_ != NULL) {
 3867 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3868 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3869 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3870 					g_propagate_error (error, _inner_error_);
 3871 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3872 					__g_list_free__g_object_unref0_0 (where_bindings);
 3873 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3874 					_tracker_sparql_context_unref0 (pattern);
 3875 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3876 					__g_list_free__g_object_unref0_0 (old_bindings);
 3877 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3878 					_g_string_free0 (pattern_sql);
 3879 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3880 					_tracker_sparql_context_unref0 (_result_);
 3881 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3882 					return NULL;
 3883 #line 3879 "tracker-sparql-pattern.c"
 3884 				} else {
 3885 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3886 					__g_list_free__g_object_unref0_0 (where_bindings);
 3887 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3888 					_tracker_sparql_context_unref0 (pattern);
 3889 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3890 					__g_list_free__g_object_unref0_0 (old_bindings);
 3891 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3892 					_g_string_free0 (pattern_sql);
 3893 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3894 					_tracker_sparql_context_unref0 (_result_);
 3895 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3896 					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);
 3897 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3898 					g_clear_error (&_inner_error_);
 3899 #line 410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3900 					return NULL;
 3901 #line 3897 "tracker-sparql-pattern.c"
 3902 				}
 3903 			}
 3904 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3905 			_tmp192_ = tracker_sparql_pattern_get_last_string (self, 0);
 3906 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3907 			_tmp193_ = _tmp192_;
 3908 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3909 			_tmp194_ = atoi (_tmp193_);
 3910 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3911 			offset = _tmp194_;
 3912 #line 411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3913 			_g_free0 (_tmp193_);
 3914 #line 3910 "tracker-sparql-pattern.c"
 3915 		}
 3916 	} else {
 3917 		gboolean _tmp195_ = FALSE;
 3918 		gboolean _tmp196_;
 3919 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3920 		_tmp195_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_OFFSET, &_inner_error_);
 3921 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3922 		_tmp196_ = _tmp195_;
 3923 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3924 		if (_inner_error_ != NULL) {
 3925 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3926 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3927 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3928 				g_propagate_error (error, _inner_error_);
 3929 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3930 				__g_list_free__g_object_unref0_0 (where_bindings);
 3931 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3932 				_tracker_sparql_context_unref0 (pattern);
 3933 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3934 				__g_list_free__g_object_unref0_0 (old_bindings);
 3935 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3936 				_g_string_free0 (pattern_sql);
 3937 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3938 				_tracker_sparql_context_unref0 (_result_);
 3939 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3940 				return NULL;
 3941 #line 3937 "tracker-sparql-pattern.c"
 3942 			} else {
 3943 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3944 				__g_list_free__g_object_unref0_0 (where_bindings);
 3945 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3946 				_tracker_sparql_context_unref0 (pattern);
 3947 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3948 				__g_list_free__g_object_unref0_0 (old_bindings);
 3949 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3950 				_g_string_free0 (pattern_sql);
 3951 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3952 				_tracker_sparql_context_unref0 (_result_);
 3953 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3954 				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);
 3955 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3956 				g_clear_error (&_inner_error_);
 3957 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3958 				return NULL;
 3959 #line 3955 "tracker-sparql-pattern.c"
 3960 			}
 3961 		}
 3962 #line 413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3963 		if (_tmp196_) {
 3964 #line 3960 "tracker-sparql-pattern.c"
 3965 			gchar* _tmp197_ = NULL;
 3966 			gchar* _tmp198_;
 3967 			gint _tmp199_ = 0;
 3968 			gboolean _tmp200_ = FALSE;
 3969 			gboolean _tmp201_;
 3970 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3971 			tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_INTEGER, &_inner_error_);
 3972 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3973 			if (_inner_error_ != NULL) {
 3974 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3975 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 3976 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3977 					g_propagate_error (error, _inner_error_);
 3978 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3979 					__g_list_free__g_object_unref0_0 (where_bindings);
 3980 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3981 					_tracker_sparql_context_unref0 (pattern);
 3982 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3983 					__g_list_free__g_object_unref0_0 (old_bindings);
 3984 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3985 					_g_string_free0 (pattern_sql);
 3986 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3987 					_tracker_sparql_context_unref0 (_result_);
 3988 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3989 					return NULL;
 3990 #line 3986 "tracker-sparql-pattern.c"
 3991 				} else {
 3992 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3993 					__g_list_free__g_object_unref0_0 (where_bindings);
 3994 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3995 					_tracker_sparql_context_unref0 (pattern);
 3996 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3997 					__g_list_free__g_object_unref0_0 (old_bindings);
 3998 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 3999 					_g_string_free0 (pattern_sql);
 4000 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4001 					_tracker_sparql_context_unref0 (_result_);
 4002 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4003 					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);
 4004 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4005 					g_clear_error (&_inner_error_);
 4006 #line 414 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4007 					return NULL;
 4008 #line 4004 "tracker-sparql-pattern.c"
 4009 				}
 4010 			}
 4011 #line 415 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4012 			_tmp197_ = tracker_sparql_pattern_get_last_string (self, 0);
 4013 #line 415 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4014 			_tmp198_ = _tmp197_;
 4015 #line 415 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4016 			_tmp199_ = atoi (_tmp198_);
 4017 #line 415 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4018 			offset = _tmp199_;
 4019 #line 415 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4020 			_g_free0 (_tmp198_);
 4021 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4022 			_tmp200_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_LIMIT, &_inner_error_);
 4023 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4024 			_tmp201_ = _tmp200_;
 4025 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4026 			if (_inner_error_ != NULL) {
 4027 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4028 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 4029 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4030 					g_propagate_error (error, _inner_error_);
 4031 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4032 					__g_list_free__g_object_unref0_0 (where_bindings);
 4033 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4034 					_tracker_sparql_context_unref0 (pattern);
 4035 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4036 					__g_list_free__g_object_unref0_0 (old_bindings);
 4037 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4038 					_g_string_free0 (pattern_sql);
 4039 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4040 					_tracker_sparql_context_unref0 (_result_);
 4041 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4042 					return NULL;
 4043 #line 4039 "tracker-sparql-pattern.c"
 4044 				} else {
 4045 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4046 					__g_list_free__g_object_unref0_0 (where_bindings);
 4047 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4048 					_tracker_sparql_context_unref0 (pattern);
 4049 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4050 					__g_list_free__g_object_unref0_0 (old_bindings);
 4051 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4052 					_g_string_free0 (pattern_sql);
 4053 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4054 					_tracker_sparql_context_unref0 (_result_);
 4055 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4056 					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);
 4057 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4058 					g_clear_error (&_inner_error_);
 4059 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4060 					return NULL;
 4061 #line 4057 "tracker-sparql-pattern.c"
 4062 				}
 4063 			}
 4064 #line 416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4065 			if (_tmp201_) {
 4066 #line 4062 "tracker-sparql-pattern.c"
 4067 				gchar* _tmp202_ = NULL;
 4068 				gchar* _tmp203_;
 4069 				gint _tmp204_ = 0;
 4070 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4071 				tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_INTEGER, &_inner_error_);
 4072 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4073 				if (_inner_error_ != NULL) {
 4074 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4075 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 4076 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4077 						g_propagate_error (error, _inner_error_);
 4078 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4079 						__g_list_free__g_object_unref0_0 (where_bindings);
 4080 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4081 						_tracker_sparql_context_unref0 (pattern);
 4082 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4083 						__g_list_free__g_object_unref0_0 (old_bindings);
 4084 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4085 						_g_string_free0 (pattern_sql);
 4086 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4087 						_tracker_sparql_context_unref0 (_result_);
 4088 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4089 						return NULL;
 4090 #line 4086 "tracker-sparql-pattern.c"
 4091 					} else {
 4092 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4093 						__g_list_free__g_object_unref0_0 (where_bindings);
 4094 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4095 						_tracker_sparql_context_unref0 (pattern);
 4096 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4097 						__g_list_free__g_object_unref0_0 (old_bindings);
 4098 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4099 						_g_string_free0 (pattern_sql);
 4100 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4101 						_tracker_sparql_context_unref0 (_result_);
 4102 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4103 						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);
 4104 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4105 						g_clear_error (&_inner_error_);
 4106 #line 417 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4107 						return NULL;
 4108 #line 4104 "tracker-sparql-pattern.c"
 4109 					}
 4110 				}
 4111 #line 418 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4112 				_tmp202_ = tracker_sparql_pattern_get_last_string (self, 0);
 4113 #line 418 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4114 				_tmp203_ = _tmp202_;
 4115 #line 418 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4116 				_tmp204_ = atoi (_tmp203_);
 4117 #line 418 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4118 				limit = _tmp204_;
 4119 #line 418 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4120 				_g_free0 (_tmp203_);
 4121 #line 4117 "tracker-sparql-pattern.c"
 4122 			}
 4123 		}
 4124 	}
 4125 #line 423 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4126 	_tmp205_ = limit;
 4127 #line 423 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4128 	if (_tmp205_ >= 0) {
 4129 #line 4125 "tracker-sparql-pattern.c"
 4130 		GString* _tmp206_;
 4131 		TrackerSparqlLiteralBinding* _tmp207_;
 4132 		TrackerSparqlLiteralBinding* binding;
 4133 		TrackerSparqlLiteralBinding* _tmp208_;
 4134 		gint _tmp209_;
 4135 		gchar* _tmp210_ = NULL;
 4136 		TrackerSparqlLiteralBinding* _tmp211_;
 4137 		TrackerSparqlQuery* _tmp212_;
 4138 		TrackerSparqlLiteralBinding* _tmp213_;
 4139 		TrackerSparqlLiteralBinding* _tmp214_;
 4140 		gint _tmp215_;
 4141 #line 424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4142 		_tmp206_ = sql;
 4143 #line 424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4144 		g_string_append (_tmp206_, " LIMIT ?");
 4145 #line 426 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4146 		_tmp207_ = tracker_sparql_literal_binding_new ();
 4147 #line 426 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4148 		binding = _tmp207_;
 4149 #line 427 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4150 		_tmp208_ = binding;
 4151 #line 427 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4152 		_tmp209_ = limit;
 4153 #line 427 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4154 		_tmp210_ = g_strdup_printf ("%i", _tmp209_);
 4155 #line 427 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4156 		_g_free0 (_tmp208_->literal);
 4157 #line 427 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4158 		_tmp208_->literal = _tmp210_;
 4159 #line 428 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4160 		_tmp211_ = binding;
 4161 #line 428 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4162 		((TrackerSparqlDataBinding*) _tmp211_)->data_type = TRACKER_PROPERTY_TYPE_INTEGER;
 4163 #line 429 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4164 		_tmp212_ = self->priv->query;
 4165 #line 429 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4166 		_tmp213_ = binding;
 4167 #line 429 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4168 		_tmp214_ = _g_object_ref0 (_tmp213_);
 4169 #line 429 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4170 		_tmp212_->bindings = g_list_append (_tmp212_->bindings, _tmp214_);
 4171 #line 431 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4172 		_tmp215_ = offset;
 4173 #line 431 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4174 		if (_tmp215_ >= 0) {
 4175 #line 4171 "tracker-sparql-pattern.c"
 4176 			GString* _tmp216_;
 4177 			TrackerSparqlLiteralBinding* _tmp217_;
 4178 			TrackerSparqlLiteralBinding* _tmp218_;
 4179 			gint _tmp219_;
 4180 			gchar* _tmp220_ = NULL;
 4181 			TrackerSparqlLiteralBinding* _tmp221_;
 4182 			TrackerSparqlQuery* _tmp222_;
 4183 			TrackerSparqlLiteralBinding* _tmp223_;
 4184 			TrackerSparqlLiteralBinding* _tmp224_;
 4185 #line 432 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4186 			_tmp216_ = sql;
 4187 #line 432 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4188 			g_string_append (_tmp216_, " OFFSET ?");
 4189 #line 434 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4190 			_tmp217_ = tracker_sparql_literal_binding_new ();
 4191 #line 434 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4192 			_g_object_unref0 (binding);
 4193 #line 434 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4194 			binding = _tmp217_;
 4195 #line 435 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4196 			_tmp218_ = binding;
 4197 #line 435 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4198 			_tmp219_ = offset;
 4199 #line 435 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4200 			_tmp220_ = g_strdup_printf ("%i", _tmp219_);
 4201 #line 435 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4202 			_g_free0 (_tmp218_->literal);
 4203 #line 435 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4204 			_tmp218_->literal = _tmp220_;
 4205 #line 436 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4206 			_tmp221_ = binding;
 4207 #line 436 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4208 			((TrackerSparqlDataBinding*) _tmp221_)->data_type = TRACKER_PROPERTY_TYPE_INTEGER;
 4209 #line 437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4210 			_tmp222_ = self->priv->query;
 4211 #line 437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4212 			_tmp223_ = binding;
 4213 #line 437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4214 			_tmp224_ = _g_object_ref0 (_tmp223_);
 4215 #line 437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4216 			_tmp222_->bindings = g_list_append (_tmp222_->bindings, _tmp224_);
 4217 #line 4213 "tracker-sparql-pattern.c"
 4218 		}
 4219 #line 423 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4220 		_g_object_unref0 (binding);
 4221 #line 4217 "tracker-sparql-pattern.c"
 4222 	} else {
 4223 		gint _tmp225_;
 4224 #line 439 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4225 		_tmp225_ = offset;
 4226 #line 439 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4227 		if (_tmp225_ >= 0) {
 4228 #line 4224 "tracker-sparql-pattern.c"
 4229 			GString* _tmp226_;
 4230 			TrackerSparqlLiteralBinding* _tmp227_;
 4231 			TrackerSparqlLiteralBinding* binding;
 4232 			TrackerSparqlLiteralBinding* _tmp228_;
 4233 			gint _tmp229_;
 4234 			gchar* _tmp230_ = NULL;
 4235 			TrackerSparqlLiteralBinding* _tmp231_;
 4236 			TrackerSparqlQuery* _tmp232_;
 4237 			TrackerSparqlLiteralBinding* _tmp233_;
 4238 			TrackerSparqlLiteralBinding* _tmp234_;
 4239 #line 440 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4240 			_tmp226_ = sql;
 4241 #line 440 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4242 			g_string_append (_tmp226_, " LIMIT -1 OFFSET ?");
 4243 #line 442 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4244 			_tmp227_ = tracker_sparql_literal_binding_new ();
 4245 #line 442 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4246 			binding = _tmp227_;
 4247 #line 443 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4248 			_tmp228_ = binding;
 4249 #line 443 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4250 			_tmp229_ = offset;
 4251 #line 443 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4252 			_tmp230_ = g_strdup_printf ("%i", _tmp229_);
 4253 #line 443 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4254 			_g_free0 (_tmp228_->literal);
 4255 #line 443 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4256 			_tmp228_->literal = _tmp230_;
 4257 #line 444 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4258 			_tmp231_ = binding;
 4259 #line 444 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4260 			((TrackerSparqlDataBinding*) _tmp231_)->data_type = TRACKER_PROPERTY_TYPE_INTEGER;
 4261 #line 445 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4262 			_tmp232_ = self->priv->query;
 4263 #line 445 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4264 			_tmp233_ = binding;
 4265 #line 445 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4266 			_tmp234_ = _g_object_ref0 (_tmp233_);
 4267 #line 445 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4268 			_tmp232_->bindings = g_list_append (_tmp232_->bindings, _tmp234_);
 4269 #line 439 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4270 			_g_object_unref0 (binding);
 4271 #line 4267 "tracker-sparql-pattern.c"
 4272 		}
 4273 	}
 4274 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4275 	_tmp237_ = self->queries_fts_data;
 4276 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4277 	if (_tmp237_) {
 4278 #line 4274 "tracker-sparql-pattern.c"
 4279 		GString* _tmp238_;
 4280 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4281 		_tmp238_ = self->match_str;
 4282 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4283 		_tmp236_ = _tmp238_ != NULL;
 4284 #line 4280 "tracker-sparql-pattern.c"
 4285 	} else {
 4286 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4287 		_tmp236_ = FALSE;
 4288 #line 4284 "tracker-sparql-pattern.c"
 4289 	}
 4290 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4291 	_tmp239_ = _tmp236_;
 4292 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4293 	if (_tmp239_) {
 4294 #line 4290 "tracker-sparql-pattern.c"
 4295 		TrackerSparqlVariable* _tmp240_;
 4296 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4297 		_tmp240_ = self->fts_subject;
 4298 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4299 		_tmp235_ = _tmp240_ != NULL;
 4300 #line 4296 "tracker-sparql-pattern.c"
 4301 	} else {
 4302 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4303 		_tmp235_ = FALSE;
 4304 #line 4300 "tracker-sparql-pattern.c"
 4305 	}
 4306 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4307 	_tmp241_ = _tmp235_;
 4308 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4309 	if (_tmp241_) {
 4310 #line 4306 "tracker-sparql-pattern.c"
 4311 		GString* _tmp242_;
 4312 		GString* str;
 4313 		gchar** _tmp243_;
 4314 		gint _tmp243__length1;
 4315 		GString* _tmp249_;
 4316 		GString* _tmp250_;
 4317 		GString* _tmp251_;
 4318 		const gchar* _tmp252_;
 4319 		GString* _tmp253_;
 4320 		GString* _tmp254_;
 4321 		const gchar* _tmp255_;
 4322 		gchar* _tmp256_ = NULL;
 4323 		gchar* _tmp257_;
 4324 #line 449 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4325 		_tmp242_ = g_string_new ("SELECT ");
 4326 #line 449 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4327 		str = _tmp242_;
 4328 #line 450 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4329 		first = TRUE;
 4330 #line 452 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4331 		_tmp243_ = self->fts_variables;
 4332 #line 452 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4333 		_tmp243__length1 = self->fts_variables_length1;
 4334 #line 4330 "tracker-sparql-pattern.c"
 4335 		{
 4336 			gchar** fts_var_collection = NULL;
 4337 			gint fts_var_collection_length1 = 0;
 4338 			gint _fts_var_collection_size_ = 0;
 4339 			gint fts_var_it = 0;
 4340 #line 452 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4341 			fts_var_collection = _tmp243_;
 4342 #line 452 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4343 			fts_var_collection_length1 = _tmp243__length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
 4344 #line 452 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4345 			for (fts_var_it = 0; fts_var_it < _tmp243__length1; fts_var_it = fts_var_it + 1) {
 4346 #line 4342 "tracker-sparql-pattern.c"
 4347 				gchar* _tmp244_;
 4348 				gchar* fts_var = NULL;
 4349 #line 452 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4350 				_tmp244_ = g_strdup (fts_var_collection[fts_var_it]);
 4351 #line 452 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4352 				fts_var = _tmp244_;
 4353 #line 4349 "tracker-sparql-pattern.c"
 4354 				{
 4355 					gboolean _tmp245_;
 4356 					GString* _tmp247_;
 4357 					const gchar* _tmp248_;
 4358 #line 453 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4359 					_tmp245_ = first;
 4360 #line 453 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4361 					if (!_tmp245_) {
 4362 #line 4358 "tracker-sparql-pattern.c"
 4363 						GString* _tmp246_;
 4364 #line 454 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4365 						_tmp246_ = str;
 4366 #line 454 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4367 						g_string_append (_tmp246_, ", ");
 4368 #line 4364 "tracker-sparql-pattern.c"
 4369 					} else {
 4370 #line 456 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4371 						first = FALSE;
 4372 #line 4368 "tracker-sparql-pattern.c"
 4373 					}
 4374 #line 459 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4375 					_tmp247_ = str;
 4376 #line 459 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4377 					_tmp248_ = fts_var;
 4378 #line 459 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4379 					g_string_append (_tmp247_, _tmp248_);
 4380 #line 452 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4381 					_g_free0 (fts_var);
 4382 #line 4378 "tracker-sparql-pattern.c"
 4383 				}
 4384 			}
 4385 		}
 4386 #line 462 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4387 		_tmp249_ = str;
 4388 #line 462 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4389 		g_string_append (_tmp249_, " FROM fts JOIN (");
 4390 #line 463 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4391 		_tmp250_ = sql;
 4392 #line 463 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4393 		_tmp251_ = str;
 4394 #line 463 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4395 		_tmp252_ = _tmp251_->str;
 4396 #line 463 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4397 		g_string_prepend (_tmp250_, _tmp252_);
 4398 #line 464 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4399 		_tmp253_ = sql;
 4400 #line 464 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4401 		_tmp254_ = self->match_str;
 4402 #line 464 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4403 		_tmp255_ = _tmp254_->str;
 4404 #line 464 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4405 		_tmp256_ = g_strdup_printf (") AS ranks USING (docid) WHERE fts %s", _tmp255_);
 4406 #line 464 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4407 		_tmp257_ = _tmp256_;
 4408 #line 464 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4409 		g_string_append_printf (_tmp253_, "%s", _tmp257_);
 4410 #line 464 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4411 		_g_free0 (_tmp257_);
 4412 #line 448 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4413 		_g_string_free0 (str);
 4414 #line 4410 "tracker-sparql-pattern.c"
 4415 	}
 4416 #line 467 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4417 	_tmp258_ = tracker_sparql_pattern_get_context (self);
 4418 #line 467 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4419 	_tmp259_ = _tmp258_;
 4420 #line 467 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4421 	_tmp260_ = _tmp259_->parent_context;
 4422 #line 467 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4423 	tracker_sparql_pattern_set_context (self, _tmp260_);
 4424 #line 469 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4425 	_tmp261_ = _result_;
 4426 #line 469 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4427 	_tmp262_ = type;
 4428 #line 469 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4429 	_tmp261_->type = _tmp262_;
 4430 #line 470 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4431 	_g_string_free0 (self->match_str);
 4432 #line 470 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4433 	self->match_str = NULL;
 4434 #line 471 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4435 	_g_object_unref0 (self->fts_subject);
 4436 #line 471 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4437 	self->fts_subject = NULL;
 4438 #line 473 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4439 	result = _result_;
 4440 #line 473 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4441 	__g_list_free__g_object_unref0_0 (where_bindings);
 4442 #line 473 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4443 	_tracker_sparql_context_unref0 (pattern);
 4444 #line 473 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4445 	__g_list_free__g_object_unref0_0 (old_bindings);
 4446 #line 473 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4447 	_g_string_free0 (pattern_sql);
 4448 #line 473 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4449 	return result;
 4450 #line 4446 "tracker-sparql-pattern.c"
 4451 }
 4452 
 4453 
 4454 void tracker_sparql_pattern_translate_exists (TrackerSparqlPattern* self, GString* sql, GError** error) {
 4455 	gboolean _tmp0_ = FALSE;
 4456 	gboolean not;
 4457 	TrackerSparqlSelectContext* _result_ = NULL;
 4458 	TrackerSparqlQuery* _tmp1_;
 4459 	TrackerSparqlContext* _tmp2_;
 4460 	TrackerSparqlContext* _tmp3_;
 4461 	TrackerSparqlSelectContext* _tmp4_;
 4462 	TrackerSparqlSelectContext* _tmp5_;
 4463 	gboolean _tmp6_;
 4464 	GString* _tmp9_;
 4465 	TrackerSparqlContext* _tmp10_ = NULL;
 4466 	TrackerSparqlContext* pattern;
 4467 	TrackerSparqlContext* _tmp11_;
 4468 	GHashTable* _tmp12_;
 4469 	GList* _tmp13_ = NULL;
 4470 	TrackerSparqlContext* _tmp19_;
 4471 	TrackerSparqlContext* _tmp20_;
 4472 	GHashTable* _tmp21_;
 4473 	GList* _tmp22_ = NULL;
 4474 	GString* _tmp32_;
 4475 	TrackerSparqlContext* _tmp33_;
 4476 	TrackerSparqlContext* _tmp34_;
 4477 	TrackerSparqlContext* _tmp35_;
 4478 	GError * _inner_error_ = NULL;
 4479 #line 476 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4480 	g_return_if_fail (self != NULL);
 4481 #line 476 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4482 	g_return_if_fail (sql != NULL);
 4483 #line 477 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4484 	_tmp0_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_NOT, &_inner_error_);
 4485 #line 477 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4486 	not = _tmp0_;
 4487 #line 477 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4488 	if (_inner_error_ != NULL) {
 4489 #line 477 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4490 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 4491 #line 477 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4492 			g_propagate_error (error, _inner_error_);
 4493 #line 477 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4494 			return;
 4495 #line 4491 "tracker-sparql-pattern.c"
 4496 		} else {
 4497 #line 477 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4498 			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);
 4499 #line 477 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4500 			g_clear_error (&_inner_error_);
 4501 #line 477 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4502 			return;
 4503 #line 4499 "tracker-sparql-pattern.c"
 4504 		}
 4505 	}
 4506 #line 478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4507 	tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_EXISTS, &_inner_error_);
 4508 #line 478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4509 	if (_inner_error_ != NULL) {
 4510 #line 478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4511 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 4512 #line 478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4513 			g_propagate_error (error, _inner_error_);
 4514 #line 478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4515 			return;
 4516 #line 4512 "tracker-sparql-pattern.c"
 4517 		} else {
 4518 #line 478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4519 			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);
 4520 #line 478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4521 			g_clear_error (&_inner_error_);
 4522 #line 478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4523 			return;
 4524 #line 4520 "tracker-sparql-pattern.c"
 4525 		}
 4526 	}
 4527 #line 481 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4528 	_tmp1_ = self->priv->query;
 4529 #line 481 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4530 	_tmp2_ = tracker_sparql_pattern_get_context (self);
 4531 #line 481 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4532 	_tmp3_ = _tmp2_;
 4533 #line 481 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4534 	_tmp4_ = tracker_sparql_select_context_new_subquery (_tmp1_, _tmp3_);
 4535 #line 481 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4536 	_tracker_sparql_context_unref0 (_result_);
 4537 #line 481 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4538 	_result_ = _tmp4_;
 4539 #line 482 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4540 	_tmp5_ = _result_;
 4541 #line 482 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4542 	tracker_sparql_pattern_set_context (self, (TrackerSparqlContext*) _tmp5_);
 4543 #line 484 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4544 	_tmp6_ = not;
 4545 #line 484 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4546 	if (_tmp6_) {
 4547 #line 4543 "tracker-sparql-pattern.c"
 4548 		GString* _tmp7_;
 4549 #line 486 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4550 		_tmp7_ = sql;
 4551 #line 486 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4552 		g_string_append (_tmp7_, "NOT EXISTS (");
 4553 #line 4549 "tracker-sparql-pattern.c"
 4554 	} else {
 4555 		GString* _tmp8_;
 4556 #line 489 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4557 		_tmp8_ = sql;
 4558 #line 489 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4559 		g_string_append (_tmp8_, "EXISTS (");
 4560 #line 4556 "tracker-sparql-pattern.c"
 4561 	}
 4562 #line 492 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4563 	_tmp9_ = sql;
 4564 #line 492 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4565 	_tmp10_ = tracker_sparql_pattern_translate_group_graph_pattern (self, _tmp9_, &_inner_error_);
 4566 #line 492 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4567 	pattern = _tmp10_;
 4568 #line 492 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4569 	if (_inner_error_ != NULL) {
 4570 #line 492 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4571 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 4572 #line 492 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4573 			g_propagate_error (error, _inner_error_);
 4574 #line 492 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4575 			_tracker_sparql_context_unref0 (_result_);
 4576 #line 492 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4577 			return;
 4578 #line 4574 "tracker-sparql-pattern.c"
 4579 		} else {
 4580 #line 492 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4581 			_tracker_sparql_context_unref0 (_result_);
 4582 #line 492 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4583 			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);
 4584 #line 492 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4585 			g_clear_error (&_inner_error_);
 4586 #line 492 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4587 			return;
 4588 #line 4584 "tracker-sparql-pattern.c"
 4589 		}
 4590 	}
 4591 #line 493 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4592 	_tmp11_ = pattern;
 4593 #line 493 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4594 	_tmp12_ = _tmp11_->var_set;
 4595 #line 493 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4596 	_tmp13_ = g_hash_table_get_keys (_tmp12_);
 4597 #line 4593 "tracker-sparql-pattern.c"
 4598 	{
 4599 		GList* key_collection = NULL;
 4600 		GList* key_it = NULL;
 4601 #line 493 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4602 		key_collection = _tmp13_;
 4603 #line 493 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4604 		for (key_it = key_collection; key_it != NULL; key_it = key_it->next) {
 4605 #line 4601 "tracker-sparql-pattern.c"
 4606 			TrackerSparqlVariable* key = NULL;
 4607 #line 493 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4608 			key = (TrackerSparqlVariable*) key_it->data;
 4609 #line 4605 "tracker-sparql-pattern.c"
 4610 			{
 4611 				TrackerSparqlContext* _tmp14_;
 4612 				TrackerSparqlContext* _tmp15_;
 4613 				GHashTable* _tmp16_;
 4614 				TrackerSparqlVariable* _tmp17_;
 4615 				TrackerSparqlVariable* _tmp18_;
 4616 #line 494 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4617 				_tmp14_ = tracker_sparql_pattern_get_context (self);
 4618 #line 494 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4619 				_tmp15_ = _tmp14_;
 4620 #line 494 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4621 				_tmp16_ = _tmp15_->var_set;
 4622 #line 494 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4623 				_tmp17_ = key;
 4624 #line 494 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4625 				_tmp18_ = _g_object_ref0 (_tmp17_);
 4626 #line 494 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4627 				g_hash_table_insert (_tmp16_, _tmp18_, (gpointer) ((gintptr) ((gint) TRACKER_SPARQL_VARIABLE_STATE_BOUND)));
 4628 #line 4624 "tracker-sparql-pattern.c"
 4629 			}
 4630 		}
 4631 #line 493 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4632 		_g_list_free0 (key_collection);
 4633 #line 4629 "tracker-sparql-pattern.c"
 4634 	}
 4635 #line 498 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4636 	_tmp19_ = tracker_sparql_pattern_get_context (self);
 4637 #line 498 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4638 	_tmp20_ = _tmp19_;
 4639 #line 498 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4640 	_tmp21_ = _tmp20_->var_set;
 4641 #line 498 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4642 	_tmp22_ = g_hash_table_get_keys (_tmp21_);
 4643 #line 4639 "tracker-sparql-pattern.c"
 4644 	{
 4645 		GList* variable_collection = NULL;
 4646 		GList* variable_it = NULL;
 4647 #line 498 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4648 		variable_collection = _tmp22_;
 4649 #line 498 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4650 		for (variable_it = variable_collection; variable_it != NULL; variable_it = variable_it->next) {
 4651 #line 4647 "tracker-sparql-pattern.c"
 4652 			TrackerSparqlVariable* variable = NULL;
 4653 #line 498 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4654 			variable = (TrackerSparqlVariable*) variable_it->data;
 4655 #line 4651 "tracker-sparql-pattern.c"
 4656 			{
 4657 				TrackerSparqlVariable* _tmp23_;
 4658 				TrackerSparqlVariableBinding* _tmp24_;
 4659 #line 499 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4660 				_tmp23_ = variable;
 4661 #line 499 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4662 				_tmp24_ = _tmp23_->binding;
 4663 #line 499 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4664 				if (_tmp24_ == NULL) {
 4665 #line 4661 "tracker-sparql-pattern.c"
 4666 					TrackerSparqlVariable* _tmp25_;
 4667 					const gchar* _tmp26_;
 4668 					const gchar* _tmp27_;
 4669 					gchar* _tmp28_ = NULL;
 4670 					gchar* _tmp29_;
 4671 					GError* _tmp30_ = NULL;
 4672 					GError* _tmp31_;
 4673 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4674 					_tmp25_ = variable;
 4675 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4676 					_tmp26_ = tracker_sparql_variable_get_name (_tmp25_);
 4677 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4678 					_tmp27_ = _tmp26_;
 4679 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4680 					_tmp28_ = g_strdup_printf ("use of undefined variable `%s'", _tmp27_);
 4681 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4682 					_tmp29_ = _tmp28_;
 4683 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4684 					_tmp30_ = tracker_sparql_pattern_get_error (self, _tmp29_);
 4685 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4686 					_tmp31_ = _tmp30_;
 4687 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4688 					_g_free0 (_tmp29_);
 4689 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4690 					_inner_error_ = _tmp31_;
 4691 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4692 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 4693 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4694 						g_propagate_error (error, _inner_error_);
 4695 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4696 						_g_list_free0 (variable_collection);
 4697 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4698 						_tracker_sparql_context_unref0 (pattern);
 4699 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4700 						_tracker_sparql_context_unref0 (_result_);
 4701 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4702 						return;
 4703 #line 4699 "tracker-sparql-pattern.c"
 4704 					} else {
 4705 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4706 						_g_list_free0 (variable_collection);
 4707 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4708 						_tracker_sparql_context_unref0 (pattern);
 4709 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4710 						_tracker_sparql_context_unref0 (_result_);
 4711 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4712 						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);
 4713 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4714 						g_clear_error (&_inner_error_);
 4715 #line 500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4716 						return;
 4717 #line 4713 "tracker-sparql-pattern.c"
 4718 					}
 4719 				}
 4720 			}
 4721 		}
 4722 #line 498 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4723 		_g_list_free0 (variable_collection);
 4724 #line 4720 "tracker-sparql-pattern.c"
 4725 	}
 4726 #line 504 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4727 	_tmp32_ = sql;
 4728 #line 504 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4729 	g_string_append (_tmp32_, ")");
 4730 #line 506 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4731 	_tmp33_ = tracker_sparql_pattern_get_context (self);
 4732 #line 506 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4733 	_tmp34_ = _tmp33_;
 4734 #line 506 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4735 	_tmp35_ = _tmp34_->parent_context;
 4736 #line 506 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4737 	tracker_sparql_pattern_set_context (self, _tmp35_);
 4738 #line 476 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4739 	_tracker_sparql_context_unref0 (pattern);
 4740 #line 476 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4741 	_tracker_sparql_context_unref0 (_result_);
 4742 #line 4738 "tracker-sparql-pattern.c"
 4743 }
 4744 
 4745 
 4746 static glong string_strnlen (gchar* str, glong maxlen) {
 4747 	glong result = 0L;
 4748 	gchar* _tmp0_;
 4749 	glong _tmp1_;
 4750 	gchar* _tmp2_ = NULL;
 4751 	gchar* end;
 4752 	gchar* _tmp3_;
 4753 #line 1147 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4754 	_tmp0_ = str;
 4755 #line 1147 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4756 	_tmp1_ = maxlen;
 4757 #line 1147 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4758 	_tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
 4759 #line 1147 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4760 	end = _tmp2_;
 4761 #line 1148 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4762 	_tmp3_ = end;
 4763 #line 1148 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4764 	if (_tmp3_ == NULL) {
 4765 #line 4761 "tracker-sparql-pattern.c"
 4766 		glong _tmp4_;
 4767 #line 1149 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4768 		_tmp4_ = maxlen;
 4769 #line 1149 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4770 		result = _tmp4_;
 4771 #line 1149 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4772 		return result;
 4773 #line 4769 "tracker-sparql-pattern.c"
 4774 	} else {
 4775 		gchar* _tmp5_;
 4776 		gchar* _tmp6_;
 4777 #line 1151 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4778 		_tmp5_ = end;
 4779 #line 1151 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4780 		_tmp6_ = str;
 4781 #line 1151 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4782 		result = (glong) (_tmp5_ - _tmp6_);
 4783 #line 1151 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4784 		return result;
 4785 #line 4781 "tracker-sparql-pattern.c"
 4786 	}
 4787 }
 4788 
 4789 
 4790 static gchar* string_substring (const gchar* self, glong offset, glong len) {
 4791 	gchar* result = NULL;
 4792 	glong string_length = 0L;
 4793 	gboolean _tmp0_ = FALSE;
 4794 	glong _tmp1_;
 4795 	gboolean _tmp3_;
 4796 	glong _tmp9_;
 4797 	glong _tmp15_;
 4798 	glong _tmp18_;
 4799 	glong _tmp19_;
 4800 	glong _tmp20_;
 4801 	glong _tmp21_;
 4802 	glong _tmp22_;
 4803 	gchar* _tmp23_ = NULL;
 4804 #line 1158 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4805 	g_return_val_if_fail (self != NULL, NULL);
 4806 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4807 	_tmp1_ = offset;
 4808 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4809 	if (_tmp1_ >= ((glong) 0)) {
 4810 #line 4806 "tracker-sparql-pattern.c"
 4811 		glong _tmp2_;
 4812 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4813 		_tmp2_ = len;
 4814 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4815 		_tmp0_ = _tmp2_ >= ((glong) 0);
 4816 #line 4812 "tracker-sparql-pattern.c"
 4817 	} else {
 4818 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4819 		_tmp0_ = FALSE;
 4820 #line 4816 "tracker-sparql-pattern.c"
 4821 	}
 4822 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4823 	_tmp3_ = _tmp0_;
 4824 #line 1160 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4825 	if (_tmp3_) {
 4826 #line 4822 "tracker-sparql-pattern.c"
 4827 		glong _tmp4_;
 4828 		glong _tmp5_;
 4829 		glong _tmp6_ = 0L;
 4830 #line 1162 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4831 		_tmp4_ = offset;
 4832 #line 1162 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4833 		_tmp5_ = len;
 4834 #line 1162 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4835 		_tmp6_ = string_strnlen ((gchar*) self, _tmp4_ + _tmp5_);
 4836 #line 1162 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4837 		string_length = _tmp6_;
 4838 #line 4834 "tracker-sparql-pattern.c"
 4839 	} else {
 4840 		gint _tmp7_;
 4841 		gint _tmp8_;
 4842 #line 1164 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4843 		_tmp7_ = strlen (self);
 4844 #line 1164 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4845 		_tmp8_ = _tmp7_;
 4846 #line 1164 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4847 		string_length = (glong) _tmp8_;
 4848 #line 4844 "tracker-sparql-pattern.c"
 4849 	}
 4850 #line 1167 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4851 	_tmp9_ = offset;
 4852 #line 1167 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4853 	if (_tmp9_ < ((glong) 0)) {
 4854 #line 4850 "tracker-sparql-pattern.c"
 4855 		glong _tmp10_;
 4856 		glong _tmp11_;
 4857 		glong _tmp12_;
 4858 #line 1168 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4859 		_tmp10_ = string_length;
 4860 #line 1168 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4861 		_tmp11_ = offset;
 4862 #line 1168 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4863 		offset = _tmp10_ + _tmp11_;
 4864 #line 1169 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4865 		_tmp12_ = offset;
 4866 #line 1169 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4867 		g_return_val_if_fail (_tmp12_ >= ((glong) 0), NULL);
 4868 #line 4864 "tracker-sparql-pattern.c"
 4869 	} else {
 4870 		glong _tmp13_;
 4871 		glong _tmp14_;
 4872 #line 1171 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4873 		_tmp13_ = offset;
 4874 #line 1171 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4875 		_tmp14_ = string_length;
 4876 #line 1171 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4877 		g_return_val_if_fail (_tmp13_ <= _tmp14_, NULL);
 4878 #line 4874 "tracker-sparql-pattern.c"
 4879 	}
 4880 #line 1173 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4881 	_tmp15_ = len;
 4882 #line 1173 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4883 	if (_tmp15_ < ((glong) 0)) {
 4884 #line 4880 "tracker-sparql-pattern.c"
 4885 		glong _tmp16_;
 4886 		glong _tmp17_;
 4887 #line 1174 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4888 		_tmp16_ = string_length;
 4889 #line 1174 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4890 		_tmp17_ = offset;
 4891 #line 1174 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4892 		len = _tmp16_ - _tmp17_;
 4893 #line 4889 "tracker-sparql-pattern.c"
 4894 	}
 4895 #line 1176 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4896 	_tmp18_ = offset;
 4897 #line 1176 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4898 	_tmp19_ = len;
 4899 #line 1176 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4900 	_tmp20_ = string_length;
 4901 #line 1176 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4902 	g_return_val_if_fail ((_tmp18_ + _tmp19_) <= _tmp20_, NULL);
 4903 #line 1177 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4904 	_tmp21_ = offset;
 4905 #line 1177 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4906 	_tmp22_ = len;
 4907 #line 1177 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4908 	_tmp23_ = g_strndup (((gchar*) self) + _tmp21_, (gsize) _tmp22_);
 4909 #line 1177 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4910 	result = _tmp23_;
 4911 #line 1177 "/usr/share/vala-0.18/vapi/glib-2.0.vapi"
 4912 	return result;
 4913 #line 4909 "tracker-sparql-pattern.c"
 4914 }
 4915 
 4916 
 4917 gchar* tracker_sparql_pattern_parse_var_or_term (TrackerSparqlPattern* self, GString* sql, gboolean* is_var, GError** error) {
 4918 	gboolean _vala_is_var = FALSE;
 4919 	gchar* result = NULL;
 4920 	gchar* _tmp0_;
 4921 	gchar* _result_;
 4922 	TrackerSparqlTokenType _tmp1_ = 0;
 4923 	GError * _inner_error_ = NULL;
 4924 #line 509 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4925 	g_return_val_if_fail (self != NULL, NULL);
 4926 #line 510 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4927 	_tmp0_ = g_strdup ("");
 4928 #line 510 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4929 	_result_ = _tmp0_;
 4930 #line 511 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4931 	_vala_is_var = FALSE;
 4932 #line 512 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4933 	_tmp1_ = tracker_sparql_pattern_current (self);
 4934 #line 512 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4935 	if (_tmp1_ == TRACKER_SPARQL_TOKEN_TYPE_VAR) {
 4936 #line 4932 "tracker-sparql-pattern.c"
 4937 		gchar* _tmp2_ = NULL;
 4938 		gchar* _tmp3_;
 4939 		gchar* _tmp4_ = NULL;
 4940 #line 513 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4941 		_vala_is_var = TRUE;
 4942 #line 514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4943 		tracker_sparql_pattern_next (self, &_inner_error_);
 4944 #line 514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4945 		if (_inner_error_ != NULL) {
 4946 #line 514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4947 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 4948 #line 514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4949 				g_propagate_error (error, _inner_error_);
 4950 #line 514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4951 				_g_free0 (_result_);
 4952 #line 514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4953 				return NULL;
 4954 #line 4950 "tracker-sparql-pattern.c"
 4955 			} else {
 4956 #line 514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4957 				_g_free0 (_result_);
 4958 #line 514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4959 				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);
 4960 #line 514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4961 				g_clear_error (&_inner_error_);
 4962 #line 514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4963 				return NULL;
 4964 #line 4960 "tracker-sparql-pattern.c"
 4965 			}
 4966 		}
 4967 #line 515 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4968 		_tmp2_ = tracker_sparql_pattern_get_last_string (self, 0);
 4969 #line 515 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4970 		_tmp3_ = _tmp2_;
 4971 #line 515 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4972 		_tmp4_ = string_substring (_tmp3_, (glong) 1, (glong) (-1));
 4973 #line 515 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4974 		_g_free0 (_result_);
 4975 #line 515 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4976 		_result_ = _tmp4_;
 4977 #line 515 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4978 		_g_free0 (_tmp3_);
 4979 #line 4975 "tracker-sparql-pattern.c"
 4980 	} else {
 4981 		TrackerSparqlTokenType _tmp5_ = 0;
 4982 #line 516 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4983 		_tmp5_ = tracker_sparql_pattern_current (self);
 4984 #line 516 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4985 		if (_tmp5_ == TRACKER_SPARQL_TOKEN_TYPE_IRI_REF) {
 4986 #line 4982 "tracker-sparql-pattern.c"
 4987 			gchar* _tmp6_ = NULL;
 4988 #line 517 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4989 			tracker_sparql_pattern_next (self, &_inner_error_);
 4990 #line 517 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4991 			if (_inner_error_ != NULL) {
 4992 #line 517 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4993 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 4994 #line 517 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4995 					g_propagate_error (error, _inner_error_);
 4996 #line 517 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4997 					_g_free0 (_result_);
 4998 #line 517 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 4999 					return NULL;
 5000 #line 4996 "tracker-sparql-pattern.c"
 5001 				} else {
 5002 #line 517 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5003 					_g_free0 (_result_);
 5004 #line 517 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5005 					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);
 5006 #line 517 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5007 					g_clear_error (&_inner_error_);
 5008 #line 517 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5009 					return NULL;
 5010 #line 5006 "tracker-sparql-pattern.c"
 5011 				}
 5012 			}
 5013 #line 518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5014 			_tmp6_ = tracker_sparql_pattern_get_last_string (self, 1);
 5015 #line 518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5016 			_g_free0 (_result_);
 5017 #line 518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5018 			_result_ = _tmp6_;
 5019 #line 5015 "tracker-sparql-pattern.c"
 5020 		} else {
 5021 			TrackerSparqlTokenType _tmp7_ = 0;
 5022 #line 519 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5023 			_tmp7_ = tracker_sparql_pattern_current (self);
 5024 #line 519 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5025 			if (_tmp7_ == TRACKER_SPARQL_TOKEN_TYPE_PN_PREFIX) {
 5026 #line 5022 "tracker-sparql-pattern.c"
 5027 				gchar* _tmp8_ = NULL;
 5028 				gchar* ns;
 5029 				TrackerSparqlQuery* _tmp9_;
 5030 				const gchar* _tmp10_;
 5031 				gchar* _tmp11_ = NULL;
 5032 				gchar* _tmp12_;
 5033 				gchar* _tmp13_ = NULL;
 5034 				gchar* _tmp14_;
 5035 				gchar* _tmp15_ = NULL;
 5036 				gchar* _tmp16_;
 5037 				gchar* _tmp17_;
 5038 #line 521 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5039 				tracker_sparql_pattern_next (self, &_inner_error_);
 5040 #line 521 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5041 				if (_inner_error_ != NULL) {
 5042 #line 521 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5043 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5044 #line 521 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5045 						g_propagate_error (error, _inner_error_);
 5046 #line 521 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5047 						_g_free0 (_result_);
 5048 #line 521 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5049 						return NULL;
 5050 #line 5046 "tracker-sparql-pattern.c"
 5051 					} else {
 5052 #line 521 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5053 						_g_free0 (_result_);
 5054 #line 521 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5055 						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);
 5056 #line 521 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5057 						g_clear_error (&_inner_error_);
 5058 #line 521 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5059 						return NULL;
 5060 #line 5056 "tracker-sparql-pattern.c"
 5061 					}
 5062 				}
 5063 #line 522 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5064 				_tmp8_ = tracker_sparql_pattern_get_last_string (self, 0);
 5065 #line 522 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5066 				ns = _tmp8_;
 5067 #line 523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5068 				tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_COLON, &_inner_error_);
 5069 #line 523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5070 				if (_inner_error_ != NULL) {
 5071 #line 523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5072 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5073 #line 523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5074 						g_propagate_error (error, _inner_error_);
 5075 #line 523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5076 						_g_free0 (ns);
 5077 #line 523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5078 						_g_free0 (_result_);
 5079 #line 523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5080 						return NULL;
 5081 #line 5077 "tracker-sparql-pattern.c"
 5082 					} else {
 5083 #line 523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5084 						_g_free0 (ns);
 5085 #line 523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5086 						_g_free0 (_result_);
 5087 #line 523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5088 						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);
 5089 #line 523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5090 						g_clear_error (&_inner_error_);
 5091 #line 523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5092 						return NULL;
 5093 #line 5089 "tracker-sparql-pattern.c"
 5094 					}
 5095 				}
 5096 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5097 				_tmp9_ = self->priv->query;
 5098 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5099 				_tmp10_ = ns;
 5100 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5101 				_tmp11_ = tracker_sparql_pattern_get_last_string (self, 0);
 5102 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5103 				_tmp12_ = _tmp11_;
 5104 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5105 				_tmp13_ = string_substring (_tmp12_, (glong) 1, (glong) (-1));
 5106 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5107 				_tmp14_ = _tmp13_;
 5108 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5109 				_tmp15_ = tracker_sparql_query_resolve_prefixed_name (_tmp9_, _tmp10_, _tmp14_, &_inner_error_);
 5110 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5111 				_tmp16_ = _tmp15_;
 5112 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5113 				_g_free0 (_tmp14_);
 5114 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5115 				_g_free0 (_tmp12_);
 5116 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5117 				_tmp17_ = _tmp16_;
 5118 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5119 				if (_inner_error_ != NULL) {
 5120 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5121 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5122 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5123 						g_propagate_error (error, _inner_error_);
 5124 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5125 						_g_free0 (ns);
 5126 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5127 						_g_free0 (_result_);
 5128 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5129 						return NULL;
 5130 #line 5126 "tracker-sparql-pattern.c"
 5131 					} else {
 5132 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5133 						_g_free0 (ns);
 5134 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5135 						_g_free0 (_result_);
 5136 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5137 						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);
 5138 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5139 						g_clear_error (&_inner_error_);
 5140 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5141 						return NULL;
 5142 #line 5138 "tracker-sparql-pattern.c"
 5143 					}
 5144 				}
 5145 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5146 				_g_free0 (_result_);
 5147 #line 524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5148 				_result_ = _tmp17_;
 5149 #line 519 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5150 				_g_free0 (ns);
 5151 #line 5147 "tracker-sparql-pattern.c"
 5152 			} else {
 5153 				TrackerSparqlTokenType _tmp18_ = 0;
 5154 #line 525 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5155 				_tmp18_ = tracker_sparql_pattern_current (self);
 5156 #line 525 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5157 				if (_tmp18_ == TRACKER_SPARQL_TOKEN_TYPE_COLON) {
 5158 #line 5154 "tracker-sparql-pattern.c"
 5159 					TrackerSparqlQuery* _tmp19_;
 5160 					gchar* _tmp20_ = NULL;
 5161 					gchar* _tmp21_;
 5162 					gchar* _tmp22_ = NULL;
 5163 					gchar* _tmp23_;
 5164 					gchar* _tmp24_ = NULL;
 5165 					gchar* _tmp25_;
 5166 					gchar* _tmp26_;
 5167 #line 527 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5168 					tracker_sparql_pattern_next (self, &_inner_error_);
 5169 #line 527 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5170 					if (_inner_error_ != NULL) {
 5171 #line 527 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5172 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5173 #line 527 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5174 							g_propagate_error (error, _inner_error_);
 5175 #line 527 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5176 							_g_free0 (_result_);
 5177 #line 527 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5178 							return NULL;
 5179 #line 5175 "tracker-sparql-pattern.c"
 5180 						} else {
 5181 #line 527 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5182 							_g_free0 (_result_);
 5183 #line 527 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5184 							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);
 5185 #line 527 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5186 							g_clear_error (&_inner_error_);
 5187 #line 527 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5188 							return NULL;
 5189 #line 5185 "tracker-sparql-pattern.c"
 5190 						}
 5191 					}
 5192 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5193 					_tmp19_ = self->priv->query;
 5194 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5195 					_tmp20_ = tracker_sparql_pattern_get_last_string (self, 0);
 5196 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5197 					_tmp21_ = _tmp20_;
 5198 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5199 					_tmp22_ = string_substring (_tmp21_, (glong) 1, (glong) (-1));
 5200 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5201 					_tmp23_ = _tmp22_;
 5202 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5203 					_tmp24_ = tracker_sparql_query_resolve_prefixed_name (_tmp19_, "", _tmp23_, &_inner_error_);
 5204 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5205 					_tmp25_ = _tmp24_;
 5206 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5207 					_g_free0 (_tmp23_);
 5208 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5209 					_g_free0 (_tmp21_);
 5210 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5211 					_tmp26_ = _tmp25_;
 5212 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5213 					if (_inner_error_ != NULL) {
 5214 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5215 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5216 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5217 							g_propagate_error (error, _inner_error_);
 5218 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5219 							_g_free0 (_result_);
 5220 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5221 							return NULL;
 5222 #line 5218 "tracker-sparql-pattern.c"
 5223 						} else {
 5224 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5225 							_g_free0 (_result_);
 5226 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5227 							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);
 5228 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5229 							g_clear_error (&_inner_error_);
 5230 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5231 							return NULL;
 5232 #line 5228 "tracker-sparql-pattern.c"
 5233 						}
 5234 					}
 5235 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5236 					_g_free0 (_result_);
 5237 #line 528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5238 					_result_ = _tmp26_;
 5239 #line 5235 "tracker-sparql-pattern.c"
 5240 				} else {
 5241 					gboolean _tmp27_ = FALSE;
 5242 					gboolean _tmp28_;
 5243 #line 529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5244 					_tmp27_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_BLANK_NODE, &_inner_error_);
 5245 #line 529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5246 					_tmp28_ = _tmp27_;
 5247 #line 529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5248 					if (_inner_error_ != NULL) {
 5249 #line 529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5250 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5251 #line 529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5252 							g_propagate_error (error, _inner_error_);
 5253 #line 529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5254 							_g_free0 (_result_);
 5255 #line 529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5256 							return NULL;
 5257 #line 5253 "tracker-sparql-pattern.c"
 5258 						} else {
 5259 #line 529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5260 							_g_free0 (_result_);
 5261 #line 529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5262 							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);
 5263 #line 529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5264 							g_clear_error (&_inner_error_);
 5265 #line 529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5266 							return NULL;
 5267 #line 5263 "tracker-sparql-pattern.c"
 5268 						}
 5269 					}
 5270 #line 529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5271 					if (_tmp28_) {
 5272 #line 5268 "tracker-sparql-pattern.c"
 5273 						TrackerSparqlQuery* _tmp29_;
 5274 						gchar* _tmp30_ = NULL;
 5275 						gchar* _tmp31_;
 5276 						gchar* _tmp32_ = NULL;
 5277 						gchar* _tmp33_;
 5278 						gchar* _tmp34_ = NULL;
 5279 #line 531 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5280 						tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_COLON, &_inner_error_);
 5281 #line 531 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5282 						if (_inner_error_ != NULL) {
 5283 #line 531 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5284 							if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5285 #line 531 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5286 								g_propagate_error (error, _inner_error_);
 5287 #line 531 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5288 								_g_free0 (_result_);
 5289 #line 531 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5290 								return NULL;
 5291 #line 5287 "tracker-sparql-pattern.c"
 5292 							} else {
 5293 #line 531 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5294 								_g_free0 (_result_);
 5295 #line 531 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5296 								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);
 5297 #line 531 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5298 								g_clear_error (&_inner_error_);
 5299 #line 531 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5300 								return NULL;
 5301 #line 5297 "tracker-sparql-pattern.c"
 5302 							}
 5303 						}
 5304 #line 532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5305 						_tmp29_ = self->priv->query;
 5306 #line 532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5307 						_tmp30_ = tracker_sparql_pattern_get_last_string (self, 0);
 5308 #line 532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5309 						_tmp31_ = _tmp30_;
 5310 #line 532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5311 						_tmp32_ = string_substring (_tmp31_, (glong) 1, (glong) (-1));
 5312 #line 532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5313 						_tmp33_ = _tmp32_;
 5314 #line 532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5315 						_tmp34_ = tracker_sparql_query_generate_bnodeid (_tmp29_, _tmp33_);
 5316 #line 532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5317 						_g_free0 (_result_);
 5318 #line 532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5319 						_result_ = _tmp34_;
 5320 #line 532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5321 						_g_free0 (_tmp33_);
 5322 #line 532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5323 						_g_free0 (_tmp31_);
 5324 #line 5320 "tracker-sparql-pattern.c"
 5325 					} else {
 5326 						TrackerSparqlTokenType _tmp35_ = 0;
 5327 #line 533 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5328 						_tmp35_ = tracker_sparql_pattern_current (self);
 5329 #line 533 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5330 						if (_tmp35_ == TRACKER_SPARQL_TOKEN_TYPE_STRING_LITERAL1) {
 5331 #line 5327 "tracker-sparql-pattern.c"
 5332 							TrackerSparqlExpression* _tmp36_;
 5333 							gchar* _tmp37_ = NULL;
 5334 							gchar* _tmp38_;
 5335 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5336 							_tmp36_ = self->priv->expression;
 5337 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5338 							_tmp37_ = tracker_sparql_expression_parse_string_literal (_tmp36_, NULL, &_inner_error_);
 5339 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5340 							_tmp38_ = _tmp37_;
 5341 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5342 							if (_inner_error_ != NULL) {
 5343 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5344 								if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5345 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5346 									g_propagate_error (error, _inner_error_);
 5347 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5348 									_g_free0 (_result_);
 5349 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5350 									return NULL;
 5351 #line 5347 "tracker-sparql-pattern.c"
 5352 								} else {
 5353 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5354 									_g_free0 (_result_);
 5355 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5356 									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);
 5357 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5358 									g_clear_error (&_inner_error_);
 5359 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5360 									return NULL;
 5361 #line 5357 "tracker-sparql-pattern.c"
 5362 								}
 5363 							}
 5364 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5365 							_g_free0 (_result_);
 5366 #line 534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5367 							_result_ = _tmp38_;
 5368 #line 5364 "tracker-sparql-pattern.c"
 5369 						} else {
 5370 							TrackerSparqlTokenType _tmp39_ = 0;
 5371 #line 535 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5372 							_tmp39_ = tracker_sparql_pattern_current (self);
 5373 #line 535 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5374 							if (_tmp39_ == TRACKER_SPARQL_TOKEN_TYPE_STRING_LITERAL2) {
 5375 #line 5371 "tracker-sparql-pattern.c"
 5376 								TrackerSparqlExpression* _tmp40_;
 5377 								gchar* _tmp41_ = NULL;
 5378 								gchar* _tmp42_;
 5379 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5380 								_tmp40_ = self->priv->expression;
 5381 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5382 								_tmp41_ = tracker_sparql_expression_parse_string_literal (_tmp40_, NULL, &_inner_error_);
 5383 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5384 								_tmp42_ = _tmp41_;
 5385 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5386 								if (_inner_error_ != NULL) {
 5387 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5388 									if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5389 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5390 										g_propagate_error (error, _inner_error_);
 5391 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5392 										_g_free0 (_result_);
 5393 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5394 										return NULL;
 5395 #line 5391 "tracker-sparql-pattern.c"
 5396 									} else {
 5397 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5398 										_g_free0 (_result_);
 5399 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5400 										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);
 5401 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5402 										g_clear_error (&_inner_error_);
 5403 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5404 										return NULL;
 5405 #line 5401 "tracker-sparql-pattern.c"
 5406 									}
 5407 								}
 5408 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5409 								_g_free0 (_result_);
 5410 #line 536 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5411 								_result_ = _tmp42_;
 5412 #line 5408 "tracker-sparql-pattern.c"
 5413 							} else {
 5414 								TrackerSparqlTokenType _tmp43_ = 0;
 5415 #line 537 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5416 								_tmp43_ = tracker_sparql_pattern_current (self);
 5417 #line 537 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5418 								if (_tmp43_ == TRACKER_SPARQL_TOKEN_TYPE_STRING_LITERAL_LONG1) {
 5419 #line 5415 "tracker-sparql-pattern.c"
 5420 									TrackerSparqlExpression* _tmp44_;
 5421 									gchar* _tmp45_ = NULL;
 5422 									gchar* _tmp46_;
 5423 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5424 									_tmp44_ = self->priv->expression;
 5425 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5426 									_tmp45_ = tracker_sparql_expression_parse_string_literal (_tmp44_, NULL, &_inner_error_);
 5427 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5428 									_tmp46_ = _tmp45_;
 5429 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5430 									if (_inner_error_ != NULL) {
 5431 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5432 										if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5433 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5434 											g_propagate_error (error, _inner_error_);
 5435 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5436 											_g_free0 (_result_);
 5437 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5438 											return NULL;
 5439 #line 5435 "tracker-sparql-pattern.c"
 5440 										} else {
 5441 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5442 											_g_free0 (_result_);
 5443 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5444 											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);
 5445 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5446 											g_clear_error (&_inner_error_);
 5447 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5448 											return NULL;
 5449 #line 5445 "tracker-sparql-pattern.c"
 5450 										}
 5451 									}
 5452 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5453 									_g_free0 (_result_);
 5454 #line 538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5455 									_result_ = _tmp46_;
 5456 #line 5452 "tracker-sparql-pattern.c"
 5457 								} else {
 5458 									TrackerSparqlTokenType _tmp47_ = 0;
 5459 #line 539 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5460 									_tmp47_ = tracker_sparql_pattern_current (self);
 5461 #line 539 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5462 									if (_tmp47_ == TRACKER_SPARQL_TOKEN_TYPE_STRING_LITERAL_LONG2) {
 5463 #line 5459 "tracker-sparql-pattern.c"
 5464 										TrackerSparqlExpression* _tmp48_;
 5465 										gchar* _tmp49_ = NULL;
 5466 										gchar* _tmp50_;
 5467 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5468 										_tmp48_ = self->priv->expression;
 5469 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5470 										_tmp49_ = tracker_sparql_expression_parse_string_literal (_tmp48_, NULL, &_inner_error_);
 5471 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5472 										_tmp50_ = _tmp49_;
 5473 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5474 										if (_inner_error_ != NULL) {
 5475 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5476 											if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5477 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5478 												g_propagate_error (error, _inner_error_);
 5479 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5480 												_g_free0 (_result_);
 5481 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5482 												return NULL;
 5483 #line 5479 "tracker-sparql-pattern.c"
 5484 											} else {
 5485 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5486 												_g_free0 (_result_);
 5487 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5488 												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);
 5489 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5490 												g_clear_error (&_inner_error_);
 5491 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5492 												return NULL;
 5493 #line 5489 "tracker-sparql-pattern.c"
 5494 											}
 5495 										}
 5496 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5497 										_g_free0 (_result_);
 5498 #line 540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5499 										_result_ = _tmp50_;
 5500 #line 5496 "tracker-sparql-pattern.c"
 5501 									} else {
 5502 										TrackerSparqlTokenType _tmp51_ = 0;
 5503 #line 541 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5504 										_tmp51_ = tracker_sparql_pattern_current (self);
 5505 #line 541 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5506 										if (_tmp51_ == TRACKER_SPARQL_TOKEN_TYPE_INTEGER) {
 5507 #line 5503 "tracker-sparql-pattern.c"
 5508 											gchar* _tmp52_ = NULL;
 5509 #line 542 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5510 											tracker_sparql_pattern_next (self, &_inner_error_);
 5511 #line 542 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5512 											if (_inner_error_ != NULL) {
 5513 #line 542 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5514 												if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5515 #line 542 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5516 													g_propagate_error (error, _inner_error_);
 5517 #line 542 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5518 													_g_free0 (_result_);
 5519 #line 542 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5520 													return NULL;
 5521 #line 5517 "tracker-sparql-pattern.c"
 5522 												} else {
 5523 #line 542 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5524 													_g_free0 (_result_);
 5525 #line 542 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5526 													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);
 5527 #line 542 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5528 													g_clear_error (&_inner_error_);
 5529 #line 542 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5530 													return NULL;
 5531 #line 5527 "tracker-sparql-pattern.c"
 5532 												}
 5533 											}
 5534 #line 543 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5535 											_tmp52_ = tracker_sparql_pattern_get_last_string (self, 0);
 5536 #line 543 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5537 											_g_free0 (_result_);
 5538 #line 543 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5539 											_result_ = _tmp52_;
 5540 #line 5536 "tracker-sparql-pattern.c"
 5541 										} else {
 5542 											TrackerSparqlTokenType _tmp53_ = 0;
 5543 #line 544 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5544 											_tmp53_ = tracker_sparql_pattern_current (self);
 5545 #line 544 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5546 											if (_tmp53_ == TRACKER_SPARQL_TOKEN_TYPE_DECIMAL) {
 5547 #line 5543 "tracker-sparql-pattern.c"
 5548 												gchar* _tmp54_ = NULL;
 5549 #line 545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5550 												tracker_sparql_pattern_next (self, &_inner_error_);
 5551 #line 545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5552 												if (_inner_error_ != NULL) {
 5553 #line 545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5554 													if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5555 #line 545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5556 														g_propagate_error (error, _inner_error_);
 5557 #line 545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5558 														_g_free0 (_result_);
 5559 #line 545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5560 														return NULL;
 5561 #line 5557 "tracker-sparql-pattern.c"
 5562 													} else {
 5563 #line 545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5564 														_g_free0 (_result_);
 5565 #line 545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5566 														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);
 5567 #line 545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5568 														g_clear_error (&_inner_error_);
 5569 #line 545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5570 														return NULL;
 5571 #line 5567 "tracker-sparql-pattern.c"
 5572 													}
 5573 												}
 5574 #line 546 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5575 												_tmp54_ = tracker_sparql_pattern_get_last_string (self, 0);
 5576 #line 546 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5577 												_g_free0 (_result_);
 5578 #line 546 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5579 												_result_ = _tmp54_;
 5580 #line 5576 "tracker-sparql-pattern.c"
 5581 											} else {
 5582 												TrackerSparqlTokenType _tmp55_ = 0;
 5583 #line 547 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5584 												_tmp55_ = tracker_sparql_pattern_current (self);
 5585 #line 547 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5586 												if (_tmp55_ == TRACKER_SPARQL_TOKEN_TYPE_DOUBLE) {
 5587 #line 5583 "tracker-sparql-pattern.c"
 5588 													gchar* _tmp56_ = NULL;
 5589 #line 548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5590 													tracker_sparql_pattern_next (self, &_inner_error_);
 5591 #line 548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5592 													if (_inner_error_ != NULL) {
 5593 #line 548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5594 														if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5595 #line 548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5596 															g_propagate_error (error, _inner_error_);
 5597 #line 548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5598 															_g_free0 (_result_);
 5599 #line 548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5600 															return NULL;
 5601 #line 5597 "tracker-sparql-pattern.c"
 5602 														} else {
 5603 #line 548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5604 															_g_free0 (_result_);
 5605 #line 548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5606 															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);
 5607 #line 548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5608 															g_clear_error (&_inner_error_);
 5609 #line 548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5610 															return NULL;
 5611 #line 5607 "tracker-sparql-pattern.c"
 5612 														}
 5613 													}
 5614 #line 549 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5615 													_tmp56_ = tracker_sparql_pattern_get_last_string (self, 0);
 5616 #line 549 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5617 													_g_free0 (_result_);
 5618 #line 549 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5619 													_result_ = _tmp56_;
 5620 #line 5616 "tracker-sparql-pattern.c"
 5621 												} else {
 5622 													TrackerSparqlTokenType _tmp57_ = 0;
 5623 #line 550 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5624 													_tmp57_ = tracker_sparql_pattern_current (self);
 5625 #line 550 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5626 													if (_tmp57_ == TRACKER_SPARQL_TOKEN_TYPE_TRUE) {
 5627 #line 5623 "tracker-sparql-pattern.c"
 5628 														gchar* _tmp58_;
 5629 #line 551 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5630 														tracker_sparql_pattern_next (self, &_inner_error_);
 5631 #line 551 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5632 														if (_inner_error_ != NULL) {
 5633 #line 551 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5634 															if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5635 #line 551 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5636 																g_propagate_error (error, _inner_error_);
 5637 #line 551 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5638 																_g_free0 (_result_);
 5639 #line 551 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5640 																return NULL;
 5641 #line 5637 "tracker-sparql-pattern.c"
 5642 															} else {
 5643 #line 551 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5644 																_g_free0 (_result_);
 5645 #line 551 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5646 																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);
 5647 #line 551 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5648 																g_clear_error (&_inner_error_);
 5649 #line 551 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5650 																return NULL;
 5651 #line 5647 "tracker-sparql-pattern.c"
 5652 															}
 5653 														}
 5654 #line 552 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5655 														_tmp58_ = g_strdup ("true");
 5656 #line 552 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5657 														_g_free0 (_result_);
 5658 #line 552 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5659 														_result_ = _tmp58_;
 5660 #line 5656 "tracker-sparql-pattern.c"
 5661 													} else {
 5662 														TrackerSparqlTokenType _tmp59_ = 0;
 5663 #line 553 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5664 														_tmp59_ = tracker_sparql_pattern_current (self);
 5665 #line 553 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5666 														if (_tmp59_ == TRACKER_SPARQL_TOKEN_TYPE_FALSE) {
 5667 #line 5663 "tracker-sparql-pattern.c"
 5668 															gchar* _tmp60_;
 5669 #line 554 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5670 															tracker_sparql_pattern_next (self, &_inner_error_);
 5671 #line 554 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5672 															if (_inner_error_ != NULL) {
 5673 #line 554 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5674 																if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5675 #line 554 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5676 																	g_propagate_error (error, _inner_error_);
 5677 #line 554 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5678 																	_g_free0 (_result_);
 5679 #line 554 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5680 																	return NULL;
 5681 #line 5677 "tracker-sparql-pattern.c"
 5682 																} else {
 5683 #line 554 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5684 																	_g_free0 (_result_);
 5685 #line 554 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5686 																	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);
 5687 #line 554 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5688 																	g_clear_error (&_inner_error_);
 5689 #line 554 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5690 																	return NULL;
 5691 #line 5687 "tracker-sparql-pattern.c"
 5692 																}
 5693 															}
 5694 #line 555 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5695 															_tmp60_ = g_strdup ("false");
 5696 #line 555 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5697 															_g_free0 (_result_);
 5698 #line 555 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5699 															_result_ = _tmp60_;
 5700 #line 5696 "tracker-sparql-pattern.c"
 5701 														} else {
 5702 															TrackerSparqlTokenType _tmp61_ = 0;
 5703 #line 556 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5704 															_tmp61_ = tracker_sparql_pattern_current (self);
 5705 #line 556 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5706 															if (_tmp61_ == TRACKER_SPARQL_TOKEN_TYPE_OPEN_BRACKET) {
 5707 #line 5703 "tracker-sparql-pattern.c"
 5708 																TrackerSparqlQuery* _tmp62_;
 5709 																gchar* _tmp63_ = NULL;
 5710 																const gchar* _tmp64_;
 5711 																gchar* _tmp65_;
 5712 																gchar* old_subject;
 5713 																gboolean _tmp66_;
 5714 																gboolean old_subject_is_var;
 5715 																const gchar* _tmp67_;
 5716 																gchar* _tmp68_;
 5717 																GString* _tmp69_;
 5718 																const gchar* _tmp70_;
 5719 																gchar* _tmp71_;
 5720 																gboolean _tmp72_;
 5721 #line 557 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5722 																tracker_sparql_pattern_next (self, &_inner_error_);
 5723 #line 557 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5724 																if (_inner_error_ != NULL) {
 5725 #line 557 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5726 																	if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5727 #line 557 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5728 																		g_propagate_error (error, _inner_error_);
 5729 #line 557 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5730 																		_g_free0 (_result_);
 5731 #line 557 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5732 																		return NULL;
 5733 #line 5729 "tracker-sparql-pattern.c"
 5734 																	} else {
 5735 #line 557 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5736 																		_g_free0 (_result_);
 5737 #line 557 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5738 																		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);
 5739 #line 557 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5740 																		g_clear_error (&_inner_error_);
 5741 #line 557 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5742 																		return NULL;
 5743 #line 5739 "tracker-sparql-pattern.c"
 5744 																	}
 5745 																}
 5746 #line 559 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5747 																_tmp62_ = self->priv->query;
 5748 #line 559 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5749 																_tmp63_ = tracker_sparql_query_generate_bnodeid (_tmp62_, NULL);
 5750 #line 559 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5751 																_g_free0 (_result_);
 5752 #line 559 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5753 																_result_ = _tmp63_;
 5754 #line 561 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5755 																_tmp64_ = self->priv->current_subject;
 5756 #line 561 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5757 																_tmp65_ = g_strdup (_tmp64_);
 5758 #line 561 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5759 																old_subject = _tmp65_;
 5760 #line 562 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5761 																_tmp66_ = self->priv->current_subject_is_var;
 5762 #line 562 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5763 																old_subject_is_var = _tmp66_;
 5764 #line 564 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5765 																_tmp67_ = _result_;
 5766 #line 564 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5767 																_tmp68_ = g_strdup (_tmp67_);
 5768 #line 564 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5769 																_g_free0 (self->priv->current_subject);
 5770 #line 564 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5771 																self->priv->current_subject = _tmp68_;
 5772 #line 565 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5773 																self->priv->current_subject_is_var = TRUE;
 5774 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5775 																_tmp69_ = sql;
 5776 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5777 																tracker_sparql_pattern_parse_property_list_not_empty (self, _tmp69_, FALSE, &_inner_error_);
 5778 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5779 																if (_inner_error_ != NULL) {
 5780 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5781 																	if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5782 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5783 																		g_propagate_error (error, _inner_error_);
 5784 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5785 																		_g_free0 (old_subject);
 5786 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5787 																		_g_free0 (_result_);
 5788 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5789 																		return NULL;
 5790 #line 5786 "tracker-sparql-pattern.c"
 5791 																	} else {
 5792 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5793 																		_g_free0 (old_subject);
 5794 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5795 																		_g_free0 (_result_);
 5796 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5797 																		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);
 5798 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5799 																		g_clear_error (&_inner_error_);
 5800 #line 566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5801 																		return NULL;
 5802 #line 5798 "tracker-sparql-pattern.c"
 5803 																	}
 5804 																}
 5805 #line 567 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5806 																tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_BRACKET, &_inner_error_);
 5807 #line 567 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5808 																if (_inner_error_ != NULL) {
 5809 #line 567 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5810 																	if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5811 #line 567 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5812 																		g_propagate_error (error, _inner_error_);
 5813 #line 567 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5814 																		_g_free0 (old_subject);
 5815 #line 567 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5816 																		_g_free0 (_result_);
 5817 #line 567 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5818 																		return NULL;
 5819 #line 5815 "tracker-sparql-pattern.c"
 5820 																	} else {
 5821 #line 567 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5822 																		_g_free0 (old_subject);
 5823 #line 567 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5824 																		_g_free0 (_result_);
 5825 #line 567 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5826 																		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);
 5827 #line 567 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5828 																		g_clear_error (&_inner_error_);
 5829 #line 567 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5830 																		return NULL;
 5831 #line 5827 "tracker-sparql-pattern.c"
 5832 																	}
 5833 																}
 5834 #line 569 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5835 																_tmp70_ = old_subject;
 5836 #line 569 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5837 																_tmp71_ = g_strdup (_tmp70_);
 5838 #line 569 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5839 																_g_free0 (self->priv->current_subject);
 5840 #line 569 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5841 																self->priv->current_subject = _tmp71_;
 5842 #line 570 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5843 																_tmp72_ = old_subject_is_var;
 5844 #line 570 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5845 																self->priv->current_subject_is_var = _tmp72_;
 5846 #line 572 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5847 																_vala_is_var = TRUE;
 5848 #line 556 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5849 																_g_free0 (old_subject);
 5850 #line 5846 "tracker-sparql-pattern.c"
 5851 															} else {
 5852 																GError* _tmp73_ = NULL;
 5853 #line 574 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5854 																_tmp73_ = tracker_sparql_pattern_get_error (self, "expected variable or term");
 5855 #line 574 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5856 																_inner_error_ = _tmp73_;
 5857 #line 574 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5858 																if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5859 #line 574 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5860 																	g_propagate_error (error, _inner_error_);
 5861 #line 574 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5862 																	_g_free0 (_result_);
 5863 #line 574 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5864 																	return NULL;
 5865 #line 5861 "tracker-sparql-pattern.c"
 5866 																} else {
 5867 #line 574 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5868 																	_g_free0 (_result_);
 5869 #line 574 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5870 																	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);
 5871 #line 574 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5872 																	g_clear_error (&_inner_error_);
 5873 #line 574 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5874 																	return NULL;
 5875 #line 5871 "tracker-sparql-pattern.c"
 5876 																}
 5877 															}
 5878 														}
 5879 													}
 5880 												}
 5881 											}
 5882 										}
 5883 									}
 5884 								}
 5885 							}
 5886 						}
 5887 					}
 5888 				}
 5889 			}
 5890 		}
 5891 	}
 5892 #line 576 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5893 	result = _result_;
 5894 #line 576 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5895 	if (is_var) {
 5896 #line 576 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5897 		*is_var = _vala_is_var;
 5898 #line 5894 "tracker-sparql-pattern.c"
 5899 	}
 5900 #line 576 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5901 	return result;
 5902 #line 5898 "tracker-sparql-pattern.c"
 5903 }
 5904 
 5905 
 5906 static void tracker_sparql_pattern_parse_object_list (TrackerSparqlPattern* self, GString* sql, gboolean in_simple_optional, GError** error) {
 5907 	GError * _inner_error_ = NULL;
 5908 #line 579 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5909 	g_return_if_fail (self != NULL);
 5910 #line 579 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5911 	g_return_if_fail (sql != NULL);
 5912 #line 580 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5913 	while (TRUE) {
 5914 #line 5910 "tracker-sparql-pattern.c"
 5915 		GString* _tmp0_;
 5916 		gboolean _tmp1_;
 5917 		gboolean _tmp2_ = FALSE;
 5918 		gboolean _tmp3_;
 5919 #line 581 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5920 		_tmp0_ = sql;
 5921 #line 581 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5922 		_tmp1_ = in_simple_optional;
 5923 #line 581 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5924 		tracker_sparql_pattern_parse_object (self, _tmp0_, _tmp1_, &_inner_error_);
 5925 #line 581 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5926 		if (_inner_error_ != NULL) {
 5927 #line 581 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5928 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5929 #line 581 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5930 				g_propagate_error (error, _inner_error_);
 5931 #line 581 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5932 				return;
 5933 #line 5929 "tracker-sparql-pattern.c"
 5934 			} else {
 5935 #line 581 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5936 				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);
 5937 #line 581 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5938 				g_clear_error (&_inner_error_);
 5939 #line 581 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5940 				return;
 5941 #line 5937 "tracker-sparql-pattern.c"
 5942 			}
 5943 		}
 5944 #line 582 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5945 		_tmp2_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_COMMA, &_inner_error_);
 5946 #line 582 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5947 		_tmp3_ = _tmp2_;
 5948 #line 582 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5949 		if (_inner_error_ != NULL) {
 5950 #line 582 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5951 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 5952 #line 582 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5953 				g_propagate_error (error, _inner_error_);
 5954 #line 582 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5955 				return;
 5956 #line 5952 "tracker-sparql-pattern.c"
 5957 			} else {
 5958 #line 582 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5959 				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);
 5960 #line 582 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5961 				g_clear_error (&_inner_error_);
 5962 #line 582 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5963 				return;
 5964 #line 5960 "tracker-sparql-pattern.c"
 5965 			}
 5966 		}
 5967 #line 582 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5968 		if (_tmp3_) {
 5969 #line 583 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5970 			continue;
 5971 #line 5967 "tracker-sparql-pattern.c"
 5972 		}
 5973 #line 585 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5974 		break;
 5975 #line 5971 "tracker-sparql-pattern.c"
 5976 	}
 5977 }
 5978 
 5979 
 5980 static void tracker_sparql_pattern_parse_property_list_not_empty (TrackerSparqlPattern* self, GString* sql, gboolean in_simple_optional, GError** error) {
 5981 	GError * _inner_error_ = NULL;
 5982 #line 589 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5983 	g_return_if_fail (self != NULL);
 5984 #line 589 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5985 	g_return_if_fail (sql != NULL);
 5986 #line 590 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 5987 	while (TRUE) {
 5988 #line 5984 "tracker-sparql-pattern.c"
 5989 		const gchar* _tmp0_;
 5990 		gchar* _tmp1_;
 5991 		gchar* old_predicate;
 5992 		gboolean _tmp2_;
 5993 		gboolean old_predicate_is_var;
 5994 		TrackerSparqlTokenType _tmp3_ = 0;
 5995 		GString* _tmp32_;
 5996 		gboolean _tmp33_;
 5997 		const gchar* _tmp34_;
 5998 		gchar* _tmp35_;
 5999 		gboolean _tmp36_;
 6000 		gboolean _tmp37_ = FALSE;
 6001 		gboolean _tmp38_;
 6002 #line 591 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6003 		_tmp0_ = self->priv->current_predicate;
 6004 #line 591 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6005 		_tmp1_ = g_strdup (_tmp0_);
 6006 #line 591 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6007 		old_predicate = _tmp1_;
 6008 #line 592 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6009 		_tmp2_ = self->priv->current_predicate_is_var;
 6010 #line 592 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6011 		old_predicate_is_var = _tmp2_;
 6012 #line 594 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6013 		_g_free0 (self->priv->current_predicate);
 6014 #line 594 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6015 		self->priv->current_predicate = NULL;
 6016 #line 595 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6017 		self->priv->current_predicate_is_var = FALSE;
 6018 #line 596 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6019 		_tmp3_ = tracker_sparql_pattern_current (self);
 6020 #line 596 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6021 		if (_tmp3_ == TRACKER_SPARQL_TOKEN_TYPE_VAR) {
 6022 #line 6018 "tracker-sparql-pattern.c"
 6023 			gchar* _tmp4_ = NULL;
 6024 			gchar* _tmp5_;
 6025 			gchar* _tmp6_ = NULL;
 6026 #line 597 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6027 			self->priv->current_predicate_is_var = TRUE;
 6028 #line 598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6029 			tracker_sparql_pattern_next (self, &_inner_error_);
 6030 #line 598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6031 			if (_inner_error_ != NULL) {
 6032 #line 598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6033 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6034 #line 598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6035 					g_propagate_error (error, _inner_error_);
 6036 #line 598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6037 					_g_free0 (old_predicate);
 6038 #line 598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6039 					return;
 6040 #line 6036 "tracker-sparql-pattern.c"
 6041 				} else {
 6042 #line 598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6043 					_g_free0 (old_predicate);
 6044 #line 598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6045 					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);
 6046 #line 598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6047 					g_clear_error (&_inner_error_);
 6048 #line 598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6049 					return;
 6050 #line 6046 "tracker-sparql-pattern.c"
 6051 				}
 6052 			}
 6053 #line 599 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6054 			_tmp4_ = tracker_sparql_pattern_get_last_string (self, 0);
 6055 #line 599 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6056 			_tmp5_ = _tmp4_;
 6057 #line 599 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6058 			_tmp6_ = string_substring (_tmp5_, (glong) 1, (glong) (-1));
 6059 #line 599 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6060 			_g_free0 (self->priv->current_predicate);
 6061 #line 599 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6062 			self->priv->current_predicate = _tmp6_;
 6063 #line 599 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6064 			_g_free0 (_tmp5_);
 6065 #line 6061 "tracker-sparql-pattern.c"
 6066 		} else {
 6067 			TrackerSparqlTokenType _tmp7_ = 0;
 6068 #line 600 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6069 			_tmp7_ = tracker_sparql_pattern_current (self);
 6070 #line 600 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6071 			if (_tmp7_ == TRACKER_SPARQL_TOKEN_TYPE_IRI_REF) {
 6072 #line 6068 "tracker-sparql-pattern.c"
 6073 				gchar* _tmp8_ = NULL;
 6074 #line 601 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6075 				tracker_sparql_pattern_next (self, &_inner_error_);
 6076 #line 601 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6077 				if (_inner_error_ != NULL) {
 6078 #line 601 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6079 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6080 #line 601 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6081 						g_propagate_error (error, _inner_error_);
 6082 #line 601 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6083 						_g_free0 (old_predicate);
 6084 #line 601 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6085 						return;
 6086 #line 6082 "tracker-sparql-pattern.c"
 6087 					} else {
 6088 #line 601 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6089 						_g_free0 (old_predicate);
 6090 #line 601 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6091 						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);
 6092 #line 601 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6093 						g_clear_error (&_inner_error_);
 6094 #line 601 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6095 						return;
 6096 #line 6092 "tracker-sparql-pattern.c"
 6097 					}
 6098 				}
 6099 #line 602 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6100 				_tmp8_ = tracker_sparql_pattern_get_last_string (self, 1);
 6101 #line 602 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6102 				_g_free0 (self->priv->current_predicate);
 6103 #line 602 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6104 				self->priv->current_predicate = _tmp8_;
 6105 #line 6101 "tracker-sparql-pattern.c"
 6106 			} else {
 6107 				TrackerSparqlTokenType _tmp9_ = 0;
 6108 #line 603 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6109 				_tmp9_ = tracker_sparql_pattern_current (self);
 6110 #line 603 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6111 				if (_tmp9_ == TRACKER_SPARQL_TOKEN_TYPE_PN_PREFIX) {
 6112 #line 6108 "tracker-sparql-pattern.c"
 6113 					gchar* _tmp10_ = NULL;
 6114 					gchar* ns;
 6115 					TrackerSparqlQuery* _tmp11_;
 6116 					const gchar* _tmp12_;
 6117 					gchar* _tmp13_ = NULL;
 6118 					gchar* _tmp14_;
 6119 					gchar* _tmp15_ = NULL;
 6120 					gchar* _tmp16_;
 6121 					gchar* _tmp17_ = NULL;
 6122 					gchar* _tmp18_;
 6123 					gchar* _tmp19_;
 6124 #line 604 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6125 					tracker_sparql_pattern_next (self, &_inner_error_);
 6126 #line 604 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6127 					if (_inner_error_ != NULL) {
 6128 #line 604 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6129 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6130 #line 604 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6131 							g_propagate_error (error, _inner_error_);
 6132 #line 604 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6133 							_g_free0 (old_predicate);
 6134 #line 604 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6135 							return;
 6136 #line 6132 "tracker-sparql-pattern.c"
 6137 						} else {
 6138 #line 604 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6139 							_g_free0 (old_predicate);
 6140 #line 604 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6141 							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);
 6142 #line 604 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6143 							g_clear_error (&_inner_error_);
 6144 #line 604 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6145 							return;
 6146 #line 6142 "tracker-sparql-pattern.c"
 6147 						}
 6148 					}
 6149 #line 605 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6150 					_tmp10_ = tracker_sparql_pattern_get_last_string (self, 0);
 6151 #line 605 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6152 					ns = _tmp10_;
 6153 #line 606 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6154 					tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_COLON, &_inner_error_);
 6155 #line 606 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6156 					if (_inner_error_ != NULL) {
 6157 #line 606 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6158 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6159 #line 606 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6160 							g_propagate_error (error, _inner_error_);
 6161 #line 606 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6162 							_g_free0 (ns);
 6163 #line 606 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6164 							_g_free0 (old_predicate);
 6165 #line 606 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6166 							return;
 6167 #line 6163 "tracker-sparql-pattern.c"
 6168 						} else {
 6169 #line 606 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6170 							_g_free0 (ns);
 6171 #line 606 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6172 							_g_free0 (old_predicate);
 6173 #line 606 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6174 							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);
 6175 #line 606 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6176 							g_clear_error (&_inner_error_);
 6177 #line 606 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6178 							return;
 6179 #line 6175 "tracker-sparql-pattern.c"
 6180 						}
 6181 					}
 6182 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6183 					_tmp11_ = self->priv->query;
 6184 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6185 					_tmp12_ = ns;
 6186 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6187 					_tmp13_ = tracker_sparql_pattern_get_last_string (self, 0);
 6188 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6189 					_tmp14_ = _tmp13_;
 6190 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6191 					_tmp15_ = string_substring (_tmp14_, (glong) 1, (glong) (-1));
 6192 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6193 					_tmp16_ = _tmp15_;
 6194 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6195 					_tmp17_ = tracker_sparql_query_resolve_prefixed_name (_tmp11_, _tmp12_, _tmp16_, &_inner_error_);
 6196 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6197 					_tmp18_ = _tmp17_;
 6198 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6199 					_g_free0 (_tmp16_);
 6200 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6201 					_g_free0 (_tmp14_);
 6202 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6203 					_tmp19_ = _tmp18_;
 6204 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6205 					if (_inner_error_ != NULL) {
 6206 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6207 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6208 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6209 							g_propagate_error (error, _inner_error_);
 6210 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6211 							_g_free0 (ns);
 6212 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6213 							_g_free0 (old_predicate);
 6214 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6215 							return;
 6216 #line 6212 "tracker-sparql-pattern.c"
 6217 						} else {
 6218 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6219 							_g_free0 (ns);
 6220 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6221 							_g_free0 (old_predicate);
 6222 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6223 							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);
 6224 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6225 							g_clear_error (&_inner_error_);
 6226 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6227 							return;
 6228 #line 6224 "tracker-sparql-pattern.c"
 6229 						}
 6230 					}
 6231 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6232 					_g_free0 (self->priv->current_predicate);
 6233 #line 607 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6234 					self->priv->current_predicate = _tmp19_;
 6235 #line 603 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6236 					_g_free0 (ns);
 6237 #line 6233 "tracker-sparql-pattern.c"
 6238 				} else {
 6239 					TrackerSparqlTokenType _tmp20_ = 0;
 6240 #line 608 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6241 					_tmp20_ = tracker_sparql_pattern_current (self);
 6242 #line 608 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6243 					if (_tmp20_ == TRACKER_SPARQL_TOKEN_TYPE_COLON) {
 6244 #line 6240 "tracker-sparql-pattern.c"
 6245 						TrackerSparqlQuery* _tmp21_;
 6246 						gchar* _tmp22_ = NULL;
 6247 						gchar* _tmp23_;
 6248 						gchar* _tmp24_ = NULL;
 6249 						gchar* _tmp25_;
 6250 						gchar* _tmp26_ = NULL;
 6251 						gchar* _tmp27_;
 6252 						gchar* _tmp28_;
 6253 #line 609 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6254 						tracker_sparql_pattern_next (self, &_inner_error_);
 6255 #line 609 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6256 						if (_inner_error_ != NULL) {
 6257 #line 609 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6258 							if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6259 #line 609 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6260 								g_propagate_error (error, _inner_error_);
 6261 #line 609 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6262 								_g_free0 (old_predicate);
 6263 #line 609 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6264 								return;
 6265 #line 6261 "tracker-sparql-pattern.c"
 6266 							} else {
 6267 #line 609 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6268 								_g_free0 (old_predicate);
 6269 #line 609 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6270 								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);
 6271 #line 609 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6272 								g_clear_error (&_inner_error_);
 6273 #line 609 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6274 								return;
 6275 #line 6271 "tracker-sparql-pattern.c"
 6276 							}
 6277 						}
 6278 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6279 						_tmp21_ = self->priv->query;
 6280 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6281 						_tmp22_ = tracker_sparql_pattern_get_last_string (self, 0);
 6282 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6283 						_tmp23_ = _tmp22_;
 6284 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6285 						_tmp24_ = string_substring (_tmp23_, (glong) 1, (glong) (-1));
 6286 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6287 						_tmp25_ = _tmp24_;
 6288 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6289 						_tmp26_ = tracker_sparql_query_resolve_prefixed_name (_tmp21_, "", _tmp25_, &_inner_error_);
 6290 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6291 						_tmp27_ = _tmp26_;
 6292 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6293 						_g_free0 (_tmp25_);
 6294 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6295 						_g_free0 (_tmp23_);
 6296 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6297 						_tmp28_ = _tmp27_;
 6298 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6299 						if (_inner_error_ != NULL) {
 6300 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6301 							if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6302 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6303 								g_propagate_error (error, _inner_error_);
 6304 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6305 								_g_free0 (old_predicate);
 6306 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6307 								return;
 6308 #line 6304 "tracker-sparql-pattern.c"
 6309 							} else {
 6310 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6311 								_g_free0 (old_predicate);
 6312 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6313 								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);
 6314 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6315 								g_clear_error (&_inner_error_);
 6316 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6317 								return;
 6318 #line 6314 "tracker-sparql-pattern.c"
 6319 							}
 6320 						}
 6321 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6322 						_g_free0 (self->priv->current_predicate);
 6323 #line 610 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6324 						self->priv->current_predicate = _tmp28_;
 6325 #line 6321 "tracker-sparql-pattern.c"
 6326 					} else {
 6327 						TrackerSparqlTokenType _tmp29_ = 0;
 6328 #line 611 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6329 						_tmp29_ = tracker_sparql_pattern_current (self);
 6330 #line 611 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6331 						if (_tmp29_ == TRACKER_SPARQL_TOKEN_TYPE_A) {
 6332 #line 6328 "tracker-sparql-pattern.c"
 6333 							gchar* _tmp30_;
 6334 #line 612 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6335 							tracker_sparql_pattern_next (self, &_inner_error_);
 6336 #line 612 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6337 							if (_inner_error_ != NULL) {
 6338 #line 612 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6339 								if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6340 #line 612 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6341 									g_propagate_error (error, _inner_error_);
 6342 #line 612 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6343 									_g_free0 (old_predicate);
 6344 #line 612 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6345 									return;
 6346 #line 6342 "tracker-sparql-pattern.c"
 6347 								} else {
 6348 #line 612 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6349 									_g_free0 (old_predicate);
 6350 #line 612 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6351 									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);
 6352 #line 612 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6353 									g_clear_error (&_inner_error_);
 6354 #line 612 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6355 									return;
 6356 #line 6352 "tracker-sparql-pattern.c"
 6357 								}
 6358 							}
 6359 #line 613 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6360 							_tmp30_ = g_strdup ("http://www.w3.org/1999/02/22-rdf-syntax-ns#type");
 6361 #line 613 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6362 							_g_free0 (self->priv->current_predicate);
 6363 #line 613 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6364 							self->priv->current_predicate = _tmp30_;
 6365 #line 6361 "tracker-sparql-pattern.c"
 6366 						} else {
 6367 							GError* _tmp31_ = NULL;
 6368 #line 615 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6369 							_tmp31_ = tracker_sparql_pattern_get_error (self, "expected non-empty property list");
 6370 #line 615 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6371 							_inner_error_ = _tmp31_;
 6372 #line 615 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6373 							if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6374 #line 615 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6375 								g_propagate_error (error, _inner_error_);
 6376 #line 615 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6377 								_g_free0 (old_predicate);
 6378 #line 615 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6379 								return;
 6380 #line 6376 "tracker-sparql-pattern.c"
 6381 							} else {
 6382 #line 615 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6383 								_g_free0 (old_predicate);
 6384 #line 615 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6385 								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);
 6386 #line 615 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6387 								g_clear_error (&_inner_error_);
 6388 #line 615 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6389 								return;
 6390 #line 6386 "tracker-sparql-pattern.c"
 6391 							}
 6392 						}
 6393 					}
 6394 				}
 6395 			}
 6396 		}
 6397 #line 617 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6398 		_tmp32_ = sql;
 6399 #line 617 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6400 		_tmp33_ = in_simple_optional;
 6401 #line 617 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6402 		tracker_sparql_pattern_parse_object_list (self, _tmp32_, _tmp33_, &_inner_error_);
 6403 #line 617 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6404 		if (_inner_error_ != NULL) {
 6405 #line 617 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6406 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6407 #line 617 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6408 				g_propagate_error (error, _inner_error_);
 6409 #line 617 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6410 				_g_free0 (old_predicate);
 6411 #line 617 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6412 				return;
 6413 #line 6409 "tracker-sparql-pattern.c"
 6414 			} else {
 6415 #line 617 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6416 				_g_free0 (old_predicate);
 6417 #line 617 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6418 				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);
 6419 #line 617 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6420 				g_clear_error (&_inner_error_);
 6421 #line 617 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6422 				return;
 6423 #line 6419 "tracker-sparql-pattern.c"
 6424 			}
 6425 		}
 6426 #line 619 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6427 		_tmp34_ = old_predicate;
 6428 #line 619 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6429 		_tmp35_ = g_strdup (_tmp34_);
 6430 #line 619 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6431 		_g_free0 (self->priv->current_predicate);
 6432 #line 619 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6433 		self->priv->current_predicate = _tmp35_;
 6434 #line 620 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6435 		_tmp36_ = old_predicate_is_var;
 6436 #line 620 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6437 		self->priv->current_predicate_is_var = _tmp36_;
 6438 #line 622 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6439 		_tmp37_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_SEMICOLON, &_inner_error_);
 6440 #line 622 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6441 		_tmp38_ = _tmp37_;
 6442 #line 622 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6443 		if (_inner_error_ != NULL) {
 6444 #line 622 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6445 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6446 #line 622 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6447 				g_propagate_error (error, _inner_error_);
 6448 #line 622 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6449 				_g_free0 (old_predicate);
 6450 #line 622 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6451 				return;
 6452 #line 6448 "tracker-sparql-pattern.c"
 6453 			} else {
 6454 #line 622 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6455 				_g_free0 (old_predicate);
 6456 #line 622 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6457 				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);
 6458 #line 622 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6459 				g_clear_error (&_inner_error_);
 6460 #line 622 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6461 				return;
 6462 #line 6458 "tracker-sparql-pattern.c"
 6463 			}
 6464 		}
 6465 #line 622 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6466 		if (_tmp38_) {
 6467 #line 6463 "tracker-sparql-pattern.c"
 6468 			TrackerSparqlTokenType _tmp39_ = 0;
 6469 #line 623 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6470 			_tmp39_ = tracker_sparql_pattern_current (self);
 6471 #line 623 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6472 			if (_tmp39_ == TRACKER_SPARQL_TOKEN_TYPE_DOT) {
 6473 #line 625 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6474 				_g_free0 (old_predicate);
 6475 #line 625 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6476 				break;
 6477 #line 6473 "tracker-sparql-pattern.c"
 6478 			}
 6479 #line 627 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6480 			_g_free0 (old_predicate);
 6481 #line 627 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6482 			continue;
 6483 #line 6479 "tracker-sparql-pattern.c"
 6484 		}
 6485 #line 629 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6486 		_g_free0 (old_predicate);
 6487 #line 629 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6488 		break;
 6489 #line 6485 "tracker-sparql-pattern.c"
 6490 	}
 6491 }
 6492 
 6493 
 6494 static void tracker_sparql_pattern_translate_filter (TrackerSparqlPattern* self, GString* sql, GError** error) {
 6495 	TrackerSparqlExpression* _tmp0_;
 6496 	GString* _tmp1_;
 6497 	GError * _inner_error_ = NULL;
 6498 #line 633 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6499 	g_return_if_fail (self != NULL);
 6500 #line 633 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6501 	g_return_if_fail (sql != NULL);
 6502 #line 634 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6503 	tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_FILTER, &_inner_error_);
 6504 #line 634 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6505 	if (_inner_error_ != NULL) {
 6506 #line 634 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6507 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6508 #line 634 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6509 			g_propagate_error (error, _inner_error_);
 6510 #line 634 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6511 			return;
 6512 #line 6508 "tracker-sparql-pattern.c"
 6513 		} else {
 6514 #line 634 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6515 			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);
 6516 #line 634 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6517 			g_clear_error (&_inner_error_);
 6518 #line 634 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6519 			return;
 6520 #line 6516 "tracker-sparql-pattern.c"
 6521 		}
 6522 	}
 6523 #line 635 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6524 	_tmp0_ = self->priv->expression;
 6525 #line 635 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6526 	_tmp1_ = sql;
 6527 #line 635 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6528 	tracker_sparql_expression_translate_constraint (_tmp0_, _tmp1_, &_inner_error_);
 6529 #line 635 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6530 	if (_inner_error_ != NULL) {
 6531 #line 635 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6532 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6533 #line 635 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6534 			g_propagate_error (error, _inner_error_);
 6535 #line 635 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6536 			return;
 6537 #line 6533 "tracker-sparql-pattern.c"
 6538 		} else {
 6539 #line 635 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6540 			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);
 6541 #line 635 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6542 			g_clear_error (&_inner_error_);
 6543 #line 635 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6544 			return;
 6545 #line 6541 "tracker-sparql-pattern.c"
 6546 		}
 6547 	}
 6548 }
 6549 
 6550 
 6551 static void tracker_sparql_pattern_skip_filter (TrackerSparqlPattern* self, GError** error) {
 6552 	TrackerSparqlTokenType _tmp0_ = 0;
 6553 	gint n_parens;
 6554 	GError * _inner_error_ = NULL;
 6555 #line 638 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6556 	g_return_if_fail (self != NULL);
 6557 #line 639 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6558 	tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_FILTER, &_inner_error_);
 6559 #line 639 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6560 	if (_inner_error_ != NULL) {
 6561 #line 639 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6562 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6563 #line 639 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6564 			g_propagate_error (error, _inner_error_);
 6565 #line 639 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6566 			return;
 6567 #line 6563 "tracker-sparql-pattern.c"
 6568 		} else {
 6569 #line 639 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6570 			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);
 6571 #line 639 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6572 			g_clear_error (&_inner_error_);
 6573 #line 639 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6574 			return;
 6575 #line 6571 "tracker-sparql-pattern.c"
 6576 		}
 6577 	}
 6578 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6579 	_tmp0_ = tracker_sparql_pattern_current (self);
 6580 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6581 	switch (_tmp0_) {
 6582 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6583 		case TRACKER_SPARQL_TOKEN_TYPE_STR:
 6584 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6585 		case TRACKER_SPARQL_TOKEN_TYPE_LANG:
 6586 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6587 		case TRACKER_SPARQL_TOKEN_TYPE_LANGMATCHES:
 6588 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6589 		case TRACKER_SPARQL_TOKEN_TYPE_DATATYPE:
 6590 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6591 		case TRACKER_SPARQL_TOKEN_TYPE_BOUND:
 6592 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6593 		case TRACKER_SPARQL_TOKEN_TYPE_SAMETERM:
 6594 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6595 		case TRACKER_SPARQL_TOKEN_TYPE_ISIRI:
 6596 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6597 		case TRACKER_SPARQL_TOKEN_TYPE_ISURI:
 6598 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6599 		case TRACKER_SPARQL_TOKEN_TYPE_ISBLANK:
 6600 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6601 		case TRACKER_SPARQL_TOKEN_TYPE_ISLITERAL:
 6602 #line 641 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6603 		case TRACKER_SPARQL_TOKEN_TYPE_REGEX:
 6604 #line 6600 "tracker-sparql-pattern.c"
 6605 		{
 6606 #line 653 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6607 			tracker_sparql_pattern_next (self, &_inner_error_);
 6608 #line 653 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6609 			if (_inner_error_ != NULL) {
 6610 #line 653 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6611 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6612 #line 653 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6613 					g_propagate_error (error, _inner_error_);
 6614 #line 653 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6615 					return;
 6616 #line 6612 "tracker-sparql-pattern.c"
 6617 				} else {
 6618 #line 653 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6619 					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);
 6620 #line 653 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6621 					g_clear_error (&_inner_error_);
 6622 #line 653 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6623 					return;
 6624 #line 6620 "tracker-sparql-pattern.c"
 6625 				}
 6626 			}
 6627 #line 654 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6628 			break;
 6629 #line 6625 "tracker-sparql-pattern.c"
 6630 		}
 6631 		default:
 6632 		{
 6633 #line 656 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6634 			break;
 6635 #line 6631 "tracker-sparql-pattern.c"
 6636 		}
 6637 	}
 6638 #line 659 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6639 	tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS, &_inner_error_);
 6640 #line 659 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6641 	if (_inner_error_ != NULL) {
 6642 #line 659 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6643 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6644 #line 659 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6645 			g_propagate_error (error, _inner_error_);
 6646 #line 659 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6647 			return;
 6648 #line 6644 "tracker-sparql-pattern.c"
 6649 		} else {
 6650 #line 659 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6651 			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);
 6652 #line 659 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6653 			g_clear_error (&_inner_error_);
 6654 #line 659 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6655 			return;
 6656 #line 6652 "tracker-sparql-pattern.c"
 6657 		}
 6658 	}
 6659 #line 660 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6660 	n_parens = 1;
 6661 #line 661 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6662 	while (TRUE) {
 6663 #line 6659 "tracker-sparql-pattern.c"
 6664 		gint _tmp1_;
 6665 		gboolean _tmp2_ = FALSE;
 6666 		gboolean _tmp3_;
 6667 #line 661 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6668 		_tmp1_ = n_parens;
 6669 #line 661 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6670 		if (!(_tmp1_ > 0)) {
 6671 #line 661 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6672 			break;
 6673 #line 6669 "tracker-sparql-pattern.c"
 6674 		}
 6675 #line 662 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6676 		_tmp2_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_PARENS, &_inner_error_);
 6677 #line 662 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6678 		_tmp3_ = _tmp2_;
 6679 #line 662 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6680 		if (_inner_error_ != NULL) {
 6681 #line 662 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6682 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6683 #line 662 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6684 				g_propagate_error (error, _inner_error_);
 6685 #line 662 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6686 				return;
 6687 #line 6683 "tracker-sparql-pattern.c"
 6688 			} else {
 6689 #line 662 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6690 				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);
 6691 #line 662 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6692 				g_clear_error (&_inner_error_);
 6693 #line 662 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6694 				return;
 6695 #line 6691 "tracker-sparql-pattern.c"
 6696 			}
 6697 		}
 6698 #line 662 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6699 		if (_tmp3_) {
 6700 #line 6696 "tracker-sparql-pattern.c"
 6701 			gint _tmp4_;
 6702 #line 663 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6703 			_tmp4_ = n_parens;
 6704 #line 663 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6705 			n_parens = _tmp4_ + 1;
 6706 #line 6702 "tracker-sparql-pattern.c"
 6707 		} else {
 6708 			gboolean _tmp5_ = FALSE;
 6709 			gboolean _tmp6_;
 6710 #line 664 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6711 			_tmp5_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_PARENS, &_inner_error_);
 6712 #line 664 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6713 			_tmp6_ = _tmp5_;
 6714 #line 664 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6715 			if (_inner_error_ != NULL) {
 6716 #line 664 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6717 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6718 #line 664 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6719 					g_propagate_error (error, _inner_error_);
 6720 #line 664 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6721 					return;
 6722 #line 6718 "tracker-sparql-pattern.c"
 6723 				} else {
 6724 #line 664 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6725 					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);
 6726 #line 664 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6727 					g_clear_error (&_inner_error_);
 6728 #line 664 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6729 					return;
 6730 #line 6726 "tracker-sparql-pattern.c"
 6731 				}
 6732 			}
 6733 #line 664 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6734 			if (_tmp6_) {
 6735 #line 6731 "tracker-sparql-pattern.c"
 6736 				gint _tmp7_;
 6737 #line 665 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6738 				_tmp7_ = n_parens;
 6739 #line 665 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6740 				n_parens = _tmp7_ - 1;
 6741 #line 6737 "tracker-sparql-pattern.c"
 6742 			} else {
 6743 				TrackerSparqlTokenType _tmp8_ = 0;
 6744 #line 666 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6745 				_tmp8_ = tracker_sparql_pattern_current (self);
 6746 #line 666 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6747 				if (_tmp8_ == TRACKER_SPARQL_TOKEN_TYPE_EOF) {
 6748 #line 6744 "tracker-sparql-pattern.c"
 6749 					GError* _tmp9_ = NULL;
 6750 #line 667 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6751 					_tmp9_ = tracker_sparql_pattern_get_error (self, "unexpected end of query, expected )");
 6752 #line 667 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6753 					_inner_error_ = _tmp9_;
 6754 #line 667 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6755 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6756 #line 667 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6757 						g_propagate_error (error, _inner_error_);
 6758 #line 667 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6759 						return;
 6760 #line 6756 "tracker-sparql-pattern.c"
 6761 					} else {
 6762 #line 667 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6763 						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);
 6764 #line 667 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6765 						g_clear_error (&_inner_error_);
 6766 #line 667 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6767 						return;
 6768 #line 6764 "tracker-sparql-pattern.c"
 6769 					}
 6770 				} else {
 6771 #line 670 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6772 					tracker_sparql_pattern_next (self, &_inner_error_);
 6773 #line 670 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6774 					if (_inner_error_ != NULL) {
 6775 #line 670 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6776 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6777 #line 670 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6778 							g_propagate_error (error, _inner_error_);
 6779 #line 670 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6780 							return;
 6781 #line 6777 "tracker-sparql-pattern.c"
 6782 						} else {
 6783 #line 670 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6784 							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);
 6785 #line 670 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6786 							g_clear_error (&_inner_error_);
 6787 #line 670 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6788 							return;
 6789 #line 6785 "tracker-sparql-pattern.c"
 6790 						}
 6791 					}
 6792 				}
 6793 			}
 6794 		}
 6795 	}
 6796 }
 6797 
 6798 
 6799 static void tracker_sparql_pattern_start_triples_block (TrackerSparqlPattern* self, GString* sql, GError** error) {
 6800 	TrackerSparqlQuery* _tmp0_;
 6801 	TrackerSparqlContext* _tmp1_;
 6802 	TrackerSparqlContext* _tmp2_;
 6803 	TrackerSparqlPatternTripleContext* _tmp3_;
 6804 	TrackerSparqlPatternTripleContext* _tmp4_;
 6805 	GString* _tmp5_;
 6806 #line 675 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6807 	g_return_if_fail (self != NULL);
 6808 #line 675 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6809 	g_return_if_fail (sql != NULL);
 6810 #line 676 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6811 	_tmp0_ = self->priv->query;
 6812 #line 676 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6813 	_tmp1_ = tracker_sparql_pattern_get_context (self);
 6814 #line 676 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6815 	_tmp2_ = _tmp1_;
 6816 #line 676 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6817 	_tmp3_ = tracker_sparql_pattern_triple_context_new (_tmp0_, _tmp2_);
 6818 #line 676 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6819 	_tracker_sparql_context_unref0 (self->priv->triple_context);
 6820 #line 676 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6821 	self->priv->triple_context = _tmp3_;
 6822 #line 676 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6823 	_tmp4_ = self->priv->triple_context;
 6824 #line 676 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6825 	tracker_sparql_pattern_set_context (self, (TrackerSparqlContext*) _tmp4_);
 6826 #line 678 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6827 	_tmp5_ = sql;
 6828 #line 678 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6829 	g_string_append (_tmp5_, "SELECT ");
 6830 #line 6826 "tracker-sparql-pattern.c"
 6831 }
 6832 
 6833 
 6834 static void tracker_sparql_pattern_end_triples_block (TrackerSparqlPattern* self, GString* sql, gboolean* first_where, gboolean in_group_graph_pattern, GError** error) {
 6835 	GString* _tmp0_;
 6836 	GString* _tmp1_;
 6837 	gssize _tmp2_;
 6838 	GString* _tmp3_;
 6839 	gboolean first;
 6840 	TrackerSparqlPatternTripleContext* _tmp4_;
 6841 	GList* _tmp5_;
 6842 	TrackerSparqlPatternTripleContext* _tmp24_;
 6843 	GList* _tmp25_;
 6844 	TrackerSparqlPatternTripleContext* _tmp84_;
 6845 	GList* _tmp85_;
 6846 	gboolean _tmp117_;
 6847 	TrackerSparqlContext* _tmp119_;
 6848 	TrackerSparqlContext* _tmp120_;
 6849 	GHashTable* _tmp121_;
 6850 	GList* _tmp122_ = NULL;
 6851 	TrackerSparqlContext* _tmp129_;
 6852 	TrackerSparqlContext* _tmp130_;
 6853 	TrackerSparqlContext* _tmp131_;
 6854 	GError * _inner_error_ = NULL;
 6855 #line 681 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6856 	g_return_if_fail (self != NULL);
 6857 #line 681 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6858 	g_return_if_fail (sql != NULL);
 6859 #line 683 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6860 	_tmp0_ = sql;
 6861 #line 683 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6862 	_tmp1_ = sql;
 6863 #line 683 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6864 	_tmp2_ = _tmp1_->len;
 6865 #line 683 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6866 	g_string_truncate (_tmp0_, (gsize) (_tmp2_ - 2));
 6867 #line 685 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6868 	_tmp3_ = sql;
 6869 #line 685 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6870 	g_string_append (_tmp3_, " FROM ");
 6871 #line 686 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6872 	first = TRUE;
 6873 #line 687 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6874 	_tmp4_ = self->priv->triple_context;
 6875 #line 687 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6876 	_tmp5_ = _tmp4_->tables;
 6877 #line 6873 "tracker-sparql-pattern.c"
 6878 	{
 6879 		GList* table_collection = NULL;
 6880 		GList* table_it = NULL;
 6881 #line 687 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6882 		table_collection = _tmp5_;
 6883 #line 687 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6884 		for (table_it = table_collection; table_it != NULL; table_it = table_it->next) {
 6885 #line 6881 "tracker-sparql-pattern.c"
 6886 			TrackerSparqlDataTable* _tmp6_;
 6887 			TrackerSparqlDataTable* table = NULL;
 6888 #line 687 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6889 			_tmp6_ = _g_object_ref0 ((TrackerSparqlDataTable*) table_it->data);
 6890 #line 687 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6891 			table = _tmp6_;
 6892 #line 6888 "tracker-sparql-pattern.c"
 6893 			{
 6894 				gboolean _tmp7_;
 6895 				TrackerSparqlDataTable* _tmp9_;
 6896 				const gchar* _tmp10_;
 6897 				GString* _tmp21_;
 6898 				TrackerSparqlDataTable* _tmp22_;
 6899 				const gchar* _tmp23_;
 6900 #line 688 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6901 				_tmp7_ = first;
 6902 #line 688 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6903 				if (!_tmp7_) {
 6904 #line 6900 "tracker-sparql-pattern.c"
 6905 					GString* _tmp8_;
 6906 #line 689 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6907 					_tmp8_ = sql;
 6908 #line 689 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6909 					g_string_append (_tmp8_, ", ");
 6910 #line 6906 "tracker-sparql-pattern.c"
 6911 				} else {
 6912 #line 691 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6913 					first = FALSE;
 6914 #line 6910 "tracker-sparql-pattern.c"
 6915 				}
 6916 #line 693 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6917 				_tmp9_ = table;
 6918 #line 693 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6919 				_tmp10_ = _tmp9_->sql_db_tablename;
 6920 #line 693 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6921 				if (_tmp10_ != NULL) {
 6922 #line 6918 "tracker-sparql-pattern.c"
 6923 					GString* _tmp11_;
 6924 					TrackerSparqlDataTable* _tmp12_;
 6925 					const gchar* _tmp13_;
 6926 #line 694 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6927 					_tmp11_ = sql;
 6928 #line 694 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6929 					_tmp12_ = table;
 6930 #line 694 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6931 					_tmp13_ = _tmp12_->sql_db_tablename;
 6932 #line 694 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6933 					g_string_append_printf (_tmp11_, "\"%s\"", _tmp13_);
 6934 #line 6930 "tracker-sparql-pattern.c"
 6935 				} else {
 6936 					TrackerSparqlDataTable* _tmp14_;
 6937 					TrackerSparqlPredicateVariable* _tmp15_;
 6938 					TrackerSparqlQuery* _tmp16_;
 6939 					gchar* _tmp17_ = NULL;
 6940 					gchar* _tmp18_;
 6941 					GString* _tmp19_;
 6942 					gchar* _tmp20_;
 6943 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6944 					_tmp14_ = table;
 6945 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6946 					_tmp15_ = _tmp14_->predicate_variable;
 6947 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6948 					_tmp16_ = self->priv->query;
 6949 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6950 					_tmp17_ = tracker_sparql_predicate_variable_get_sql_query (_tmp15_, _tmp16_, &_inner_error_);
 6951 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6952 					_tmp18_ = _tmp17_;
 6953 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6954 					if (_inner_error_ != NULL) {
 6955 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6956 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 6957 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6958 							g_propagate_error (error, _inner_error_);
 6959 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6960 							_g_object_unref0 (table);
 6961 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6962 							return;
 6963 #line 6959 "tracker-sparql-pattern.c"
 6964 						} else {
 6965 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6966 							_g_object_unref0 (table);
 6967 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6968 							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);
 6969 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6970 							g_clear_error (&_inner_error_);
 6971 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6972 							return;
 6973 #line 6969 "tracker-sparql-pattern.c"
 6974 						}
 6975 					}
 6976 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6977 					_tmp19_ = sql;
 6978 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6979 					_tmp20_ = _tmp18_;
 6980 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6981 					g_string_append_printf (_tmp19_, "(%s)", _tmp20_);
 6982 #line 696 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6983 					_g_free0 (_tmp20_);
 6984 #line 6980 "tracker-sparql-pattern.c"
 6985 				}
 6986 #line 698 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6987 				_tmp21_ = sql;
 6988 #line 698 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6989 				_tmp22_ = table;
 6990 #line 698 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6991 				_tmp23_ = _tmp22_->sql_query_tablename;
 6992 #line 698 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6993 				g_string_append_printf (_tmp21_, " AS \"%s\"", _tmp23_);
 6994 #line 687 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 6995 				_g_object_unref0 (table);
 6996 #line 6992 "tracker-sparql-pattern.c"
 6997 			}
 6998 		}
 6999 	}
 7000 #line 701 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7001 	_tmp24_ = self->priv->triple_context;
 7002 #line 701 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7003 	_tmp25_ = _tmp24_->variables;
 7004 #line 7000 "tracker-sparql-pattern.c"
 7005 	{
 7006 		GList* variable_collection = NULL;
 7007 		GList* variable_it = NULL;
 7008 #line 701 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7009 		variable_collection = _tmp25_;
 7010 #line 701 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7011 		for (variable_it = variable_collection; variable_it != NULL; variable_it = variable_it->next) {
 7012 #line 7008 "tracker-sparql-pattern.c"
 7013 			TrackerSparqlVariable* _tmp26_;
 7014 			TrackerSparqlVariable* variable = NULL;
 7015 #line 701 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7016 			_tmp26_ = _g_object_ref0 ((TrackerSparqlVariable*) variable_it->data);
 7017 #line 701 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7018 			variable = _tmp26_;
 7019 #line 7015 "tracker-sparql-pattern.c"
 7020 			{
 7021 				gboolean maybe_null;
 7022 				gboolean in_simple_optional;
 7023 				TrackerPropertyType last_type;
 7024 				gchar* last_name;
 7025 				TrackerSparqlPatternTripleContext* _tmp27_;
 7026 				GHashTable* _tmp28_;
 7027 				TrackerSparqlVariable* _tmp29_;
 7028 				gconstpointer _tmp30_ = NULL;
 7029 				GList* _tmp31_;
 7030 				gboolean _tmp73_ = FALSE;
 7031 				gboolean _tmp74_;
 7032 				gboolean _tmp76_;
 7033 #line 702 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7034 				maybe_null = TRUE;
 7035 #line 703 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7036 				in_simple_optional = FALSE;
 7037 #line 704 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7038 				last_type = TRACKER_PROPERTY_TYPE_UNKNOWN;
 7039 #line 705 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7040 				last_name = NULL;
 7041 #line 706 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7042 				_tmp27_ = self->priv->triple_context;
 7043 #line 706 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7044 				_tmp28_ = _tmp27_->var_bindings;
 7045 #line 706 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7046 				_tmp29_ = variable;
 7047 #line 706 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7048 				_tmp30_ = g_hash_table_lookup (_tmp28_, _tmp29_);
 7049 #line 706 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7050 				_tmp31_ = ((TrackerSparqlVariableBindingList*) _tmp30_)->list;
 7051 #line 7047 "tracker-sparql-pattern.c"
 7052 				{
 7053 					GList* binding_collection = NULL;
 7054 					GList* binding_it = NULL;
 7055 #line 706 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7056 					binding_collection = _tmp31_;
 7057 #line 706 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7058 					for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
 7059 #line 7055 "tracker-sparql-pattern.c"
 7060 						TrackerSparqlVariableBinding* _tmp32_;
 7061 						TrackerSparqlVariableBinding* binding = NULL;
 7062 #line 706 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7063 						_tmp32_ = _g_object_ref0 ((TrackerSparqlVariableBinding*) binding_it->data);
 7064 #line 706 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7065 						binding = _tmp32_;
 7066 #line 7062 "tracker-sparql-pattern.c"
 7067 						{
 7068 							gchar* name = NULL;
 7069 							TrackerSparqlVariableBinding* _tmp33_;
 7070 							TrackerSparqlDataTable* _tmp34_;
 7071 							TrackerSparqlVariableBinding* _tmp43_;
 7072 							TrackerPropertyType _tmp44_;
 7073 							TrackerPropertyType type;
 7074 							const gchar* _tmp45_;
 7075 							const gchar* _tmp66_;
 7076 							gchar* _tmp67_;
 7077 							TrackerPropertyType _tmp68_;
 7078 							TrackerSparqlVariableBinding* _tmp69_;
 7079 							gboolean _tmp70_;
 7080 							TrackerSparqlVariableBinding* _tmp71_;
 7081 							gboolean _tmp72_;
 7082 #line 708 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7083 							_tmp33_ = binding;
 7084 #line 708 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7085 							_tmp34_ = ((TrackerSparqlDataBinding*) _tmp33_)->table;
 7086 #line 708 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7087 							if (_tmp34_ != NULL) {
 7088 #line 7084 "tracker-sparql-pattern.c"
 7089 								TrackerSparqlVariableBinding* _tmp35_;
 7090 								const gchar* _tmp36_;
 7091 								const gchar* _tmp37_;
 7092 								gchar* _tmp38_;
 7093 #line 709 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7094 								_tmp35_ = binding;
 7095 #line 709 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7096 								_tmp36_ = tracker_sparql_data_binding_get_sql_expression ((TrackerSparqlDataBinding*) _tmp35_);
 7097 #line 709 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7098 								_tmp37_ = _tmp36_;
 7099 #line 709 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7100 								_tmp38_ = g_strdup (_tmp37_);
 7101 #line 709 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7102 								_g_free0 (name);
 7103 #line 709 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7104 								name = _tmp38_;
 7105 #line 7101 "tracker-sparql-pattern.c"
 7106 							} else {
 7107 								TrackerSparqlVariable* _tmp39_;
 7108 								const gchar* _tmp40_;
 7109 								const gchar* _tmp41_;
 7110 								gchar* _tmp42_;
 7111 #line 713 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7112 								_tmp39_ = variable;
 7113 #line 713 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7114 								_tmp40_ = tracker_sparql_variable_get_sql_expression (_tmp39_);
 7115 #line 713 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7116 								_tmp41_ = _tmp40_;
 7117 #line 713 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7118 								_tmp42_ = g_strdup (_tmp41_);
 7119 #line 713 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7120 								_g_free0 (name);
 7121 #line 713 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7122 								name = _tmp42_;
 7123 #line 7119 "tracker-sparql-pattern.c"
 7124 							}
 7125 #line 715 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7126 							_tmp43_ = binding;
 7127 #line 715 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7128 							_tmp44_ = ((TrackerSparqlDataBinding*) _tmp43_)->data_type;
 7129 #line 715 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7130 							type = _tmp44_;
 7131 #line 716 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7132 							_tmp45_ = last_name;
 7133 #line 716 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7134 							if (_tmp45_ != NULL) {
 7135 #line 7131 "tracker-sparql-pattern.c"
 7136 								gboolean _tmp46_;
 7137 								gboolean _tmp49_ = FALSE;
 7138 								TrackerPropertyType _tmp50_;
 7139 								gboolean _tmp52_;
 7140 								GString* _tmp57_;
 7141 								gboolean _tmp58_ = FALSE;
 7142 								TrackerPropertyType _tmp59_;
 7143 								gboolean _tmp61_;
 7144 #line 717 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7145 								_tmp46_ = *first_where;
 7146 #line 717 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7147 								if (!_tmp46_) {
 7148 #line 7144 "tracker-sparql-pattern.c"
 7149 									GString* _tmp47_;
 7150 #line 718 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7151 									_tmp47_ = sql;
 7152 #line 718 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7153 									g_string_append (_tmp47_, " AND ");
 7154 #line 7150 "tracker-sparql-pattern.c"
 7155 								} else {
 7156 									GString* _tmp48_;
 7157 #line 720 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7158 									_tmp48_ = sql;
 7159 #line 720 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7160 									g_string_append (_tmp48_, " WHERE ");
 7161 #line 721 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7162 									*first_where = FALSE;
 7163 #line 7159 "tracker-sparql-pattern.c"
 7164 								}
 7165 #line 724 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7166 								_tmp50_ = last_type;
 7167 #line 724 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7168 								if (_tmp50_ == TRACKER_PROPERTY_TYPE_STRING) {
 7169 #line 7165 "tracker-sparql-pattern.c"
 7170 									TrackerPropertyType _tmp51_;
 7171 #line 724 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7172 									_tmp51_ = type;
 7173 #line 724 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7174 									_tmp49_ = _tmp51_ == TRACKER_PROPERTY_TYPE_RESOURCE;
 7175 #line 7171 "tracker-sparql-pattern.c"
 7176 								} else {
 7177 #line 724 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7178 									_tmp49_ = FALSE;
 7179 #line 7175 "tracker-sparql-pattern.c"
 7180 								}
 7181 #line 724 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7182 								_tmp52_ = _tmp49_;
 7183 #line 724 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7184 								if (_tmp52_) {
 7185 #line 7181 "tracker-sparql-pattern.c"
 7186 									GString* _tmp53_;
 7187 									const gchar* _tmp54_;
 7188 #line 725 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7189 									_tmp53_ = sql;
 7190 #line 725 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7191 									_tmp54_ = last_name;
 7192 #line 725 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7193 									g_string_append_printf (_tmp53_, "(SELECT ID FROM Resource WHERE Uri = %s)", _tmp54_);
 7194 #line 7190 "tracker-sparql-pattern.c"
 7195 								} else {
 7196 									GString* _tmp55_;
 7197 									const gchar* _tmp56_;
 7198 #line 727 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7199 									_tmp55_ = sql;
 7200 #line 727 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7201 									_tmp56_ = last_name;
 7202 #line 727 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7203 									g_string_append (_tmp55_, _tmp56_);
 7204 #line 7200 "tracker-sparql-pattern.c"
 7205 								}
 7206 #line 730 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7207 								_tmp57_ = sql;
 7208 #line 730 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7209 								g_string_append (_tmp57_, " = ");
 7210 #line 732 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7211 								_tmp59_ = last_type;
 7212 #line 732 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7213 								if (_tmp59_ == TRACKER_PROPERTY_TYPE_RESOURCE) {
 7214 #line 7210 "tracker-sparql-pattern.c"
 7215 									TrackerPropertyType _tmp60_;
 7216 #line 732 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7217 									_tmp60_ = type;
 7218 #line 732 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7219 									_tmp58_ = _tmp60_ == TRACKER_PROPERTY_TYPE_STRING;
 7220 #line 7216 "tracker-sparql-pattern.c"
 7221 								} else {
 7222 #line 732 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7223 									_tmp58_ = FALSE;
 7224 #line 7220 "tracker-sparql-pattern.c"
 7225 								}
 7226 #line 732 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7227 								_tmp61_ = _tmp58_;
 7228 #line 732 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7229 								if (_tmp61_) {
 7230 #line 7226 "tracker-sparql-pattern.c"
 7231 									GString* _tmp62_;
 7232 									const gchar* _tmp63_;
 7233 #line 733 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7234 									_tmp62_ = sql;
 7235 #line 733 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7236 									_tmp63_ = name;
 7237 #line 733 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7238 									g_string_append_printf (_tmp62_, "(SELECT ID FROM Resource WHERE Uri = %s)", _tmp63_);
 7239 #line 7235 "tracker-sparql-pattern.c"
 7240 								} else {
 7241 									GString* _tmp64_;
 7242 									const gchar* _tmp65_;
 7243 #line 735 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7244 									_tmp64_ = sql;
 7245 #line 735 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7246 									_tmp65_ = name;
 7247 #line 735 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7248 									g_string_append (_tmp64_, _tmp65_);
 7249 #line 7245 "tracker-sparql-pattern.c"
 7250 								}
 7251 							}
 7252 #line 738 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7253 							_tmp66_ = name;
 7254 #line 738 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7255 							_tmp67_ = g_strdup (_tmp66_);
 7256 #line 738 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7257 							_g_free0 (last_name);
 7258 #line 738 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7259 							last_name = _tmp67_;
 7260 #line 739 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7261 							_tmp68_ = type;
 7262 #line 739 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7263 							last_type = _tmp68_;
 7264 #line 740 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7265 							_tmp69_ = binding;
 7266 #line 740 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7267 							_tmp70_ = _tmp69_->maybe_null;
 7268 #line 740 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7269 							if (!_tmp70_) {
 7270 #line 741 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7271 								maybe_null = FALSE;
 7272 #line 7268 "tracker-sparql-pattern.c"
 7273 							}
 7274 #line 743 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7275 							_tmp71_ = binding;
 7276 #line 743 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7277 							_tmp72_ = _tmp71_->in_simple_optional;
 7278 #line 743 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7279 							in_simple_optional = _tmp72_;
 7280 #line 706 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7281 							_g_free0 (name);
 7282 #line 706 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7283 							_g_object_unref0 (binding);
 7284 #line 7280 "tracker-sparql-pattern.c"
 7285 						}
 7286 					}
 7287 				}
 7288 #line 746 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7289 				_tmp74_ = maybe_null;
 7290 #line 746 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7291 				if (_tmp74_) {
 7292 #line 7288 "tracker-sparql-pattern.c"
 7293 					gboolean _tmp75_;
 7294 #line 746 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7295 					_tmp75_ = in_simple_optional;
 7296 #line 746 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7297 					_tmp73_ = !_tmp75_;
 7298 #line 7294 "tracker-sparql-pattern.c"
 7299 				} else {
 7300 #line 746 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7301 					_tmp73_ = FALSE;
 7302 #line 7298 "tracker-sparql-pattern.c"
 7303 				}
 7304 #line 746 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7305 				_tmp76_ = _tmp73_;
 7306 #line 746 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7307 				if (_tmp76_) {
 7308 #line 7304 "tracker-sparql-pattern.c"
 7309 					gboolean _tmp77_;
 7310 					GString* _tmp80_;
 7311 					TrackerSparqlVariable* _tmp81_;
 7312 					const gchar* _tmp82_;
 7313 					const gchar* _tmp83_;
 7314 #line 749 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7315 					_tmp77_ = *first_where;
 7316 #line 749 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7317 					if (!_tmp77_) {
 7318 #line 7314 "tracker-sparql-pattern.c"
 7319 						GString* _tmp78_;
 7320 #line 750 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7321 						_tmp78_ = sql;
 7322 #line 750 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7323 						g_string_append (_tmp78_, " AND ");
 7324 #line 7320 "tracker-sparql-pattern.c"
 7325 					} else {
 7326 						GString* _tmp79_;
 7327 #line 752 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7328 						_tmp79_ = sql;
 7329 #line 752 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7330 						g_string_append (_tmp79_, " WHERE ");
 7331 #line 753 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7332 						*first_where = FALSE;
 7333 #line 7329 "tracker-sparql-pattern.c"
 7334 					}
 7335 #line 755 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7336 					_tmp80_ = sql;
 7337 #line 755 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7338 					_tmp81_ = variable;
 7339 #line 755 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7340 					_tmp82_ = tracker_sparql_variable_get_sql_expression (_tmp81_);
 7341 #line 755 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7342 					_tmp83_ = _tmp82_;
 7343 #line 755 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7344 					g_string_append_printf (_tmp80_, "%s IS NOT NULL", _tmp83_);
 7345 #line 7341 "tracker-sparql-pattern.c"
 7346 				}
 7347 #line 701 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7348 				_g_free0 (last_name);
 7349 #line 701 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7350 				_g_object_unref0 (variable);
 7351 #line 7347 "tracker-sparql-pattern.c"
 7352 			}
 7353 		}
 7354 	}
 7355 #line 758 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7356 	_tmp84_ = self->priv->triple_context;
 7357 #line 758 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7358 	_tmp85_ = _tmp84_->bindings;
 7359 #line 7355 "tracker-sparql-pattern.c"
 7360 	{
 7361 		GList* binding_collection = NULL;
 7362 		GList* binding_it = NULL;
 7363 #line 758 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7364 		binding_collection = _tmp85_;
 7365 #line 758 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7366 		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
 7367 #line 7363 "tracker-sparql-pattern.c"
 7368 			TrackerSparqlLiteralBinding* _tmp86_;
 7369 			TrackerSparqlLiteralBinding* binding = NULL;
 7370 #line 758 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7371 			_tmp86_ = _g_object_ref0 ((TrackerSparqlLiteralBinding*) binding_it->data);
 7372 #line 758 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7373 			binding = _tmp86_;
 7374 #line 7370 "tracker-sparql-pattern.c"
 7375 			{
 7376 				gboolean _tmp87_;
 7377 				GString* _tmp90_;
 7378 				TrackerSparqlLiteralBinding* _tmp91_;
 7379 				const gchar* _tmp92_;
 7380 				const gchar* _tmp93_;
 7381 				TrackerSparqlLiteralBinding* _tmp94_;
 7382 				gboolean _tmp95_;
 7383 #line 759 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7384 				_tmp87_ = *first_where;
 7385 #line 759 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7386 				if (!_tmp87_) {
 7387 #line 7383 "tracker-sparql-pattern.c"
 7388 					GString* _tmp88_;
 7389 #line 760 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7390 					_tmp88_ = sql;
 7391 #line 760 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7392 					g_string_append (_tmp88_, " AND ");
 7393 #line 7389 "tracker-sparql-pattern.c"
 7394 				} else {
 7395 					GString* _tmp89_;
 7396 #line 762 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7397 					_tmp89_ = sql;
 7398 #line 762 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7399 					g_string_append (_tmp89_, " WHERE ");
 7400 #line 763 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7401 					*first_where = FALSE;
 7402 #line 7398 "tracker-sparql-pattern.c"
 7403 				}
 7404 #line 765 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7405 				_tmp90_ = sql;
 7406 #line 765 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7407 				_tmp91_ = binding;
 7408 #line 765 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7409 				_tmp92_ = tracker_sparql_data_binding_get_sql_expression ((TrackerSparqlDataBinding*) _tmp91_);
 7410 #line 765 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7411 				_tmp93_ = _tmp92_;
 7412 #line 765 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7413 				g_string_append (_tmp90_, _tmp93_);
 7414 #line 766 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7415 				_tmp94_ = binding;
 7416 #line 766 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7417 				_tmp95_ = _tmp94_->is_fts_match;
 7418 #line 766 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7419 				if (_tmp95_) {
 7420 #line 7416 "tracker-sparql-pattern.c"
 7421 					TrackerSparqlLiteralBinding* _tmp96_;
 7422 					const gchar* _tmp97_;
 7423 					gchar** _tmp98_;
 7424 					gchar** _tmp99_ = NULL;
 7425 					gchar** _tmp100_;
 7426 					gint _tmp100__length1;
 7427 					gchar* _tmp101_ = NULL;
 7428 					gchar* _tmp102_;
 7429 					gchar* escaped_literal;
 7430 					GString* _tmp103_;
 7431 					const gchar* _tmp104_;
 7432 					GString* _tmp105_;
 7433 #line 768 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7434 					_tmp96_ = binding;
 7435 #line 768 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7436 					_tmp97_ = _tmp96_->literal;
 7437 #line 768 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7438 					_tmp99_ = _tmp98_ = g_strsplit (_tmp97_, "'", 0);
 7439 #line 768 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7440 					_tmp100_ = _tmp99_;
 7441 #line 768 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7442 					_tmp100__length1 = _vala_array_length (_tmp98_);
 7443 #line 768 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7444 					_tmp101_ = g_strjoinv ("''", _tmp100_);
 7445 #line 768 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7446 					_tmp102_ = _tmp101_;
 7447 #line 768 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7448 					_tmp100_ = (_vala_array_free (_tmp100_, _tmp100__length1, (GDestroyNotify) g_free), NULL);
 7449 #line 768 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7450 					escaped_literal = _tmp102_;
 7451 #line 769 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7452 					_tmp103_ = sql;
 7453 #line 769 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7454 					_tmp104_ = escaped_literal;
 7455 #line 769 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7456 					g_string_append_printf (_tmp103_, " MATCH '%s'", _tmp104_);
 7457 #line 771 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7458 					_tmp105_ = self->match_str;
 7459 #line 771 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7460 					if (_tmp105_ == NULL) {
 7461 #line 7457 "tracker-sparql-pattern.c"
 7462 						GString* _tmp106_;
 7463 						GString* _tmp107_;
 7464 						const gchar* _tmp108_;
 7465 #line 772 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7466 						_tmp106_ = g_string_new ("");
 7467 #line 772 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7468 						_g_string_free0 (self->match_str);
 7469 #line 772 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7470 						self->match_str = _tmp106_;
 7471 #line 773 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7472 						_tmp107_ = self->match_str;
 7473 #line 773 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7474 						_tmp108_ = escaped_literal;
 7475 #line 773 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7476 						g_string_append_printf (_tmp107_, " MATCH '%s'", _tmp108_);
 7477 #line 7473 "tracker-sparql-pattern.c"
 7478 					}
 7479 #line 766 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7480 					_g_free0 (escaped_literal);
 7481 #line 7477 "tracker-sparql-pattern.c"
 7482 				} else {
 7483 					GString* _tmp109_;
 7484 					TrackerSparqlLiteralBinding* _tmp110_;
 7485 					TrackerPropertyType _tmp111_;
 7486 					TrackerSparqlQuery* _tmp114_;
 7487 					TrackerSparqlLiteralBinding* _tmp115_;
 7488 					TrackerSparqlLiteralBinding* _tmp116_;
 7489 #line 776 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7490 					_tmp109_ = sql;
 7491 #line 776 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7492 					g_string_append (_tmp109_, " = ");
 7493 #line 777 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7494 					_tmp110_ = binding;
 7495 #line 777 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7496 					_tmp111_ = ((TrackerSparqlDataBinding*) _tmp110_)->data_type;
 7497 #line 777 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7498 					if (_tmp111_ == TRACKER_PROPERTY_TYPE_RESOURCE) {
 7499 #line 7495 "tracker-sparql-pattern.c"
 7500 						GString* _tmp112_;
 7501 #line 778 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7502 						_tmp112_ = sql;
 7503 #line 778 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7504 						g_string_append (_tmp112_, "(SELECT ID FROM Resource WHERE Uri = ?)");
 7505 #line 7501 "tracker-sparql-pattern.c"
 7506 					} else {
 7507 						GString* _tmp113_;
 7508 #line 780 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7509 						_tmp113_ = sql;
 7510 #line 780 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7511 						g_string_append (_tmp113_, "?");
 7512 #line 7508 "tracker-sparql-pattern.c"
 7513 					}
 7514 #line 782 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7515 					_tmp114_ = self->priv->query;
 7516 #line 782 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7517 					_tmp115_ = binding;
 7518 #line 782 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7519 					_tmp116_ = _g_object_ref0 (_tmp115_);
 7520 #line 782 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7521 					_tmp114_->bindings = g_list_append (_tmp114_->bindings, _tmp116_);
 7522 #line 7518 "tracker-sparql-pattern.c"
 7523 				}
 7524 #line 758 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7525 				_g_object_unref0 (binding);
 7526 #line 7522 "tracker-sparql-pattern.c"
 7527 			}
 7528 		}
 7529 	}
 7530 #line 786 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7531 	_tmp117_ = in_group_graph_pattern;
 7532 #line 786 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7533 	if (_tmp117_) {
 7534 #line 7530 "tracker-sparql-pattern.c"
 7535 		GString* _tmp118_;
 7536 #line 787 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7537 		_tmp118_ = sql;
 7538 #line 787 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7539 		g_string_append (_tmp118_, ")");
 7540 #line 7536 "tracker-sparql-pattern.c"
 7541 	}
 7542 #line 790 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7543 	_tmp119_ = tracker_sparql_pattern_get_context (self);
 7544 #line 790 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7545 	_tmp120_ = _tmp119_;
 7546 #line 790 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7547 	_tmp121_ = _tmp120_->var_set;
 7548 #line 790 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7549 	_tmp122_ = g_hash_table_get_keys (_tmp121_);
 7550 #line 7546 "tracker-sparql-pattern.c"
 7551 	{
 7552 		GList* v_collection = NULL;
 7553 		GList* v_it = NULL;
 7554 #line 790 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7555 		v_collection = _tmp122_;
 7556 #line 790 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7557 		for (v_it = v_collection; v_it != NULL; v_it = v_it->next) {
 7558 #line 7554 "tracker-sparql-pattern.c"
 7559 			TrackerSparqlVariable* v = NULL;
 7560 #line 790 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7561 			v = (TrackerSparqlVariable*) v_it->data;
 7562 #line 7558 "tracker-sparql-pattern.c"
 7563 			{
 7564 				TrackerSparqlContext* _tmp123_;
 7565 				TrackerSparqlContext* _tmp124_;
 7566 				TrackerSparqlContext* _tmp125_;
 7567 				GHashTable* _tmp126_;
 7568 				TrackerSparqlVariable* _tmp127_;
 7569 				TrackerSparqlVariable* _tmp128_;
 7570 #line 791 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7571 				_tmp123_ = tracker_sparql_pattern_get_context (self);
 7572 #line 791 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7573 				_tmp124_ = _tmp123_;
 7574 #line 791 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7575 				_tmp125_ = _tmp124_->parent_context;
 7576 #line 791 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7577 				_tmp126_ = _tmp125_->var_set;
 7578 #line 791 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7579 				_tmp127_ = v;
 7580 #line 791 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7581 				_tmp128_ = _g_object_ref0 (_tmp127_);
 7582 #line 791 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7583 				g_hash_table_insert (_tmp126_, _tmp128_, (gpointer) ((gintptr) ((gint) TRACKER_SPARQL_VARIABLE_STATE_BOUND)));
 7584 #line 7580 "tracker-sparql-pattern.c"
 7585 			}
 7586 		}
 7587 #line 790 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7588 		_g_list_free0 (v_collection);
 7589 #line 7585 "tracker-sparql-pattern.c"
 7590 	}
 7591 #line 794 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7592 	_tracker_sparql_context_unref0 (self->priv->triple_context);
 7593 #line 794 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7594 	self->priv->triple_context = NULL;
 7595 #line 795 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7596 	_tmp129_ = tracker_sparql_pattern_get_context (self);
 7597 #line 795 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7598 	_tmp130_ = _tmp129_;
 7599 #line 795 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7600 	_tmp131_ = _tmp130_->parent_context;
 7601 #line 795 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7602 	tracker_sparql_pattern_set_context (self, _tmp131_);
 7603 #line 7599 "tracker-sparql-pattern.c"
 7604 }
 7605 
 7606 
 7607 static void tracker_sparql_pattern_parse_triples (TrackerSparqlPattern* self, GString* sql, glong group_graph_pattern_start, gboolean* in_triples_block, gboolean* first_where, gboolean* in_group_graph_pattern, gboolean found_simple_optional, GError** error) {
 7608 	GError * _inner_error_ = NULL;
 7609 #line 798 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7610 	g_return_if_fail (self != NULL);
 7611 #line 798 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7612 	g_return_if_fail (sql != NULL);
 7613 #line 799 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7614 	while (TRUE) {
 7615 #line 7611 "tracker-sparql-pattern.c"
 7616 		gboolean _tmp0_ = FALSE;
 7617 		gboolean _tmp1_ = FALSE;
 7618 		gboolean _tmp2_ = FALSE;
 7619 		gboolean _tmp3_ = FALSE;
 7620 		TrackerSparqlTokenType _tmp4_ = 0;
 7621 		gboolean _tmp6_;
 7622 		gboolean _tmp8_;
 7623 		gboolean _tmp10_;
 7624 		gboolean _tmp12_;
 7625 		gboolean _tmp13_ = FALSE;
 7626 		gboolean _tmp14_ = FALSE;
 7627 		gboolean _tmp15_;
 7628 		gboolean _tmp17_;
 7629 		gboolean _tmp19_;
 7630 		gboolean _tmp22_;
 7631 		GString* _tmp28_;
 7632 		gboolean _tmp29_ = FALSE;
 7633 		gchar* _tmp30_ = NULL;
 7634 		gchar* _tmp31_;
 7635 		GString* _tmp32_;
 7636 		gboolean _tmp33_ = FALSE;
 7637 		gboolean _tmp34_;
 7638 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7639 		_tmp4_ = tracker_sparql_pattern_current (self);
 7640 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7641 		if (_tmp4_ != TRACKER_SPARQL_TOKEN_TYPE_VAR) {
 7642 #line 7638 "tracker-sparql-pattern.c"
 7643 			TrackerSparqlTokenType _tmp5_ = 0;
 7644 #line 801 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7645 			_tmp5_ = tracker_sparql_pattern_current (self);
 7646 #line 801 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7647 			_tmp3_ = _tmp5_ != TRACKER_SPARQL_TOKEN_TYPE_IRI_REF;
 7648 #line 7644 "tracker-sparql-pattern.c"
 7649 		} else {
 7650 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7651 			_tmp3_ = FALSE;
 7652 #line 7648 "tracker-sparql-pattern.c"
 7653 		}
 7654 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7655 		_tmp6_ = _tmp3_;
 7656 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7657 		if (_tmp6_) {
 7658 #line 7654 "tracker-sparql-pattern.c"
 7659 			TrackerSparqlTokenType _tmp7_ = 0;
 7660 #line 802 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7661 			_tmp7_ = tracker_sparql_pattern_current (self);
 7662 #line 802 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7663 			_tmp2_ = _tmp7_ != TRACKER_SPARQL_TOKEN_TYPE_PN_PREFIX;
 7664 #line 7660 "tracker-sparql-pattern.c"
 7665 		} else {
 7666 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7667 			_tmp2_ = FALSE;
 7668 #line 7664 "tracker-sparql-pattern.c"
 7669 		}
 7670 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7671 		_tmp8_ = _tmp2_;
 7672 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7673 		if (_tmp8_) {
 7674 #line 7670 "tracker-sparql-pattern.c"
 7675 			TrackerSparqlTokenType _tmp9_ = 0;
 7676 #line 803 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7677 			_tmp9_ = tracker_sparql_pattern_current (self);
 7678 #line 803 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7679 			_tmp1_ = _tmp9_ != TRACKER_SPARQL_TOKEN_TYPE_COLON;
 7680 #line 7676 "tracker-sparql-pattern.c"
 7681 		} else {
 7682 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7683 			_tmp1_ = FALSE;
 7684 #line 7680 "tracker-sparql-pattern.c"
 7685 		}
 7686 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7687 		_tmp10_ = _tmp1_;
 7688 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7689 		if (_tmp10_) {
 7690 #line 7686 "tracker-sparql-pattern.c"
 7691 			TrackerSparqlTokenType _tmp11_ = 0;
 7692 #line 804 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7693 			_tmp11_ = tracker_sparql_pattern_current (self);
 7694 #line 804 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7695 			_tmp0_ = _tmp11_ != TRACKER_SPARQL_TOKEN_TYPE_OPEN_BRACKET;
 7696 #line 7692 "tracker-sparql-pattern.c"
 7697 		} else {
 7698 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7699 			_tmp0_ = FALSE;
 7700 #line 7696 "tracker-sparql-pattern.c"
 7701 		}
 7702 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7703 		_tmp12_ = _tmp0_;
 7704 #line 800 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7705 		if (_tmp12_) {
 7706 #line 805 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7707 			break;
 7708 #line 7704 "tracker-sparql-pattern.c"
 7709 		}
 7710 #line 807 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7711 		_tmp15_ = *in_triples_block;
 7712 #line 807 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7713 		if (_tmp15_) {
 7714 #line 7710 "tracker-sparql-pattern.c"
 7715 			gboolean _tmp16_;
 7716 #line 807 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7717 			_tmp16_ = *in_group_graph_pattern;
 7718 #line 807 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7719 			_tmp14_ = !_tmp16_;
 7720 #line 7716 "tracker-sparql-pattern.c"
 7721 		} else {
 7722 #line 807 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7723 			_tmp14_ = FALSE;
 7724 #line 7720 "tracker-sparql-pattern.c"
 7725 		}
 7726 #line 807 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7727 		_tmp17_ = _tmp14_;
 7728 #line 807 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7729 		if (_tmp17_) {
 7730 #line 7726 "tracker-sparql-pattern.c"
 7731 			gboolean _tmp18_;
 7732 #line 807 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7733 			_tmp18_ = found_simple_optional;
 7734 #line 807 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7735 			_tmp13_ = _tmp18_;
 7736 #line 7732 "tracker-sparql-pattern.c"
 7737 		} else {
 7738 #line 807 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7739 			_tmp13_ = FALSE;
 7740 #line 7736 "tracker-sparql-pattern.c"
 7741 		}
 7742 #line 807 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7743 		_tmp19_ = _tmp13_;
 7744 #line 807 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7745 		if (_tmp19_) {
 7746 #line 7742 "tracker-sparql-pattern.c"
 7747 			GString* _tmp20_;
 7748 			gboolean _tmp21_;
 7749 #line 811 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7750 			_tmp20_ = sql;
 7751 #line 811 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7752 			_tmp21_ = *in_group_graph_pattern;
 7753 #line 811 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7754 			tracker_sparql_pattern_end_triples_block (self, _tmp20_, first_where, _tmp21_, &_inner_error_);
 7755 #line 811 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7756 			if (_inner_error_ != NULL) {
 7757 #line 811 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7758 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 7759 #line 811 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7760 					g_propagate_error (error, _inner_error_);
 7761 #line 811 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7762 					return;
 7763 #line 7759 "tracker-sparql-pattern.c"
 7764 				} else {
 7765 #line 811 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7766 					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);
 7767 #line 811 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7768 					g_clear_error (&_inner_error_);
 7769 #line 811 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7770 					return;
 7771 #line 7767 "tracker-sparql-pattern.c"
 7772 				}
 7773 			}
 7774 #line 812 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7775 			*in_triples_block = FALSE;
 7776 #line 813 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7777 			*in_group_graph_pattern = TRUE;
 7778 #line 7774 "tracker-sparql-pattern.c"
 7779 		}
 7780 #line 815 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7781 		_tmp22_ = *in_triples_block;
 7782 #line 815 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7783 		if (!_tmp22_) {
 7784 #line 7780 "tracker-sparql-pattern.c"
 7785 			gboolean _tmp23_;
 7786 			GString* _tmp27_;
 7787 #line 816 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7788 			_tmp23_ = *in_group_graph_pattern;
 7789 #line 816 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7790 			if (_tmp23_) {
 7791 #line 7787 "tracker-sparql-pattern.c"
 7792 				GString* _tmp24_;
 7793 				glong _tmp25_;
 7794 				GString* _tmp26_;
 7795 #line 817 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7796 				_tmp24_ = sql;
 7797 #line 817 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7798 				_tmp25_ = group_graph_pattern_start;
 7799 #line 817 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7800 				g_string_insert (_tmp24_, (gssize) _tmp25_, "SELECT * FROM (");
 7801 #line 818 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7802 				_tmp26_ = sql;
 7803 #line 818 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7804 				g_string_append (_tmp26_, ") NATURAL INNER JOIN (");
 7805 #line 7801 "tracker-sparql-pattern.c"
 7806 			}
 7807 #line 820 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7808 			*in_triples_block = TRUE;
 7809 #line 821 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7810 			*first_where = TRUE;
 7811 #line 822 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7812 			_tmp27_ = sql;
 7813 #line 822 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7814 			tracker_sparql_pattern_start_triples_block (self, _tmp27_, &_inner_error_);
 7815 #line 822 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7816 			if (_inner_error_ != NULL) {
 7817 #line 822 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7818 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 7819 #line 822 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7820 					g_propagate_error (error, _inner_error_);
 7821 #line 822 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7822 					return;
 7823 #line 7819 "tracker-sparql-pattern.c"
 7824 				} else {
 7825 #line 822 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7826 					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);
 7827 #line 822 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7828 					g_clear_error (&_inner_error_);
 7829 #line 822 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7830 					return;
 7831 #line 7827 "tracker-sparql-pattern.c"
 7832 				}
 7833 			}
 7834 		}
 7835 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7836 		_tmp28_ = sql;
 7837 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7838 		_tmp30_ = tracker_sparql_pattern_parse_var_or_term (self, _tmp28_, &_tmp29_, &_inner_error_);
 7839 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7840 		self->priv->current_subject_is_var = _tmp29_;
 7841 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7842 		_tmp31_ = _tmp30_;
 7843 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7844 		if (_inner_error_ != NULL) {
 7845 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7846 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 7847 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7848 				g_propagate_error (error, _inner_error_);
 7849 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7850 				return;
 7851 #line 7847 "tracker-sparql-pattern.c"
 7852 			} else {
 7853 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7854 				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);
 7855 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7856 				g_clear_error (&_inner_error_);
 7857 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7858 				return;
 7859 #line 7855 "tracker-sparql-pattern.c"
 7860 			}
 7861 		}
 7862 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7863 		_g_free0 (self->priv->current_subject);
 7864 #line 825 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7865 		self->priv->current_subject = _tmp31_;
 7866 #line 826 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7867 		_tmp32_ = sql;
 7868 #line 826 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7869 		tracker_sparql_pattern_parse_property_list_not_empty (self, _tmp32_, FALSE, &_inner_error_);
 7870 #line 826 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7871 		if (_inner_error_ != NULL) {
 7872 #line 826 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7873 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 7874 #line 826 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7875 				g_propagate_error (error, _inner_error_);
 7876 #line 826 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7877 				return;
 7878 #line 7874 "tracker-sparql-pattern.c"
 7879 			} else {
 7880 #line 826 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7881 				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);
 7882 #line 826 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7883 				g_clear_error (&_inner_error_);
 7884 #line 826 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7885 				return;
 7886 #line 7882 "tracker-sparql-pattern.c"
 7887 			}
 7888 		}
 7889 #line 828 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7890 		_tmp33_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_DOT, &_inner_error_);
 7891 #line 828 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7892 		_tmp34_ = _tmp33_;
 7893 #line 828 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7894 		if (_inner_error_ != NULL) {
 7895 #line 828 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7896 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 7897 #line 828 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7898 				g_propagate_error (error, _inner_error_);
 7899 #line 828 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7900 				return;
 7901 #line 7897 "tracker-sparql-pattern.c"
 7902 			} else {
 7903 #line 828 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7904 				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);
 7905 #line 828 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7906 				g_clear_error (&_inner_error_);
 7907 #line 828 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7908 				return;
 7909 #line 7905 "tracker-sparql-pattern.c"
 7910 			}
 7911 		}
 7912 #line 828 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7913 		if (!_tmp34_) {
 7914 #line 829 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7915 			break;
 7916 #line 7912 "tracker-sparql-pattern.c"
 7917 		}
 7918 	}
 7919 }
 7920 
 7921 
 7922 static gboolean tracker_sparql_pattern_is_subclass (TrackerSparqlPattern* self, TrackerClass* class1, TrackerClass* class2) {
 7923 	gboolean result = FALSE;
 7924 	TrackerClass* _tmp0_;
 7925 	TrackerClass* _tmp1_;
 7926 	TrackerClass* _tmp2_;
 7927 	TrackerClass** _tmp3_;
 7928 	TrackerClass** _tmp4_ = NULL;
 7929 #line 834 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7930 	g_return_val_if_fail (self != NULL, FALSE);
 7931 #line 834 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7932 	g_return_val_if_fail (class1 != NULL, FALSE);
 7933 #line 834 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7934 	g_return_val_if_fail (class2 != NULL, FALSE);
 7935 #line 835 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7936 	_tmp0_ = class1;
 7937 #line 835 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7938 	_tmp1_ = class2;
 7939 #line 835 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7940 	if (_tmp0_ == _tmp1_) {
 7941 #line 836 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7942 		result = TRUE;
 7943 #line 836 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7944 		return result;
 7945 #line 7941 "tracker-sparql-pattern.c"
 7946 	}
 7947 #line 838 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7948 	_tmp2_ = class1;
 7949 #line 838 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7950 	_tmp4_ = _tmp3_ = tracker_class_get_super_classes (_tmp2_);
      (emitted by gcc) 7951 #line 7947 "tracker-sparql-pattern.c"
 7952 	{
 7953 		TrackerClass** superclass_collection = NULL;
 7954 		gint superclass_collection_length1 = 0;
 7955 		gint _superclass_collection_size_ = 0;
 7956 		gint superclass_it = 0;
 7957 #line 838 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7958 		superclass_collection = _tmp4_;
 7959 #line 838 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7960 		superclass_collection_length1 = _vala_array_length (_tmp3_);
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
 7961 #line 838 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7962 		for (superclass_it = 0; superclass_it < _vala_array_length (_tmp3_); superclass_it = superclass_it + 1) {
 7963 #line 7959 "tracker-sparql-pattern.c"
 7964 			TrackerClass* _tmp5_;
 7965 			TrackerClass* superclass = NULL;
 7966 #line 838 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7967 			_tmp5_ = _g_object_ref0 (superclass_collection[superclass_it]);
 7968 #line 838 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7969 			superclass = _tmp5_;
 7970 #line 7966 "tracker-sparql-pattern.c"
 7971 			{
 7972 				TrackerClass* _tmp6_;
 7973 				TrackerClass* _tmp7_;
 7974 				gboolean _tmp8_ = FALSE;
 7975 #line 839 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7976 				_tmp6_ = superclass;
 7977 #line 839 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7978 				_tmp7_ = class2;
 7979 #line 839 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7980 				_tmp8_ = tracker_sparql_pattern_is_subclass (self, _tmp6_, _tmp7_);
 7981 #line 839 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7982 				if (_tmp8_) {
 7983 #line 840 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7984 					result = TRUE;
 7985 #line 840 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7986 					_g_object_unref0 (superclass);
 7987 #line 840 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7988 					return result;
 7989 #line 7985 "tracker-sparql-pattern.c"
 7990 				}
 7991 #line 838 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7992 				_g_object_unref0 (superclass);
 7993 #line 7989 "tracker-sparql-pattern.c"
 7994 			}
 7995 		}
 7996 	}
 7997 #line 843 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 7998 	result = FALSE;
 7999 #line 843 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8000 	return result;
 8001 #line 7997 "tracker-sparql-pattern.c"
 8002 }
 8003 
 8004 
 8005 static gboolean tracker_sparql_pattern_is_simple_optional (TrackerSparqlPattern* self) {
 8006 	gboolean result = FALSE;
 8007 	TrackerSourceLocation _tmp0_ = {0};
 8008 	TrackerSourceLocation optional_start;
 8009 	GError * _inner_error_ = NULL;
 8010 #line 846 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8011 	g_return_val_if_fail (self != NULL, FALSE);
 8012 #line 847 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8013 	tracker_sparql_pattern_get_location (self, &_tmp0_);
 8014 #line 847 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8015 	optional_start = _tmp0_;
 8016 #line 8012 "tracker-sparql-pattern.c"
 8017 	{
 8018 		gboolean _tmp2_ = FALSE;
 8019 		gboolean _tmp3_;
 8020 		TrackerSparqlContext* _tmp6_;
 8021 		TrackerSparqlContext* _tmp7_;
 8022 		gchar* _tmp8_ = NULL;
 8023 		gchar* _tmp9_;
 8024 		gchar* _tmp10_ = NULL;
 8025 		gchar* _tmp11_;
 8026 		TrackerSparqlVariable* _tmp12_ = NULL;
 8027 		TrackerSparqlVariable* _tmp13_;
 8028 		TrackerSparqlVariable* _tmp14_;
 8029 		TrackerSparqlVariable* left_variable;
 8030 		TrackerSparqlContext* _tmp15_;
 8031 		TrackerSparqlContext* _tmp16_;
 8032 		GHashTable* _tmp17_;
 8033 		TrackerSparqlVariable* _tmp18_;
 8034 		gconstpointer _tmp19_ = NULL;
 8035 		gint left_variable_state;
 8036 		gchar* predicate = NULL;
 8037 		gboolean _tmp20_ = FALSE;
 8038 		gboolean _tmp21_;
 8039 		const gchar* _tmp52_;
 8040 		TrackerProperty* _tmp53_ = NULL;
 8041 		TrackerProperty* _tmp54_;
 8042 		TrackerProperty* prop;
 8043 		TrackerProperty* _tmp55_;
 8044 		gboolean _tmp57_ = FALSE;
 8045 		gboolean _tmp58_;
 8046 		TrackerSparqlContext* _tmp61_;
 8047 		TrackerSparqlContext* _tmp62_;
 8048 		gchar* _tmp63_ = NULL;
 8049 		gchar* _tmp64_;
 8050 		gchar* _tmp65_ = NULL;
 8051 		gchar* _tmp66_;
 8052 		TrackerSparqlVariable* _tmp67_ = NULL;
 8053 		TrackerSparqlVariable* _tmp68_;
 8054 		TrackerSparqlVariable* _tmp69_;
 8055 		TrackerSparqlVariable* right_variable;
 8056 		TrackerSparqlContext* _tmp70_;
 8057 		TrackerSparqlContext* _tmp71_;
 8058 		GHashTable* _tmp72_;
 8059 		TrackerSparqlVariable* _tmp73_;
 8060 		gconstpointer _tmp74_ = NULL;
 8061 		gint right_variable_state;
 8062 		gboolean _tmp76_ = FALSE;
 8063 		gboolean _tmp77_;
 8064 		gboolean _tmp80_ = FALSE;
 8065 		gboolean _tmp81_ = FALSE;
 8066 		gint _tmp82_;
 8067 		gboolean _tmp86_;
 8068 		gboolean _tmp88_;
 8069 #line 859 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8070 		tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_BRACE, &_inner_error_);
 8071 #line 859 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8072 		if (_inner_error_ != NULL) {
 8073 #line 859 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8074 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 8075 #line 8071 "tracker-sparql-pattern.c"
 8076 				goto __catch1_tracker_sparql_error;
 8077 			}
 8078 			{
 8079 				TrackerSourceLocation _tmp1_;
 8080 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8081 				_tmp1_ = optional_start;
 8082 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8083 				tracker_sparql_pattern_set_location (self, &_tmp1_);
 8084 #line 8080 "tracker-sparql-pattern.c"
 8085 			}
 8086 #line 859 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8087 			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 8088 #line 859 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8089 			g_clear_error (&_inner_error_);
 8090 #line 859 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8091 			return FALSE;
 8092 #line 8088 "tracker-sparql-pattern.c"
 8093 		}
 8094 #line 862 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8095 		_tmp2_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_VAR, &_inner_error_);
 8096 #line 862 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8097 		_tmp3_ = _tmp2_;
 8098 #line 862 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8099 		if (_inner_error_ != NULL) {
 8100 #line 862 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8101 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 8102 #line 8098 "tracker-sparql-pattern.c"
 8103 				goto __catch1_tracker_sparql_error;
 8104 			}
 8105 			{
 8106 				TrackerSourceLocation _tmp4_;
 8107 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8108 				_tmp4_ = optional_start;
 8109 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8110 				tracker_sparql_pattern_set_location (self, &_tmp4_);
 8111 #line 8107 "tracker-sparql-pattern.c"
 8112 			}
 8113 #line 862 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8114 			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 8115 #line 862 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8116 			g_clear_error (&_inner_error_);
 8117 #line 862 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8118 			return FALSE;
 8119 #line 8115 "tracker-sparql-pattern.c"
 8120 		}
 8121 #line 862 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8122 		if (!_tmp3_) {
 8123 #line 863 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8124 			result = FALSE;
 8125 #line 8121 "tracker-sparql-pattern.c"
 8126 			{
 8127 				TrackerSourceLocation _tmp5_;
 8128 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8129 				_tmp5_ = optional_start;
 8130 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8131 				tracker_sparql_pattern_set_location (self, &_tmp5_);
 8132 #line 8128 "tracker-sparql-pattern.c"
 8133 			}
 8134 #line 863 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8135 			return result;
 8136 #line 8132 "tracker-sparql-pattern.c"
 8137 		}
 8138 #line 865 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8139 		_tmp6_ = tracker_sparql_pattern_get_context (self);
 8140 #line 865 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8141 		_tmp7_ = _tmp6_;
 8142 #line 865 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8143 		_tmp8_ = tracker_sparql_pattern_get_last_string (self, 0);
 8144 #line 865 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8145 		_tmp9_ = _tmp8_;
 8146 #line 865 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8147 		_tmp10_ = string_substring (_tmp9_, (glong) 1, (glong) (-1));
 8148 #line 865 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8149 		_tmp11_ = _tmp10_;
 8150 #line 865 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8151 		_tmp12_ = tracker_sparql_context_get_variable (_tmp7_, _tmp11_);
 8152 #line 865 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8153 		_tmp13_ = _g_object_ref0 (_tmp12_);
 8154 #line 865 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8155 		_tmp14_ = _tmp13_;
 8156 #line 865 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8157 		_g_free0 (_tmp11_);
 8158 #line 865 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8159 		_g_free0 (_tmp9_);
 8160 #line 865 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8161 		left_variable = _tmp14_;
 8162 #line 866 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8163 		_tmp15_ = tracker_sparql_pattern_get_context (self);
 8164 #line 866 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8165 		_tmp16_ = _tmp15_;
 8166 #line 866 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8167 		_tmp17_ = _tmp16_->var_set;
 8168 #line 866 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8169 		_tmp18_ = left_variable;
 8170 #line 866 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8171 		_tmp19_ = g_hash_table_lookup (_tmp17_, _tmp18_);
 8172 #line 866 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8173 		left_variable_state = (gint) ((gintptr) _tmp19_);
 8174 #line 870 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8175 		_tmp20_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_IRI_REF, &_inner_error_);
 8176 #line 870 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8177 		_tmp21_ = _tmp20_;
 8178 #line 870 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8179 		if (_inner_error_ != NULL) {
 8180 #line 870 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8181 			_g_free0 (predicate);
 8182 #line 870 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8183 			_g_object_unref0 (left_variable);
 8184 #line 870 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8185 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 8186 #line 8182 "tracker-sparql-pattern.c"
 8187 				goto __catch1_tracker_sparql_error;
 8188 			}
 8189 #line 870 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8190 			_g_free0 (predicate);
 8191 #line 870 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8192 			_g_object_unref0 (left_variable);
 8193 #line 8189 "tracker-sparql-pattern.c"
 8194 			{
 8195 				TrackerSourceLocation _tmp22_;
 8196 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8197 				_tmp22_ = optional_start;
 8198 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8199 				tracker_sparql_pattern_set_location (self, &_tmp22_);
 8200 #line 8196 "tracker-sparql-pattern.c"
 8201 			}
 8202 #line 870 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8203 			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 8204 #line 870 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8205 			g_clear_error (&_inner_error_);
 8206 #line 870 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8207 			return FALSE;
 8208 #line 8204 "tracker-sparql-pattern.c"
 8209 		}
 8210 #line 870 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8211 		if (_tmp21_) {
 8212 #line 8208 "tracker-sparql-pattern.c"
 8213 			gchar* _tmp23_ = NULL;
 8214 #line 871 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8215 			_tmp23_ = tracker_sparql_pattern_get_last_string (self, 1);
 8216 #line 871 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8217 			_g_free0 (predicate);
 8218 #line 871 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8219 			predicate = _tmp23_;
 8220 #line 8216 "tracker-sparql-pattern.c"
 8221 		} else {
 8222 			gboolean _tmp24_ = FALSE;
 8223 			gboolean _tmp25_;
 8224 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8225 			_tmp24_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_PN_PREFIX, &_inner_error_);
 8226 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8227 			_tmp25_ = _tmp24_;
 8228 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8229 			if (_inner_error_ != NULL) {
 8230 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8231 				_g_free0 (predicate);
 8232 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8233 				_g_object_unref0 (left_variable);
 8234 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8235 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 8236 #line 8232 "tracker-sparql-pattern.c"
 8237 					goto __catch1_tracker_sparql_error;
 8238 				}
 8239 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8240 				_g_free0 (predicate);
 8241 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8242 				_g_object_unref0 (left_variable);
 8243 #line 8239 "tracker-sparql-pattern.c"
 8244 				{
 8245 					TrackerSourceLocation _tmp26_;
 8246 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8247 					_tmp26_ = optional_start;
 8248 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8249 					tracker_sparql_pattern_set_location (self, &_tmp26_);
 8250 #line 8246 "tracker-sparql-pattern.c"
 8251 				}
 8252 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8253 				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 8254 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8255 				g_clear_error (&_inner_error_);
 8256 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8257 				return FALSE;
 8258 #line 8254 "tracker-sparql-pattern.c"
 8259 			}
 8260 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8261 			if (_tmp25_) {
 8262 #line 8258 "tracker-sparql-pattern.c"
 8263 				gchar* _tmp27_ = NULL;
 8264 				gchar* ns;
 8265 				TrackerSparqlQuery* _tmp29_;
 8266 				const gchar* _tmp30_;
 8267 				gchar* _tmp31_ = NULL;
 8268 				gchar* _tmp32_;
 8269 				gchar* _tmp33_ = NULL;
 8270 				gchar* _tmp34_;
 8271 				gchar* _tmp35_ = NULL;
 8272 				gchar* _tmp36_;
 8273 				gchar* _tmp37_;
 8274 #line 873 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8275 				_tmp27_ = tracker_sparql_pattern_get_last_string (self, 0);
 8276 #line 873 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8277 				ns = _tmp27_;
 8278 #line 874 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8279 				tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_COLON, &_inner_error_);
 8280 #line 874 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8281 				if (_inner_error_ != NULL) {
 8282 #line 874 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8283 					_g_free0 (ns);
 8284 #line 874 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8285 					_g_free0 (predicate);
 8286 #line 874 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8287 					_g_object_unref0 (left_variable);
 8288 #line 874 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8289 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 8290 #line 8286 "tracker-sparql-pattern.c"
 8291 						goto __catch1_tracker_sparql_error;
 8292 					}
 8293 #line 874 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8294 					_g_free0 (ns);
 8295 #line 874 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8296 					_g_free0 (predicate);
 8297 #line 874 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8298 					_g_object_unref0 (left_variable);
 8299 #line 8295 "tracker-sparql-pattern.c"
 8300 					{
 8301 						TrackerSourceLocation _tmp28_;
 8302 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8303 						_tmp28_ = optional_start;
 8304 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8305 						tracker_sparql_pattern_set_location (self, &_tmp28_);
 8306 #line 8302 "tracker-sparql-pattern.c"
 8307 					}
 8308 #line 874 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8309 					g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 8310 #line 874 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8311 					g_clear_error (&_inner_error_);
 8312 #line 874 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8313 					return FALSE;
 8314 #line 8310 "tracker-sparql-pattern.c"
 8315 				}
 8316 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8317 				_tmp29_ = self->priv->query;
 8318 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8319 				_tmp30_ = ns;
 8320 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8321 				_tmp31_ = tracker_sparql_pattern_get_last_string (self, 0);
 8322 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8323 				_tmp32_ = _tmp31_;
 8324 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8325 				_tmp33_ = string_substring (_tmp32_, (glong) 1, (glong) (-1));
 8326 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8327 				_tmp34_ = _tmp33_;
 8328 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8329 				_tmp35_ = tracker_sparql_query_resolve_prefixed_name (_tmp29_, _tmp30_, _tmp34_, &_inner_error_);
 8330 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8331 				_tmp36_ = _tmp35_;
 8332 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8333 				_g_free0 (_tmp34_);
 8334 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8335 				_g_free0 (_tmp32_);
 8336 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8337 				_tmp37_ = _tmp36_;
 8338 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8339 				if (_inner_error_ != NULL) {
 8340 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8341 					_g_free0 (ns);
 8342 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8343 					_g_free0 (predicate);
 8344 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8345 					_g_object_unref0 (left_variable);
 8346 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8347 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 8348 #line 8344 "tracker-sparql-pattern.c"
 8349 						goto __catch1_tracker_sparql_error;
 8350 					}
 8351 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8352 					_g_free0 (ns);
 8353 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8354 					_g_free0 (predicate);
 8355 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8356 					_g_object_unref0 (left_variable);
 8357 #line 8353 "tracker-sparql-pattern.c"
 8358 					{
 8359 						TrackerSourceLocation _tmp38_;
 8360 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8361 						_tmp38_ = optional_start;
 8362 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8363 						tracker_sparql_pattern_set_location (self, &_tmp38_);
 8364 #line 8360 "tracker-sparql-pattern.c"
 8365 					}
 8366 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8367 					g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 8368 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8369 					g_clear_error (&_inner_error_);
 8370 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8371 					return FALSE;
 8372 #line 8368 "tracker-sparql-pattern.c"
 8373 				}
 8374 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8375 				_g_free0 (predicate);
 8376 #line 875 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8377 				predicate = _tmp37_;
 8378 #line 872 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8379 				_g_free0 (ns);
 8380 #line 8376 "tracker-sparql-pattern.c"
 8381 			} else {
 8382 				gboolean _tmp39_ = FALSE;
 8383 				gboolean _tmp40_;
 8384 #line 876 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8385 				_tmp39_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_COLON, &_inner_error_);
 8386 #line 876 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8387 				_tmp40_ = _tmp39_;
 8388 #line 876 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8389 				if (_inner_error_ != NULL) {
 8390 #line 876 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8391 					_g_free0 (predicate);
 8392 #line 876 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8393 					_g_object_unref0 (left_variable);
 8394 #line 876 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8395 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 8396 #line 8392 "tracker-sparql-pattern.c"
 8397 						goto __catch1_tracker_sparql_error;
 8398 					}
 8399 #line 876 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8400 					_g_free0 (predicate);
 8401 #line 876 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8402 					_g_object_unref0 (left_variable);
 8403 #line 8399 "tracker-sparql-pattern.c"
 8404 					{
 8405 						TrackerSourceLocation _tmp41_;
 8406 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8407 						_tmp41_ = optional_start;
 8408 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8409 						tracker_sparql_pattern_set_location (self, &_tmp41_);
 8410 #line 8406 "tracker-sparql-pattern.c"
 8411 					}
 8412 #line 876 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8413 					g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 8414 #line 876 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8415 					g_clear_error (&_inner_error_);
 8416 #line 876 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8417 					return FALSE;
 8418 #line 8414 "tracker-sparql-pattern.c"
 8419 				}
 8420 #line 876 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8421 				if (_tmp40_) {
 8422 #line 8418 "tracker-sparql-pattern.c"
 8423 					TrackerSparqlQuery* _tmp42_;
 8424 					gchar* _tmp43_ = NULL;
 8425 					gchar* _tmp44_;
 8426 					gchar* _tmp45_ = NULL;
 8427 					gchar* _tmp46_;
 8428 					gchar* _tmp47_ = NULL;
 8429 					gchar* _tmp48_;
 8430 					gchar* _tmp49_;
 8431 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8432 					_tmp42_ = self->priv->query;
 8433 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8434 					_tmp43_ = tracker_sparql_pattern_get_last_string (self, 0);
 8435 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8436 					_tmp44_ = _tmp43_;
 8437 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8438 					_tmp45_ = string_substring (_tmp44_, (glong) 1, (glong) (-1));
 8439 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8440 					_tmp46_ = _tmp45_;
 8441 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8442 					_tmp47_ = tracker_sparql_query_resolve_prefixed_name (_tmp42_, "", _tmp46_, &_inner_error_);
 8443 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8444 					_tmp48_ = _tmp47_;
 8445 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8446 					_g_free0 (_tmp46_);
 8447 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8448 					_g_free0 (_tmp44_);
 8449 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8450 					_tmp49_ = _tmp48_;
 8451 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8452 					if (_inner_error_ != NULL) {
 8453 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8454 						_g_free0 (predicate);
 8455 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8456 						_g_object_unref0 (left_variable);
 8457 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8458 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 8459 #line 8455 "tracker-sparql-pattern.c"
 8460 							goto __catch1_tracker_sparql_error;
 8461 						}
 8462 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8463 						_g_free0 (predicate);
 8464 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8465 						_g_object_unref0 (left_variable);
 8466 #line 8462 "tracker-sparql-pattern.c"
 8467 						{
 8468 							TrackerSourceLocation _tmp50_;
 8469 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8470 							_tmp50_ = optional_start;
 8471 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8472 							tracker_sparql_pattern_set_location (self, &_tmp50_);
 8473 #line 8469 "tracker-sparql-pattern.c"
 8474 						}
 8475 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8476 						g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 8477 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8478 						g_clear_error (&_inner_error_);
 8479 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8480 						return FALSE;
 8481 #line 8477 "tracker-sparql-pattern.c"
 8482 					}
 8483 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8484 					_g_free0 (predicate);
 8485 #line 877 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8486 					predicate = _tmp49_;
 8487 #line 8483 "tracker-sparql-pattern.c"
 8488 				} else {
 8489 #line 879 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8490 					result = FALSE;
 8491 #line 879 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8492 					_g_free0 (predicate);
 8493 #line 879 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8494 					_g_object_unref0 (left_variable);
 8495 #line 8491 "tracker-sparql-pattern.c"
 8496 					{
 8497 						TrackerSourceLocation _tmp51_;
 8498 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8499 						_tmp51_ = optional_start;
 8500 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8501 						tracker_sparql_pattern_set_location (self, &_tmp51_);
 8502 #line 8498 "tracker-sparql-pattern.c"
 8503 					}
 8504 #line 879 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8505 					return result;
 8506 #line 8502 "tracker-sparql-pattern.c"
 8507 				}
 8508 			}
 8509 		}
 8510 #line 881 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8511 		_tmp52_ = predicate;
 8512 #line 881 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8513 		_tmp53_ = tracker_ontologies_get_property_by_uri (_tmp52_);
 8514 #line 881 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8515 		_tmp54_ = _g_object_ref0 (_tmp53_);
 8516 #line 881 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8517 		prop = _tmp54_;
 8518 #line 882 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8519 		_tmp55_ = prop;
 8520 #line 882 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8521 		if (_tmp55_ == NULL) {
 8522 #line 883 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8523 			result = FALSE;
 8524 #line 883 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8525 			_g_object_unref0 (prop);
 8526 #line 883 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8527 			_g_free0 (predicate);
 8528 #line 883 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8529 			_g_object_unref0 (left_variable);
 8530 #line 8526 "tracker-sparql-pattern.c"
 8531 			{
 8532 				TrackerSourceLocation _tmp56_;
 8533 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8534 				_tmp56_ = optional_start;
 8535 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8536 				tracker_sparql_pattern_set_location (self, &_tmp56_);
 8537 #line 8533 "tracker-sparql-pattern.c"
 8538 			}
 8539 #line 883 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8540 			return result;
 8541 #line 8537 "tracker-sparql-pattern.c"
 8542 		}
 8543 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8544 		_tmp57_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_VAR, &_inner_error_);
 8545 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8546 		_tmp58_ = _tmp57_;
 8547 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8548 		if (_inner_error_ != NULL) {
 8549 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8550 			_g_object_unref0 (prop);
 8551 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8552 			_g_free0 (predicate);
 8553 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8554 			_g_object_unref0 (left_variable);
 8555 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8556 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 8557 #line 8553 "tracker-sparql-pattern.c"
 8558 				goto __catch1_tracker_sparql_error;
 8559 			}
 8560 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8561 			_g_object_unref0 (prop);
 8562 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8563 			_g_free0 (predicate);
 8564 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8565 			_g_object_unref0 (left_variable);
 8566 #line 8562 "tracker-sparql-pattern.c"
 8567 			{
 8568 				TrackerSourceLocation _tmp59_;
 8569 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8570 				_tmp59_ = optional_start;
 8571 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8572 				tracker_sparql_pattern_set_location (self, &_tmp59_);
 8573 #line 8569 "tracker-sparql-pattern.c"
 8574 			}
 8575 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8576 			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 8577 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8578 			g_clear_error (&_inner_error_);
 8579 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8580 			return FALSE;
 8581 #line 8577 "tracker-sparql-pattern.c"
 8582 		}
 8583 #line 887 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8584 		if (!_tmp58_) {
 8585 #line 888 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8586 			result = FALSE;
 8587 #line 888 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8588 			_g_object_unref0 (prop);
 8589 #line 888 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8590 			_g_free0 (predicate);
 8591 #line 888 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8592 			_g_object_unref0 (left_variable);
 8593 #line 8589 "tracker-sparql-pattern.c"
 8594 			{
 8595 				TrackerSourceLocation _tmp60_;
 8596 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8597 				_tmp60_ = optional_start;
 8598 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8599 				tracker_sparql_pattern_set_location (self, &_tmp60_);
 8600 #line 8596 "tracker-sparql-pattern.c"
 8601 			}
 8602 #line 888 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8603 			return result;
 8604 #line 8600 "tracker-sparql-pattern.c"
 8605 		}
 8606 #line 890 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8607 		_tmp61_ = tracker_sparql_pattern_get_context (self);
 8608 #line 890 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8609 		_tmp62_ = _tmp61_;
 8610 #line 890 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8611 		_tmp63_ = tracker_sparql_pattern_get_last_string (self, 0);
 8612 #line 890 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8613 		_tmp64_ = _tmp63_;
 8614 #line 890 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8615 		_tmp65_ = string_substring (_tmp64_, (glong) 1, (glong) (-1));
 8616 #line 890 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8617 		_tmp66_ = _tmp65_;
 8618 #line 890 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8619 		_tmp67_ = tracker_sparql_context_get_variable (_tmp62_, _tmp66_);
 8620 #line 890 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8621 		_tmp68_ = _g_object_ref0 (_tmp67_);
 8622 #line 890 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8623 		_tmp69_ = _tmp68_;
 8624 #line 890 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8625 		_g_free0 (_tmp66_);
 8626 #line 890 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8627 		_g_free0 (_tmp64_);
 8628 #line 890 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8629 		right_variable = _tmp69_;
 8630 #line 891 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8631 		_tmp70_ = tracker_sparql_pattern_get_context (self);
 8632 #line 891 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8633 		_tmp71_ = _tmp70_;
 8634 #line 891 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8635 		_tmp72_ = _tmp71_->var_set;
 8636 #line 891 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8637 		_tmp73_ = right_variable;
 8638 #line 891 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8639 		_tmp74_ = g_hash_table_lookup (_tmp72_, _tmp73_);
 8640 #line 891 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8641 		right_variable_state = (gint) ((gintptr) _tmp74_);
 8642 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8643 		tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_DOT, &_inner_error_);
 8644 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8645 		if (_inner_error_ != NULL) {
 8646 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8647 			_g_object_unref0 (right_variable);
 8648 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8649 			_g_object_unref0 (prop);
 8650 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8651 			_g_free0 (predicate);
 8652 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8653 			_g_object_unref0 (left_variable);
 8654 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8655 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 8656 #line 8652 "tracker-sparql-pattern.c"
 8657 				goto __catch1_tracker_sparql_error;
 8658 			}
 8659 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8660 			_g_object_unref0 (right_variable);
 8661 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8662 			_g_object_unref0 (prop);
 8663 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8664 			_g_free0 (predicate);
 8665 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8666 			_g_object_unref0 (left_variable);
 8667 #line 8663 "tracker-sparql-pattern.c"
 8668 			{
 8669 				TrackerSourceLocation _tmp75_;
 8670 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8671 				_tmp75_ = optional_start;
 8672 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8673 				tracker_sparql_pattern_set_location (self, &_tmp75_);
 8674 #line 8670 "tracker-sparql-pattern.c"
 8675 			}
 8676 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8677 			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 8678 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8679 			g_clear_error (&_inner_error_);
 8680 #line 894 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8681 			return FALSE;
 8682 #line 8678 "tracker-sparql-pattern.c"
 8683 		}
 8684 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8685 		_tmp76_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_BRACE, &_inner_error_);
 8686 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8687 		_tmp77_ = _tmp76_;
 8688 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8689 		if (_inner_error_ != NULL) {
 8690 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8691 			_g_object_unref0 (right_variable);
 8692 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8693 			_g_object_unref0 (prop);
 8694 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8695 			_g_free0 (predicate);
 8696 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8697 			_g_object_unref0 (left_variable);
 8698 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8699 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 8700 #line 8696 "tracker-sparql-pattern.c"
 8701 				goto __catch1_tracker_sparql_error;
 8702 			}
 8703 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8704 			_g_object_unref0 (right_variable);
 8705 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8706 			_g_object_unref0 (prop);
 8707 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8708 			_g_free0 (predicate);
 8709 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8710 			_g_object_unref0 (left_variable);
 8711 #line 8707 "tracker-sparql-pattern.c"
 8712 			{
 8713 				TrackerSourceLocation _tmp78_;
 8714 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8715 				_tmp78_ = optional_start;
 8716 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8717 				tracker_sparql_pattern_set_location (self, &_tmp78_);
 8718 #line 8714 "tracker-sparql-pattern.c"
 8719 			}
 8720 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8721 			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 8722 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8723 			g_clear_error (&_inner_error_);
 8724 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8725 			return FALSE;
 8726 #line 8722 "tracker-sparql-pattern.c"
 8727 		}
 8728 #line 897 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8729 		if (!_tmp77_) {
 8730 #line 898 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8731 			result = FALSE;
 8732 #line 898 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8733 			_g_object_unref0 (right_variable);
 8734 #line 898 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8735 			_g_object_unref0 (prop);
 8736 #line 898 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8737 			_g_free0 (predicate);
 8738 #line 898 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8739 			_g_object_unref0 (left_variable);
 8740 #line 8736 "tracker-sparql-pattern.c"
 8741 			{
 8742 				TrackerSourceLocation _tmp79_;
 8743 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8744 				_tmp79_ = optional_start;
 8745 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8746 				tracker_sparql_pattern_set_location (self, &_tmp79_);
 8747 #line 8743 "tracker-sparql-pattern.c"
 8748 			}
 8749 #line 898 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8750 			return result;
 8751 #line 8747 "tracker-sparql-pattern.c"
 8752 		}
 8753 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8754 		_tmp82_ = left_variable_state;
 8755 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8756 		if (_tmp82_ == ((gint) TRACKER_SPARQL_VARIABLE_STATE_BOUND)) {
 8757 #line 8753 "tracker-sparql-pattern.c"
 8758 			TrackerProperty* _tmp83_;
 8759 			gboolean _tmp84_;
 8760 			gboolean _tmp85_;
 8761 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8762 			_tmp83_ = prop;
 8763 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8764 			_tmp84_ = tracker_property_get_multiple_values (_tmp83_);
 8765 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8766 			_tmp85_ = _tmp84_;
 8767 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8768 			_tmp81_ = !_tmp85_;
 8769 #line 8765 "tracker-sparql-pattern.c"
 8770 		} else {
 8771 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8772 			_tmp81_ = FALSE;
 8773 #line 8769 "tracker-sparql-pattern.c"
 8774 		}
 8775 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8776 		_tmp86_ = _tmp81_;
 8777 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8778 		if (_tmp86_) {
 8779 #line 8775 "tracker-sparql-pattern.c"
 8780 			gint _tmp87_;
 8781 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8782 			_tmp87_ = right_variable_state;
 8783 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8784 			_tmp80_ = _tmp87_ == 0;
 8785 #line 8781 "tracker-sparql-pattern.c"
 8786 		} else {
 8787 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8788 			_tmp80_ = FALSE;
 8789 #line 8785 "tracker-sparql-pattern.c"
 8790 		}
 8791 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8792 		_tmp88_ = _tmp80_;
 8793 #line 901 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8794 		if (_tmp88_) {
 8795 #line 8791 "tracker-sparql-pattern.c"
 8796 			gboolean in_domain;
 8797 			TrackerSparqlPatternTripleContext* _tmp89_;
 8798 			GHashTable* _tmp90_;
 8799 			TrackerSparqlVariable* _tmp91_;
 8800 			gconstpointer _tmp92_ = NULL;
 8801 			GList* _tmp93_;
 8802 			gboolean _tmp105_;
 8803 #line 902 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8804 			in_domain = FALSE;
 8805 #line 903 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8806 			_tmp89_ = self->priv->triple_context;
 8807 #line 903 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8808 			_tmp90_ = _tmp89_->var_bindings;
 8809 #line 903 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8810 			_tmp91_ = left_variable;
 8811 #line 903 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8812 			_tmp92_ = g_hash_table_lookup (_tmp90_, _tmp91_);
 8813 #line 903 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8814 			_tmp93_ = ((TrackerSparqlVariableBindingList*) _tmp92_)->list;
 8815 #line 8811 "tracker-sparql-pattern.c"
 8816 			{
 8817 				GList* binding_collection = NULL;
 8818 				GList* binding_it = NULL;
 8819 #line 903 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8820 				binding_collection = _tmp93_;
 8821 #line 903 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8822 				for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
 8823 #line 8819 "tracker-sparql-pattern.c"
 8824 					TrackerSparqlVariableBinding* _tmp94_;
 8825 					TrackerSparqlVariableBinding* binding = NULL;
 8826 #line 903 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8827 					_tmp94_ = _g_object_ref0 ((TrackerSparqlVariableBinding*) binding_it->data);
 8828 #line 903 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8829 					binding = _tmp94_;
 8830 #line 8826 "tracker-sparql-pattern.c"
 8831 					{
 8832 						gboolean _tmp95_ = FALSE;
 8833 						TrackerSparqlVariableBinding* _tmp96_;
 8834 						TrackerClass* _tmp97_;
 8835 						gboolean _tmp104_;
 8836 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8837 						_tmp96_ = binding;
 8838 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8839 						_tmp97_ = _tmp96_->type;
 8840 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8841 						if (_tmp97_ != NULL) {
 8842 #line 8838 "tracker-sparql-pattern.c"
 8843 							TrackerSparqlVariableBinding* _tmp98_;
 8844 							TrackerClass* _tmp99_;
 8845 							TrackerProperty* _tmp100_;
 8846 							TrackerClass* _tmp101_;
 8847 							TrackerClass* _tmp102_;
 8848 							gboolean _tmp103_ = FALSE;
 8849 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8850 							_tmp98_ = binding;
 8851 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8852 							_tmp99_ = _tmp98_->type;
 8853 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8854 							_tmp100_ = prop;
 8855 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8856 							_tmp101_ = tracker_property_get_domain (_tmp100_);
 8857 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8858 							_tmp102_ = _tmp101_;
 8859 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8860 							_tmp103_ = tracker_sparql_pattern_is_subclass (self, _tmp99_, _tmp102_);
 8861 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8862 							_tmp95_ = _tmp103_;
 8863 #line 8859 "tracker-sparql-pattern.c"
 8864 						} else {
 8865 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8866 							_tmp95_ = FALSE;
 8867 #line 8863 "tracker-sparql-pattern.c"
 8868 						}
 8869 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8870 						_tmp104_ = _tmp95_;
 8871 #line 904 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8872 						if (_tmp104_) {
 8873 #line 905 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8874 							in_domain = TRUE;
 8875 #line 906 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8876 							_g_object_unref0 (binding);
 8877 #line 906 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8878 							break;
 8879 #line 8875 "tracker-sparql-pattern.c"
 8880 						}
 8881 #line 903 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8882 						_g_object_unref0 (binding);
 8883 #line 8879 "tracker-sparql-pattern.c"
 8884 					}
 8885 				}
 8886 			}
 8887 #line 910 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8888 			_tmp105_ = in_domain;
 8889 #line 910 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8890 			if (_tmp105_) {
 8891 #line 912 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8892 				result = TRUE;
 8893 #line 912 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8894 				_g_object_unref0 (right_variable);
 8895 #line 912 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8896 				_g_object_unref0 (prop);
 8897 #line 912 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8898 				_g_free0 (predicate);
 8899 #line 912 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8900 				_g_object_unref0 (left_variable);
 8901 #line 8897 "tracker-sparql-pattern.c"
 8902 				{
 8903 					TrackerSourceLocation _tmp106_;
 8904 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8905 					_tmp106_ = optional_start;
 8906 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8907 					tracker_sparql_pattern_set_location (self, &_tmp106_);
 8908 #line 8904 "tracker-sparql-pattern.c"
 8909 				}
 8910 #line 912 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8911 				return result;
 8912 #line 8908 "tracker-sparql-pattern.c"
 8913 			}
 8914 		} else {
 8915 			gboolean _tmp107_ = FALSE;
 8916 			gboolean _tmp108_ = FALSE;
 8917 			gint _tmp109_;
 8918 			gboolean _tmp113_;
 8919 			gboolean _tmp115_;
 8920 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8921 			_tmp109_ = left_variable_state;
 8922 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8923 			if (_tmp109_ == 0) {
 8924 #line 8920 "tracker-sparql-pattern.c"
 8925 				TrackerProperty* _tmp110_;
 8926 				gboolean _tmp111_;
 8927 				gboolean _tmp112_;
 8928 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8929 				_tmp110_ = prop;
 8930 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8931 				_tmp111_ = tracker_property_get_is_inverse_functional_property (_tmp110_);
 8932 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8933 				_tmp112_ = _tmp111_;
 8934 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8935 				_tmp108_ = _tmp112_;
 8936 #line 8932 "tracker-sparql-pattern.c"
 8937 			} else {
 8938 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8939 				_tmp108_ = FALSE;
 8940 #line 8936 "tracker-sparql-pattern.c"
 8941 			}
 8942 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8943 			_tmp113_ = _tmp108_;
 8944 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8945 			if (_tmp113_) {
 8946 #line 8942 "tracker-sparql-pattern.c"
 8947 				gint _tmp114_;
 8948 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8949 				_tmp114_ = right_variable_state;
 8950 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8951 				_tmp107_ = _tmp114_ == ((gint) TRACKER_SPARQL_VARIABLE_STATE_BOUND);
 8952 #line 8948 "tracker-sparql-pattern.c"
 8953 			} else {
 8954 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8955 				_tmp107_ = FALSE;
 8956 #line 8952 "tracker-sparql-pattern.c"
 8957 			}
 8958 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8959 			_tmp115_ = _tmp107_;
 8960 #line 914 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8961 			if (_tmp115_) {
 8962 #line 916 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8963 				result = TRUE;
 8964 #line 916 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8965 				_g_object_unref0 (right_variable);
 8966 #line 916 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8967 				_g_object_unref0 (prop);
 8968 #line 916 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8969 				_g_free0 (predicate);
 8970 #line 916 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8971 				_g_object_unref0 (left_variable);
 8972 #line 8968 "tracker-sparql-pattern.c"
 8973 				{
 8974 					TrackerSourceLocation _tmp116_;
 8975 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8976 					_tmp116_ = optional_start;
 8977 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8978 					tracker_sparql_pattern_set_location (self, &_tmp116_);
 8979 #line 8975 "tracker-sparql-pattern.c"
 8980 				}
 8981 #line 916 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8982 				return result;
 8983 #line 8979 "tracker-sparql-pattern.c"
 8984 			}
 8985 		}
 8986 #line 920 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8987 		result = FALSE;
 8988 #line 920 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8989 		_g_object_unref0 (right_variable);
 8990 #line 920 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8991 		_g_object_unref0 (prop);
 8992 #line 920 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8993 		_g_free0 (predicate);
 8994 #line 920 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 8995 		_g_object_unref0 (left_variable);
 8996 #line 8992 "tracker-sparql-pattern.c"
 8997 		{
 8998 			TrackerSourceLocation _tmp117_;
 8999 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9000 			_tmp117_ = optional_start;
 9001 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9002 			tracker_sparql_pattern_set_location (self, &_tmp117_);
 9003 #line 8999 "tracker-sparql-pattern.c"
 9004 		}
 9005 #line 920 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9006 		return result;
 9007 #line 9003 "tracker-sparql-pattern.c"
 9008 	}
 9009 	goto __finally1;
 9010 	__catch1_tracker_sparql_error:
 9011 	{
 9012 		GError* e = NULL;
 9013 #line 848 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9014 		e = _inner_error_;
 9015 #line 848 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9016 		_inner_error_ = NULL;
 9017 #line 922 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9018 		result = FALSE;
 9019 #line 922 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9020 		_g_error_free0 (e);
 9021 #line 9017 "tracker-sparql-pattern.c"
 9022 		{
 9023 			TrackerSourceLocation _tmp118_;
 9024 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9025 			_tmp118_ = optional_start;
 9026 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9027 			tracker_sparql_pattern_set_location (self, &_tmp118_);
 9028 #line 9024 "tracker-sparql-pattern.c"
 9029 		}
 9030 #line 922 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9031 		return result;
 9032 #line 9028 "tracker-sparql-pattern.c"
 9033 	}
 9034 	__finally1:
 9035 	{
 9036 		TrackerSourceLocation _tmp119_;
 9037 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9038 		_tmp119_ = optional_start;
 9039 #line 925 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9040 		tracker_sparql_pattern_set_location (self, &_tmp119_);
 9041 #line 9037 "tracker-sparql-pattern.c"
 9042 	}
 9043 #line 848 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9044 	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);
 9045 #line 848 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9046 	g_clear_error (&_inner_error_);
 9047 #line 848 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9048 	return FALSE;
 9049 #line 9045 "tracker-sparql-pattern.c"
 9050 }
 9051 
 9052 
 9053 static gpointer _g_hash_table_ref0 (gpointer self) {
 9054 #line 937 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9055 	return self ? g_hash_table_ref (self) : NULL;
 9056 #line 9052 "tracker-sparql-pattern.c"
 9057 }
      (emitted by gcc) 9058 
 9059 
 9060 static guint _tracker_sparql_variable_hash_ghash_func (gconstpointer key) {
 9061 	guint result;
 9062 	result = tracker_sparql_variable_hash (key);
 9063 #line 938 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9064 	return result;
 9065 #line 9061 "tracker-sparql-pattern.c"
 9066 }
      (emitted by gcc) 9067 
 9068 
 9069 static gboolean _tracker_sparql_variable_equal_gequal_func (gconstpointer a, gconstpointer b) {
 9070 	gboolean result;
 9071 	result = tracker_sparql_variable_equal (a, b);
 9072 #line 938 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9073 	return result;
 9074 #line 9070 "tracker-sparql-pattern.c"
 9075 }
 9076 
 9077 
 9078 static void _vala_array_add8 (TrackerSourceLocation** array, int* length, int* size, const TrackerSourceLocation* value) {
 9079 #line 1127 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9080 	if ((*length) == (*size)) {
 9081 #line 1127 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9082 		*size = (*size) ? (2 * (*size)) : 4;
 9083 #line 1127 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9084 		*array = g_renew (TrackerSourceLocation, *array, *size);
 9085 #line 9081 "tracker-sparql-pattern.c"
 9086 	}
 9087 #line 1127 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9088 	(*array)[(*length)++] = *value;
 9089 #line 9085 "tracker-sparql-pattern.c"
 9090 }
 9091 
 9092 
 9093 TrackerSparqlContext* tracker_sparql_pattern_translate_group_graph_pattern (TrackerSparqlPattern* self, GString* sql, GError** error) {
 9094 	TrackerSparqlContext* result = NULL;
 9095 	TrackerSparqlTokenType _tmp0_ = 0;
 9096 	TrackerSparqlQuery* _tmp17_;
 9097 	TrackerSparqlContext* _tmp18_;
 9098 	TrackerSparqlContext* _tmp19_;
 9099 	TrackerSparqlContext* _tmp20_;
 9100 	TrackerSparqlContext* _result_;
 9101 	TrackerSparqlContext* _tmp21_;
 9102 	TrackerSourceLocation* _tmp22_ = NULL;
 9103 	TrackerSourceLocation* filters;
 9104 	gint filters_length1;
 9105 	gint _filters_size_;
 9106 	gboolean in_triples_block;
 9107 	gboolean in_group_graph_pattern;
 9108 	gboolean first_where;
 9109 	gboolean found_simple_optional;
 9110 	GString* _tmp23_;
 9111 	gssize _tmp24_;
 9112 	glong group_graph_pattern_start;
 9113 	GString* _tmp25_;
 9114 	glong _tmp26_;
 9115 	gboolean _tmp27_;
 9116 	gboolean _tmp278_ = FALSE;
 9117 	gboolean _tmp279_;
 9118 	gboolean _tmp281_;
 9119 	gboolean _tmp286_;
 9120 	TrackerSourceLocation* _tmp287_;
 9121 	gint _tmp287__length1;
 9122 	TrackerSparqlContext* _tmp296_;
 9123 	TrackerSparqlContext* _tmp297_;
 9124 	TrackerSparqlContext* _tmp298_;
 9125 	GError * _inner_error_ = NULL;
 9126 #line 929 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9127 	g_return_val_if_fail (self != NULL, NULL);
 9128 #line 929 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9129 	g_return_val_if_fail (sql != NULL, NULL);
 9130 #line 930 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9131 	tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_BRACE, &_inner_error_);
 9132 #line 930 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9133 	if (_inner_error_ != NULL) {
 9134 #line 930 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9135 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 9136 #line 930 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9137 			g_propagate_error (error, _inner_error_);
 9138 #line 930 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9139 			return NULL;
 9140 #line 9136 "tracker-sparql-pattern.c"
 9141 		} else {
 9142 #line 930 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9143 			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);
 9144 #line 930 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9145 			g_clear_error (&_inner_error_);
 9146 #line 930 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9147 			return NULL;
 9148 #line 9144 "tracker-sparql-pattern.c"
 9149 		}
 9150 	}
 9151 #line 932 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9152 	_tmp0_ = tracker_sparql_pattern_current (self);
 9153 #line 932 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9154 	if (_tmp0_ == TRACKER_SPARQL_TOKEN_TYPE_SELECT) {
 9155 #line 9151 "tracker-sparql-pattern.c"
 9156 		GString* _tmp1_;
 9157 		TrackerSparqlSelectContext* _tmp2_ = NULL;
 9158 		TrackerSparqlSelectContext* _result_;
 9159 		TrackerSparqlSelectContext* _tmp3_;
 9160 		TrackerSparqlContext* _tmp4_;
 9161 		TrackerSparqlContext* _tmp5_;
 9162 		TrackerSparqlContext* _tmp6_;
 9163 		TrackerSparqlContext* _tmp7_;
 9164 		GHashTable* _tmp8_;
 9165 		GHashTable* _tmp9_;
 9166 		TrackerSparqlContext* _tmp10_;
 9167 		TrackerSparqlContext* _tmp11_;
 9168 		GDestroyNotify _tmp12_;
 9169 		GHashTable* _tmp13_;
 9170 		TrackerSparqlContext* _tmp14_;
 9171 		TrackerSparqlContext* _tmp15_;
 9172 		TrackerSparqlContext* _tmp16_;
 9173 #line 933 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9174 		_tmp1_ = sql;
 9175 #line 933 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9176 		_tmp2_ = tracker_sparql_pattern_translate_select (self, _tmp1_, TRUE, FALSE, &_inner_error_);
 9177 #line 933 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9178 		_result_ = _tmp2_;
 9179 #line 933 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9180 		if (_inner_error_ != NULL) {
 9181 #line 933 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9182 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 9183 #line 933 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9184 				g_propagate_error (error, _inner_error_);
 9185 #line 933 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9186 				return NULL;
 9187 #line 9183 "tracker-sparql-pattern.c"
 9188 			} else {
 9189 #line 933 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9190 				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);
 9191 #line 933 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9192 				g_clear_error (&_inner_error_);
 9193 #line 933 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9194 				return NULL;
 9195 #line 9191 "tracker-sparql-pattern.c"
 9196 			}
 9197 		}
 9198 #line 934 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9199 		_tmp3_ = _result_;
 9200 #line 934 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9201 		tracker_sparql_pattern_set_context (self, (TrackerSparqlContext*) _tmp3_);
 9202 #line 937 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9203 		_tmp4_ = tracker_sparql_pattern_get_context (self);
 9204 #line 937 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9205 		_tmp5_ = _tmp4_;
 9206 #line 937 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9207 		_tmp6_ = tracker_sparql_pattern_get_context (self);
 9208 #line 937 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9209 		_tmp7_ = _tmp6_;
 9210 #line 937 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9211 		_tmp8_ = _tmp7_->select_var_set;
 9212 #line 937 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9213 		_tmp9_ = _g_hash_table_ref0 (_tmp8_);
 9214 #line 937 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9215 		_g_hash_table_unref0 (_tmp5_->var_set);
 9216 #line 937 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9217 		_tmp5_->var_set = _tmp9_;
 9218 #line 938 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9219 		_tmp10_ = tracker_sparql_pattern_get_context (self);
 9220 #line 938 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9221 		_tmp11_ = _tmp10_;
 9222 #line 938 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9223 		_tmp12_ = g_object_unref;
 9224 #line 938 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9225 		_tmp13_ = g_hash_table_new_full (_tracker_sparql_variable_hash_ghash_func, _tracker_sparql_variable_equal_gequal_func, _tmp12_, NULL);
 9226 #line 938 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9227 		_g_hash_table_unref0 (_tmp11_->select_var_set);
 9228 #line 938 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9229 		_tmp11_->select_var_set = _tmp13_;
 9230 #line 940 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9231 		tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_BRACE, &_inner_error_);
 9232 #line 940 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9233 		if (_inner_error_ != NULL) {
 9234 #line 940 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9235 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 9236 #line 940 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9237 				g_propagate_error (error, _inner_error_);
 9238 #line 940 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9239 				_tracker_sparql_context_unref0 (_result_);
 9240 #line 940 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9241 				return NULL;
 9242 #line 9238 "tracker-sparql-pattern.c"
 9243 			} else {
 9244 #line 940 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9245 				_tracker_sparql_context_unref0 (_result_);
 9246 #line 940 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9247 				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);
 9248 #line 940 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9249 				g_clear_error (&_inner_error_);
 9250 #line 940 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9251 				return NULL;
 9252 #line 9248 "tracker-sparql-pattern.c"
 9253 			}
 9254 		}
 9255 #line 942 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9256 		_tmp14_ = tracker_sparql_pattern_get_context (self);
 9257 #line 942 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9258 		_tmp15_ = _tmp14_;
 9259 #line 942 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9260 		_tmp16_ = _tmp15_->parent_context;
 9261 #line 942 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9262 		tracker_sparql_pattern_set_context (self, _tmp16_);
 9263 #line 943 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9264 		result = (TrackerSparqlContext*) _result_;
 9265 #line 943 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9266 		return result;
 9267 #line 9263 "tracker-sparql-pattern.c"
 9268 	}
 9269 #line 946 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9270 	_tmp17_ = self->priv->query;
 9271 #line 946 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9272 	_tmp18_ = tracker_sparql_pattern_get_context (self);
 9273 #line 946 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9274 	_tmp19_ = _tmp18_;
 9275 #line 946 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9276 	_tmp20_ = tracker_sparql_context_new (_tmp17_, _tmp19_);
 9277 #line 946 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9278 	_result_ = _tmp20_;
 9279 #line 947 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9280 	_tmp21_ = _result_;
 9281 #line 947 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9282 	tracker_sparql_pattern_set_context (self, _tmp21_);
 9283 #line 949 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9284 	_tmp22_ = g_new0 (TrackerSourceLocation, 0);
 9285 #line 949 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9286 	filters = _tmp22_;
 9287 #line 949 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9288 	filters_length1 = 0;
 9289 #line 949 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9290 	_filters_size_ = filters_length1;
 9291 #line 951 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9292 	in_triples_block = FALSE;
 9293 #line 952 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9294 	in_group_graph_pattern = FALSE;
 9295 #line 953 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9296 	first_where = TRUE;
 9297 #line 954 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9298 	found_simple_optional = FALSE;
 9299 #line 955 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9300 	_tmp23_ = sql;
 9301 #line 955 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9302 	_tmp24_ = _tmp23_->len;
 9303 #line 955 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9304 	group_graph_pattern_start = (glong) _tmp24_;
 9305 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9306 	_tmp25_ = sql;
 9307 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9308 	_tmp26_ = group_graph_pattern_start;
 9309 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9310 	_tmp27_ = found_simple_optional;
 9311 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9312 	tracker_sparql_pattern_parse_triples (self, _tmp25_, _tmp26_, &in_triples_block, &first_where, &in_group_graph_pattern, _tmp27_, &_inner_error_);
 9313 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9314 	if (_inner_error_ != NULL) {
 9315 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9316 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 9317 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9318 			g_propagate_error (error, _inner_error_);
 9319 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9320 			filters = (g_free (filters), NULL);
 9321 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9322 			_tracker_sparql_context_unref0 (_result_);
 9323 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9324 			return NULL;
 9325 #line 9321 "tracker-sparql-pattern.c"
 9326 		} else {
 9327 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9328 			filters = (g_free (filters), NULL);
 9329 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9330 			_tracker_sparql_context_unref0 (_result_);
 9331 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9332 			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);
 9333 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9334 			g_clear_error (&_inner_error_);
 9335 #line 958 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9336 			return NULL;
 9337 #line 9333 "tracker-sparql-pattern.c"
 9338 		}
 9339 	}
 9340 #line 960 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9341 	while (TRUE) {
 9342 #line 9338 "tracker-sparql-pattern.c"
 9343 		gboolean _tmp28_ = FALSE;
 9344 		gboolean _tmp29_;
 9345 		GString* _tmp275_;
 9346 		glong _tmp276_;
 9347 		gboolean _tmp277_;
 9348 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9349 		_tmp28_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_OPTIONAL, &_inner_error_);
 9350 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9351 		_tmp29_ = _tmp28_;
 9352 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9353 		if (_inner_error_ != NULL) {
 9354 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9355 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 9356 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9357 				g_propagate_error (error, _inner_error_);
 9358 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9359 				filters = (g_free (filters), NULL);
 9360 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9361 				_tracker_sparql_context_unref0 (_result_);
 9362 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9363 				return NULL;
 9364 #line 9360 "tracker-sparql-pattern.c"
 9365 			} else {
 9366 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9367 				filters = (g_free (filters), NULL);
 9368 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9369 				_tracker_sparql_context_unref0 (_result_);
 9370 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9371 				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);
 9372 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9373 				g_clear_error (&_inner_error_);
 9374 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9375 				return NULL;
 9376 #line 9372 "tracker-sparql-pattern.c"
 9377 			}
 9378 		}
 9379 #line 962 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9380 		if (_tmp29_) {
 9381 #line 9377 "tracker-sparql-pattern.c"
 9382 			gboolean _tmp30_ = FALSE;
 9383 			gboolean _tmp31_;
 9384 			gboolean _tmp33_;
 9385 #line 963 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9386 			_tmp31_ = in_group_graph_pattern;
 9387 #line 963 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9388 			if (!_tmp31_) {
 9389 #line 9385 "tracker-sparql-pattern.c"
 9390 				gboolean _tmp32_ = FALSE;
 9391 #line 963 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9392 				_tmp32_ = tracker_sparql_pattern_is_simple_optional (self);
 9393 #line 963 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9394 				_tmp30_ = _tmp32_;
 9395 #line 9391 "tracker-sparql-pattern.c"
 9396 			} else {
 9397 #line 963 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9398 				_tmp30_ = FALSE;
 9399 #line 9395 "tracker-sparql-pattern.c"
 9400 			}
 9401 #line 963 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9402 			_tmp33_ = _tmp30_;
 9403 #line 963 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9404 			if (_tmp33_) {
 9405 #line 9401 "tracker-sparql-pattern.c"
 9406 				GString* _tmp34_;
 9407 				gboolean _tmp35_ = FALSE;
 9408 				gchar* _tmp36_ = NULL;
 9409 				gchar* _tmp37_;
 9410 				GString* _tmp38_;
 9411 #line 965 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9412 				found_simple_optional = TRUE;
 9413 #line 966 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9414 				tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_OPEN_BRACE, &_inner_error_);
 9415 #line 966 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9416 				if (_inner_error_ != NULL) {
 9417 #line 966 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9418 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 9419 #line 966 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9420 						g_propagate_error (error, _inner_error_);
 9421 #line 966 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9422 						filters = (g_free (filters), NULL);
 9423 #line 966 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9424 						_tracker_sparql_context_unref0 (_result_);
 9425 #line 966 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9426 						return NULL;
 9427 #line 9423 "tracker-sparql-pattern.c"
 9428 					} else {
 9429 #line 966 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9430 						filters = (g_free (filters), NULL);
 9431 #line 966 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9432 						_tracker_sparql_context_unref0 (_result_);
 9433 #line 966 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9434 						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);
 9435 #line 966 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9436 						g_clear_error (&_inner_error_);
 9437 #line 966 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9438 						return NULL;
 9439 #line 9435 "tracker-sparql-pattern.c"
 9440 					}
 9441 				}
 9442 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9443 				_tmp34_ = sql;
 9444 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9445 				_tmp36_ = tracker_sparql_pattern_parse_var_or_term (self, _tmp34_, &_tmp35_, &_inner_error_);
 9446 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9447 				self->priv->current_subject_is_var = _tmp35_;
 9448 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9449 				_tmp37_ = _tmp36_;
 9450 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9451 				if (_inner_error_ != NULL) {
 9452 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9453 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 9454 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9455 						g_propagate_error (error, _inner_error_);
 9456 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9457 						filters = (g_free (filters), NULL);
 9458 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9459 						_tracker_sparql_context_unref0 (_result_);
 9460 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9461 						return NULL;
 9462 #line 9458 "tracker-sparql-pattern.c"
 9463 					} else {
 9464 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9465 						filters = (g_free (filters), NULL);
 9466 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9467 						_tracker_sparql_context_unref0 (_result_);
 9468 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9469 						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);
 9470 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9471 						g_clear_error (&_inner_error_);
 9472 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9473 						return NULL;
 9474 #line 9470 "tracker-sparql-pattern.c"
 9475 					}
 9476 				}
 9477 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9478 				_g_free0 (self->priv->current_subject);
 9479 #line 968 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9480 				self->priv->current_subject = _tmp37_;
 9481 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9482 				_tmp38_ = sql;
 9483 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9484 				tracker_sparql_pattern_parse_property_list_not_empty (self, _tmp38_, TRUE, &_inner_error_);
 9485 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9486 				if (_inner_error_ != NULL) {
 9487 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9488 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 9489 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9490 						g_propagate_error (error, _inner_error_);
 9491 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9492 						filters = (g_free (filters), NULL);
 9493 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9494 						_tracker_sparql_context_unref0 (_result_);
 9495 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9496 						return NULL;
 9497 #line 9493 "tracker-sparql-pattern.c"
 9498 					} else {
 9499 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9500 						filters = (g_free (filters), NULL);
 9501 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9502 						_tracker_sparql_context_unref0 (_result_);
 9503 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9504 						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);
 9505 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9506 						g_clear_error (&_inner_error_);
 9507 #line 969 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9508 						return NULL;
 9509 #line 9505 "tracker-sparql-pattern.c"
 9510 					}
 9511 				}
 9512 #line 971 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9513 				tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_DOT, &_inner_error_);
 9514 #line 971 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9515 				if (_inner_error_ != NULL) {
 9516 #line 971 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9517 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 9518 #line 971 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9519 						g_propagate_error (error, _inner_error_);
 9520 #line 971 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9521 						filters = (g_free (filters), NULL);
 9522 #line 971 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9523 						_tracker_sparql_context_unref0 (_result_);
 9524 #line 971 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9525 						return NULL;
 9526 #line 9522 "tracker-sparql-pattern.c"
 9527 					} else {
 9528 #line 971 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9529 						filters = (g_free (filters), NULL);
 9530 #line 971 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9531 						_tracker_sparql_context_unref0 (_result_);
 9532 #line 971 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9533 						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);
 9534 #line 971 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9535 						g_clear_error (&_inner_error_);
 9536 #line 971 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9537 						return NULL;
 9538 #line 9534 "tracker-sparql-pattern.c"
 9539 					}
 9540 				}
 9541 #line 972 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9542 				tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_BRACE, &_inner_error_);
 9543 #line 972 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9544 				if (_inner_error_ != NULL) {
 9545 #line 972 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9546 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 9547 #line 972 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9548 						g_propagate_error (error, _inner_error_);
 9549 #line 972 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9550 						filters = (g_free (filters), NULL);
 9551 #line 972 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9552 						_tracker_sparql_context_unref0 (_result_);
 9553 #line 972 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9554 						return NULL;
 9555 #line 9551 "tracker-sparql-pattern.c"
 9556 					} else {
 9557 #line 972 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9558 						filters = (g_free (filters), NULL);
 9559 #line 972 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9560 						_tracker_sparql_context_unref0 (_result_);
 9561 #line 972 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9562 						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);
 9563 #line 972 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9564 						g_clear_error (&_inner_error_);
 9565 #line 972 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9566 						return NULL;
 9567 #line 9563 "tracker-sparql-pattern.c"
 9568 					}
 9569 				}
 9570 			} else {
 9571 				gboolean _tmp39_ = FALSE;
 9572 				gboolean _tmp40_;
 9573 				gboolean _tmp42_;
 9574 				gboolean _tmp47_;
 9575 				GString* _tmp48_;
 9576 				GString* select;
 9577 				gint _tmp49_;
 9578 				gint _tmp50_;
 9579 				gint left_index;
 9580 				gint _tmp51_;
 9581 				gint _tmp52_;
 9582 				gint right_index;
 9583 				GString* _tmp53_;
 9584 				gint _tmp54_;
 9585 				GString* _tmp55_;
 9586 				TrackerSparqlContext* _tmp56_ = NULL;
 9587 				TrackerSparqlContext* _tmp57_;
 9588 				TrackerSparqlContext* _tmp58_;
 9589 				GString* _tmp59_;
 9590 				gint _tmp60_;
 9591 				gboolean first;
 9592 				gboolean first_common;
 9593 				TrackerSparqlContext* _tmp61_;
 9594 				TrackerSparqlContext* _tmp62_;
 9595 				GHashTable* _tmp63_;
 9596 				GList* _tmp64_ = NULL;
 9597 				TrackerSparqlContext* _tmp182_;
 9598 				TrackerSparqlContext* _tmp183_;
 9599 				TrackerSparqlContext* _tmp184_;
 9600 				GHashTable* _tmp185_;
 9601 				GList* _tmp186_ = NULL;
 9602 				gboolean _tmp212_;
 9603 				TrackerSparqlContext* _tmp214_;
 9604 				TrackerSparqlContext* _tmp215_;
 9605 				TrackerSparqlContext* _tmp216_;
 9606 				GString* _tmp217_;
 9607 				GString* _tmp218_;
 9608 				glong _tmp219_;
 9609 				GString* _tmp220_;
 9610 				const gchar* _tmp221_;
 9611 				GString* _tmp222_;
 9612 				glong _tmp223_;
 9613 				GString* _tmp224_;
 9614 #line 974 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9615 				_tmp40_ = in_triples_block;
 9616 #line 974 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9617 				if (!_tmp40_) {
 9618 #line 9614 "tracker-sparql-pattern.c"
 9619 					gboolean _tmp41_;
 9620 #line 974 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9621 					_tmp41_ = in_group_graph_pattern;
 9622 #line 974 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9623 					_tmp39_ = !_tmp41_;
 9624 #line 9620 "tracker-sparql-pattern.c"
 9625 				} else {
 9626 #line 974 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9627 					_tmp39_ = FALSE;
 9628 #line 9624 "tracker-sparql-pattern.c"
 9629 				}
 9630 #line 974 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9631 				_tmp42_ = _tmp39_;
 9632 #line 974 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9633 				if (_tmp42_) {
 9634 #line 9630 "tracker-sparql-pattern.c"
 9635 					GString* _tmp43_;
 9636 #line 977 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9637 					_tmp43_ = sql;
 9638 #line 977 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9639 					g_string_append (_tmp43_, "SELECT 1");
 9640 #line 9636 "tracker-sparql-pattern.c"
 9641 				} else {
 9642 					gboolean _tmp44_;
 9643 #line 978 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9644 					_tmp44_ = in_triples_block;
 9645 #line 978 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9646 					if (_tmp44_) {
 9647 #line 9643 "tracker-sparql-pattern.c"
 9648 						GString* _tmp45_;
 9649 						gboolean _tmp46_;
 9650 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9651 						_tmp45_ = sql;
 9652 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9653 						_tmp46_ = in_group_graph_pattern;
 9654 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9655 						tracker_sparql_pattern_end_triples_block (self, _tmp45_, &first_where, _tmp46_, &_inner_error_);
 9656 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9657 						if (_inner_error_ != NULL) {
 9658 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9659 							if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 9660 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9661 								g_propagate_error (error, _inner_error_);
 9662 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9663 								filters = (g_free (filters), NULL);
 9664 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9665 								_tracker_sparql_context_unref0 (_result_);
 9666 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9667 								return NULL;
 9668 #line 9664 "tracker-sparql-pattern.c"
 9669 							} else {
 9670 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9671 								filters = (g_free (filters), NULL);
 9672 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9673 								_tracker_sparql_context_unref0 (_result_);
 9674 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9675 								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);
 9676 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9677 								g_clear_error (&_inner_error_);
 9678 #line 979 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9679 								return NULL;
 9680 #line 9676 "tracker-sparql-pattern.c"
 9681 							}
 9682 						}
 9683 #line 980 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9684 						in_triples_block = FALSE;
 9685 #line 9681 "tracker-sparql-pattern.c"
 9686 					}
 9687 				}
 9688 #line 982 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9689 				_tmp47_ = in_group_graph_pattern;
 9690 #line 982 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9691 				if (!_tmp47_) {
 9692 #line 983 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9693 					in_group_graph_pattern = TRUE;
 9694 #line 9690 "tracker-sparql-pattern.c"
 9695 				}
 9696 #line 986 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9697 				_tmp48_ = g_string_new ("SELECT ");
 9698 #line 986 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9699 				select = _tmp48_;
 9700 #line 988 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9701 				_tmp49_ = self->priv->next_table_index;
 9702 #line 988 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9703 				self->priv->next_table_index = _tmp49_ + 1;
 9704 #line 988 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9705 				_tmp50_ = self->priv->next_table_index;
 9706 #line 988 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9707 				left_index = _tmp50_;
 9708 #line 989 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9709 				_tmp51_ = self->priv->next_table_index;
 9710 #line 989 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9711 				self->priv->next_table_index = _tmp51_ + 1;
 9712 #line 989 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9713 				_tmp52_ = self->priv->next_table_index;
 9714 #line 989 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9715 				right_index = _tmp52_;
 9716 #line 991 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9717 				_tmp53_ = sql;
 9718 #line 991 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9719 				_tmp54_ = left_index;
 9720 #line 991 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9721 				g_string_append_printf (_tmp53_, ") AS t%d_g LEFT JOIN (", _tmp54_);
 9722 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9723 				_tmp55_ = sql;
 9724 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9725 				_tmp56_ = tracker_sparql_pattern_translate_group_graph_pattern (self, _tmp55_, &_inner_error_);
 9726 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9727 				_tmp57_ = _tmp56_;
 9728 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9729 				if (_inner_error_ != NULL) {
 9730 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9731 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
 9732 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9733 						g_propagate_error (error, _inner_error_);
 9734 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9735 						_g_string_free0 (select);
 9736 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9737 						filters = (g_free (filters), NULL);
 9738 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9739 						_tracker_sparql_context_unref0 (_result_);
 9740 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9741 						return NULL;
 9742 #line 9738 "tracker-sparql-pattern.c"
 9743 					} else {
 9744 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9745 						_g_string_free0 (select);
 9746 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9747 						filters = (g_free (filters), NULL);
 9748 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9749 						_tracker_sparql_context_unref0 (_result_);
 9750 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9751 						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);
 9752 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9753 						g_clear_error (&_inner_error_);
 9754 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9755 						return NULL;
 9756 #line 9752 "tracker-sparql-pattern.c"
 9757 					}
 9758 				}
 9759 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9760 				_tmp58_ = _tmp57_;
 9761 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9762 				tracker_sparql_pattern_set_context (self, _tmp58_);
 9763 #line 993 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9764 				_tracker_sparql_context_unref0 (_tmp58_);
 9765 #line 995 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9766 				_tmp59_ = sql;
 9767 #line 995 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9768 				_tmp60_ = right_index;
 9769 #line 995 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9770 				g_string_append_printf (_tmp59_, ") AS t%d_g", _tmp60_);
 9771 #line 997 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9772 				first = TRUE;
 9773 #line 998 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9774 				first_common = TRUE;
 9775 #line 999 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9776 				_tmp61_ = tracker_sparql_pattern_get_context (self);
 9777 #line 999 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9778 				_tmp62_ = _tmp61_;
 9779 #line 999 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9780 				_tmp63_ = _tmp62_->var_set;
 9781 #line 999 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9782 				_tmp64_ = g_hash_table_get_keys (_tmp63_);
 9783 #line 9779 "tracker-sparql-pattern.c"
 9784 				{
 9785 					GList* v_collection = NULL;
 9786 					GList* v_it = NULL;
 9787 #line 999 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9788 					v_collection = _tmp64_;
 9789 #line 999 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9790 					for (v_it = v_collection; v_it != NULL; v_it = v_it->next) {
 9791 #line 9787 "tracker-sparql-pattern.c"
 9792 						TrackerSparqlVariable* v = NULL;
 9793 #line 999 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9794 						v = (TrackerSparqlVariable*) v_it->data;
 9795 #line 9791 "tracker-sparql-pattern.c"
 9796 						{
 9797 							gboolean _tmp65_;
 9798 							TrackerSparqlContext* _tmp67_;
 9799 							TrackerSparqlContext* _tmp68_;
 9800 							TrackerSparqlContext* _tmp69_;
 9801 							GHashTable* _tmp70_;
 9802 							TrackerSparqlVariable* _tmp71_;
 9803 							gconstpointer _tmp72_ = NULL;
 9804 							gint old_state;
 9805 							gint _tmp73_;
 9806 #line 1000 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9807 							_tmp65_ = first;
 9808 #line 1000 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9809 							if (_tmp65_) {
 9810 #line 1001 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9811 								first = FALSE;
 9812 #line 9808 "tracker-sparql-pattern.c"
 9813 							} else {
 9814 								GString* _tmp66_;
 9815 #line 1003 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9816 								_tmp66_ = select;
 9817 #line 1003 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9818 								g_string_append (_tmp66_, ", ");
 9819 #line 9815 "tracker-sparql-pattern.c"
 9820 							}
 9821 #line 1006 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9822 							_tmp67_ = tracker_sparql_pattern_get_context (self);
 9823 #line 1006 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9824 							_tmp68_ = _tmp67_;
 9825 #line 1006 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9826 							_tmp69_ = _tmp68_->parent_context;
 9827 #line 1006 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9828 							_tmp70_ = _tmp69_->var_set;
 9829 #line 1006 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9830 							_tmp71_ = v;
 9831 #line 1006 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9832 							_tmp72_ = g_hash_table_lookup (_tmp70_, _tmp71_);
 9833 #line 1006 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9834 							old_state = (gint) ((gintptr) _tmp72_);
 9835 #line 1007 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9836 							_tmp73_ = old_state;
 9837 #line 1007 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9838 							if (_tmp73_ == 0) {
 9839 #line 9835 "tracker-sparql-pattern.c"
 9840 								TrackerSparqlContext* _tmp74_;
 9841 								TrackerSparqlContext* _tmp75_;
 9842 								TrackerSparqlContext* _tmp76_;
 9843 								GHashTable* _tmp77_;
 9844 								TrackerSparqlVariable* _tmp78_;
 9845 								TrackerSparqlVariable* _tmp79_;
 9846 								GString* _tmp80_;
 9847 								gint _tmp81_;
 9848 								TrackerSparqlVariable* _tmp82_;
 9849 								const gchar* _tmp83_;
 9850 								const gchar* _tmp84_;
 9851 								TrackerSparqlVariable* _tmp85_;
 9852 								TrackerSparqlVariableBinding* _tmp86_;
 9853 								TrackerPropertyType _tmp87_;
 9854 #line 1009 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9855 								_tmp74_ = tracker_sparql_pattern_get_context (self);
 9856 #line 1009 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9857 								_tmp75_ = _tmp74_;
 9858 #line 1009 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9859 								_tmp76_ = _tmp75_->parent_context;
 9860 #line 1009 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9861 								_tmp77_ = _tmp76_->var_set;
 9862 #line 1009 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9863 								_tmp78_ = v;
 9864 #line 1009 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9865 								_tmp79_ = _g_object_ref0 (_tmp78_);
 9866 #line 1009 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9867 								g_hash_table_insert (_tmp77_, _tmp79_, (gpointer) ((gintptr) ((gint) TRACKER_SPARQL_VARIABLE_STATE_OPTIONAL)));
 9868 #line 1010 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9869 								_tmp80_ = select;
 9870 #line 1010 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9871 								_tmp81_ = right_index;
 9872 #line 1010 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9873 								_tmp82_ = v;
 9874 #line 1010 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9875 								_tmp83_ = tracker_sparql_variable_get_sql_expression (_tmp82_);
 9876 #line 1010 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9877 								_tmp84_ = _tmp83_;
 9878 #line 1010 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9879 								g_string_append_printf (_tmp80_, "t%d_g.%s", _tmp81_, _tmp84_);
 9880 #line 1012 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9881 								_tmp85_ = v;
 9882 #line 1012 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9883 								_tmp86_ = _tmp85_->binding;
 9884 #line 1012 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9885 								_tmp87_ = ((TrackerSparqlDataBinding*) _tmp86_)->data_type;
 9886 #line 1012 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9887 								if (_tmp87_ == TRACKER_PROPERTY_TYPE_DATETIME) {
 9888 #line 9884 "tracker-sparql-pattern.c"
 9889 									GString* _tmp88_;
 9890 									gint _tmp89_;
 9891 									TrackerSparqlVariable* _tmp90_;
 9892 									gchar* _tmp91_ = NULL;
 9893 									gchar* _tmp92_;
 9894 									GString* _tmp93_;
 9895 									gint _tmp94_;
 9896 									TrackerSparqlVariable* _tmp95_;
 9897 									gchar* _tmp96_ = NULL;
 9898 									gchar* _tmp97_;
 9899 #line 1013 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9900 									_tmp88_ = select;
 9901 #line 1013 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9902 									_tmp89_ = right_index;
 9903 #line 1013 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9904 									_tmp90_ = v;
 9905 #line 1013 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9906 									_tmp91_ = tracker_sparql_variable_get_extra_sql_expression (_tmp90_, "localDate");
 9907 #line 1013 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9908 									_tmp92_ = _tmp91_;
 9909 #line 1013 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9910 									g_string_append_printf (_tmp88_, ", t%d_g.%s", _tmp89_, _tmp92_);
 9911 #line 1013 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9912 									_g_free0 (_tmp92_);
 9913 #line 1014 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9914 									_tmp93_ = select;
 9915 #line 1014 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9916 									_tmp94_ = right_index;
 9917 #line 1014 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9918 									_tmp95_ = v;
 9919 #line 1014 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9920 									_tmp96_ = tracker_sparql_variable_get_extra_sql_expression (_tmp95_, "localTime");
 9921 #line 1014 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9922 									_tmp97_ = _tmp96_;
 9923 #line 1014 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9924 									g_string_append_printf (_tmp93_, ", t%d_g.%s", _tmp94_, _tmp97_);
 9925 #line 1014 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9926 									_g_free0 (_tmp97_);
 9927 #line 9923 "tracker-sparql-pattern.c"
 9928 								}
 9929 							} else {
 9930 								gboolean _tmp98_;
 9931 								gint _tmp101_;
 9932 #line 1017 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9933 								_tmp98_ = first_common;
 9934 #line 1017 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9935 								if (_tmp98_) {
 9936 #line 9932 "tracker-sparql-pattern.c"
 9937 									GString* _tmp99_;
 9938 #line 1018 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9939 									_tmp99_ = sql;
 9940 #line 1018 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9941 									g_string_append (_tmp99_, " ON ");
 9942 #line 1019 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9943 									first_common = FALSE;
 9944 #line 9940 "tracker-sparql-pattern.c"
 9945 								} else {
 9946 									GString* _tmp100_;
 9947 #line 1021 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9948 									_tmp100_ = sql;
 9949 #line 1021 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9950 									g_string_append (_tmp100_, " AND ");
 9951 #line 9947 "tracker-sparql-pattern.c"
 9952 								}
 9953 #line 1024 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9954 								_tmp101_ = old_state;
 9955 #line 1024 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9956 								if (_tmp101_ == ((gint) TRACKER_SPARQL_VARIABLE_STATE_BOUND)) {
 9957 #line 9953 "tracker-sparql-pattern.c"
 9958 									GString* _tmp102_;
 9959 									gint _tmp103_;
 9960 									TrackerSparqlVariable* _tmp104_;
 9961 									const gchar* _tmp105_;
 9962 									const gchar* _tmp106_;
 9963 									gint _tmp107_;
 9964 									TrackerSparqlVariable* _tmp108_;
 9965 									const gchar* _tmp109_;
 9966 									const gchar* _tmp110_;
 9967 									GString* _tmp111_;
 9968 									gint _tmp112_;
 9969 									TrackerSparqlVariable* _tmp113_;
 9970 									const gchar* _tmp114_;
 9971 									const gchar* _tmp115_;
 9972 									TrackerSparqlVariable* _tmp116_;
 9973 									TrackerSparqlVariableBinding* _tmp117_;
 9974 									TrackerPropertyType _tmp118_;
 9975 #line 1026 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9976 									_tmp102_ = sql;
 9977 #line 1026 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9978 									_tmp103_ = left_index;
 9979 #line 1026 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9980 									_tmp104_ = v;
 9981 #line 1026 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9982 									_tmp105_ = tracker_sparql_variable_get_sql_expression (_tmp104_);
 9983 #line 1026 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9984 									_tmp106_ = _tmp105_;
 9985 #line 1026 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9986 									_tmp107_ = right_index;
 9987 #line 1026 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9988 									_tmp108_ = v;
 9989 #line 1026 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9990 									_tmp109_ = tracker_sparql_variable_get_sql_expression (_tmp108_);
 9991 #line 1026 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9992 									_tmp110_ = _tmp109_;
 9993 #line 1026 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9994 									g_string_append_printf (_tmp102_, "t%d_g.%s = t%d_g.%s", _tmp103_, _tmp106_, _tmp107_, _tmp110_);
 9995 #line 1027 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9996 									_tmp111_ = select;
 9997 #line 1027 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
 9998 									_tmp112_ = left_index;
 9999 #line 1027 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10000 									_tmp113_ = v;
10001 #line 1027 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10002 									_tmp114_ = tracker_sparql_variable_get_sql_expression (_tmp113_);
10003 #line 1027 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10004 									_tmp115_ = _tmp114_;
10005 #line 1027 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10006 									g_string_append_printf (_tmp111_, "t%d_g.%s", _tmp112_, _tmp115_);
10007 #line 1029 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10008 									_tmp116_ = v;
10009 #line 1029 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10010 									_tmp117_ = _tmp116_->binding;
10011 #line 1029 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10012 									_tmp118_ = ((TrackerSparqlDataBinding*) _tmp117_)->data_type;
10013 #line 1029 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10014 									if (_tmp118_ == TRACKER_PROPERTY_TYPE_DATETIME) {
10015 #line 10011 "tracker-sparql-pattern.c"
10016 										GString* _tmp119_;
10017 										gint _tmp120_;
10018 										TrackerSparqlVariable* _tmp121_;
10019 										gchar* _tmp122_ = NULL;
10020 										gchar* _tmp123_;
10021 										GString* _tmp124_;
10022 										gint _tmp125_;
10023 										TrackerSparqlVariable* _tmp126_;
10024 										gchar* _tmp127_ = NULL;
10025 										gchar* _tmp128_;
10026 #line 1030 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10027 										_tmp119_ = select;
10028 #line 1030 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10029 										_tmp120_ = left_index;
10030 #line 1030 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10031 										_tmp121_ = v;
10032 #line 1030 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10033 										_tmp122_ = tracker_sparql_variable_get_extra_sql_expression (_tmp121_, "localDate");
10034 #line 1030 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10035 										_tmp123_ = _tmp122_;
10036 #line 1030 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10037 										g_string_append_printf (_tmp119_, ", t%d_g.%s", _tmp120_, _tmp123_);
10038 #line 1030 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10039 										_g_free0 (_tmp123_);
10040 #line 1031 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10041 										_tmp124_ = select;
10042 #line 1031 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10043 										_tmp125_ = left_index;
10044 #line 1031 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10045 										_tmp126_ = v;
10046 #line 1031 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10047 										_tmp127_ = tracker_sparql_variable_get_extra_sql_expression (_tmp126_, "localTime");
10048 #line 1031 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10049 										_tmp128_ = _tmp127_;
10050 #line 1031 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10051 										g_string_append_printf (_tmp124_, ", t%d_g.%s", _tmp125_, _tmp128_);
10052 #line 1031 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10053 										_g_free0 (_tmp128_);
10054 #line 10050 "tracker-sparql-pattern.c"
10055 									}
10056 								} else {
10057 									gint _tmp129_;
10058 #line 1033 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10059 									_tmp129_ = old_state;
10060 #line 1033 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10061 									if (_tmp129_ == ((gint) TRACKER_SPARQL_VARIABLE_STATE_OPTIONAL)) {
10062 #line 10058 "tracker-sparql-pattern.c"
10063 										GString* _tmp130_;
10064 										gint _tmp131_;
10065 										TrackerSparqlVariable* _tmp132_;
10066 										const gchar* _tmp133_;
10067 										const gchar* _tmp134_;
10068 										gint _tmp135_;
10069 										TrackerSparqlVariable* _tmp136_;
10070 										const gchar* _tmp137_;
10071 										const gchar* _tmp138_;
10072 										gint _tmp139_;
10073 										TrackerSparqlVariable* _tmp140_;
10074 										const gchar* _tmp141_;
10075 										const gchar* _tmp142_;
10076 										GString* _tmp143_;
10077 										gint _tmp144_;
10078 										TrackerSparqlVariable* _tmp145_;
10079 										const gchar* _tmp146_;
10080 										const gchar* _tmp147_;
10081 										gint _tmp148_;
10082 										TrackerSparqlVariable* _tmp149_;
10083 										const gchar* _tmp150_;
10084 										const gchar* _tmp151_;
10085 										TrackerSparqlVariable* _tmp152_;
10086 										const gchar* _tmp153_;
10087 										const gchar* _tmp154_;
10088 										TrackerSparqlVariable* _tmp155_;
10089 										TrackerSparqlVariableBinding* _tmp156_;
10090 										TrackerPropertyType _tmp157_;
10091 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10092 										_tmp130_ = sql;
10093 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10094 										_tmp131_ = left_index;
10095 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10096 										_tmp132_ = v;
10097 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10098 										_tmp133_ = tracker_sparql_variable_get_sql_expression (_tmp132_);
10099 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10100 										_tmp134_ = _tmp133_;
10101 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10102 										_tmp135_ = left_index;
10103 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10104 										_tmp136_ = v;
10105 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10106 										_tmp137_ = tracker_sparql_variable_get_sql_expression (_tmp136_);
10107 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10108 										_tmp138_ = _tmp137_;
10109 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10110 										_tmp139_ = right_index;
10111 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10112 										_tmp140_ = v;
10113 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10114 										_tmp141_ = tracker_sparql_variable_get_sql_expression (_tmp140_);
10115 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10116 										_tmp142_ = _tmp141_;
10117 #line 1035 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10118 										g_string_append_printf (_tmp130_, "(t%d_g.%s IS NULL OR t%d_g.%s = t%d_g.%s)", _tmp131_, _tmp134_, _tmp135_, _tmp138_, _tmp139_, _tmp142_);
10119 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10120 										_tmp143_ = select;
10121 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10122 										_tmp144_ = left_index;
10123 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10124 										_tmp145_ = v;
10125 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10126 										_tmp146_ = tracker_sparql_variable_get_sql_expression (_tmp145_);
10127 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10128 										_tmp147_ = _tmp146_;
10129 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10130 										_tmp148_ = right_index;
10131 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10132 										_tmp149_ = v;
10133 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10134 										_tmp150_ = tracker_sparql_variable_get_sql_expression (_tmp149_);
10135 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10136 										_tmp151_ = _tmp150_;
10137 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10138 										_tmp152_ = v;
10139 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10140 										_tmp153_ = tracker_sparql_variable_get_sql_expression (_tmp152_);
10141 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10142 										_tmp154_ = _tmp153_;
10143 #line 1036 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10144 										g_string_append_printf (_tmp143_, "COALESCE (t%d_g.%s, t%d_g.%s) AS %s", _tmp144_, _tmp147_, _tmp148_, _tmp151_, _tmp154_);
10145 #line 1038 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10146 										_tmp155_ = v;
10147 #line 1038 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10148 										_tmp156_ = _tmp155_->binding;
10149 #line 1038 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10150 										_tmp157_ = ((TrackerSparqlDataBinding*) _tmp156_)->data_type;
10151 #line 1038 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10152 										if (_tmp157_ == TRACKER_PROPERTY_TYPE_DATETIME) {
10153 #line 10149 "tracker-sparql-pattern.c"
10154 											GString* _tmp158_;
10155 											gint _tmp159_;
10156 											TrackerSparqlVariable* _tmp160_;
10157 											gchar* _tmp161_ = NULL;
10158 											gchar* _tmp162_;
10159 											gint _tmp163_;
10160 											TrackerSparqlVariable* _tmp164_;
10161 											gchar* _tmp165_ = NULL;
10162 											gchar* _tmp166_;
10163 											TrackerSparqlVariable* _tmp167_;
10164 											gchar* _tmp168_ = NULL;
10165 											gchar* _tmp169_;
10166 											GString* _tmp170_;
10167 											gint _tmp171_;
10168 											TrackerSparqlVariable* _tmp172_;
10169 											gchar* _tmp173_ = NULL;
10170 											gchar* _tmp174_;
10171 											gint _tmp175_;
10172 											TrackerSparqlVariable* _tmp176_;
10173 											gchar* _tmp177_ = NULL;
10174 											gchar* _tmp178_;
10175 											TrackerSparqlVariable* _tmp179_;
10176 											gchar* _tmp180_ = NULL;
10177 											gchar* _tmp181_;
10178 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10179 											_tmp158_ = select;
10180 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10181 											_tmp159_ = left_index;
10182 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10183 											_tmp160_ = v;
10184 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10185 											_tmp161_ = tracker_sparql_variable_get_extra_sql_expression (_tmp160_, "localDate");
10186 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10187 											_tmp162_ = _tmp161_;
10188 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10189 											_tmp163_ = right_index;
10190 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10191 											_tmp164_ = v;
10192 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10193 											_tmp165_ = tracker_sparql_variable_get_extra_sql_expression (_tmp164_, "localDate");
10194 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10195 											_tmp166_ = _tmp165_;
10196 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10197 											_tmp167_ = v;
10198 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10199 											_tmp168_ = tracker_sparql_variable_get_extra_sql_expression (_tmp167_, "localDate");
10200 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10201 											_tmp169_ = _tmp168_;
10202 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10203 											g_string_append_printf (_tmp158_, ", COALESCE (t%d_g.%s, t%d_g.%s) AS %s", _tmp159_, _tmp162_, _tmp163_, _tmp166_, _tmp169_);
10204 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10205 											_g_free0 (_tmp169_);
10206 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10207 											_g_free0 (_tmp166_);
10208 #line 1039 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10209 											_g_free0 (_tmp162_);
10210 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10211 											_tmp170_ = select;
10212 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10213 											_tmp171_ = left_index;
10214 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10215 											_tmp172_ = v;
10216 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10217 											_tmp173_ = tracker_sparql_variable_get_extra_sql_expression (_tmp172_, "localTime");
10218 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10219 											_tmp174_ = _tmp173_;
10220 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10221 											_tmp175_ = right_index;
10222 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10223 											_tmp176_ = v;
10224 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10225 											_tmp177_ = tracker_sparql_variable_get_extra_sql_expression (_tmp176_, "localTime");
10226 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10227 											_tmp178_ = _tmp177_;
10228 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10229 											_tmp179_ = v;
10230 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10231 											_tmp180_ = tracker_sparql_variable_get_extra_sql_expression (_tmp179_, "localTime");
10232 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10233 											_tmp181_ = _tmp180_;
10234 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10235 											g_string_append_printf (_tmp170_, ", COALESCE (t%d_g.%s, t%d_g.%s) AS %s", _tmp171_, _tmp174_, _tmp175_, _tmp178_, _tmp181_);
10236 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10237 											_g_free0 (_tmp181_);
10238 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10239 											_g_free0 (_tmp178_);
10240 #line 1040 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10241 											_g_free0 (_tmp174_);
10242 #line 10238 "tracker-sparql-pattern.c"
10243 										}
10244 									}
10245 								}
10246 							}
10247 						}
10248 					}
10249 #line 999 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10250 					_g_list_free0 (v_collection);
10251 #line 10247 "tracker-sparql-pattern.c"
10252 				}
10253 #line 1045 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10254 				_tmp182_ = tracker_sparql_pattern_get_context (self);
10255 #line 1045 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10256 				_tmp183_ = _tmp182_;
10257 #line 1045 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10258 				_tmp184_ = _tmp183_->parent_context;
10259 #line 1045 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10260 				_tmp185_ = _tmp184_->var_set;
10261 #line 1045 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10262 				_tmp186_ = g_hash_table_get_keys (_tmp185_);
10263 #line 10259 "tracker-sparql-pattern.c"
10264 				{
10265 					GList* v_collection = NULL;
10266 					GList* v_it = NULL;
10267 #line 1045 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10268 					v_collection = _tmp186_;
10269 #line 1045 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10270 					for (v_it = v_collection; v_it != NULL; v_it = v_it->next) {
10271 #line 10267 "tracker-sparql-pattern.c"
10272 						TrackerSparqlVariable* v = NULL;
10273 #line 1045 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10274 						v = (TrackerSparqlVariable*) v_it->data;
10275 #line 10271 "tracker-sparql-pattern.c"
10276 						{
10277 							TrackerSparqlContext* _tmp187_;
10278 							TrackerSparqlContext* _tmp188_;
10279 							GHashTable* _tmp189_;
10280 							TrackerSparqlVariable* _tmp190_;
10281 							gconstpointer _tmp191_ = NULL;
10282 #line 1046 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10283 							_tmp187_ = tracker_sparql_pattern_get_context (self);
10284 #line 1046 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10285 							_tmp188_ = _tmp187_;
10286 #line 1046 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10287 							_tmp189_ = _tmp188_->var_set;
10288 #line 1046 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10289 							_tmp190_ = v;
10290 #line 1046 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10291 							_tmp191_ = g_hash_table_lookup (_tmp189_, _tmp190_);
10292 #line 1046 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10293 							if (((gint) ((gintptr) _tmp191_)) == 0) {
10294 #line 10290 "tracker-sparql-pattern.c"
10295 								gboolean _tmp192_;
10296 								GString* _tmp194_;
10297 								gint _tmp195_;
10298 								TrackerSparqlVariable* _tmp196_;
10299 								const gchar* _tmp197_;
10300 								const gchar* _tmp198_;
10301 								TrackerSparqlVariable* _tmp199_;
10302 								TrackerSparqlVariableBinding* _tmp200_;
10303 								TrackerPropertyType _tmp201_;
10304 #line 1048 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10305 								_tmp192_ = first;
10306 #line 1048 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10307 								if (_tmp192_) {
10308 #line 1049 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10309 									first = FALSE;
10310 #line 10306 "tracker-sparql-pattern.c"
10311 								} else {
10312 									GString* _tmp193_;
10313 #line 1051 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10314 									_tmp193_ = select;
10315 #line 1051 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10316 									g_string_append (_tmp193_, ", ");
10317 #line 10313 "tracker-sparql-pattern.c"
10318 								}
10319 #line 1054 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10320 								_tmp194_ = select;
10321 #line 1054 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10322 								_tmp195_ = left_index;
10323 #line 1054 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10324 								_tmp196_ = v;
10325 #line 1054 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10326 								_tmp197_ = tracker_sparql_variable_get_sql_expression (_tmp196_);
10327 #line 1054 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10328 								_tmp198_ = _tmp197_;
10329 #line 1054 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10330 								g_string_append_printf (_tmp194_, "t%d_g.%s", _tmp195_, _tmp198_);
10331 #line 1056 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10332 								_tmp199_ = v;
10333 #line 1056 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10334 								_tmp200_ = _tmp199_->binding;
10335 #line 1056 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10336 								_tmp201_ = ((TrackerSparqlDataBinding*) _tmp200_)->data_type;
10337 #line 1056 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10338 								if (_tmp201_ == TRACKER_PROPERTY_TYPE_DATETIME) {
10339 #line 10335 "tracker-sparql-pattern.c"
10340 									GString* _tmp202_;
10341 									gint _tmp203_;
10342 									TrackerSparqlVariable* _tmp204_;
10343 									gchar* _tmp205_ = NULL;
10344 									gchar* _tmp206_;
10345 									GString* _tmp207_;
10346 									gint _tmp208_;
10347 									TrackerSparqlVariable* _tmp209_;
10348 									gchar* _tmp210_ = NULL;
10349 									gchar* _tmp211_;
10350 #line 1057 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10351 									_tmp202_ = select;
10352 #line 1057 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10353 									_tmp203_ = left_index;
10354 #line 1057 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10355 									_tmp204_ = v;
10356 #line 1057 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10357 									_tmp205_ = tracker_sparql_variable_get_extra_sql_expression (_tmp204_, "localDate");
10358 #line 1057 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10359 									_tmp206_ = _tmp205_;
10360 #line 1057 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10361 									g_string_append_printf (_tmp202_, ", t%d_g.%s", _tmp203_, _tmp206_);
10362 #line 1057 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10363 									_g_free0 (_tmp206_);
10364 #line 1058 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10365 									_tmp207_ = select;
10366 #line 1058 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10367 									_tmp208_ = left_index;
10368 #line 1058 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10369 									_tmp209_ = v;
10370 #line 1058 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10371 									_tmp210_ = tracker_sparql_variable_get_extra_sql_expression (_tmp209_, "localTime");
10372 #line 1058 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10373 									_tmp211_ = _tmp210_;
10374 #line 1058 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10375 									g_string_append_printf (_tmp207_, ", t%d_g.%s", _tmp208_, _tmp211_);
10376 #line 1058 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10377 									_g_free0 (_tmp211_);
10378 #line 10374 "tracker-sparql-pattern.c"
10379 								}
10380 							}
10381 						}
10382 					}
10383 #line 1045 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10384 					_g_list_free0 (v_collection);
10385 #line 10381 "tracker-sparql-pattern.c"
10386 				}
10387 #line 1062 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10388 				_tmp212_ = first;
10389 #line 1062 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10390 				if (_tmp212_) {
10391 #line 10387 "tracker-sparql-pattern.c"
10392 					GString* _tmp213_;
10393 #line 1064 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10394 					_tmp213_ = select;
10395 #line 1064 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10396 					g_string_append (_tmp213_, "1");
10397 #line 10393 "tracker-sparql-pattern.c"
10398 				}
10399 #line 1067 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10400 				_tmp214_ = tracker_sparql_pattern_get_context (self);
10401 #line 1067 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10402 				_tmp215_ = _tmp214_;
10403 #line 1067 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10404 				_tmp216_ = _tmp215_->parent_context;
10405 #line 1067 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10406 				tracker_sparql_pattern_set_context (self, _tmp216_);
10407 #line 1069 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10408 				_tmp217_ = select;
10409 #line 1069 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10410 				g_string_append (_tmp217_, " FROM (");
10411 #line 1070 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10412 				_tmp218_ = sql;
10413 #line 1070 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10414 				_tmp219_ = group_graph_pattern_start;
10415 #line 1070 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10416 				_tmp220_ = select;
10417 #line 1070 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10418 				_tmp221_ = _tmp220_->str;
10419 #line 1070 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10420 				g_string_insert (_tmp218_, (gssize) _tmp219_, _tmp221_);
10421 #line 1074 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10422 				_tmp222_ = sql;
10423 #line 1074 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10424 				_tmp223_ = group_graph_pattern_start;
10425 #line 1074 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10426 				g_string_insert (_tmp222_, (gssize) _tmp223_, "SELECT * FROM (");
10427 #line 1075 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10428 				_tmp224_ = sql;
10429 #line 1075 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10430 				g_string_append (_tmp224_, ")");
10431 #line 963 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10432 				_g_string_free0 (select);
10433 #line 10429 "tracker-sparql-pattern.c"
10434 			}
10435 		} else {
10436 			gboolean _tmp225_ = FALSE;
10437 			gboolean _tmp226_;
10438 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10439 			_tmp225_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_GRAPH, &_inner_error_);
10440 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10441 			_tmp226_ = _tmp225_;
10442 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10443 			if (_inner_error_ != NULL) {
10444 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10445 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
10446 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10447 					g_propagate_error (error, _inner_error_);
10448 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10449 					filters = (g_free (filters), NULL);
10450 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10451 					_tracker_sparql_context_unref0 (_result_);
10452 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10453 					return NULL;
10454 #line 10450 "tracker-sparql-pattern.c"
10455 				} else {
10456 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10457 					filters = (g_free (filters), NULL);
10458 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10459 					_tracker_sparql_context_unref0 (_result_);
10460 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10461 					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);
10462 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10463 					g_clear_error (&_inner_error_);
10464 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10465 					return NULL;
10466 #line 10462 "tracker-sparql-pattern.c"
10467 				}
10468 			}
10469 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10470 			if (_tmp226_) {
10471 #line 10467 "tracker-sparql-pattern.c"
10472 				const gchar* _tmp227_;
10473 				gchar* _tmp228_;
10474 				gchar* old_graph;
10475 				gboolean _tmp229_;
10476 				gboolean old_graph_is_var;
10477 				GString* _tmp230_;
10478 				gboolean _tmp231_ = FALSE;
10479 				gchar* _tmp232_ = NULL;
10480 				gchar* _tmp233_;
10481 				gboolean _tmp234_ = FALSE;
10482 				gboolean _tmp235_;
10483 				gboolean _tmp237_;
10484 				const gchar* _tmp251_;
10485 				gchar* _tmp252_;
10486 				gboolean _tmp253_;
10487 #line 1078 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10488 				_tmp227_ = self->current_graph;
10489 #line 1078 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10490 				_tmp228_ = g_strdup (_tmp227_);
10491 #line 1078 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10492 				old_graph = _tmp228_;
10493 #line 1079 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10494 				_tmp229_ = self->priv->current_graph_is_var;
10495 #line 1079 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10496 				old_graph_is_var = _tmp229_;
10497 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10498 				_tmp230_ = sql;
10499 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10500 				_tmp232_ = tracker_sparql_pattern_parse_var_or_term (self, _tmp230_, &_tmp231_, &_inner_error_);
10501 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10502 				self->priv->current_graph_is_var = _tmp231_;
10503 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10504 				_tmp233_ = _tmp232_;
10505 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10506 				if (_inner_error_ != NULL) {
10507 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10508 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
10509 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10510 						g_propagate_error (error, _inner_error_);
10511 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10512 						_g_free0 (old_graph);
10513 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10514 						filters = (g_free (filters), NULL);
10515 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10516 						_tracker_sparql_context_unref0 (_result_);
10517 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10518 						return NULL;
10519 #line 10515 "tracker-sparql-pattern.c"
10520 					} else {
10521 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10522 						_g_free0 (old_graph);
10523 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10524 						filters = (g_free (filters), NULL);
10525 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10526 						_tracker_sparql_context_unref0 (_result_);
10527 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10528 						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);
10529 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10530 						g_clear_error (&_inner_error_);
10531 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10532 						return NULL;
10533 #line 10529 "tracker-sparql-pattern.c"
10534 					}
10535 				}
10536 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10537 				_g_free0 (self->current_graph);
10538 #line 1080 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10539 				self->current_graph = _tmp233_;
10540 #line 1082 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10541 				_tmp235_ = in_triples_block;
10542 #line 1082 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10543 				if (!_tmp235_) {
10544 #line 10540 "tracker-sparql-pattern.c"
10545 					gboolean _tmp236_;
10546 #line 1082 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10547 					_tmp236_ = in_group_graph_pattern;
10548 #line 1082 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10549 					_tmp234_ = !_tmp236_;
10550 #line 10546 "tracker-sparql-pattern.c"
10551 				} else {
10552 #line 1082 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10553 					_tmp234_ = FALSE;
10554 #line 10550 "tracker-sparql-pattern.c"
10555 				}
10556 #line 1082 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10557 				_tmp237_ = _tmp234_;
10558 #line 1082 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10559 				if (_tmp237_) {
10560 #line 10556 "tracker-sparql-pattern.c"
10561 					GString* _tmp238_;
10562 					glong _tmp239_;
10563 					GString* _tmp240_;
10564 					GString* _tmp241_;
10565 #line 1083 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10566 					in_group_graph_pattern = TRUE;
10567 #line 1085 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10568 					_tmp238_ = sql;
10569 #line 1085 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10570 					_tmp239_ = group_graph_pattern_start;
10571 #line 1085 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10572 					g_string_insert (_tmp238_, (gssize) _tmp239_, "SELECT * FROM (");
10573 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10574 					_tmp240_ = sql;
10575 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10576 					tracker_sparql_pattern_translate_group_or_union_graph_pattern (self, _tmp240_, &_inner_error_);
10577 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10578 					if (_inner_error_ != NULL) {
10579 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10580 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
10581 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10582 							g_propagate_error (error, _inner_error_);
10583 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10584 							_g_free0 (old_graph);
10585 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10586 							filters = (g_free (filters), NULL);
10587 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10588 							_tracker_sparql_context_unref0 (_result_);
10589 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10590 							return NULL;
10591 #line 10587 "tracker-sparql-pattern.c"
10592 						} else {
10593 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10594 							_g_free0 (old_graph);
10595 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10596 							filters = (g_free (filters), NULL);
10597 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10598 							_tracker_sparql_context_unref0 (_result_);
10599 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10600 							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);
10601 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10602 							g_clear_error (&_inner_error_);
10603 #line 1086 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10604 							return NULL;
10605 #line 10601 "tracker-sparql-pattern.c"
10606 						}
10607 					}
10608 #line 1087 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10609 					_tmp241_ = sql;
10610 #line 1087 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10611 					g_string_append (_tmp241_, ")");
10612 #line 10608 "tracker-sparql-pattern.c"
10613 				} else {
10614 					gboolean _tmp242_;
10615 					gboolean _tmp245_;
10616 					GString* _tmp246_;
10617 					glong _tmp247_;
10618 					GString* _tmp248_;
10619 					GString* _tmp249_;
10620 					GString* _tmp250_;
10621 #line 1089 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10622 					_tmp242_ = in_triples_block;
10623 #line 1089 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10624 					if (_tmp242_) {
10625 #line 10621 "tracker-sparql-pattern.c"
10626 						GString* _tmp243_;
10627 						gboolean _tmp244_;
10628 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10629 						_tmp243_ = sql;
10630 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10631 						_tmp244_ = in_group_graph_pattern;
10632 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10633 						tracker_sparql_pattern_end_triples_block (self, _tmp243_, &first_where, _tmp244_, &_inner_error_);
10634 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10635 						if (_inner_error_ != NULL) {
10636 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10637 							if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
10638 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10639 								g_propagate_error (error, _inner_error_);
10640 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10641 								_g_free0 (old_graph);
10642 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10643 								filters = (g_free (filters), NULL);
10644 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10645 								_tracker_sparql_context_unref0 (_result_);
10646 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10647 								return NULL;
10648 #line 10644 "tracker-sparql-pattern.c"
10649 							} else {
10650 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10651 								_g_free0 (old_graph);
10652 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10653 								filters = (g_free (filters), NULL);
10654 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10655 								_tracker_sparql_context_unref0 (_result_);
10656 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10657 								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);
10658 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10659 								g_clear_error (&_inner_error_);
10660 #line 1090 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10661 								return NULL;
10662 #line 10658 "tracker-sparql-pattern.c"
10663 							}
10664 						}
10665 #line 1091 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10666 						in_triples_block = FALSE;
10667 #line 10663 "tracker-sparql-pattern.c"
10668 					}
10669 #line 1093 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10670 					_tmp245_ = in_group_graph_pattern;
10671 #line 1093 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10672 					if (!_tmp245_) {
10673 #line 1094 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10674 						in_group_graph_pattern = TRUE;
10675 #line 10671 "tracker-sparql-pattern.c"
10676 					}
10677 #line 1097 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10678 					_tmp246_ = sql;
10679 #line 1097 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10680 					_tmp247_ = group_graph_pattern_start;
10681 #line 1097 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10682 					g_string_insert (_tmp246_, (gssize) _tmp247_, "SELECT * FROM (");
10683 #line 1098 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10684 					_tmp248_ = sql;
10685 #line 1098 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10686 					g_string_append (_tmp248_, ") NATURAL INNER JOIN (");
10687 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10688 					_tmp249_ = sql;
10689 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10690 					tracker_sparql_pattern_translate_group_or_union_graph_pattern (self, _tmp249_, &_inner_error_);
10691 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10692 					if (_inner_error_ != NULL) {
10693 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10694 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
10695 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10696 							g_propagate_error (error, _inner_error_);
10697 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10698 							_g_free0 (old_graph);
10699 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10700 							filters = (g_free (filters), NULL);
10701 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10702 							_tracker_sparql_context_unref0 (_result_);
10703 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10704 							return NULL;
10705 #line 10701 "tracker-sparql-pattern.c"
10706 						} else {
10707 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10708 							_g_free0 (old_graph);
10709 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10710 							filters = (g_free (filters), NULL);
10711 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10712 							_tracker_sparql_context_unref0 (_result_);
10713 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10714 							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);
10715 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10716 							g_clear_error (&_inner_error_);
10717 #line 1099 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10718 							return NULL;
10719 #line 10715 "tracker-sparql-pattern.c"
10720 						}
10721 					}
10722 #line 1100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10723 					_tmp250_ = sql;
10724 #line 1100 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10725 					g_string_append (_tmp250_, ")");
10726 #line 10722 "tracker-sparql-pattern.c"
10727 				}
10728 #line 1103 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10729 				_tmp251_ = old_graph;
10730 #line 1103 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10731 				_tmp252_ = g_strdup (_tmp251_);
10732 #line 1103 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10733 				_g_free0 (self->current_graph);
10734 #line 1103 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10735 				self->current_graph = _tmp252_;
10736 #line 1104 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10737 				_tmp253_ = old_graph_is_var;
10738 #line 1104 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10739 				self->priv->current_graph_is_var = _tmp253_;
10740 #line 1077 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10741 				_g_free0 (old_graph);
10742 #line 10738 "tracker-sparql-pattern.c"
10743 			} else {
10744 				TrackerSparqlTokenType _tmp254_ = 0;
10745 #line 1105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10746 				_tmp254_ = tracker_sparql_pattern_current (self);
10747 #line 1105 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10748 				if (_tmp254_ == TRACKER_SPARQL_TOKEN_TYPE_OPEN_BRACE) {
10749 #line 10745 "tracker-sparql-pattern.c"
10750 					gboolean _tmp255_ = FALSE;
10751 					gboolean _tmp256_;
10752 					gboolean _tmp258_;
10753 #line 1106 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10754 					_tmp256_ = in_triples_block;
10755 #line 1106 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10756 					if (!_tmp256_) {
10757 #line 10753 "tracker-sparql-pattern.c"
10758 						gboolean _tmp257_;
10759 #line 1106 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10760 						_tmp257_ = in_group_graph_pattern;
10761 #line 1106 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10762 						_tmp255_ = !_tmp257_;
10763 #line 10759 "tracker-sparql-pattern.c"
10764 					} else {
10765 #line 1106 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10766 						_tmp255_ = FALSE;
10767 #line 10763 "tracker-sparql-pattern.c"
10768 					}
10769 #line 1106 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10770 					_tmp258_ = _tmp255_;
10771 #line 1106 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10772 					if (_tmp258_) {
10773 #line 10769 "tracker-sparql-pattern.c"
10774 						GString* _tmp259_;
10775 						glong _tmp260_;
10776 						GString* _tmp261_;
10777 						GString* _tmp262_;
10778 #line 1107 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10779 						in_group_graph_pattern = TRUE;
10780 #line 1109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10781 						_tmp259_ = sql;
10782 #line 1109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10783 						_tmp260_ = group_graph_pattern_start;
10784 #line 1109 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10785 						g_string_insert (_tmp259_, (gssize) _tmp260_, "SELECT * FROM (");
10786 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10787 						_tmp261_ = sql;
10788 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10789 						tracker_sparql_pattern_translate_group_or_union_graph_pattern (self, _tmp261_, &_inner_error_);
10790 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10791 						if (_inner_error_ != NULL) {
10792 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10793 							if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
10794 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10795 								g_propagate_error (error, _inner_error_);
10796 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10797 								filters = (g_free (filters), NULL);
10798 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10799 								_tracker_sparql_context_unref0 (_result_);
10800 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10801 								return NULL;
10802 #line 10798 "tracker-sparql-pattern.c"
10803 							} else {
10804 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10805 								filters = (g_free (filters), NULL);
10806 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10807 								_tracker_sparql_context_unref0 (_result_);
10808 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10809 								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);
10810 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10811 								g_clear_error (&_inner_error_);
10812 #line 1110 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10813 								return NULL;
10814 #line 10810 "tracker-sparql-pattern.c"
10815 							}
10816 						}
10817 #line 1111 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10818 						_tmp262_ = sql;
10819 #line 1111 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10820 						g_string_append (_tmp262_, ")");
10821 #line 10817 "tracker-sparql-pattern.c"
10822 					} else {
10823 						gboolean _tmp263_;
10824 						gboolean _tmp266_;
10825 						GString* _tmp267_;
10826 						glong _tmp268_;
10827 						GString* _tmp269_;
10828 						GString* _tmp270_;
10829 						GString* _tmp271_;
10830 #line 1113 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10831 						_tmp263_ = in_triples_block;
10832 #line 1113 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10833 						if (_tmp263_) {
10834 #line 10830 "tracker-sparql-pattern.c"
10835 							GString* _tmp264_;
10836 							gboolean _tmp265_;
10837 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10838 							_tmp264_ = sql;
10839 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10840 							_tmp265_ = in_group_graph_pattern;
10841 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10842 							tracker_sparql_pattern_end_triples_block (self, _tmp264_, &first_where, _tmp265_, &_inner_error_);
10843 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10844 							if (_inner_error_ != NULL) {
10845 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10846 								if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
10847 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10848 									g_propagate_error (error, _inner_error_);
10849 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10850 									filters = (g_free (filters), NULL);
10851 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10852 									_tracker_sparql_context_unref0 (_result_);
10853 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10854 									return NULL;
10855 #line 10851 "tracker-sparql-pattern.c"
10856 								} else {
10857 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10858 									filters = (g_free (filters), NULL);
10859 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10860 									_tracker_sparql_context_unref0 (_result_);
10861 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10862 									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);
10863 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10864 									g_clear_error (&_inner_error_);
10865 #line 1114 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10866 									return NULL;
10867 #line 10863 "tracker-sparql-pattern.c"
10868 								}
10869 							}
10870 #line 1115 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10871 							in_triples_block = FALSE;
10872 #line 10868 "tracker-sparql-pattern.c"
10873 						}
10874 #line 1117 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10875 						_tmp266_ = in_group_graph_pattern;
10876 #line 1117 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10877 						if (!_tmp266_) {
10878 #line 1118 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10879 							in_group_graph_pattern = TRUE;
10880 #line 10876 "tracker-sparql-pattern.c"
10881 						}
10882 #line 1121 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10883 						_tmp267_ = sql;
10884 #line 1121 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10885 						_tmp268_ = group_graph_pattern_start;
10886 #line 1121 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10887 						g_string_insert (_tmp267_, (gssize) _tmp268_, "SELECT * FROM (");
10888 #line 1122 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10889 						_tmp269_ = sql;
10890 #line 1122 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10891 						g_string_append (_tmp269_, ") NATURAL INNER JOIN (");
10892 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10893 						_tmp270_ = sql;
10894 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10895 						tracker_sparql_pattern_translate_group_or_union_graph_pattern (self, _tmp270_, &_inner_error_);
10896 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10897 						if (_inner_error_ != NULL) {
10898 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10899 							if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
10900 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10901 								g_propagate_error (error, _inner_error_);
10902 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10903 								filters = (g_free (filters), NULL);
10904 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10905 								_tracker_sparql_context_unref0 (_result_);
10906 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10907 								return NULL;
10908 #line 10904 "tracker-sparql-pattern.c"
10909 							} else {
10910 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10911 								filters = (g_free (filters), NULL);
10912 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10913 								_tracker_sparql_context_unref0 (_result_);
10914 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10915 								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);
10916 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10917 								g_clear_error (&_inner_error_);
10918 #line 1123 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10919 								return NULL;
10920 #line 10916 "tracker-sparql-pattern.c"
10921 							}
10922 						}
10923 #line 1124 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10924 						_tmp271_ = sql;
10925 #line 1124 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10926 						g_string_append (_tmp271_, ")");
10927 #line 10923 "tracker-sparql-pattern.c"
10928 					}
10929 				} else {
10930 					TrackerSparqlTokenType _tmp272_ = 0;
10931 #line 1126 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10932 					_tmp272_ = tracker_sparql_pattern_current (self);
      (emitted by gcc)10933 #line 1126 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10934 					if (_tmp272_ == TRACKER_SPARQL_TOKEN_TYPE_FILTER) {
10935 #line 10931 "tracker-sparql-pattern.c"
10936 						TrackerSourceLocation* _tmp273_;
10937 						gint _tmp273__length1;
10938 						TrackerSourceLocation _tmp274_ = {0};
10939 #line 1127 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10940 						_tmp273_ = filters;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
10941 #line 1127 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10942 						_tmp273__length1 = filters_length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
10943 #line 1127 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10944 						tracker_sparql_pattern_get_location (self, &_tmp274_);
10945 #line 1127 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10946 						_vala_array_add8 (&filters, &filters_length1, &_filters_size_, &_tmp274_);
10947 #line 1128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10948 						tracker_sparql_pattern_skip_filter (self, &_inner_error_);
10949 #line 1128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10950 						if (_inner_error_ != NULL) {
10951 #line 1128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10952 							if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
10953 #line 1128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10954 								g_propagate_error (error, _inner_error_);
10955 #line 1128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10956 								filters = (g_free (filters), NULL);
10957 #line 1128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10958 								_tracker_sparql_context_unref0 (_result_);
10959 #line 1128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10960 								return NULL;
10961 #line 10957 "tracker-sparql-pattern.c"
10962 							} else {
10963 #line 1128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10964 								filters = (g_free (filters), NULL);
10965 #line 1128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10966 								_tracker_sparql_context_unref0 (_result_);
10967 #line 1128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10968 								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);
10969 #line 1128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10970 								g_clear_error (&_inner_error_);
10971 #line 1128 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10972 								return NULL;
10973 #line 10969 "tracker-sparql-pattern.c"
10974 							}
10975 						}
10976 					} else {
10977 #line 1130 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10978 						break;
10979 #line 10975 "tracker-sparql-pattern.c"
10980 					}
10981 				}
10982 			}
10983 		}
10984 #line 1133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10985 		tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_DOT, &_inner_error_);
10986 #line 1133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10987 		if (_inner_error_ != NULL) {
10988 #line 1133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10989 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
10990 #line 1133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10991 				g_propagate_error (error, _inner_error_);
10992 #line 1133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10993 				filters = (g_free (filters), NULL);
10994 #line 1133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10995 				_tracker_sparql_context_unref0 (_result_);
10996 #line 1133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
10997 				return NULL;
10998 #line 10994 "tracker-sparql-pattern.c"
10999 			} else {
11000 #line 1133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11001 				filters = (g_free (filters), NULL);
11002 #line 1133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11003 				_tracker_sparql_context_unref0 (_result_);
11004 #line 1133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11005 				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);
11006 #line 1133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11007 				g_clear_error (&_inner_error_);
11008 #line 1133 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11009 				return NULL;
11010 #line 11006 "tracker-sparql-pattern.c"
11011 			}
11012 		}
11013 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11014 		_tmp275_ = sql;
11015 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11016 		_tmp276_ = group_graph_pattern_start;
11017 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11018 		_tmp277_ = found_simple_optional;
11019 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11020 		tracker_sparql_pattern_parse_triples (self, _tmp275_, _tmp276_, &in_triples_block, &first_where, &in_group_graph_pattern, _tmp277_, &_inner_error_);
11021 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11022 		if (_inner_error_ != NULL) {
11023 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11024 			if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
11025 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11026 				g_propagate_error (error, _inner_error_);
11027 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11028 				filters = (g_free (filters), NULL);
11029 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11030 				_tracker_sparql_context_unref0 (_result_);
11031 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11032 				return NULL;
11033 #line 11029 "tracker-sparql-pattern.c"
11034 			} else {
11035 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11036 				filters = (g_free (filters), NULL);
11037 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11038 				_tracker_sparql_context_unref0 (_result_);
11039 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11040 				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);
11041 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11042 				g_clear_error (&_inner_error_);
11043 #line 1136 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11044 				return NULL;
11045 #line 11041 "tracker-sparql-pattern.c"
11046 			}
11047 		}
11048 	}
11049 #line 1139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11050 	tracker_sparql_pattern_expect (self, TRACKER_SPARQL_TOKEN_TYPE_CLOSE_BRACE, &_inner_error_);
11051 #line 1139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11052 	if (_inner_error_ != NULL) {
11053 #line 1139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11054 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
11055 #line 1139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11056 			g_propagate_error (error, _inner_error_);
11057 #line 1139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11058 			filters = (g_free (filters), NULL);
11059 #line 1139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11060 			_tracker_sparql_context_unref0 (_result_);
11061 #line 1139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11062 			return NULL;
11063 #line 11059 "tracker-sparql-pattern.c"
11064 		} else {
11065 #line 1139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11066 			filters = (g_free (filters), NULL);
11067 #line 1139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11068 			_tracker_sparql_context_unref0 (_result_);
11069 #line 1139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11070 			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);
11071 #line 1139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11072 			g_clear_error (&_inner_error_);
11073 #line 1139 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11074 			return NULL;
11075 #line 11071 "tracker-sparql-pattern.c"
11076 		}
11077 	}
11078 #line 1141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11079 	_tmp279_ = in_triples_block;
11080 #line 1141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11081 	if (!_tmp279_) {
11082 #line 11078 "tracker-sparql-pattern.c"
11083 		gboolean _tmp280_;
11084 #line 1141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11085 		_tmp280_ = in_group_graph_pattern;
11086 #line 1141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11087 		_tmp278_ = !_tmp280_;
11088 #line 11084 "tracker-sparql-pattern.c"
11089 	} else {
11090 #line 1141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11091 		_tmp278_ = FALSE;
11092 #line 11088 "tracker-sparql-pattern.c"
11093 	}
11094 #line 1141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11095 	_tmp281_ = _tmp278_;
11096 #line 1141 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11097 	if (_tmp281_) {
11098 #line 11094 "tracker-sparql-pattern.c"
11099 		GString* _tmp282_;
11100 #line 1143 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11101 		_tmp282_ = sql;
11102 #line 1143 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11103 		g_string_append (_tmp282_, "SELECT 1");
11104 #line 11100 "tracker-sparql-pattern.c"
11105 	} else {
11106 		gboolean _tmp283_;
11107 #line 1144 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11108 		_tmp283_ = in_triples_block;
11109 #line 1144 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11110 		if (_tmp283_) {
11111 #line 11107 "tracker-sparql-pattern.c"
11112 			GString* _tmp284_;
11113 			gboolean _tmp285_;
11114 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11115 			_tmp284_ = sql;
11116 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11117 			_tmp285_ = in_group_graph_pattern;
11118 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11119 			tracker_sparql_pattern_end_triples_block (self, _tmp284_, &first_where, _tmp285_, &_inner_error_);
11120 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11121 			if (_inner_error_ != NULL) {
11122 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11123 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
11124 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11125 					g_propagate_error (error, _inner_error_);
11126 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11127 					filters = (g_free (filters), NULL);
11128 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11129 					_tracker_sparql_context_unref0 (_result_);
11130 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11131 					return NULL;
11132 #line 11128 "tracker-sparql-pattern.c"
11133 				} else {
11134 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11135 					filters = (g_free (filters), NULL);
11136 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11137 					_tracker_sparql_context_unref0 (_result_);
11138 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11139 					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);
11140 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11141 					g_clear_error (&_inner_error_);
11142 #line 1145 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11143 					return NULL;
11144 #line 11140 "tracker-sparql-pattern.c"
11145 				}
11146 			}
11147 #line 1146 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11148 			in_triples_block = FALSE;
11149 #line 11145 "tracker-sparql-pattern.c"
11150 		}
11151 	}
11152 #line 1149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11153 	_tmp286_ = in_group_graph_pattern;
11154 #line 1149 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11155 	if (_tmp286_) {
11156 #line 1150 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11157 		first_where = TRUE;
11158 #line 11154 "tracker-sparql-pattern.c"
11159 	}
11160 #line 1154 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11161 	_tmp287_ = filters;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11162 #line 1154 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11163 	_tmp287__length1 = filters_length1;
11164 #line 1154 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11165 	if (_tmp287__length1 > 0) {
11166 #line 11162 "tracker-sparql-pattern.c"
11167 		TrackerSourceLocation _tmp288_ = {0};
11168 		TrackerSourceLocation end;
11169 		TrackerSourceLocation* _tmp289_;
11170 		gint _tmp289__length1;
11171 		TrackerSourceLocation _tmp295_;
11172 #line 1155 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11173 		tracker_sparql_pattern_get_location (self, &_tmp288_);
11174 #line 1155 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11175 		end = _tmp288_;
11176 #line 1157 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11177 		_tmp289_ = filters;
11178 #line 1157 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11179 		_tmp289__length1 = filters_length1;
11180 #line 11176 "tracker-sparql-pattern.c"
11181 		{
11182 			TrackerSourceLocation* filter_location_collection = NULL;
11183 			gint filter_location_collection_length1 = 0;
11184 			gint _filter_location_collection_size_ = 0;
11185 			gint filter_location_it = 0;
11186 #line 1157 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11187 			filter_location_collection = _tmp289_;
11188 #line 1157 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11189 			filter_location_collection_length1 = _tmp289__length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11190 #line 1157 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11191 			for (filter_location_it = 0; filter_location_it < _tmp289__length1; filter_location_it = filter_location_it + 1) {
11192 #line 11188 "tracker-sparql-pattern.c"
11193 				TrackerSourceLocation filter_location = {0};
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11194 #line 1157 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11195 				filter_location = filter_location_collection[filter_location_it];
11196 #line 11192 "tracker-sparql-pattern.c"
11197 				{
11198 					gboolean _tmp290_;
11199 					TrackerSourceLocation _tmp293_;
11200 					GString* _tmp294_;
11201 #line 1158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11202 					_tmp290_ = first_where;
11203 #line 1158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11204 					if (!_tmp290_) {
11205 #line 11201 "tracker-sparql-pattern.c"
11206 						GString* _tmp291_;
11207 #line 1159 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11208 						_tmp291_ = sql;
11209 #line 1159 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11210 						g_string_append (_tmp291_, " AND ");
11211 #line 11207 "tracker-sparql-pattern.c"
11212 					} else {
11213 						GString* _tmp292_;
11214 #line 1161 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11215 						_tmp292_ = sql;
11216 #line 1161 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11217 						g_string_append (_tmp292_, " WHERE ");
11218 #line 1162 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11219 						first_where = FALSE;
11220 #line 11216 "tracker-sparql-pattern.c"
11221 					}
11222 #line 1165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11223 					_tmp293_ = filter_location;
11224 #line 1165 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11225 					tracker_sparql_pattern_set_location (self, &_tmp293_);
11226 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11227 					_tmp294_ = sql;
11228 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11229 					tracker_sparql_pattern_translate_filter (self, _tmp294_, &_inner_error_);
11230 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11231 					if (_inner_error_ != NULL) {
11232 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11233 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
11234 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11235 							g_propagate_error (error, _inner_error_);
11236 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11237 							filters = (g_free (filters), NULL);
11238 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11239 							_tracker_sparql_context_unref0 (_result_);
11240 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11241 							return NULL;
11242 #line 11238 "tracker-sparql-pattern.c"
11243 						} else {
11244 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11245 							filters = (g_free (filters), NULL);
11246 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11247 							_tracker_sparql_context_unref0 (_result_);
11248 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11249 							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);
11250 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11251 							g_clear_error (&_inner_error_);
11252 #line 1166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11253 							return NULL;
11254 #line 11250 "tracker-sparql-pattern.c"
11255 						}
11256 					}
11257 				}
11258 			}
11259 		}
11260 #line 1169 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11261 		_tmp295_ = end;
11262 #line 1169 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11263 		tracker_sparql_pattern_set_location (self, &_tmp295_);
11264 #line 11260 "tracker-sparql-pattern.c"
11265 	}
11266 #line 1172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11267 	_tmp296_ = tracker_sparql_pattern_get_context (self);
11268 #line 1172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11269 	_tmp297_ = _tmp296_;
11270 #line 1172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11271 	_tmp298_ = _tmp297_->parent_context;
11272 #line 1172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11273 	tracker_sparql_pattern_set_context (self, _tmp298_);
11274 #line 1173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11275 	result = _result_;
11276 #line 1173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11277 	filters = (g_free (filters), NULL);
11278 #line 1173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11279 	return result;
11280 #line 11276 "tracker-sparql-pattern.c"
11281 }
11282 
11283 
11284 static void _vala_array_add9 (glong** array, int* length, int* size, glong value) {
11285 #line 1184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11286 	if ((*length) == (*size)) {
11287 #line 1184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11288 		*size = (*size) ? (2 * (*size)) : 4;
11289 #line 1184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11290 		*array = g_renew (glong, *array, *size);
11291 #line 11287 "tracker-sparql-pattern.c"
11292 	}
11293 #line 1184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11294 	(*array)[(*length)++] = value;
11295 #line 11291 "tracker-sparql-pattern.c"
11296 }
11297 
11298 
11299 static void _vala_array_add10 (TrackerSparqlContext*** array, int* length, int* size, TrackerSparqlContext* value) {
11300 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11301 	if ((*length) == (*size)) {
11302 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11303 		*size = (*size) ? (2 * (*size)) : 4;
11304 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11305 		*array = g_renew (TrackerSparqlContext*, *array, (*size) + 1);
11306 #line 11302 "tracker-sparql-pattern.c"
11307 	}
11308 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11309 	(*array)[(*length)++] = value;
11310 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11311 	(*array)[*length] = NULL;
11312 #line 11308 "tracker-sparql-pattern.c"
11313 }
11314 
11315 
11316 static gpointer _tracker_sparql_context_ref0 (gpointer self) {
11317 #line 1192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11318 	return self ? tracker_sparql_context_ref (self) : NULL;
11319 #line 11315 "tracker-sparql-pattern.c"
11320 }
11321 
11322 
11323 static void _vala_array_add11 (TrackerSparqlVariable*** array, int* length, int* size, TrackerSparqlVariable* value) {
11324 #line 1195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11325 	if ((*length) == (*size)) {
11326 #line 1195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11327 		*size = (*size) ? (2 * (*size)) : 4;
11328 #line 1195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11329 		*array = g_renew (TrackerSparqlVariable*, *array, (*size) + 1);
11330 #line 11326 "tracker-sparql-pattern.c"
11331 	}
11332 #line 1195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11333 	(*array)[(*length)++] = value;
11334 #line 1195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11335 	(*array)[*length] = NULL;
11336 #line 11332 "tracker-sparql-pattern.c"
11337 }
11338 
11339 
11340 static void tracker_sparql_pattern_translate_group_or_union_graph_pattern (TrackerSparqlPattern* self, GString* sql, GError** error) {
11341 	TrackerSparqlVariable** _tmp0_ = NULL;
11342 	TrackerSparqlVariable** all_vars;
11343 	gint all_vars_length1;
11344 	gint _all_vars_size_;
11345 	GDestroyNotify _tmp1_;
11346 	GHashTable* _tmp2_;
11347 	GHashTable* all_var_set;
11348 	TrackerSparqlContext** _tmp3_ = NULL;
11349 	TrackerSparqlContext** contexts;
11350 	gint contexts_length1;
11351 	gint _contexts_size_;
11352 	glong* _tmp4_ = NULL;
11353 	glong* offsets;
11354 	gint offsets_length1;
11355 	gint _offsets_size_;
11356 	TrackerSparqlContext** _tmp16_;
11357 	gint _tmp16__length1;
11358 	GError * _inner_error_ = NULL;
11359 #line 1176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11360 	g_return_if_fail (self != NULL);
11361 #line 1176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11362 	g_return_if_fail (sql != NULL);
11363 #line 1177 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11364 	_tmp0_ = g_new0 (TrackerSparqlVariable*, 0 + 1);
11365 #line 1177 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11366 	all_vars = _tmp0_;
11367 #line 1177 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11368 	all_vars_length1 = 0;
11369 #line 1177 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11370 	_all_vars_size_ = all_vars_length1;
11371 #line 1178 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11372 	_tmp1_ = g_object_unref;
11373 #line 1178 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11374 	_tmp2_ = g_hash_table_new_full (_tracker_sparql_variable_hash_ghash_func, _tracker_sparql_variable_equal_gequal_func, _tmp1_, NULL);
11375 #line 1178 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11376 	all_var_set = _tmp2_;
11377 #line 1180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11378 	_tmp3_ = g_new0 (TrackerSparqlContext*, 0 + 1);
11379 #line 1180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11380 	contexts = _tmp3_;
11381 #line 1180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11382 	contexts_length1 = 0;
11383 #line 1180 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11384 	_contexts_size_ = contexts_length1;
11385 #line 1181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11386 	_tmp4_ = g_new0 (glong, 0);
11387 #line 1181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11388 	offsets = _tmp4_;
11389 #line 1181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11390 	offsets_length1 = 0;
11391 #line 1181 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11392 	_offsets_size_ = offsets_length1;
11393 #line 11389 "tracker-sparql-pattern.c"
11394 	{
11395 		gboolean _tmp5_;
11396 #line 1183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11397 		_tmp5_ = TRUE;
11398 #line 1183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11399 		while (TRUE) {
11400 #line 11396 "tracker-sparql-pattern.c"
11401 			gboolean _tmp6_;
11402 			glong* _tmp9_;
11403 			gint _tmp9__length1;
11404 			GString* _tmp10_;
11405 			gssize _tmp11_;
      (emitted by gcc)11406 			GString* _tmp12_;
11407 			TrackerSparqlContext* _tmp13_ = NULL;
11408 			TrackerSparqlContext* _tmp14_;
11409 			TrackerSparqlContext** _tmp15_;
11410 			gint _tmp15__length1;
11411 #line 1183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11412 			_tmp6_ = _tmp5_;
11413 #line 1183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11414 			if (!_tmp6_) {
11415 #line 11411 "tracker-sparql-pattern.c"
11416 				gboolean _tmp7_ = FALSE;
11417 				gboolean _tmp8_;
11418 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11419 				_tmp7_ = tracker_sparql_pattern_accept (self, TRACKER_SPARQL_TOKEN_TYPE_UNION, &_inner_error_);
11420 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11421 				_tmp8_ = _tmp7_;
11422 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11423 				if (_inner_error_ != NULL) {
11424 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11425 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
11426 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11427 						g_propagate_error (error, _inner_error_);
11428 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11429 						offsets = (g_free (offsets), NULL);
11430 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11431 						contexts = (_vala_array_free (contexts, contexts_length1, (GDestroyNotify) tracker_sparql_context_unref), NULL);
11432 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11433 						_g_hash_table_unref0 (all_var_set);
11434 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11435 						all_vars = (_vala_array_free (all_vars, all_vars_length1, (GDestroyNotify) g_object_unref), NULL);
11436 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11437 						return;
11438 #line 11434 "tracker-sparql-pattern.c"
11439 					} else {
11440 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11441 						offsets = (g_free (offsets), NULL);
11442 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11443 						contexts = (_vala_array_free (contexts, contexts_length1, (GDestroyNotify) tracker_sparql_context_unref), NULL);
11444 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11445 						_g_hash_table_unref0 (all_var_set);
11446 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11447 						all_vars = (_vala_array_free (all_vars, all_vars_length1, (GDestroyNotify) g_object_unref), NULL);
11448 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11449 						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);
11450 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11451 						g_clear_error (&_inner_error_);
11452 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11453 						return;
11454 #line 11450 "tracker-sparql-pattern.c"
11455 					}
11456 				}
11457 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11458 				if (!_tmp8_) {
11459 #line 1186 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11460 					break;
11461 #line 11457 "tracker-sparql-pattern.c"
11462 				}
11463 			}
11464 #line 1183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11465 			_tmp5_ = FALSE;
11466 #line 1184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11467 			_tmp9_ = offsets;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11468 #line 1184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11469 			_tmp9__length1 = offsets_length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11470 #line 1184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11471 			_tmp10_ = sql;
11472 #line 1184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11473 			_tmp11_ = _tmp10_->len;
11474 #line 1184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11475 			_vala_array_add9 (&offsets, &offsets_length1, &_offsets_size_, (glong) _tmp11_);
11476 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11477 			_tmp12_ = sql;
11478 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11479 			_tmp13_ = tracker_sparql_pattern_translate_group_graph_pattern (self, _tmp12_, &_inner_error_);
11480 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11481 			_tmp14_ = _tmp13_;
11482 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11483 			if (_inner_error_ != NULL) {
11484 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11485 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
11486 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11487 					g_propagate_error (error, _inner_error_);
11488 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11489 					offsets = (g_free (offsets), NULL);
11490 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11491 					contexts = (_vala_array_free (contexts, contexts_length1, (GDestroyNotify) tracker_sparql_context_unref), NULL);
11492 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11493 					_g_hash_table_unref0 (all_var_set);
11494 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11495 					all_vars = (_vala_array_free (all_vars, all_vars_length1, (GDestroyNotify) g_object_unref), NULL);
11496 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11497 					return;
11498 #line 11494 "tracker-sparql-pattern.c"
11499 				} else {
11500 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11501 					offsets = (g_free (offsets), NULL);
11502 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11503 					contexts = (_vala_array_free (contexts, contexts_length1, (GDestroyNotify) tracker_sparql_context_unref), NULL);
11504 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11505 					_g_hash_table_unref0 (all_var_set);
11506 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11507 					all_vars = (_vala_array_free (all_vars, all_vars_length1, (GDestroyNotify) g_object_unref), NULL);
11508 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11509 					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);
11510 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11511 					g_clear_error (&_inner_error_);
11512 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11513 					return;
11514 #line 11510 "tracker-sparql-pattern.c"
11515 				}
11516 			}
11517 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11518 			_tmp15_ = contexts;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11519 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11520 			_tmp15__length1 = contexts_length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11521 #line 1185 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11522 			_vala_array_add10 (&contexts, &contexts_length1, &_contexts_size_, _tmp14_);
11523 #line 11519 "tracker-sparql-pattern.c"
11524 		}
11525 	}
11526 #line 1188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11527 	_tmp16_ = contexts;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11528 #line 1188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11529 	_tmp16__length1 = contexts_length1;
11530 #line 1188 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11531 	if (_tmp16__length1 > 1) {
11532 #line 11528 "tracker-sparql-pattern.c"
11533 		TrackerSparqlContext** _tmp17_;
11534 		gint _tmp17__length1;
11535 		glong extra_offset;
11536 		GString* _tmp72_;
11537 #line 1192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11538 		_tmp17_ = contexts;
11539 #line 1192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11540 		_tmp17__length1 = contexts_length1;
11541 #line 11537 "tracker-sparql-pattern.c"
11542 		{
11543 			TrackerSparqlContext** sub_context_collection = NULL;
11544 			gint sub_context_collection_length1 = 0;
11545 			gint _sub_context_collection_size_ = 0;
11546 			gint sub_context_it = 0;
11547 #line 1192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11548 			sub_context_collection = _tmp17_;
11549 #line 1192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11550 			sub_context_collection_length1 = _tmp17__length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11551 #line 1192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11552 			for (sub_context_it = 0; sub_context_it < _tmp17__length1; sub_context_it = sub_context_it + 1) {
11553 #line 11549 "tracker-sparql-pattern.c"
11554 				TrackerSparqlContext* _tmp18_;
11555 				TrackerSparqlContext* sub_context = NULL;
11556 #line 1192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11557 				_tmp18_ = _tracker_sparql_context_ref0 (sub_context_collection[sub_context_it]);
11558 #line 1192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11559 				sub_context = _tmp18_;
11560 #line 11556 "tracker-sparql-pattern.c"
11561 				{
11562 					TrackerSparqlContext* _tmp19_;
11563 					GHashTable* _tmp20_;
11564 					GList* _tmp21_ = NULL;
11565 #line 1193 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11566 					_tmp19_ = sub_context;
11567 #line 1193 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11568 					_tmp20_ = _tmp19_->var_set;
11569 #line 1193 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11570 					_tmp21_ = g_hash_table_get_keys (_tmp20_);
11571 #line 11567 "tracker-sparql-pattern.c"
11572 					{
11573 						GList* v_collection = NULL;
11574 						GList* v_it = NULL;
11575 #line 1193 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11576 						v_collection = _tmp21_;
11577 #line 1193 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11578 						for (v_it = v_collection; v_it != NULL; v_it = v_it->next) {
11579 #line 11575 "tracker-sparql-pattern.c"
11580 							TrackerSparqlVariable* v = NULL;
11581 #line 1193 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11582 							v = (TrackerSparqlVariable*) v_it->data;
11583 #line 11579 "tracker-sparql-pattern.c"
11584 							{
11585 								GHashTable* _tmp22_;
11586 								TrackerSparqlVariable* _tmp23_;
11587 								gconstpointer _tmp24_ = NULL;
11588 #line 1194 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11589 								_tmp22_ = all_var_set;
11590 #line 1194 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11591 								_tmp23_ = v;
11592 #line 1194 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11593 								_tmp24_ = g_hash_table_lookup (_tmp22_, _tmp23_);
11594 #line 1194 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11595 								if (((gint) ((gintptr) _tmp24_)) == 0) {
11596 #line 11592 "tracker-sparql-pattern.c"
11597 									TrackerSparqlVariable** _tmp25_;
11598 									gint _tmp25__length1;
11599 									TrackerSparqlVariable* _tmp26_;
11600 									TrackerSparqlVariable* _tmp27_;
11601 									GHashTable* _tmp28_;
11602 									TrackerSparqlVariable* _tmp29_;
11603 									TrackerSparqlVariable* _tmp30_;
11604 									TrackerSparqlContext* _tmp31_;
11605 									TrackerSparqlContext* _tmp32_;
11606 									GHashTable* _tmp33_;
11607 									TrackerSparqlVariable* _tmp34_;
11608 									TrackerSparqlVariable* _tmp35_;
11609 #line 1195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11610 									_tmp25_ = all_vars;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11611 #line 1195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11612 									_tmp25__length1 = all_vars_length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11613 #line 1195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11614 									_tmp26_ = v;
11615 #line 1195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11616 									_tmp27_ = _g_object_ref0 (_tmp26_);
11617 #line 1195 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11618 									_vala_array_add11 (&all_vars, &all_vars_length1, &_all_vars_size_, _tmp27_);
11619 #line 1196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11620 									_tmp28_ = all_var_set;
11621 #line 1196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11622 									_tmp29_ = v;
11623 #line 1196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11624 									_tmp30_ = _g_object_ref0 (_tmp29_);
11625 #line 1196 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11626 									g_hash_table_insert (_tmp28_, _tmp30_, (gpointer) ((gintptr) ((gint) TRACKER_SPARQL_VARIABLE_STATE_BOUND)));
11627 #line 1197 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11628 									_tmp31_ = tracker_sparql_pattern_get_context (self);
11629 #line 1197 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11630 									_tmp32_ = _tmp31_;
11631 #line 1197 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11632 									_tmp33_ = _tmp32_->var_set;
11633 #line 1197 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11634 									_tmp34_ = v;
11635 #line 1197 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11636 									_tmp35_ = _g_object_ref0 (_tmp34_);
11637 #line 1197 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11638 									g_hash_table_insert (_tmp33_, _tmp35_, (gpointer) ((gintptr) ((gint) TRACKER_SPARQL_VARIABLE_STATE_BOUND)));
11639 #line 11635 "tracker-sparql-pattern.c"
11640 								}
11641 							}
11642 						}
11643 #line 1193 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11644 						_g_list_free0 (v_collection);
11645 #line 11641 "tracker-sparql-pattern.c"
11646 					}
11647 #line 1192 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11648 					_tracker_sparql_context_unref0 (sub_context);
11649 #line 11645 "tracker-sparql-pattern.c"
11650 				}
11651 			}
11652 		}
11653 #line 1202 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11654 		extra_offset = (glong) 0;
11655 #line 11651 "tracker-sparql-pattern.c"
11656 		{
11657 			gint i;
11658 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11659 			i = 0;
11660 #line 11656 "tracker-sparql-pattern.c"
11661 			{
11662 				gboolean _tmp36_;
11663 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11664 				_tmp36_ = TRUE;
11665 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11666 				while (TRUE) {
11667 #line 11663 "tracker-sparql-pattern.c"
11668 					gboolean _tmp37_;
11669 					gint _tmp39_;
11670 					TrackerSparqlContext** _tmp40_;
11671 					gint _tmp40__length1;
11672 					GString* _tmp41_;
11673 					GString* projection;
11674 					gint _tmp42_;
11675 					GString* _tmp44_;
11676 					TrackerSparqlVariable** _tmp45_;
11677 					gint _tmp45__length1;
11678 					GString* _tmp58_;
11679 					GString* _tmp59_;
11680 					gssize _tmp60_;
11681 					GString* _tmp61_;
11682 					GString* _tmp62_;
11683 					glong* _tmp63_;
11684 					gint _tmp63__length1;
11685 					gint _tmp64_;
11686 					glong _tmp65_;
11687 					glong _tmp66_;
11688 					GString* _tmp67_;
11689 					const gchar* _tmp68_;
11690 					glong _tmp69_;
11691 					GString* _tmp70_;
11692 					gssize _tmp71_;
11693 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11694 					_tmp37_ = _tmp36_;
11695 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11696 					if (!_tmp37_) {
11697 #line 11693 "tracker-sparql-pattern.c"
11698 						gint _tmp38_;
11699 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11700 						_tmp38_ = i;
11701 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11702 						i = _tmp38_ + 1;
11703 #line 11699 "tracker-sparql-pattern.c"
11704 					}
11705 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11706 					_tmp36_ = FALSE;
11707 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11708 					_tmp39_ = i;
11709 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11710 					_tmp40_ = contexts;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11711 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11712 					_tmp40__length1 = contexts_length1;
11713 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11714 					if (!(_tmp39_ < _tmp40__length1)) {
11715 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11716 						break;
11717 #line 11713 "tracker-sparql-pattern.c"
11718 					}
11719 #line 1204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11720 					_tmp41_ = g_string_new ("");
11721 #line 1204 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11722 					projection = _tmp41_;
11723 #line 1205 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11724 					_tmp42_ = i;
11725 #line 1205 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11726 					if (_tmp42_ > 0) {
11727 #line 11723 "tracker-sparql-pattern.c"
11728 						GString* _tmp43_;
11729 #line 1206 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11730 						_tmp43_ = projection;
11731 #line 1206 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11732 						g_string_append (_tmp43_, ") UNION ALL ");
11733 #line 11729 "tracker-sparql-pattern.c"
11734 					}
11735 #line 1208 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11736 					_tmp44_ = projection;
11737 #line 1208 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11738 					g_string_append (_tmp44_, "SELECT ");
11739 #line 1209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11740 					_tmp45_ = all_vars;
11741 #line 1209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11742 					_tmp45__length1 = all_vars_length1;
11743 #line 11739 "tracker-sparql-pattern.c"
11744 					{
11745 						TrackerSparqlVariable** v_collection = NULL;
11746 						gint v_collection_length1 = 0;
11747 						gint _v_collection_size_ = 0;
11748 						gint v_it = 0;
11749 #line 1209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11750 						v_collection = _tmp45_;
11751 #line 1209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11752 						v_collection_length1 = _tmp45__length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11753 #line 1209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11754 						for (v_it = 0; v_it < _tmp45__length1; v_it = v_it + 1) {
11755 #line 11751 "tracker-sparql-pattern.c"
11756 							TrackerSparqlVariable* _tmp46_;
11757 							TrackerSparqlVariable* v = NULL;
11758 #line 1209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11759 							_tmp46_ = _g_object_ref0 (v_collection[v_it]);
11760 #line 1209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11761 							v = _tmp46_;
11762 #line 11758 "tracker-sparql-pattern.c"
11763 							{
11764 								TrackerSparqlContext** _tmp47_;
11765 								gint _tmp47__length1;
11766 								gint _tmp48_;
11767 								TrackerSparqlContext* _tmp49_;
11768 								GHashTable* _tmp50_;
11769 								TrackerSparqlVariable* _tmp51_;
11770 								gconstpointer _tmp52_ = NULL;
11771 								GString* _tmp54_;
11772 								TrackerSparqlVariable* _tmp55_;
11773 								const gchar* _tmp56_;
11774 								const gchar* _tmp57_;
11775 #line 1210 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11776 								_tmp47_ = contexts;
11777 #line 1210 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11778 								_tmp47__length1 = contexts_length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11779 #line 1210 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11780 								_tmp48_ = i;
11781 #line 1210 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11782 								_tmp49_ = _tmp47_[_tmp48_];
11783 #line 1210 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11784 								_tmp50_ = _tmp49_->var_set;
11785 #line 1210 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11786 								_tmp51_ = v;
11787 #line 1210 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11788 								_tmp52_ = g_hash_table_lookup (_tmp50_, _tmp51_);
11789 #line 1210 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11790 								if (((gint) ((gintptr) _tmp52_)) == 0) {
11791 #line 11787 "tracker-sparql-pattern.c"
11792 									GString* _tmp53_;
11793 #line 1213 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11794 									_tmp53_ = projection;
11795 #line 1213 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11796 									g_string_append (_tmp53_, "NULL AS ");
11797 #line 11793 "tracker-sparql-pattern.c"
11798 								}
11799 #line 1215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11800 								_tmp54_ = projection;
11801 #line 1215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11802 								_tmp55_ = v;
11803 #line 1215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11804 								_tmp56_ = tracker_sparql_variable_get_sql_expression (_tmp55_);
11805 #line 1215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11806 								_tmp57_ = _tmp56_;
11807 #line 1215 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11808 								g_string_append_printf (_tmp54_, "%s, ", _tmp57_);
11809 #line 1209 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11810 								_g_object_unref0 (v);
11811 #line 11807 "tracker-sparql-pattern.c"
11812 							}
11813 						}
11814 					}
11815 #line 1218 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11816 					_tmp58_ = projection;
11817 #line 1218 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11818 					_tmp59_ = projection;
11819 #line 1218 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11820 					_tmp60_ = _tmp59_->len;
11821 #line 1218 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11822 					g_string_truncate (_tmp58_, (gsize) (_tmp60_ - 2));
11823 #line 1219 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11824 					_tmp61_ = projection;
11825 #line 1219 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11826 					g_string_append (_tmp61_, " FROM (");
11827 #line 1221 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11828 					_tmp62_ = sql;
11829 #line 1221 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11830 					_tmp63_ = offsets;
11831 #line 1221 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11832 					_tmp63__length1 = offsets_length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11833 #line 1221 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11834 					_tmp64_ = i;
11835 #line 1221 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11836 					_tmp65_ = _tmp63_[_tmp64_];
11837 #line 1221 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11838 					_tmp66_ = extra_offset;
11839 #line 1221 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11840 					_tmp67_ = projection;
11841 #line 1221 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11842 					_tmp68_ = _tmp67_->str;
11843 #line 1221 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11844 					g_string_insert (_tmp62_, (gssize) (_tmp65_ + _tmp66_), _tmp68_);
11845 #line 1222 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11846 					_tmp69_ = extra_offset;
11847 #line 1222 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11848 					_tmp70_ = projection;
11849 #line 1222 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11850 					_tmp71_ = _tmp70_->len;
11851 #line 1222 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11852 					extra_offset = _tmp69_ + _tmp71_;
11853 #line 1203 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11854 					_g_string_free0 (projection);
11855 #line 11851 "tracker-sparql-pattern.c"
11856 				}
11857 			}
11858 		}
11859 #line 1224 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11860 		_tmp72_ = sql;
11861 #line 1224 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11862 		g_string_append (_tmp72_, ")");
11863 #line 11859 "tracker-sparql-pattern.c"
11864 	} else {
11865 		TrackerSparqlContext** _tmp73_;
11866 		gint _tmp73__length1;
11867 		TrackerSparqlContext* _tmp74_;
11868 		GHashTable* _tmp75_;
11869 		GList* _tmp76_ = NULL;
11870 #line 1226 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11871 		_tmp73_ = contexts;
11872 #line 1226 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11873 		_tmp73__length1 = contexts_length1;
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
11874 #line 1226 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11875 		_tmp74_ = _tmp73_[0];
11876 #line 1226 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11877 		_tmp75_ = _tmp74_->var_set;
11878 #line 1226 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11879 		_tmp76_ = g_hash_table_get_keys (_tmp75_);
11880 #line 11876 "tracker-sparql-pattern.c"
11881 		{
11882 			GList* key_collection = NULL;
11883 			GList* key_it = NULL;
11884 #line 1226 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11885 			key_collection = _tmp76_;
11886 #line 1226 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11887 			for (key_it = key_collection; key_it != NULL; key_it = key_it->next) {
11888 #line 11884 "tracker-sparql-pattern.c"
11889 				TrackerSparqlVariable* key = NULL;
11890 #line 1226 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11891 				key = (TrackerSparqlVariable*) key_it->data;
11892 #line 11888 "tracker-sparql-pattern.c"
11893 				{
11894 					TrackerSparqlContext* _tmp77_;
11895 					TrackerSparqlContext* _tmp78_;
11896 					GHashTable* _tmp79_;
11897 					TrackerSparqlVariable* _tmp80_;
11898 					TrackerSparqlVariable* _tmp81_;
11899 #line 1227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11900 					_tmp77_ = tracker_sparql_pattern_get_context (self);
11901 #line 1227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11902 					_tmp78_ = _tmp77_;
11903 #line 1227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11904 					_tmp79_ = _tmp78_->var_set;
11905 #line 1227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11906 					_tmp80_ = key;
11907 #line 1227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11908 					_tmp81_ = _g_object_ref0 (_tmp80_);
11909 #line 1227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11910 					g_hash_table_insert (_tmp79_, _tmp81_, (gpointer) ((gintptr) ((gint) TRACKER_SPARQL_VARIABLE_STATE_BOUND)));
11911 #line 11907 "tracker-sparql-pattern.c"
11912 				}
11913 			}
11914 #line 1226 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11915 			_g_list_free0 (key_collection);
11916 #line 11912 "tracker-sparql-pattern.c"
11917 		}
11918 	}
11919 #line 1176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11920 	offsets = (g_free (offsets), NULL);
11921 #line 1176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11922 	contexts = (_vala_array_free (contexts, contexts_length1, (GDestroyNotify) tracker_sparql_context_unref), NULL);
11923 #line 1176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11924 	_g_hash_table_unref0 (all_var_set);
11925 #line 1176 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11926 	all_vars = (_vala_array_free (all_vars, all_vars_length1, (GDestroyNotify) g_object_unref), NULL);
11927 #line 11923 "tracker-sparql-pattern.c"
11928 }
11929 
11930 
11931 static TrackerSparqlVariableBindingList* tracker_sparql_pattern_get_variable_binding_list (TrackerSparqlPattern* self, TrackerSparqlVariable* variable) {
11932 	TrackerSparqlVariableBindingList* result = NULL;
11933 	TrackerSparqlVariableBindingList* binding_list;
11934 	TrackerSparqlPatternTripleContext* _tmp0_;
11935 	gboolean _tmp6_ = FALSE;
11936 	TrackerSparqlVariableBindingList* _tmp7_;
11937 	gboolean _tmp10_;
11938 #line 1232 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11939 	g_return_val_if_fail (self != NULL, NULL);
11940 #line 1232 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11941 	g_return_val_if_fail (variable != NULL, NULL);
11942 #line 1233 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11943 	binding_list = NULL;
11944 #line 1234 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11945 	_tmp0_ = self->priv->triple_context;
11946 #line 1234 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11947 	if (_tmp0_ != NULL) {
11948 #line 11944 "tracker-sparql-pattern.c"
11949 		TrackerSparqlPatternTripleContext* _tmp1_;
11950 		GHashTable* _tmp2_;
11951 		TrackerSparqlVariable* _tmp3_;
11952 		gconstpointer _tmp4_ = NULL;
11953 		TrackerSparqlVariableBindingList* _tmp5_;
11954 #line 1235 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11955 		_tmp1_ = self->priv->triple_context;
11956 #line 1235 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11957 		_tmp2_ = _tmp1_->var_bindings;
11958 #line 1235 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11959 		_tmp3_ = variable;
11960 #line 1235 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11961 		_tmp4_ = g_hash_table_lookup (_tmp2_, _tmp3_);
11962 #line 1235 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11963 		_tmp5_ = _g_object_ref0 ((TrackerSparqlVariableBindingList*) _tmp4_);
11964 #line 1235 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11965 		_g_object_unref0 (binding_list);
11966 #line 1235 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11967 		binding_list = _tmp5_;
11968 #line 11964 "tracker-sparql-pattern.c"
11969 	}
11970 #line 1237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11971 	_tmp7_ = binding_list;
11972 #line 1237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11973 	if (_tmp7_ == NULL) {
11974 #line 11970 "tracker-sparql-pattern.c"
11975 		TrackerSparqlVariable* _tmp8_;
11976 		TrackerSparqlVariableBinding* _tmp9_;
11977 #line 1237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11978 		_tmp8_ = variable;
11979 #line 1237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11980 		_tmp9_ = _tmp8_->binding;
11981 #line 1237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11982 		_tmp6_ = _tmp9_ != NULL;
11983 #line 11979 "tracker-sparql-pattern.c"
11984 	} else {
11985 #line 1237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11986 		_tmp6_ = FALSE;
11987 #line 11983 "tracker-sparql-pattern.c"
11988 	}
11989 #line 1237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11990 	_tmp10_ = _tmp6_;
11991 #line 1237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11992 	if (_tmp10_) {
11993 #line 11989 "tracker-sparql-pattern.c"
11994 		TrackerSparqlContext* _tmp11_;
11995 		TrackerSparqlContext* _tmp12_;
11996 		TrackerSparqlContext* _tmp13_;
11997 		TrackerSparqlContext* current_context;
11998 #line 1239 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
11999 		_tmp11_ = tracker_sparql_pattern_get_context (self);
12000 #line 1239 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12001 		_tmp12_ = _tmp11_;
12002 #line 1239 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12003 		_tmp13_ = _tracker_sparql_context_ref0 (_tmp12_);
12004 #line 1239 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12005 		current_context = _tmp13_;
12006 #line 1240 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12007 		while (TRUE) {
12008 #line 12004 "tracker-sparql-pattern.c"
12009 			TrackerSparqlContext* _tmp14_;
12010 			gboolean _tmp15_ = FALSE;
12011 			TrackerSparqlContext* _tmp16_;
12012 			gboolean _tmp17_;
12013 			gboolean _tmp23_;
12014 			TrackerSparqlContext* _tmp64_;
12015 			TrackerSparqlContext* _tmp65_;
12016 			TrackerSparqlContext* _tmp66_;
12017 #line 1240 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12018 			_tmp14_ = current_context;
12019 #line 1240 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12020 			if (!(_tmp14_ != NULL)) {
12021 #line 1240 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12022 				break;
12023 #line 12019 "tracker-sparql-pattern.c"
12024 			}
12025 #line 1243 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12026 			_tmp16_ = current_context;
12027 #line 1243 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12028 			_tmp17_ = _tmp16_->scalar_subquery;
12029 #line 1243 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12030 			if (_tmp17_) {
12031 #line 12027 "tracker-sparql-pattern.c"
12032 				TrackerSparqlContext* _tmp18_;
12033 				TrackerSparqlContext* _tmp19_;
12034 				GHashTable* _tmp20_;
12035 				TrackerSparqlVariable* _tmp21_;
12036 				gconstpointer _tmp22_ = NULL;
12037 #line 1243 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12038 				_tmp18_ = current_context;
12039 #line 1243 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12040 				_tmp19_ = _tmp18_->parent_context;
12041 #line 1243 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12042 				_tmp20_ = _tmp19_->var_set;
12043 #line 1243 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12044 				_tmp21_ = variable;
12045 #line 1243 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12046 				_tmp22_ = g_hash_table_lookup (_tmp20_, _tmp21_);
12047 #line 1243 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12048 				_tmp15_ = ((gint) ((gintptr) _tmp22_)) != 0;
12049 #line 12045 "tracker-sparql-pattern.c"
12050 			} else {
12051 #line 1243 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12052 				_tmp15_ = FALSE;
12053 #line 12049 "tracker-sparql-pattern.c"
12054 			}
12055 #line 1243 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12056 			_tmp23_ = _tmp15_;
12057 #line 1243 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12058 			if (_tmp23_) {
12059 #line 12055 "tracker-sparql-pattern.c"
12060 				TrackerSparqlVariableBinding* _tmp24_;
12061 				TrackerSparqlVariableBinding* binding;
12062 				TrackerSparqlVariableBinding* _tmp25_;
12063 				TrackerSparqlVariable* _tmp26_;
12064 				TrackerSparqlVariableBinding* _tmp27_;
12065 				TrackerPropertyType _tmp28_;
12066 				TrackerSparqlVariableBinding* _tmp29_;
12067 				TrackerSparqlContext* _tmp30_;
12068 				TrackerSparqlContext* _tmp31_;
12069 				TrackerSparqlVariable* _tmp32_;
12070 				const gchar* _tmp33_;
12071 				const gchar* _tmp34_;
12072 				TrackerSparqlVariable* _tmp35_ = NULL;
12073 				TrackerSparqlVariableBinding* _tmp36_;
12074 				TrackerSparqlVariable* _tmp37_;
12075 				TrackerSparqlVariableBinding* _tmp38_;
12076 				TrackerClass* _tmp39_;
12077 				TrackerClass* _tmp40_;
12078 				TrackerSparqlVariableBinding* _tmp41_;
12079 				TrackerSparqlVariable* _tmp42_;
12080 				const gchar* _tmp43_;
12081 				const gchar* _tmp44_;
12082 				TrackerSparqlVariableBindingList* _tmp45_;
12083 				TrackerSparqlPatternTripleContext* _tmp46_;
12084 				TrackerSparqlContext* _tmp56_;
12085 				TrackerSparqlContext* _tmp57_;
12086 				GHashTable* _tmp58_;
12087 				TrackerSparqlVariable* _tmp59_;
12088 				TrackerSparqlVariable* _tmp60_;
12089 				TrackerSparqlVariableBindingList* _tmp61_;
12090 				TrackerSparqlVariableBinding* _tmp62_;
12091 				TrackerSparqlVariableBinding* _tmp63_;
12092 #line 1245 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12093 				_tmp24_ = tracker_sparql_variable_binding_new ();
12094 #line 1245 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12095 				binding = _tmp24_;
12096 #line 1246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12097 				_tmp25_ = binding;
12098 #line 1246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12099 				_tmp26_ = variable;
12100 #line 1246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12101 				_tmp27_ = _tmp26_->binding;
12102 #line 1246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12103 				_tmp28_ = ((TrackerSparqlDataBinding*) _tmp27_)->data_type;
12104 #line 1246 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12105 				((TrackerSparqlDataBinding*) _tmp25_)->data_type = _tmp28_;
12106 #line 1247 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12107 				_tmp29_ = binding;
12108 #line 1247 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12109 				_tmp30_ = tracker_sparql_pattern_get_context (self);
12110 #line 1247 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12111 				_tmp31_ = _tmp30_;
12112 #line 1247 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12113 				_tmp32_ = variable;
12114 #line 1247 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12115 				_tmp33_ = tracker_sparql_variable_get_name (_tmp32_);
12116 #line 1247 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12117 				_tmp34_ = _tmp33_;
12118 #line 1247 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12119 				_tmp35_ = tracker_sparql_context_get_variable (_tmp31_, _tmp34_);
12120 #line 1247 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12121 				_tmp29_->variable = _tmp35_;
12122 #line 1248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12123 				_tmp36_ = binding;
12124 #line 1248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12125 				_tmp37_ = variable;
12126 #line 1248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12127 				_tmp38_ = _tmp37_->binding;
12128 #line 1248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12129 				_tmp39_ = _tmp38_->type;
12130 #line 1248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12131 				_tmp40_ = _g_object_ref0 (_tmp39_);
12132 #line 1248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12133 				_g_object_unref0 (_tmp36_->type);
12134 #line 1248 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12135 				_tmp36_->type = _tmp40_;
12136 #line 1249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12137 				_tmp41_ = binding;
12138 #line 1249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12139 				_tmp42_ = variable;
12140 #line 1249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12141 				_tmp43_ = tracker_sparql_variable_get_sql_expression (_tmp42_);
12142 #line 1249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12143 				_tmp44_ = _tmp43_;
12144 #line 1249 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12145 				tracker_sparql_data_binding_set_sql_expression ((TrackerSparqlDataBinding*) _tmp41_, _tmp44_);
12146 #line 1250 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12147 				_tmp45_ = tracker_sparql_variable_binding_list_new ();
12148 #line 1250 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12149 				_g_object_unref0 (binding_list);
12150 #line 1250 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12151 				binding_list = _tmp45_;
12152 #line 1251 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12153 				_tmp46_ = self->priv->triple_context;
12154 #line 1251 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12155 				if (_tmp46_ != NULL) {
12156 #line 12152 "tracker-sparql-pattern.c"
12157 					TrackerSparqlPatternTripleContext* _tmp47_;
12158 					TrackerSparqlVariable* _tmp48_;
12159 					TrackerSparqlVariable* _tmp49_;
12160 					TrackerSparqlPatternTripleContext* _tmp50_;
12161 					GHashTable* _tmp51_;
12162 					TrackerSparqlVariable* _tmp52_;
12163 					TrackerSparqlVariable* _tmp53_;
12164 					TrackerSparqlVariableBindingList* _tmp54_;
12165 					TrackerSparqlVariableBindingList* _tmp55_;
12166 #line 1252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12167 					_tmp47_ = self->priv->triple_context;
12168 #line 1252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12169 					_tmp48_ = variable;
12170 #line 1252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12171 					_tmp49_ = _g_object_ref0 (_tmp48_);
12172 #line 1252 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12173 					_tmp47_->variables = g_list_append (_tmp47_->variables, _tmp49_);
12174 #line 1253 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12175 					_tmp50_ = self->priv->triple_context;
12176 #line 1253 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12177 					_tmp51_ = _tmp50_->var_bindings;
12178 #line 1253 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12179 					_tmp52_ = variable;
12180 #line 1253 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12181 					_tmp53_ = _g_object_ref0 (_tmp52_);
12182 #line 1253 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12183 					_tmp54_ = binding_list;
12184 #line 1253 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12185 					_tmp55_ = _g_object_ref0 (_tmp54_);
12186 #line 1253 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12187 					g_hash_table_insert (_tmp51_, _tmp53_, _tmp55_);
12188 #line 12184 "tracker-sparql-pattern.c"
12189 				}
12190 #line 1256 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12191 				_tmp56_ = tracker_sparql_pattern_get_context (self);
12192 #line 1256 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12193 				_tmp57_ = _tmp56_;
12194 #line 1256 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12195 				_tmp58_ = _tmp57_->var_set;
12196 #line 1256 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12197 				_tmp59_ = variable;
12198 #line 1256 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12199 				_tmp60_ = _g_object_ref0 (_tmp59_);
12200 #line 1256 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12201 				g_hash_table_insert (_tmp58_, _tmp60_, (gpointer) ((gintptr) ((gint) TRACKER_SPARQL_VARIABLE_STATE_BOUND)));
12202 #line 1257 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12203 				_tmp61_ = binding_list;
12204 #line 1257 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12205 				_tmp62_ = binding;
12206 #line 1257 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12207 				_tmp63_ = _g_object_ref0 (_tmp62_);
12208 #line 1257 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12209 				_tmp61_->list = g_list_append (_tmp61_->list, _tmp63_);
12210 #line 1258 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12211 				_g_object_unref0 (binding);
12212 #line 1258 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12213 				break;
12214 #line 12210 "tracker-sparql-pattern.c"
12215 			}
12216 #line 1260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12217 			_tmp64_ = current_context;
12218 #line 1260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12219 			_tmp65_ = _tmp64_->parent_context;
12220 #line 1260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12221 			_tmp66_ = _tracker_sparql_context_ref0 (_tmp65_);
12222 #line 1260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12223 			_tracker_sparql_context_unref0 (current_context);
12224 #line 1260 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12225 			current_context = _tmp66_;
12226 #line 12222 "tracker-sparql-pattern.c"
12227 		}
12228 #line 1237 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12229 		_tracker_sparql_context_unref0 (current_context);
12230 #line 12226 "tracker-sparql-pattern.c"
12231 	}
12232 #line 1263 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12233 	result = binding_list;
12234 #line 1263 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12235 	return result;
12236 #line 12232 "tracker-sparql-pattern.c"
12237 }
12238 
12239 
12240 void tracker_sparql_pattern_add_variable_binding (TrackerSparqlPattern* self, GString* sql, TrackerSparqlVariableBinding* binding, TrackerSparqlVariableState variable_state) {
12241 	TrackerSparqlVariableBinding* _tmp0_;
12242 	TrackerSparqlVariable* _tmp1_;
12243 	TrackerSparqlVariableBindingList* _tmp2_ = NULL;
12244 	TrackerSparqlVariableBindingList* binding_list;
12245 	TrackerSparqlVariableBindingList* _tmp3_;
12246 	TrackerSparqlVariableBindingList* _tmp50_;
12247 	TrackerSparqlVariableBinding* _tmp51_;
12248 	TrackerSparqlVariableBinding* _tmp52_;
12249 	TrackerSparqlVariableBinding* _tmp53_;
12250 	TrackerSparqlVariable* _tmp54_;
12251 	TrackerSparqlVariableBinding* _tmp55_;
12252 #line 1266 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12253 	g_return_if_fail (self != NULL);
12254 #line 1266 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12255 	g_return_if_fail (sql != NULL);
12256 #line 1266 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12257 	g_return_if_fail (binding != NULL);
12258 #line 1267 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12259 	_tmp0_ = binding;
12260 #line 1267 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12261 	_tmp1_ = _tmp0_->variable;
12262 #line 1267 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12263 	_tmp2_ = tracker_sparql_pattern_get_variable_binding_list (self, _tmp1_);
12264 #line 1267 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12265 	binding_list = _tmp2_;
12266 #line 1268 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12267 	_tmp3_ = binding_list;
12268 #line 1268 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12269 	if (_tmp3_ == NULL) {
12270 #line 12266 "tracker-sparql-pattern.c"
12271 		TrackerSparqlVariableBindingList* _tmp4_;
12272 		TrackerSparqlPatternTripleContext* _tmp5_;
12273 		GString* _tmp17_;
12274 		TrackerSparqlVariableBinding* _tmp18_;
12275 		const gchar* _tmp19_;
12276 		const gchar* _tmp20_;
12277 		TrackerSparqlVariableBinding* _tmp21_;
12278 		TrackerSparqlVariable* _tmp22_;
12279 		const gchar* _tmp23_;
12280 		const gchar* _tmp24_;
12281 		TrackerSparqlVariableBinding* _tmp25_;
12282 		TrackerPropertyType _tmp26_;
12283 		TrackerSparqlContext* _tmp43_;
12284 		TrackerSparqlContext* _tmp44_;
12285 		GHashTable* _tmp45_;
12286 		TrackerSparqlVariableBinding* _tmp46_;
12287 		TrackerSparqlVariable* _tmp47_;
12288 		TrackerSparqlVariable* _tmp48_;
12289 		TrackerSparqlVariableState _tmp49_;
12290 #line 1269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12291 		_tmp4_ = tracker_sparql_variable_binding_list_new ();
12292 #line 1269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12293 		_g_object_unref0 (binding_list);
12294 #line 1269 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12295 		binding_list = _tmp4_;
12296 #line 1270 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12297 		_tmp5_ = self->priv->triple_context;
12298 #line 1270 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12299 		if (_tmp5_ != NULL) {
12300 #line 12296 "tracker-sparql-pattern.c"
12301 			TrackerSparqlPatternTripleContext* _tmp6_;
12302 			TrackerSparqlVariableBinding* _tmp7_;
12303 			TrackerSparqlVariable* _tmp8_;
12304 			TrackerSparqlVariable* _tmp9_;
12305 			TrackerSparqlPatternTripleContext* _tmp10_;
12306 			GHashTable* _tmp11_;
12307 			TrackerSparqlVariableBinding* _tmp12_;
12308 			TrackerSparqlVariable* _tmp13_;
12309 			TrackerSparqlVariable* _tmp14_;
12310 			TrackerSparqlVariableBindingList* _tmp15_;
12311 			TrackerSparqlVariableBindingList* _tmp16_;
12312 #line 1271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12313 			_tmp6_ = self->priv->triple_context;
12314 #line 1271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12315 			_tmp7_ = binding;
12316 #line 1271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12317 			_tmp8_ = _tmp7_->variable;
12318 #line 1271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12319 			_tmp9_ = _g_object_ref0 (_tmp8_);
12320 #line 1271 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12321 			_tmp6_->variables = g_list_append (_tmp6_->variables, _tmp9_);
12322 #line 1272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12323 			_tmp10_ = self->priv->triple_context;
12324 #line 1272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12325 			_tmp11_ = _tmp10_->var_bindings;
12326 #line 1272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12327 			_tmp12_ = binding;
12328 #line 1272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12329 			_tmp13_ = _tmp12_->variable;
12330 #line 1272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12331 			_tmp14_ = _g_object_ref0 (_tmp13_);
12332 #line 1272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12333 			_tmp15_ = binding_list;
12334 #line 1272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12335 			_tmp16_ = _g_object_ref0 (_tmp15_);
12336 #line 1272 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12337 			g_hash_table_insert (_tmp11_, _tmp14_, _tmp16_);
12338 #line 12334 "tracker-sparql-pattern.c"
12339 		}
12340 #line 1275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12341 		_tmp17_ = sql;
12342 #line 1275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12343 		_tmp18_ = binding;
12344 #line 1275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12345 		_tmp19_ = tracker_sparql_data_binding_get_sql_expression ((TrackerSparqlDataBinding*) _tmp18_);
12346 #line 1275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12347 		_tmp20_ = _tmp19_;
12348 #line 1275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12349 		_tmp21_ = binding;
12350 #line 1275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12351 		_tmp22_ = _tmp21_->variable;
12352 #line 1275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12353 		_tmp23_ = tracker_sparql_variable_get_sql_expression (_tmp22_);
12354 #line 1275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12355 		_tmp24_ = _tmp23_;
12356 #line 1275 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12357 		g_string_append_printf (_tmp17_, "%s AS %s, ", _tmp20_, _tmp24_);
12358 #line 1279 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12359 		_tmp25_ = binding;
12360 #line 1279 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12361 		_tmp26_ = ((TrackerSparqlDataBinding*) _tmp25_)->data_type;
12362 #line 1279 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12363 		if (_tmp26_ == TRACKER_PROPERTY_TYPE_DATETIME) {
12364 #line 12360 "tracker-sparql-pattern.c"
12365 			GString* _tmp27_;
12366 			TrackerSparqlVariableBinding* _tmp28_;
12367 			gchar* _tmp29_ = NULL;
12368 			gchar* _tmp30_;
12369 			TrackerSparqlVariableBinding* _tmp31_;
12370 			TrackerSparqlVariable* _tmp32_;
12371 			gchar* _tmp33_ = NULL;
12372 			gchar* _tmp34_;
12373 			GString* _tmp35_;
12374 			TrackerSparqlVariableBinding* _tmp36_;
12375 			gchar* _tmp37_ = NULL;
12376 			gchar* _tmp38_;
12377 			TrackerSparqlVariableBinding* _tmp39_;
12378 			TrackerSparqlVariable* _tmp40_;
12379 			gchar* _tmp41_ = NULL;
12380 			gchar* _tmp42_;
12381 #line 1280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12382 			_tmp27_ = sql;
12383 #line 1280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12384 			_tmp28_ = binding;
12385 #line 1280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12386 			_tmp29_ = tracker_sparql_data_binding_get_extra_sql_expression ((TrackerSparqlDataBinding*) _tmp28_, "localDate");
12387 #line 1280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12388 			_tmp30_ = _tmp29_;
12389 #line 1280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12390 			_tmp31_ = binding;
12391 #line 1280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12392 			_tmp32_ = _tmp31_->variable;
12393 #line 1280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12394 			_tmp33_ = tracker_sparql_variable_get_extra_sql_expression (_tmp32_, "localDate");
12395 #line 1280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12396 			_tmp34_ = _tmp33_;
12397 #line 1280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12398 			g_string_append_printf (_tmp27_, "%s AS %s, ", _tmp30_, _tmp34_);
12399 #line 1280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12400 			_g_free0 (_tmp34_);
12401 #line 1280 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12402 			_g_free0 (_tmp30_);
12403 #line 1283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12404 			_tmp35_ = sql;
12405 #line 1283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12406 			_tmp36_ = binding;
12407 #line 1283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12408 			_tmp37_ = tracker_sparql_data_binding_get_extra_sql_expression ((TrackerSparqlDataBinding*) _tmp36_, "localTime");
12409 #line 1283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12410 			_tmp38_ = _tmp37_;
12411 #line 1283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12412 			_tmp39_ = binding;
12413 #line 1283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12414 			_tmp40_ = _tmp39_->variable;
12415 #line 1283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12416 			_tmp41_ = tracker_sparql_variable_get_extra_sql_expression (_tmp40_, "localTime");
12417 #line 1283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12418 			_tmp42_ = _tmp41_;
12419 #line 1283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12420 			g_string_append_printf (_tmp35_, "%s AS %s, ", _tmp38_, _tmp42_);
12421 #line 1283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12422 			_g_free0 (_tmp42_);
12423 #line 1283 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12424 			_g_free0 (_tmp38_);
12425 #line 12421 "tracker-sparql-pattern.c"
12426 		}
12427 #line 1288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12428 		_tmp43_ = tracker_sparql_pattern_get_context (self);
12429 #line 1288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12430 		_tmp44_ = _tmp43_;
12431 #line 1288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12432 		_tmp45_ = _tmp44_->var_set;
12433 #line 1288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12434 		_tmp46_ = binding;
12435 #line 1288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12436 		_tmp47_ = _tmp46_->variable;
12437 #line 1288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12438 		_tmp48_ = _g_object_ref0 (_tmp47_);
12439 #line 1288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12440 		_tmp49_ = variable_state;
12441 #line 1288 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12442 		g_hash_table_insert (_tmp45_, _tmp48_, (gpointer) ((gintptr) ((gint) _tmp49_)));
12443 #line 12439 "tracker-sparql-pattern.c"
12444 	}
12445 #line 1290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12446 	_tmp50_ = binding_list;
12447 #line 1290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12448 	_tmp51_ = binding;
12449 #line 1290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12450 	_tmp52_ = _g_object_ref0 (_tmp51_);
12451 #line 1290 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12452 	_tmp50_->list = g_list_append (_tmp50_->list, _tmp52_);
12453 #line 1291 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12454 	_tmp53_ = binding;
12455 #line 1291 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12456 	_tmp54_ = _tmp53_->variable;
12457 #line 1291 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12458 	_tmp55_ = _tmp54_->binding;
12459 #line 1291 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12460 	if (_tmp55_ == NULL) {
12461 #line 12457 "tracker-sparql-pattern.c"
12462 		TrackerSparqlVariableBinding* _tmp56_;
12463 		TrackerSparqlVariable* _tmp57_;
12464 		TrackerSparqlVariableBinding* _tmp58_;
12465 		TrackerSparqlVariableBinding* _tmp59_;
12466 #line 1292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12467 		_tmp56_ = binding;
12468 #line 1292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12469 		_tmp57_ = _tmp56_->variable;
12470 #line 1292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12471 		_tmp58_ = binding;
12472 #line 1292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12473 		_tmp59_ = _g_object_ref0 (_tmp58_);
12474 #line 1292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12475 		_g_object_unref0 (_tmp57_->binding);
12476 #line 1292 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12477 		_tmp57_->binding = _tmp59_;
12478 #line 12474 "tracker-sparql-pattern.c"
12479 	}
12480 #line 1266 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12481 	_g_object_unref0 (binding_list);
12482 #line 12478 "tracker-sparql-pattern.c"
12483 }
12484 
12485 
12486 static void tracker_sparql_pattern_parse_object (TrackerSparqlPattern* self, GString* sql, gboolean in_simple_optional, GError** error) {
12487 	GString* _tmp0_;
12488 	gssize _tmp1_;
12489 	glong begin_sql_len;
12490 	gboolean object_is_var = FALSE;
12491 	GString* _tmp2_;
12492 	gboolean _tmp3_ = FALSE;
12493 	gchar* _tmp4_ = NULL;
12494 	gchar* object;
12495 	gchar* db_table;
12496 	gboolean rdftype;
12497 	gboolean share_table;
12498 	gboolean is_fts_match;
12499 	gboolean newtable = FALSE;
12500 	TrackerSparqlDataTable* table = NULL;
12501 	TrackerProperty* prop;
12502 	TrackerClass* subject_type;
12503 	gboolean _tmp5_;
12504 	gboolean _tmp268_;
12505 	gboolean _tmp303_;
12506 	GString* _tmp439_;
12507 	gssize _tmp440_;
12508 	glong _tmp441_;
12509 	GError * _inner_error_ = NULL;
12510 #line 1296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12511 	g_return_if_fail (self != NULL);
12512 #line 1296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12513 	g_return_if_fail (sql != NULL);
12514 #line 1297 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12515 	_tmp0_ = sql;
12516 #line 1297 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12517 	_tmp1_ = _tmp0_->len;
12518 #line 1297 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12519 	begin_sql_len = (glong) _tmp1_;
12520 #line 1300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12521 	_tmp2_ = sql;
12522 #line 1300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12523 	_tmp4_ = tracker_sparql_pattern_parse_var_or_term (self, _tmp2_, &_tmp3_, &_inner_error_);
12524 #line 1300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12525 	object_is_var = _tmp3_;
12526 #line 1300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12527 	object = _tmp4_;
12528 #line 1300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12529 	if (_inner_error_ != NULL) {
12530 #line 1300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12531 		if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
12532 #line 1300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12533 			g_propagate_error (error, _inner_error_);
12534 #line 1300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12535 			return;
12536 #line 12532 "tracker-sparql-pattern.c"
12537 		} else {
12538 #line 1300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12539 			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);
12540 #line 1300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12541 			g_clear_error (&_inner_error_);
12542 #line 1300 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12543 			return;
12544 #line 12540 "tracker-sparql-pattern.c"
12545 		}
12546 	}
12547 #line 1302 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12548 	db_table = NULL;
12549 #line 1303 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12550 	rdftype = FALSE;
12551 #line 1304 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12552 	share_table = TRUE;
12553 #line 1305 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12554 	is_fts_match = FALSE;
12555 #line 1309 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12556 	prop = NULL;
12557 #line 1311 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12558 	subject_type = NULL;
12559 #line 1313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12560 	_tmp5_ = self->priv->current_predicate_is_var;
12561 #line 1313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12562 	if (!_tmp5_) {
12563 #line 12559 "tracker-sparql-pattern.c"
12564 		const gchar* _tmp6_;
12565 		TrackerProperty* _tmp7_ = NULL;
12566 		TrackerProperty* _tmp8_;
12567 		gboolean _tmp9_ = FALSE;
12568 		gboolean _tmp10_ = FALSE;
12569 		const gchar* _tmp11_;
12570 		gboolean _tmp13_;
12571 		gboolean _tmp15_;
12572 		const gchar* _tmp200_;
12573 		const gchar* _tmp201_;
12574 		gboolean _tmp202_;
12575 		gboolean _tmp203_ = FALSE;
12576 		TrackerSparqlDataTable* _tmp204_ = NULL;
12577 #line 1314 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12578 		_tmp6_ = self->priv->current_predicate;
12579 #line 1314 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12580 		_tmp7_ = tracker_ontologies_get_property_by_uri (_tmp6_);
12581 #line 1314 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12582 		_tmp8_ = _g_object_ref0 (_tmp7_);
12583 #line 1314 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12584 		_g_object_unref0 (prop);
12585 #line 1314 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12586 		prop = _tmp8_;
12587 #line 1316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12588 		_tmp11_ = self->priv->current_predicate;
12589 #line 1316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12590 		if (g_strcmp0 (_tmp11_, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type") == 0) {
12591 #line 12587 "tracker-sparql-pattern.c"
12592 			gboolean _tmp12_;
12593 #line 1317 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12594 			_tmp12_ = object_is_var;
12595 #line 1317 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12596 			_tmp10_ = !_tmp12_;
12597 #line 12593 "tracker-sparql-pattern.c"
12598 		} else {
12599 #line 1316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12600 			_tmp10_ = FALSE;
12601 #line 12597 "tracker-sparql-pattern.c"
12602 		}
12603 #line 1316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12604 		_tmp13_ = _tmp10_;
12605 #line 1316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12606 		if (_tmp13_) {
12607 #line 12603 "tracker-sparql-pattern.c"
12608 			const gchar* _tmp14_;
12609 #line 1317 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12610 			_tmp14_ = self->current_graph;
12611 #line 1317 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12612 			_tmp9_ = _tmp14_ == NULL;
12613 #line 12609 "tracker-sparql-pattern.c"
12614 		} else {
12615 #line 1316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12616 			_tmp9_ = FALSE;
12617 #line 12613 "tracker-sparql-pattern.c"
12618 		}
12619 #line 1316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12620 		_tmp15_ = _tmp9_;
12621 #line 1316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12622 		if (_tmp15_) {
12623 #line 12619 "tracker-sparql-pattern.c"
12624 			const gchar* _tmp16_;
12625 			TrackerClass* _tmp17_ = NULL;
12626 			TrackerClass* _tmp18_;
12627 			TrackerClass* cl;
12628 			TrackerClass* _tmp19_;
12629 			TrackerClass* _tmp25_;
12630 			const gchar* _tmp26_;
12631 			const gchar* _tmp27_;
12632 			gchar* _tmp28_;
12633 			TrackerClass* _tmp29_;
12634 			TrackerClass* _tmp30_;
12635 #line 1320 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12636 			rdftype = TRUE;
12637 #line 1321 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12638 			_tmp16_ = object;
12639 #line 1321 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12640 			_tmp17_ = tracker_ontologies_get_class_by_uri (_tmp16_);
12641 #line 1321 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12642 			_tmp18_ = _g_object_ref0 (_tmp17_);
12643 #line 1321 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12644 			cl = _tmp18_;
12645 #line 1322 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12646 			_tmp19_ = cl;
12647 #line 1322 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12648 			if (_tmp19_ == NULL) {
12649 #line 12645 "tracker-sparql-pattern.c"
12650 				const gchar* _tmp20_;
12651 				gchar* _tmp21_ = NULL;
12652 				gchar* _tmp22_;
12653 				GError* _tmp23_;
12654 				GError* _tmp24_;
12655 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12656 				_tmp20_ = object;
12657 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12658 				_tmp21_ = g_strdup_printf ("Unknown class `%s'", _tmp20_);
12659 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12660 				_tmp22_ = _tmp21_;
12661 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12662 				_tmp23_ = g_error_new_literal (TRACKER_SPARQL_ERROR, TRACKER_SPARQL_ERROR_UNKNOWN_CLASS, _tmp22_);
12663 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12664 				_tmp24_ = _tmp23_;
12665 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12666 				_g_free0 (_tmp22_);
12667 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12668 				_inner_error_ = _tmp24_;
12669 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12670 				if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
12671 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12672 					g_propagate_error (error, _inner_error_);
12673 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12674 					_g_object_unref0 (cl);
12675 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12676 					_g_object_unref0 (subject_type);
12677 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12678 					_g_object_unref0 (prop);
12679 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12680 					_g_object_unref0 (table);
12681 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12682 					_g_free0 (db_table);
12683 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12684 					_g_free0 (object);
12685 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12686 					return;
12687 #line 12683 "tracker-sparql-pattern.c"
12688 				} else {
12689 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12690 					_g_object_unref0 (cl);
12691 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12692 					_g_object_unref0 (subject_type);
12693 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12694 					_g_object_unref0 (prop);
12695 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12696 					_g_object_unref0 (table);
12697 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12698 					_g_free0 (db_table);
12699 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12700 					_g_free0 (object);
12701 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12702 					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);
12703 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12704 					g_clear_error (&_inner_error_);
12705 #line 1323 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12706 					return;
12707 #line 12703 "tracker-sparql-pattern.c"
12708 				}
12709 			}
12710 #line 1325 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12711 			_tmp25_ = cl;
12712 #line 1325 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12713 			_tmp26_ = tracker_class_get_name (_tmp25_);
12714 #line 1325 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12715 			_tmp27_ = _tmp26_;
12716 #line 1325 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12717 			_tmp28_ = g_strdup (_tmp27_);
12718 #line 1325 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12719 			_g_free0 (db_table);
12720 #line 1325 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12721 			db_table = _tmp28_;
12722 #line 1326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12723 			_tmp29_ = cl;
12724 #line 1326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12725 			_tmp30_ = _g_object_ref0 (_tmp29_);
12726 #line 1326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12727 			_g_object_unref0 (subject_type);
12728 #line 1326 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12729 			subject_type = _tmp30_;
12730 #line 1316 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12731 			_g_object_unref0 (cl);
12732 #line 12728 "tracker-sparql-pattern.c"
12733 		} else {
12734 			TrackerProperty* _tmp31_;
12735 #line 1327 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12736 			_tmp31_ = prop;
12737 #line 1327 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12738 			if (_tmp31_ == NULL) {
12739 #line 12735 "tracker-sparql-pattern.c"
12740 				const gchar* _tmp32_;
12741 #line 1328 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12742 				_tmp32_ = self->priv->current_predicate;
12743 #line 1328 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12744 				if (g_strcmp0 (_tmp32_, "http://www.tracker-project.org/ontologies/fts#match") == 0) {
12745 #line 12741 "tracker-sparql-pattern.c"
12746 					gchar* _tmp33_;
12747 					TrackerSparqlContext* _tmp34_;
12748 					TrackerSparqlContext* _tmp35_;
12749 					const gchar* _tmp36_;
12750 					TrackerSparqlVariable* _tmp37_ = NULL;
12751 					TrackerSparqlVariable* _tmp38_;
12752 #line 1330 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12753 					_tmp33_ = g_strdup ("fts");
12754 #line 1330 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12755 					_g_free0 (db_table);
12756 #line 1330 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12757 					db_table = _tmp33_;
12758 #line 1331 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12759 					share_table = FALSE;
12760 #line 1332 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12761 					is_fts_match = TRUE;
12762 #line 1333 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12763 					_tmp34_ = tracker_sparql_pattern_get_context (self);
12764 #line 1333 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12765 					_tmp35_ = _tmp34_;
12766 #line 1333 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12767 					_tmp36_ = self->priv->current_subject;
12768 #line 1333 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12769 					_tmp37_ = tracker_sparql_context_get_variable (_tmp35_, _tmp36_);
12770 #line 1333 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12771 					_tmp38_ = _g_object_ref0 (_tmp37_);
12772 #line 1333 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12773 					_g_object_unref0 (self->fts_subject);
12774 #line 1333 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12775 					self->fts_subject = _tmp38_;
12776 #line 12772 "tracker-sparql-pattern.c"
12777 				} else {
12778 					const gchar* _tmp39_;
12779 					gchar* _tmp40_ = NULL;
12780 					gchar* _tmp41_;
12781 					GError* _tmp42_;
12782 					GError* _tmp43_;
12783 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12784 					_tmp39_ = self->priv->current_predicate;
12785 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12786 					_tmp40_ = g_strdup_printf ("Unknown property `%s'", _tmp39_);
12787 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12788 					_tmp41_ = _tmp40_;
12789 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12790 					_tmp42_ = g_error_new_literal (TRACKER_SPARQL_ERROR, TRACKER_SPARQL_ERROR_UNKNOWN_PROPERTY, _tmp41_);
12791 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12792 					_tmp43_ = _tmp42_;
12793 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12794 					_g_free0 (_tmp41_);
12795 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12796 					_inner_error_ = _tmp43_;
12797 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12798 					if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
12799 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12800 						g_propagate_error (error, _inner_error_);
12801 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12802 						_g_object_unref0 (subject_type);
12803 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12804 						_g_object_unref0 (prop);
12805 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12806 						_g_object_unref0 (table);
12807 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12808 						_g_free0 (db_table);
12809 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12810 						_g_free0 (object);
12811 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12812 						return;
12813 #line 12809 "tracker-sparql-pattern.c"
12814 					} else {
12815 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12816 						_g_object_unref0 (subject_type);
12817 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12818 						_g_object_unref0 (prop);
12819 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12820 						_g_object_unref0 (table);
12821 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12822 						_g_free0 (db_table);
12823 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12824 						_g_free0 (object);
12825 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12826 						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);
12827 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12828 						g_clear_error (&_inner_error_);
12829 #line 1335 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12830 						return;
12831 #line 12827 "tracker-sparql-pattern.c"
12832 					}
12833 				}
12834 			} else {
12835 				gboolean _tmp44_ = FALSE;
12836 				gboolean _tmp45_ = FALSE;
12837 				const gchar* _tmp46_;
12838 				gboolean _tmp48_;
12839 				gboolean _tmp50_;
12840 				gboolean _tmp84_;
12841 				const gchar* _tmp115_;
12842 				TrackerProperty* _tmp120_;
12843 				gboolean _tmp121_;
12844 				gboolean _tmp122_;
12845 				TrackerProperty* _tmp123_;
12846 				TrackerClass* _tmp124_;
12847 				TrackerClass* _tmp125_;
12848 				TrackerClass* _tmp126_;
12849 				gboolean _tmp127_ = FALSE;
12850 				gboolean _tmp128_;
12851 				gboolean _tmp137_;
12852 #line 1338 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12853 				_tmp46_ = self->priv->current_predicate;
12854 #line 1338 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12855 				if (g_strcmp0 (_tmp46_, "http://www.w3.org/2000/01/rdf-schema#domain") == 0) {
12856 #line 12852 "tracker-sparql-pattern.c"
12857 					gboolean _tmp47_;
12858 #line 1339 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12859 					_tmp47_ = self->priv->current_subject_is_var;
12860 #line 1339 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12861 					_tmp45_ = _tmp47_;
12862 #line 12858 "tracker-sparql-pattern.c"
12863 				} else {
12864 #line 1338 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12865 					_tmp45_ = FALSE;
12866 #line 12862 "tracker-sparql-pattern.c"
12867 				}
12868 #line 1338 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12869 				_tmp48_ = _tmp45_;
12870 #line 1338 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12871 				if (_tmp48_) {
12872 #line 12868 "tracker-sparql-pattern.c"
12873 					gboolean _tmp49_;
12874 #line 1340 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12875 					_tmp49_ = object_is_var;
12876 #line 1340 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12877 					_tmp44_ = !_tmp49_;
12878 #line 12874 "tracker-sparql-pattern.c"
12879 				} else {
12880 #line 1338 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12881 					_tmp44_ = FALSE;
12882 #line 12878 "tracker-sparql-pattern.c"
12883 				}
12884 #line 1338 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12885 				_tmp50_ = _tmp44_;
12886 #line 1338 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12887 				if (_tmp50_) {
12888 #line 12884 "tracker-sparql-pattern.c"
12889 					const gchar* _tmp51_;
12890 					TrackerClass* _tmp52_ = NULL;
12891 					TrackerClass* _tmp53_;
12892 					TrackerClass* domain;
12893 					TrackerClass* _tmp54_;
12894 					TrackerSparqlContext* _tmp60_;
12895 					TrackerSparqlContext* _tmp61_;
12896 					GHashTable* _tmp62_;
12897 					TrackerSparqlContext* _tmp63_;
12898 					TrackerSparqlContext* _tmp64_;
12899 					const gchar* _tmp65_;
12900 					TrackerSparqlVariable* _tmp66_ = NULL;
12901 					gconstpointer _tmp67_ = NULL;
12902 					TrackerSparqlPredicateVariable* _tmp68_;
12903 					TrackerSparqlPredicateVariable* pv;
12904 					TrackerSparqlPredicateVariable* _tmp69_;
12905 					TrackerSparqlPredicateVariable* _tmp81_;
12906 					TrackerClass* _tmp82_;
12907 					TrackerClass* _tmp83_;
12908 #line 1342 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12909 					_tmp51_ = object;
12910 #line 1342 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12911 					_tmp52_ = tracker_ontologies_get_class_by_uri (_tmp51_);
12912 #line 1342 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12913 					_tmp53_ = _g_object_ref0 (_tmp52_);
12914 #line 1342 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12915 					domain = _tmp53_;
12916 #line 1343 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12917 					_tmp54_ = domain;
12918 #line 1343 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12919 					if (_tmp54_ == NULL) {
12920 #line 12916 "tracker-sparql-pattern.c"
12921 						const gchar* _tmp55_;
12922 						gchar* _tmp56_ = NULL;
12923 						gchar* _tmp57_;
12924 						GError* _tmp58_;
12925 						GError* _tmp59_;
12926 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12927 						_tmp55_ = object;
12928 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12929 						_tmp56_ = g_strdup_printf ("Unknown class `%s'", _tmp55_);
12930 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12931 						_tmp57_ = _tmp56_;
12932 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12933 						_tmp58_ = g_error_new_literal (TRACKER_SPARQL_ERROR, TRACKER_SPARQL_ERROR_UNKNOWN_CLASS, _tmp57_);
12934 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12935 						_tmp59_ = _tmp58_;
12936 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12937 						_g_free0 (_tmp57_);
12938 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12939 						_inner_error_ = _tmp59_;
12940 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12941 						if (_inner_error_->domain == TRACKER_SPARQL_ERROR) {
12942 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12943 							g_propagate_error (error, _inner_error_);
12944 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12945 							_g_object_unref0 (domain);
12946 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12947 							_g_object_unref0 (subject_type);
12948 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12949 							_g_object_unref0 (prop);
12950 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12951 							_g_object_unref0 (table);
12952 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12953 							_g_free0 (db_table);
12954 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12955 							_g_free0 (object);
12956 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12957 							return;
12958 #line 12954 "tracker-sparql-pattern.c"
12959 						} else {
12960 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12961 							_g_object_unref0 (domain);
12962 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12963 							_g_object_unref0 (subject_type);
12964 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12965 							_g_object_unref0 (prop);
12966 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12967 							_g_object_unref0 (table);
12968 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12969 							_g_free0 (db_table);
12970 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12971 							_g_free0 (object);
12972 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12973 							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);
12974 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12975 							g_clear_error (&_inner_error_);
12976 #line 1344 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12977 							return;
12978 #line 12974 "tracker-sparql-pattern.c"
12979 						}
12980 					}
12981 #line 1346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12982 					_tmp60_ = tracker_sparql_pattern_get_context (self);
12983 #line 1346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12984 					_tmp61_ = _tmp60_;
12985 #line 1346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12986 					_tmp62_ = _tmp61_->predicate_variable_map;
12987 #line 1346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12988 					_tmp63_ = tracker_sparql_pattern_get_context (self);
12989 #line 1346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12990 					_tmp64_ = _tmp63_;
12991 #line 1346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12992 					_tmp65_ = self->priv->current_subject;
12993 #line 1346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12994 					_tmp66_ = tracker_sparql_context_get_variable (_tmp64_, _tmp65_);
12995 #line 1346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12996 					_tmp67_ = g_hash_table_lookup (_tmp62_, _tmp66_);
12997 #line 1346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
12998 					_tmp68_ = _g_object_ref0 ((TrackerSparqlPredicateVariable*) _tmp67_);
12999 #line 1346 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13000 					pv = _tmp68_;
13001 #line 1347 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13002 					_tmp69_ = pv;
13003 #line 1347 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13004 					if (_tmp69_ == NULL) {
13005 #line 13001 "tracker-sparql-pattern.c"
13006 						TrackerSparqlPredicateVariable* _tmp70_;
13007 						TrackerSparqlContext* _tmp71_;
13008 						TrackerSparqlContext* _tmp72_;
13009 						GHashTable* _tmp73_;
13010 						TrackerSparqlContext* _tmp74_;
13011 						TrackerSparqlContext* _tmp75_;
13012 						const gchar* _tmp76_;
13013 						TrackerSparqlVariable* _tmp77_ = NULL;
13014 						TrackerSparqlVariable* _tmp78_;
13015 						TrackerSparqlPredicateVariable* _tmp79_;
13016 						TrackerSparqlPredicateVariable* _tmp80_;
13017 #line 1348 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13018 						_tmp70_ = tracker_sparql_predicate_variable_new ();
13019 #line 1348 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13020 						_g_object_unref0 (pv);
13021 #line 1348 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13022 						pv = _tmp70_;
13023 #line 1349 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13024 						_tmp71_ = tracker_sparql_pattern_get_context (self);
13025 #line 1349 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13026 						_tmp72_ = _tmp71_;
13027 #line 1349 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13028 						_tmp73_ = _tmp72_->predicate_variable_map;
13029 #line 1349 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13030 						_tmp74_ = tracker_sparql_pattern_get_context (self);
13031 #line 1349 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13032 						_tmp75_ = _tmp74_;
13033 #line 1349 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13034 						_tmp76_ = self->priv->current_subject;
13035 #line 1349 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13036 						_tmp77_ = tracker_sparql_context_get_variable (_tmp75_, _tmp76_);
13037 #line 1349 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13038 						_tmp78_ = _g_object_ref0 (_tmp77_);
13039 #line 1349 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13040 						_tmp79_ = pv;
13041 #line 1349 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13042 						_tmp80_ = _g_object_ref0 (_tmp79_);
13043 #line 1349 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13044 						g_hash_table_insert (_tmp73_, _tmp78_, _tmp80_);
13045 #line 13041 "tracker-sparql-pattern.c"
13046 					}
13047 #line 1351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13048 					_tmp81_ = pv;
13049 #line 1351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13050 					_tmp82_ = domain;
13051 #line 1351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13052 					_tmp83_ = _g_object_ref0 (_tmp82_);
13053 #line 1351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13054 					_g_object_unref0 (_tmp81_->domain);
13055 #line 1351 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13056 					_tmp81_->domain = _tmp83_;
13057 #line 1338 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13058 					_g_object_unref0 (pv);
13059 #line 1338 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13060 					_g_object_unref0 (domain);
13061 #line 13057 "tracker-sparql-pattern.c"
13062 				}
13063 #line 1354 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13064 				_tmp84_ = self->priv->current_subject_is_var;
13065 #line 1354 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13066 				if (_tmp84_) {
13067 #line 13063 "tracker-sparql-pattern.c"
13068 					TrackerSparqlContext* _tmp85_;
13069 					TrackerSparqlContext* _tmp86_;
13070 					const gchar* _tmp87_;
13071 					TrackerSparqlVariable* _tmp88_ = NULL;
13072 					TrackerSparqlVariable* _tmp89_;
13073 					TrackerSparqlVariable* v;
13074 					TrackerSparqlPatternTripleContext* _tmp90_;
13075 					GHashTable* _tmp91_;
13076 					TrackerSparqlVariable* _tmp92_;
13077 					gconstpointer _tmp93_ = NULL;
13078 					TrackerSparqlVariableBindingList* _tmp94_;
13079 					TrackerSparqlVariableBindingList* list;
13080 					gboolean _tmp95_ = FALSE;
13081 					TrackerSparqlVariableBindingList* _tmp96_;
13082 					gboolean _tmp99_;
13083 #line 1356 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13084 					_tmp85_ = tracker_sparql_pattern_get_context (self);
13085 #line 1356 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13086 					_tmp86_ = _tmp85_;
13087 #line 1356 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13088 					_tmp87_ = self->priv->current_subject;
13089 #line 1356 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13090 					_tmp88_ = tracker_sparql_context_get_variable (_tmp86_, _tmp87_);
13091 #line 1356 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13092 					_tmp89_ = _g_object_ref0 (_tmp88_);
13093 #line 1356 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13094 					v = _tmp89_;
13095 #line 1357 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13096 					_tmp90_ = self->priv->triple_context;
13097 #line 1357 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13098 					_tmp91_ = _tmp90_->var_bindings;
13099 #line 1357 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13100 					_tmp92_ = v;
13101 #line 1357 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13102 					_tmp93_ = g_hash_table_lookup (_tmp91_, _tmp92_);
13103 #line 1357 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13104 					_tmp94_ = _g_object_ref0 ((TrackerSparqlVariableBindingList*) _tmp93_);
13105 #line 1357 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13106 					list = _tmp94_;
13107 #line 1359 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13108 					_tmp96_ = list;
13109 #line 1359 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13110 					if (_tmp96_ != NULL) {
13111 #line 13107 "tracker-sparql-pattern.c"
13112 						TrackerSparqlVariableBindingList* _tmp97_;
13113 						GList* _tmp98_;
13114 #line 1359 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13115 						_tmp97_ = list;
13116 #line 1359 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13117 						_tmp98_ = _tmp97_->list;
13118 #line 1359 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13119 						_tmp95_ = _tmp98_ != NULL;
13120 #line 13116 "tracker-sparql-pattern.c"
13121 					} else {
13122 #line 1359 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13123 						_tmp95_ = FALSE;
13124 #line 13120 "tracker-sparql-pattern.c"
13125 					}
13126 #line 1359 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13127 					_tmp99_ = _tmp95_;
13128 #line 1359 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13129 					if (_tmp99_) {
13130 #line 13126 "tracker-sparql-pattern.c"
13131 						gboolean stop;
13132 						TrackerProperty* _tmp100_;
13133 						TrackerClass** _tmp101_;
13134 						TrackerClass** _tmp102_ = NULL;
13135 #line 1360 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13136 						stop = FALSE;
13137 #line 1361 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13138 						_tmp100_ = prop;
13139 #line 1361 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13140 						_tmp102_ = _tmp101_ = tracker_property_get_domain_indexes (_tmp100_);
      (emitted by gcc)13141 #line 13137 "tracker-sparql-pattern.c"
13142 						{
13143 							TrackerClass** cl_collection = NULL;
13144 							gint cl_collection_length1 = 0;
13145 							gint _cl_collection_size_ = 0;
13146 							gint cl_it = 0;
13147 #line 1361 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13148 							cl_collection = _tmp102_;
13149 #line 1361 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13150 							cl_collection_length1 = _vala_array_length (_tmp101_);
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
13151 #line 1361 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13152 							for (cl_it = 0; cl_it < _vala_array_length (_tmp101_); cl_it = cl_it + 1) {
13153 #line 13149 "tracker-sparql-pattern.c"
13154 								TrackerClass* _tmp103_;
13155 								TrackerClass* cl = NULL;
13156 #line 1361 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13157 								_tmp103_ = _g_object_ref0 (cl_collection[cl_it]);
13158 #line 1361 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13159 								cl = _tmp103_;
13160 #line 13156 "tracker-sparql-pattern.c"
13161 								{
13162 									TrackerSparqlVariableBindingList* _tmp104_;
13163 									GList* _tmp105_;
13164 									gboolean _tmp114_;
13165 #line 1362 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13166 									_tmp104_ = list;
13167 #line 1362 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13168 									_tmp105_ = _tmp104_->list;
13169 #line 13165 "tracker-sparql-pattern.c"
13170 									{
13171 										GList* b_collection = NULL;
13172 										GList* b_it = NULL;
13173 #line 1362 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13174 										b_collection = _tmp105_;
13175 #line 1362 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13176 										for (b_it = b_collection; b_it != NULL; b_it = b_it->next) {
13177 #line 13173 "tracker-sparql-pattern.c"
13178 											TrackerSparqlVariableBinding* _tmp106_;
13179 											TrackerSparqlVariableBinding* b = NULL;
13180 #line 1362 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13181 											_tmp106_ = _g_object_ref0 ((TrackerSparqlVariableBinding*) b_it->data);
13182 #line 1362 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13183 											b = _tmp106_;
13184 #line 13180 "tracker-sparql-pattern.c"
13185 											{
13186 												TrackerSparqlVariableBinding* _tmp107_;
13187 												TrackerClass* _tmp108_;
13188 												TrackerClass* _tmp109_;
13189 #line 1363 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13190 												_tmp107_ = b;
13191 #line 1363 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13192 												_tmp108_ = _tmp107_->type;
13193 #line 1363 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13194 												_tmp109_ = cl;
13195 #line 1363 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13196 												if (_tmp108_ == _tmp109_) {
13197 #line 13193 "tracker-sparql-pattern.c"
13198 													TrackerClass* _tmp110_;
13199 													const gchar* _tmp111_;
13200 													const gchar* _tmp112_;
13201 													gchar* _tmp113_;
13202 #line 1364 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13203 													_tmp110_ = cl;
13204 #line 1364 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13205 													_tmp111_ = tracker_class_get_name (_tmp110_);
13206 #line 1364 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13207 													_tmp112_ = _tmp111_;
13208 #line 1364 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13209 													_tmp113_ = g_strdup (_tmp112_);
13210 #line 1364 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13211 													_g_free0 (db_table);
13212 #line 1364 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13213 													db_table = _tmp113_;
13214 #line 1365 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13215 													stop = TRUE;
13216 #line 1366 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13217 													_g_object_unref0 (b);
13218 #line 1366 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13219 													break;
13220 #line 13216 "tracker-sparql-pattern.c"
13221 												}
13222 #line 1362 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13223 												_g_object_unref0 (b);
13224 #line 13220 "tracker-sparql-pattern.c"
13225 											}
13226 										}
13227 									}
13228 #line 1369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13229 									_tmp114_ = stop;
13230 #line 1369 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13231 									if (_tmp114_) {
13232 #line 1370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13233 										_g_object_unref0 (cl);
13234 #line 1370 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13235 										break;
13236 #line 13232 "tracker-sparql-pattern.c"
13237 									}
13238 #line 1361 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13239 									_g_object_unref0 (cl);
13240 #line 13236 "tracker-sparql-pattern.c"
13241 								}
13242 							}
13243 						}
13244 					}
13245 #line 1354 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13246 					_g_object_unref0 (list);
13247 #line 1354 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13248 					_g_object_unref0 (v);
13249 #line 13245 "tracker-sparql-pattern.c"
13250 				}
13251 #line 1376 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13252 				_tmp115_ = db_table;
13253 #line 1376 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13254 				if (_tmp115_ == NULL) {
13255 #line 13251 "tracker-sparql-pattern.c"
13256 					TrackerProperty* _tmp116_;
13257 					const gchar* _tmp117_;
13258 					const gchar* _tmp118_;
13259 					gchar* _tmp119_;
13260 #line 1377 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13261 					_tmp116_ = prop;
13262 #line 1377 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13263 					_tmp117_ = tracker_property_get_table_name (_tmp116_);
13264 #line 1377 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13265 					_tmp118_ = _tmp117_;
13266 #line 1377 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13267 					_tmp119_ = g_strdup (_tmp118_);
13268 #line 1377 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13269 					_g_free0 (db_table);
13270 #line 1377 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13271 					db_table = _tmp119_;
13272 #line 13268 "tracker-sparql-pattern.c"
13273 				}
13274 #line 1379 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13275 				_tmp120_ = prop;
13276 #line 1379 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13277 				_tmp121_ = tracker_property_get_multiple_values (_tmp120_);
13278 #line 1379 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13279 				_tmp122_ = _tmp121_;
13280 #line 1379 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13281 				if (_tmp122_) {
13282 #line 1382 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13283 					share_table = FALSE;
13284 #line 13280 "tracker-sparql-pattern.c"
13285 				}
13286 #line 1384 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13287 				_tmp123_ = prop;
13288 #line 1384 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13289 				_tmp124_ = tracker_property_get_domain (_tmp123_);
13290 #line 1384 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13291 				_tmp125_ = _tmp124_;
13292 #line 1384 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13293 				_tmp126_ = _g_object_ref0 (_tmp125_);
13294 #line 1384 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13295 				_g_object_unref0 (subject_type);
13296 #line 1384 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13297 				subject_type = _tmp126_;
13298 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13299 				_tmp128_ = in_simple_optional;
13300 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13301 				if (_tmp128_) {
13302 #line 13298 "tracker-sparql-pattern.c"
13303 					TrackerSparqlContext* _tmp129_;
13304 					TrackerSparqlContext* _tmp130_;
13305 					GHashTable* _tmp131_;
13306 					TrackerSparqlContext* _tmp132_;
13307 					TrackerSparqlContext* _tmp133_;
13308 					const gchar* _tmp134_;
13309 					TrackerSparqlVariable* _tmp135_ = NULL;
13310 					gconstpointer _tmp136_ = NULL;
13311 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13312 					_tmp129_ = tracker_sparql_pattern_get_context (self);
13313 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13314 					_tmp130_ = _tmp129_;
13315 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13316 					_tmp131_ = _tmp130_->var_set;
13317 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13318 					_tmp132_ = tracker_sparql_pattern_get_context (self);
13319 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13320 					_tmp133_ = _tmp132_;
13321 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13322 					_tmp134_ = self->priv->current_subject;
13323 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13324 					_tmp135_ = tracker_sparql_context_get_variable (_tmp133_, _tmp134_);
13325 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13326 					_tmp136_ = g_hash_table_lookup (_tmp131_, _tmp135_);
13327 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13328 					_tmp127_ = ((gint) ((gintptr) _tmp136_)) == 0;
13329 #line 13325 "tracker-sparql-pattern.c"
13330 				} else {
13331 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13332 					_tmp127_ = FALSE;
13333 #line 13329 "tracker-sparql-pattern.c"
13334 				}
13335 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13336 				_tmp137_ = _tmp127_;
13337 #line 1386 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13338 				if (_tmp137_) {
13339 #line 13335 "tracker-sparql-pattern.c"
13340 					TrackerSparqlVariableBinding* _tmp138_;
13341 					TrackerSparqlVariableBinding* binding;
13342 					TrackerSparqlVariableBinding* _tmp139_;
13343 					TrackerSparqlVariableBinding* _tmp140_;
13344 					TrackerSparqlContext* _tmp141_;
13345 					TrackerSparqlContext* _tmp142_;
13346 					const gchar* _tmp143_;
13347 					TrackerSparqlVariable* _tmp144_ = NULL;
13348 					TrackerSparqlPatternTripleContext* _tmp145_;
13349 					GHashTable* _tmp146_;
13350 					TrackerSparqlVariableBinding* _tmp147_;
13351 					TrackerSparqlVariable* _tmp148_;
13352 					gconstpointer _tmp149_ = NULL;
13353 					TrackerSparqlVariableBindingList* _tmp150_;
13354 					TrackerSparqlVariableBindingList* binding_list;
13355 					TrackerSparqlPatternTripleContext* _tmp151_;
13356 					TrackerSparqlVariableBinding* _tmp152_;
13357 					TrackerSparqlVariable* _tmp153_;
13358 					TrackerSparqlVariable* _tmp154_;
13359 					TrackerSparqlPatternTripleContext* _tmp155_;
13360 					GHashTable* _tmp156_;
13361 					TrackerSparqlVariableBinding* _tmp157_;
13362 					TrackerSparqlVariable* _tmp158_;
13363 					TrackerSparqlVariable* _tmp159_;
13364 					TrackerSparqlVariableBindingList* _tmp160_;
13365 					TrackerSparqlVariableBindingList* _tmp161_;
13366 					TrackerSparqlPatternTripleContext* _tmp162_;
13367 					GHashTable* _tmp163_;
13368 					TrackerSparqlContext* _tmp164_;
13369 					TrackerSparqlContext* _tmp165_;
13370 					const gchar* _tmp166_;
13371 					TrackerSparqlVariable* _tmp167_ = NULL;
13372 					gconstpointer _tmp168_ = NULL;
13373 					GList* _tmp169_;
13374 					gconstpointer _tmp170_;
13375 					TrackerSparqlVariableBinding* _tmp171_;
13376 					TrackerSparqlVariableBinding* object_binding;
13377 					GString* _tmp172_;
13378 					const gchar* _tmp173_;
13379 					TrackerProperty* _tmp174_;
13380 					const gchar* _tmp175_;
13381 					const gchar* _tmp176_;
13382 					TrackerSparqlVariableBinding* _tmp177_;
13383 					const gchar* _tmp178_;
13384 					const gchar* _tmp179_;
13385 					TrackerSparqlVariableBinding* _tmp180_;
13386 					TrackerSparqlVariable* _tmp181_;
13387 					const gchar* _tmp182_;
13388 					const gchar* _tmp183_;
13389 					TrackerSparqlContext* _tmp184_;
13390 					TrackerSparqlContext* _tmp185_;
13391 					GHashTable* _tmp186_;
13392 					TrackerSparqlVariableBinding* _tmp187_;
13393 					TrackerSparqlVariable* _tmp188_;
13394 					TrackerSparqlVariable* _tmp189_;
13395 					TrackerSparqlVariableBindingList* _tmp190_;
13396 					TrackerSparqlVariableBinding* _tmp191_;
13397 					TrackerSparqlVariableBinding* _tmp192_;
13398 					TrackerSparqlVariableBinding* _tmp193_;
13399 					TrackerSparqlVariable* _tmp194_;
13400 					TrackerSparqlVariableBinding* _tmp195_;
13401 					TrackerSparqlVariableBinding* _tmp196_;
13402 					TrackerSparqlVariable* _tmp197_;
13403 					TrackerSparqlVariableBinding* _tmp198_;
13404 					TrackerSparqlVariableBinding* _tmp199_;
13405 #line 1389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13406 					_tmp138_ = tracker_sparql_variable_binding_new ();
13407 #line 1389 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13408 					binding = _tmp138_;
13409 #line 1390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13410 					_tmp139_ = binding;
13411 #line 1390 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13412 					((TrackerSparqlDataBinding*) _tmp139_)->data_type = TRACKER_PROPERTY_TYPE_RESOURCE;
13413 #line 1391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13414 					_tmp140_ = binding;
13415 #line 1391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13416 					_tmp141_ = tracker_sparql_pattern_get_context (self);
13417 #line 1391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13418 					_tmp142_ = _tmp141_;
13419 #line 1391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13420 					_tmp143_ = self->priv->current_subject;
13421 #line 1391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13422 					_tmp144_ = tracker_sparql_context_get_variable (_tmp142_, _tmp143_);
13423 #line 1391 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13424 					_tmp140_->variable = _tmp144_;
13425 #line 1393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13426 					_tmp145_ = self->priv->triple_context;
13427 #line 1393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13428 					_tmp146_ = _tmp145_->var_bindings;
13429 #line 1393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13430 					_tmp147_ = binding;
13431 #line 1393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13432 					_tmp148_ = _tmp147_->variable;
13433 #line 1393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13434 					_tmp149_ = g_hash_table_lookup (_tmp146_, _tmp148_);
13435 #line 1393 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13436 					_vala_assert (((TrackerSparqlVariableBindingList*) _tmp149_) == NULL, "triple_context.var_bindings.lookup (binding.variable) == null");
13437 #line 1394 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13438 					_tmp150_ = tracker_sparql_variable_binding_list_new ();
13439 #line 1394 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13440 					binding_list = _tmp150_;
13441 #line 1395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13442 					_tmp151_ = self->priv->triple_context;
13443 #line 1395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13444 					_tmp152_ = binding;
13445 #line 1395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13446 					_tmp153_ = _tmp152_->variable;
13447 #line 1395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13448 					_tmp154_ = _g_object_ref0 (_tmp153_);
13449 #line 1395 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13450 					_tmp151_->variables = g_list_append (_tmp151_->variables, _tmp154_);
13451 #line 1396 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13452 					_tmp155_ = self->priv->triple_context;
13453 #line 1396 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13454 					_tmp156_ = _tmp155_->var_bindings;
13455 #line 1396 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13456 					_tmp157_ = binding;
13457 #line 1396 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13458 					_tmp158_ = _tmp157_->variable;
13459 #line 1396 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13460 					_tmp159_ = _g_object_ref0 (_tmp158_);
13461 #line 1396 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13462 					_tmp160_ = binding_list;
13463 #line 1396 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13464 					_tmp161_ = _g_object_ref0 (_tmp160_);
13465 #line 1396 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13466 					g_hash_table_insert (_tmp156_, _tmp159_, _tmp161_);
13467 #line 1399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13468 					_tmp162_ = self->priv->triple_context;
13469 #line 1399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13470 					_tmp163_ = _tmp162_->var_bindings;
13471 #line 1399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13472 					_tmp164_ = tracker_sparql_pattern_get_context (self);
13473 #line 1399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13474 					_tmp165_ = _tmp164_;
13475 #line 1399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13476 					_tmp166_ = object;
13477 #line 1399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13478 					_tmp167_ = tracker_sparql_context_get_variable (_tmp165_, _tmp166_);
13479 #line 1399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13480 					_tmp168_ = g_hash_table_lookup (_tmp163_, _tmp167_);
13481 #line 1399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13482 					_tmp169_ = ((TrackerSparqlVariableBindingList*) _tmp168_)->list;
13483 #line 1399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13484 					_tmp170_ = _tmp169_->data;
13485 #line 1399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13486 					_tmp171_ = _g_object_ref0 ((TrackerSparqlVariableBinding*) _tmp170_);
13487 #line 1399 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13488 					object_binding = _tmp171_;
13489 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13490 					_tmp172_ = sql;
13491 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13492 					_tmp173_ = db_table;
13493 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13494 					_tmp174_ = prop;
13495 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13496 					_tmp175_ = tracker_property_get_name (_tmp174_);
13497 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13498 					_tmp176_ = _tmp175_;
13499 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13500 					_tmp177_ = object_binding;
13501 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13502 					_tmp178_ = tracker_sparql_data_binding_get_sql_expression ((TrackerSparqlDataBinding*) _tmp177_);
13503 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13504 					_tmp179_ = _tmp178_;
13505 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13506 					_tmp180_ = binding;
13507 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13508 					_tmp181_ = _tmp180_->variable;
13509 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13510 					_tmp182_ = tracker_sparql_variable_get_sql_expression (_tmp181_);
13511 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13512 					_tmp183_ = _tmp182_;
13513 #line 1401 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13514 					g_string_append_printf (_tmp172_, "(SELECT ID FROM \"%s\" WHERE \"%s\" = %s) AS %s, ", _tmp173_, _tmp176_, _tmp179_, _tmp183_);
13515 #line 1407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13516 					_tmp184_ = tracker_sparql_pattern_get_context (self);
13517 #line 1407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13518 					_tmp185_ = _tmp184_;
13519 #line 1407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13520 					_tmp186_ = _tmp185_->var_set;
13521 #line 1407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13522 					_tmp187_ = binding;
13523 #line 1407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13524 					_tmp188_ = _tmp187_->variable;
13525 #line 1407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13526 					_tmp189_ = _g_object_ref0 (_tmp188_);
13527 #line 1407 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13528 					g_hash_table_insert (_tmp186_, _tmp189_, (gpointer) ((gintptr) ((gint) TRACKER_SPARQL_VARIABLE_STATE_OPTIONAL)));
13529 #line 1408 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13530 					_tmp190_ = binding_list;
13531 #line 1408 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13532 					_tmp191_ = binding;
13533 #line 1408 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13534 					_tmp192_ = _g_object_ref0 (_tmp191_);
13535 #line 1408 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13536 					_tmp190_->list = g_list_append (_tmp190_->list, _tmp192_);
13537 #line 1410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13538 					_tmp193_ = binding;
13539 #line 1410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13540 					_tmp194_ = _tmp193_->variable;
13541 #line 1410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13542 					_tmp195_ = _tmp194_->binding;
13543 #line 1410 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13544 					_vala_assert (_tmp195_ == NULL, "binding.variable.binding == null");
13545 #line 1411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13546 					_tmp196_ = binding;
13547 #line 1411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13548 					_tmp197_ = _tmp196_->variable;
13549 #line 1411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13550 					_tmp198_ = binding;
13551 #line 1411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13552 					_tmp199_ = _g_object_ref0 (_tmp198_);
13553 #line 1411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13554 					_g_object_unref0 (_tmp197_->binding);
13555 #line 1411 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13556 					_tmp197_->binding = _tmp199_;
13557 #line 1413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13558 					_g_object_unref0 (object_binding);
13559 #line 1413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13560 					_g_object_unref0 (binding_list);
13561 #line 1413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13562 					_g_object_unref0 (binding);
13563 #line 1413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13564 					_g_object_unref0 (subject_type);
13565 #line 1413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13566 					_g_object_unref0 (prop);
13567 #line 1413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13568 					_g_object_unref0 (table);
13569 #line 1413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13570 					_g_free0 (db_table);
13571 #line 1413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13572 					_g_free0 (object);
13573 #line 1413 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13574 					return;
13575 #line 13571 "tracker-sparql-pattern.c"
13576 				}
13577 			}
13578 		}
13579 #line 1416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13580 		_tmp200_ = self->priv->current_subject;
13581 #line 1416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13582 		_tmp201_ = db_table;
13583 #line 1416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13584 		_tmp202_ = share_table;
13585 #line 1416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13586 		_tmp204_ = tracker_sparql_pattern_get_table (self, _tmp200_, _tmp201_, _tmp202_, &_tmp203_);
13587 #line 1416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13588 		newtable = _tmp203_;
13589 #line 1416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13590 		_g_object_unref0 (table);
13591 #line 1416 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13592 		table = _tmp204_;
13593 #line 13589 "tracker-sparql-pattern.c"
13594 	} else {
13595 		TrackerSparqlDataTable* _tmp205_;
13596 		TrackerSparqlDataTable* _tmp206_;
13597 		TrackerSparqlContext* _tmp207_;
13598 		TrackerSparqlContext* _tmp208_;
13599 		GHashTable* _tmp209_;
13600 		TrackerSparqlContext* _tmp210_;
13601 		TrackerSparqlContext* _tmp211_;
13602 		const gchar* _tmp212_;
13603 		TrackerSparqlVariable* _tmp213_ = NULL;
13604 		gconstpointer _tmp214_ = NULL;
13605 		TrackerSparqlPredicateVariable* _tmp215_;
13606 		TrackerSparqlDataTable* _tmp216_;
13607 		TrackerSparqlPredicateVariable* _tmp217_;
13608 		gboolean _tmp231_;
13609 		gboolean _tmp236_;
13610 		const gchar* _tmp241_;
13611 		TrackerSparqlDataTable* _tmp244_;
13612 		const gchar* _tmp245_;
13613 		gint _tmp246_;
13614 		gint _tmp247_;
13615 		gchar* _tmp248_ = NULL;
13616 		gchar* _tmp249_;
13617 		gchar* _tmp250_;
13618 		TrackerSparqlPatternTripleContext* _tmp251_;
13619 		TrackerSparqlDataTable* _tmp252_;
13620 		TrackerSparqlDataTable* _tmp253_;
13621 		TrackerSparqlVariableBinding* _tmp254_;
13622 		TrackerSparqlVariableBinding* binding;
13623 		TrackerSparqlVariableBinding* _tmp255_;
13624 		TrackerSparqlVariableBinding* _tmp256_;
13625 		TrackerSparqlContext* _tmp257_;
13626 		TrackerSparqlContext* _tmp258_;
13627 		const gchar* _tmp259_;
13628 		TrackerSparqlVariable* _tmp260_ = NULL;
13629 		TrackerSparqlVariableBinding* _tmp261_;
13630 		TrackerSparqlDataTable* _tmp262_;
13631 		TrackerSparqlDataTable* _tmp263_;
13632 		TrackerSparqlVariableBinding* _tmp264_;
13633 		gchar* _tmp265_;
13634 		GString* _tmp266_;
13635 		TrackerSparqlVariableBinding* _tmp267_;
13636 #line 1419 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13637 		newtable = TRUE;
13638 #line 1420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13639 		_tmp205_ = tracker_sparql_data_table_new ();
13640 #line 1420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13641 		_g_object_unref0 (table);
13642 #line 1420 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13643 		table = _tmp205_;
13644 #line 1421 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13645 		_tmp206_ = table;
13646 #line 1421 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13647 		_tmp207_ = tracker_sparql_pattern_get_context (self);
13648 #line 1421 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13649 		_tmp208_ = _tmp207_;
13650 #line 1421 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13651 		_tmp209_ = _tmp208_->predicate_variable_map;
13652 #line 1421 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13653 		_tmp210_ = tracker_sparql_pattern_get_context (self);
13654 #line 1421 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13655 		_tmp211_ = _tmp210_;
13656 #line 1421 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13657 		_tmp212_ = self->priv->current_predicate;
13658 #line 1421 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13659 		_tmp213_ = tracker_sparql_context_get_variable (_tmp211_, _tmp212_);
13660 #line 1421 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13661 		_tmp214_ = g_hash_table_lookup (_tmp209_, _tmp213_);
13662 #line 1421 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13663 		_tmp215_ = _g_object_ref0 ((TrackerSparqlPredicateVariable*) _tmp214_);
13664 #line 1421 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13665 		_g_object_unref0 (_tmp206_->predicate_variable);
13666 #line 1421 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13667 		_tmp206_->predicate_variable = _tmp215_;
13668 #line 1422 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13669 		_tmp216_ = table;
13670 #line 1422 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13671 		_tmp217_ = _tmp216_->predicate_variable;
13672 #line 1422 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13673 		if (_tmp217_ == NULL) {
13674 #line 13670 "tracker-sparql-pattern.c"
13675 			TrackerSparqlDataTable* _tmp218_;
13676 			TrackerSparqlPredicateVariable* _tmp219_;
13677 			TrackerSparqlContext* _tmp220_;
13678 			TrackerSparqlContext* _tmp221_;
13679 			GHashTable* _tmp222_;
13680 			TrackerSparqlContext* _tmp223_;
13681 			TrackerSparqlContext* _tmp224_;
13682 			const gchar* _tmp225_;
13683 			TrackerSparqlVariable* _tmp226_ = NULL;
13684 			TrackerSparqlVariable* _tmp227_;
13685 			TrackerSparqlDataTable* _tmp228_;
13686 			TrackerSparqlPredicateVariable* _tmp229_;
13687 			TrackerSparqlPredicateVariable* _tmp230_;
13688 #line 1423 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13689 			_tmp218_ = table;
13690 #line 1423 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13691 			_tmp219_ = tracker_sparql_predicate_variable_new ();
13692 #line 1423 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13693 			_g_object_unref0 (_tmp218_->predicate_variable);
13694 #line 1423 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13695 			_tmp218_->predicate_variable = _tmp219_;
13696 #line 1424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13697 			_tmp220_ = tracker_sparql_pattern_get_context (self);
13698 #line 1424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13699 			_tmp221_ = _tmp220_;
13700 #line 1424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13701 			_tmp222_ = _tmp221_->predicate_variable_map;
13702 #line 1424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13703 			_tmp223_ = tracker_sparql_pattern_get_context (self);
13704 #line 1424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13705 			_tmp224_ = _tmp223_;
13706 #line 1424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13707 			_tmp225_ = self->priv->current_predicate;
13708 #line 1424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13709 			_tmp226_ = tracker_sparql_context_get_variable (_tmp224_, _tmp225_);
13710 #line 1424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13711 			_tmp227_ = _g_object_ref0 (_tmp226_);
13712 #line 1424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13713 			_tmp228_ = table;
13714 #line 1424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13715 			_tmp229_ = _tmp228_->predicate_variable;
13716 #line 1424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13717 			_tmp230_ = _g_object_ref0 (_tmp229_);
13718 #line 1424 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13719 			g_hash_table_insert (_tmp222_, _tmp227_, _tmp230_);
13720 #line 13716 "tracker-sparql-pattern.c"
13721 		}
13722 #line 1426 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13723 		_tmp231_ = self->priv->current_subject_is_var;
13724 #line 1426 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13725 		if (!_tmp231_) {
13726 #line 13722 "tracker-sparql-pattern.c"
13727 			TrackerSparqlDataTable* _tmp232_;
13728 			TrackerSparqlPredicateVariable* _tmp233_;
13729 			const gchar* _tmp234_;
13730 			gchar* _tmp235_;
13731 #line 1428 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13732 			_tmp232_ = table;
13733 #line 1428 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13734 			_tmp233_ = _tmp232_->predicate_variable;
13735 #line 1428 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13736 			_tmp234_ = self->priv->current_subject;
13737 #line 1428 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13738 			_tmp235_ = g_strdup (_tmp234_);
13739 #line 1428 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13740 			_g_free0 (_tmp233_->subject);
13741 #line 1428 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13742 			_tmp233_->subject = _tmp235_;
13743 #line 13739 "tracker-sparql-pattern.c"
13744 		}
13745 #line 1430 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13746 		_tmp236_ = object_is_var;
13747 #line 1430 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13748 		if (!_tmp236_) {
13749 #line 13745 "tracker-sparql-pattern.c"
13750 			TrackerSparqlDataTable* _tmp237_;
13751 			TrackerSparqlPredicateVariable* _tmp238_;
13752 			const gchar* _tmp239_;
13753 			gchar* _tmp240_;
13754 #line 1432 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13755 			_tmp237_ = table;
13756 #line 1432 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13757 			_tmp238_ = _tmp237_->predicate_variable;
13758 #line 1432 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13759 			_tmp239_ = object;
13760 #line 1432 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13761 			_tmp240_ = g_strdup (_tmp239_);
13762 #line 1432 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13763 			_g_free0 (_tmp238_->object);
13764 #line 1432 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13765 			_tmp238_->object = _tmp240_;
13766 #line 13762 "tracker-sparql-pattern.c"
13767 		}
13768 #line 1434 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13769 		_tmp241_ = self->current_graph;
13770 #line 1434 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13771 		if (_tmp241_ != NULL) {
13772 #line 13768 "tracker-sparql-pattern.c"
13773 			TrackerSparqlDataTable* _tmp242_;
13774 			TrackerSparqlPredicateVariable* _tmp243_;
13775 #line 1435 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13776 			_tmp242_ = table;
13777 #line 1435 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13778 			_tmp243_ = _tmp242_->predicate_variable;
13779 #line 1435 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13780 			_tmp243_->return_graph = TRUE;
13781 #line 13777 "tracker-sparql-pattern.c"
13782 		}
13783 #line 1437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13784 		_tmp244_ = table;
13785 #line 1437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13786 		_tmp245_ = self->priv->current_predicate;
13787 #line 1437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13788 		_tmp246_ = self->priv->counter;
13789 #line 1437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13790 		self->priv->counter = _tmp246_ + 1;
13791 #line 1437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13792 		_tmp247_ = self->priv->counter;
13793 #line 1437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13794 		_tmp248_ = g_strdup_printf ("%i", _tmp247_);
13795 #line 1437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13796 		_tmp249_ = _tmp248_;
13797 #line 1437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13798 		_tmp250_ = g_strconcat (_tmp245_, _tmp249_, NULL);
13799 #line 1437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13800 		_g_free0 (_tmp244_->sql_query_tablename);
13801 #line 1437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13802 		_tmp244_->sql_query_tablename = _tmp250_;
13803 #line 1437 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13804 		_g_free0 (_tmp249_);
13805 #line 1438 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13806 		_tmp251_ = self->priv->triple_context;
13807 #line 1438 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13808 		_tmp252_ = table;
13809 #line 1438 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13810 		_tmp253_ = _g_object_ref0 (_tmp252_);
13811 #line 1438 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13812 		_tmp251_->tables = g_list_append (_tmp251_->tables, _tmp253_);
13813 #line 1441 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13814 		_tmp254_ = tracker_sparql_variable_binding_new ();
13815 #line 1441 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13816 		binding = _tmp254_;
13817 #line 1442 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13818 		_tmp255_ = binding;
13819 #line 1442 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13820 		((TrackerSparqlDataBinding*) _tmp255_)->data_type = TRACKER_PROPERTY_TYPE_RESOURCE;
13821 #line 1443 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13822 		_tmp256_ = binding;
13823 #line 1443 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13824 		_tmp257_ = tracker_sparql_pattern_get_context (self);
13825 #line 1443 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13826 		_tmp258_ = _tmp257_;
13827 #line 1443 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13828 		_tmp259_ = self->priv->current_predicate;
13829 #line 1443 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13830 		_tmp260_ = tracker_sparql_context_get_variable (_tmp258_, _tmp259_);
13831 #line 1443 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13832 		_tmp256_->variable = _tmp260_;
13833 #line 1444 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13834 		_tmp261_ = binding;
13835 #line 1444 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13836 		_tmp262_ = table;
13837 #line 1444 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13838 		_tmp263_ = _g_object_ref0 (_tmp262_);
13839 #line 1444 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13840 		_g_object_unref0 (((TrackerSparqlDataBinding*) _tmp261_)->table);
13841 #line 1444 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13842 		((TrackerSparqlDataBinding*) _tmp261_)->table = _tmp263_;
13843 #line 1445 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13844 		_tmp264_ = binding;
13845 #line 1445 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13846 		_tmp265_ = g_strdup ("predicate");
13847 #line 1445 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13848 		_g_free0 (((TrackerSparqlDataBinding*) _tmp264_)->sql_db_column_name);
13849 #line 1445 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13850 		((TrackerSparqlDataBinding*) _tmp264_)->sql_db_column_name = _tmp265_;
13851 #line 1447 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13852 		_tmp266_ = sql;
13853 #line 1447 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13854 		_tmp267_ = binding;
13855 #line 1447 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13856 		tracker_sparql_pattern_add_variable_binding (self, _tmp266_, _tmp267_, TRACKER_SPARQL_VARIABLE_STATE_BOUND);
13857 #line 1313 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13858 		_g_object_unref0 (binding);
13859 #line 13855 "tracker-sparql-pattern.c"
13860 	}
13861 #line 1450 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13862 	_tmp268_ = newtable;
13863 #line 1450 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13864 	if (_tmp268_) {
13865 #line 13861 "tracker-sparql-pattern.c"
13866 		gboolean _tmp269_;
13867 #line 1451 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13868 		_tmp269_ = self->priv->current_subject_is_var;
13869 #line 1451 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13870 		if (_tmp269_) {
13871 #line 13867 "tracker-sparql-pattern.c"
13872 			TrackerSparqlVariableBinding* _tmp270_;
13873 			TrackerSparqlVariableBinding* binding;
13874 			TrackerSparqlVariableBinding* _tmp271_;
13875 			TrackerSparqlVariableBinding* _tmp272_;
13876 			TrackerSparqlContext* _tmp273_;
13877 			TrackerSparqlContext* _tmp274_;
13878 			const gchar* _tmp275_;
13879 			TrackerSparqlVariable* _tmp276_ = NULL;
13880 			TrackerSparqlVariableBinding* _tmp277_;
13881 			TrackerSparqlDataTable* _tmp278_;
13882 			TrackerSparqlDataTable* _tmp279_;
13883 			TrackerSparqlVariableBinding* _tmp280_;
13884 			TrackerClass* _tmp281_;
13885 			TrackerClass* _tmp282_;
13886 			gboolean _tmp283_;
13887 			GString* _tmp288_;
13888 			TrackerSparqlVariableBinding* _tmp289_;
13889 #line 1452 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13890 			_tmp270_ = tracker_sparql_variable_binding_new ();
13891 #line 1452 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13892 			binding = _tmp270_;
13893 #line 1453 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13894 			_tmp271_ = binding;
13895 #line 1453 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13896 			((TrackerSparqlDataBinding*) _tmp271_)->data_type = TRACKER_PROPERTY_TYPE_RESOURCE;
13897 #line 1454 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13898 			_tmp272_ = binding;
13899 #line 1454 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13900 			_tmp273_ = tracker_sparql_pattern_get_context (self);
13901 #line 1454 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13902 			_tmp274_ = _tmp273_;
13903 #line 1454 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13904 			_tmp275_ = self->priv->current_subject;
13905 #line 1454 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13906 			_tmp276_ = tracker_sparql_context_get_variable (_tmp274_, _tmp275_);
13907 #line 1454 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13908 			_tmp272_->variable = _tmp276_;
13909 #line 1455 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13910 			_tmp277_ = binding;
13911 #line 1455 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13912 			_tmp278_ = table;
13913 #line 1455 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13914 			_tmp279_ = _g_object_ref0 (_tmp278_);
13915 #line 1455 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13916 			_g_object_unref0 (((TrackerSparqlDataBinding*) _tmp277_)->table);
13917 #line 1455 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13918 			((TrackerSparqlDataBinding*) _tmp277_)->table = _tmp279_;
13919 #line 1456 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13920 			_tmp280_ = binding;
13921 #line 1456 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13922 			_tmp281_ = subject_type;
13923 #line 1456 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13924 			_tmp282_ = _g_object_ref0 (_tmp281_);
13925 #line 1456 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13926 			_g_object_unref0 (_tmp280_->type);
13927 #line 1456 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13928 			_tmp280_->type = _tmp282_;
13929 #line 1457 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13930 			_tmp283_ = is_fts_match;
13931 #line 1457 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13932 			if (_tmp283_) {
13933 #line 13929 "tracker-sparql-pattern.c"
13934 				TrackerSparqlVariableBinding* _tmp284_;
13935 				gchar* _tmp285_;
13936 #line 1458 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13937 				_tmp284_ = binding;
13938 #line 1458 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13939 				_tmp285_ = g_strdup ("docid");
13940 #line 1458 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13941 				_g_free0 (((TrackerSparqlDataBinding*) _tmp284_)->sql_db_column_name);
13942 #line 1458 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13943 				((TrackerSparqlDataBinding*) _tmp284_)->sql_db_column_name = _tmp285_;
13944 #line 13940 "tracker-sparql-pattern.c"
13945 			} else {
13946 				TrackerSparqlVariableBinding* _tmp286_;
13947 				gchar* _tmp287_;
13948 #line 1460 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13949 				_tmp286_ = binding;
13950 #line 1460 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13951 				_tmp287_ = g_strdup ("ID");
13952 #line 1460 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13953 				_g_free0 (((TrackerSparqlDataBinding*) _tmp286_)->sql_db_column_name);
13954 #line 1460 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13955 				((TrackerSparqlDataBinding*) _tmp286_)->sql_db_column_name = _tmp287_;
13956 #line 13952 "tracker-sparql-pattern.c"
13957 			}
13958 #line 1463 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13959 			_tmp288_ = sql;
13960 #line 1463 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13961 			_tmp289_ = binding;
13962 #line 1463 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13963 			tracker_sparql_pattern_add_variable_binding (self, _tmp288_, _tmp289_, TRACKER_SPARQL_VARIABLE_STATE_BOUND);
13964 #line 1451 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13965 			_g_object_unref0 (binding);
13966 #line 13962 "tracker-sparql-pattern.c"
13967 		} else {
13968 			TrackerSparqlLiteralBinding* _tmp290_;
13969 			TrackerSparqlLiteralBinding* binding;
13970 			TrackerSparqlLiteralBinding* _tmp291_;
13971 			TrackerSparqlLiteralBinding* _tmp292_;
13972 			const gchar* _tmp293_;
13973 			gchar* _tmp294_;
13974 			TrackerSparqlLiteralBinding* _tmp295_;
13975 			TrackerSparqlDataTable* _tmp296_;
13976 			TrackerSparqlDataTable* _tmp297_;
13977 			TrackerSparqlLiteralBinding* _tmp298_;
13978 			gchar* _tmp299_;
13979 			TrackerSparqlPatternTripleContext* _tmp300_;
13980 			TrackerSparqlLiteralBinding* _tmp301_;
13981 			TrackerSparqlLiteralBinding* _tmp302_;
13982 #line 1465 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13983 			_tmp290_ = tracker_sparql_literal_binding_new ();
13984 #line 1465 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13985 			binding = _tmp290_;
13986 #line 1466 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13987 			_tmp291_ = binding;
13988 #line 1466 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13989 			((TrackerSparqlDataBinding*) _tmp291_)->data_type = TRACKER_PROPERTY_TYPE_RESOURCE;
13990 #line 1467 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13991 			_tmp292_ = binding;
13992 #line 1467 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13993 			_tmp293_ = self->priv->current_subject;
13994 #line 1467 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13995 			_tmp294_ = g_strdup (_tmp293_);
13996 #line 1467 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13997 			_g_free0 (_tmp292_->literal);
13998 #line 1467 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
13999 			_tmp292_->literal = _tmp294_;
14000 #line 1469 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14001 			_tmp295_ = binding;
14002 #line 1469 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14003 			_tmp296_ = table;
14004 #line 1469 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14005 			_tmp297_ = _g_object_ref0 (_tmp296_);
14006 #line 1469 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14007 			_g_object_unref0 (((TrackerSparqlDataBinding*) _tmp295_)->table);
14008 #line 1469 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14009 			((TrackerSparqlDataBinding*) _tmp295_)->table = _tmp297_;
14010 #line 1470 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14011 			_tmp298_ = binding;
14012 #line 1470 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14013 			_tmp299_ = g_strdup ("ID");
14014 #line 1470 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14015 			_g_free0 (((TrackerSparqlDataBinding*) _tmp298_)->sql_db_column_name);
14016 #line 1470 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14017 			((TrackerSparqlDataBinding*) _tmp298_)->sql_db_column_name = _tmp299_;
14018 #line 1471 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14019 			_tmp300_ = self->priv->triple_context;
14020 #line 1471 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14021 			_tmp301_ = binding;
14022 #line 1471 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14023 			_tmp302_ = _g_object_ref0 (_tmp301_);
14024 #line 1471 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14025 			_tmp300_->bindings = g_list_append (_tmp300_->bindings, _tmp302_);
14026 #line 1451 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14027 			_g_object_unref0 (binding);
14028 #line 14024 "tracker-sparql-pattern.c"
14029 		}
14030 	}
14031 #line 1475 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14032 	_tmp303_ = rdftype;
14033 #line 1475 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14034 	if (!_tmp303_) {
14035 #line 14031 "tracker-sparql-pattern.c"
14036 		gboolean _tmp304_;
14037 		const gchar* _tmp393_;
14038 #line 1476 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14039 		_tmp304_ = object_is_var;
14040 #line 1476 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14041 		if (_tmp304_) {
14042 #line 14038 "tracker-sparql-pattern.c"
14043 			TrackerSparqlVariableBinding* _tmp305_;
14044 			TrackerSparqlVariableBinding* binding;
14045 			TrackerSparqlVariableBinding* _tmp306_;
14046 			TrackerSparqlContext* _tmp307_;
14047 			TrackerSparqlContext* _tmp308_;
14048 			const gchar* _tmp309_;
14049 			TrackerSparqlVariable* _tmp310_ = NULL;
14050 			TrackerSparqlVariableBinding* _tmp311_;
14051 			TrackerSparqlDataTable* _tmp312_;
14052 			TrackerSparqlDataTable* _tmp313_;
14053 			TrackerProperty* _tmp314_;
14054 			TrackerSparqlVariableState state = 0;
14055 			gboolean _tmp339_;
14056 			GString* _tmp340_;
14057 			TrackerSparqlVariableBinding* _tmp341_;
14058 			TrackerSparqlVariableState _tmp342_;
14059 #line 1477 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14060 			_tmp305_ = tracker_sparql_variable_binding_new ();
14061 #line 1477 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14062 			binding = _tmp305_;
14063 #line 1478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14064 			_tmp306_ = binding;
14065 #line 1478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14066 			_tmp307_ = tracker_sparql_pattern_get_context (self);
14067 #line 1478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14068 			_tmp308_ = _tmp307_;
14069 #line 1478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14070 			_tmp309_ = object;
14071 #line 1478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14072 			_tmp310_ = tracker_sparql_context_get_variable (_tmp308_, _tmp309_);
14073 #line 1478 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14074 			_tmp306_->variable = _tmp310_;
14075 #line 1479 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14076 			_tmp311_ = binding;
14077 #line 1479 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14078 			_tmp312_ = table;
14079 #line 1479 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14080 			_tmp313_ = _g_object_ref0 (_tmp312_);
14081 #line 1479 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14082 			_g_object_unref0 (((TrackerSparqlDataBinding*) _tmp311_)->table);
14083 #line 1479 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14084 			((TrackerSparqlDataBinding*) _tmp311_)->table = _tmp313_;
14085 #line 1480 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14086 			_tmp314_ = prop;
14087 #line 1480 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14088 			if (_tmp314_ != NULL) {
14089 #line 14085 "tracker-sparql-pattern.c"
14090 				TrackerSparqlVariableBinding* _tmp315_;
14091 				TrackerProperty* _tmp316_;
14092 				TrackerClass* _tmp317_;
14093 				TrackerClass* _tmp318_;
14094 				TrackerClass* _tmp319_;
14095 				TrackerSparqlVariableBinding* _tmp320_;
14096 				TrackerProperty* _tmp321_;
14097 				TrackerPropertyType _tmp322_;
14098 				TrackerPropertyType _tmp323_;
14099 				TrackerSparqlVariableBinding* _tmp324_;
14100 				TrackerProperty* _tmp325_;
14101 				const gchar* _tmp326_;
14102 				const gchar* _tmp327_;
14103 				gchar* _tmp328_;
14104 				TrackerProperty* _tmp329_;
14105 				gboolean _tmp330_;
14106 				gboolean _tmp331_;
14107 #line 1482 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14108 				_tmp315_ = binding;
14109 #line 1482 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14110 				_tmp316_ = prop;
14111 #line 1482 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14112 				_tmp317_ = tracker_property_get_range (_tmp316_);
14113 #line 1482 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14114 				_tmp318_ = _tmp317_;
14115 #line 1482 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14116 				_tmp319_ = _g_object_ref0 (_tmp318_);
14117 #line 1482 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14118 				_g_object_unref0 (_tmp315_->type);
14119 #line 1482 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14120 				_tmp315_->type = _tmp319_;
14121 #line 1484 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14122 				_tmp320_ = binding;
14123 #line 1484 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14124 				_tmp321_ = prop;
14125 #line 1484 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14126 				_tmp322_ = tracker_property_get_data_type (_tmp321_);
14127 #line 1484 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14128 				_tmp323_ = _tmp322_;
14129 #line 1484 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14130 				((TrackerSparqlDataBinding*) _tmp320_)->data_type = _tmp323_;
14131 #line 1485 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14132 				_tmp324_ = binding;
14133 #line 1485 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14134 				_tmp325_ = prop;
14135 #line 1485 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14136 				_tmp326_ = tracker_property_get_name (_tmp325_);
14137 #line 1485 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14138 				_tmp327_ = _tmp326_;
14139 #line 1485 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14140 				_tmp328_ = g_strdup (_tmp327_);
14141 #line 1485 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14142 				_g_free0 (((TrackerSparqlDataBinding*) _tmp324_)->sql_db_column_name);
14143 #line 1485 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14144 				((TrackerSparqlDataBinding*) _tmp324_)->sql_db_column_name = _tmp328_;
14145 #line 1486 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14146 				_tmp329_ = prop;
14147 #line 1486 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14148 				_tmp330_ = tracker_property_get_multiple_values (_tmp329_);
14149 #line 1486 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14150 				_tmp331_ = _tmp330_;
14151 #line 1486 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14152 				if (!_tmp331_) {
14153 #line 14149 "tracker-sparql-pattern.c"
14154 					TrackerSparqlVariableBinding* _tmp332_;
14155 					TrackerSparqlVariableBinding* _tmp333_;
14156 					gboolean _tmp334_;
14157 #line 1489 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14158 					_tmp332_ = binding;
14159 #line 1489 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14160 					_tmp332_->maybe_null = TRUE;
14161 #line 1490 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14162 					_tmp333_ = binding;
14163 #line 1490 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14164 					_tmp334_ = in_simple_optional;
14165 #line 1490 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14166 					_tmp333_->in_simple_optional = _tmp334_;
14167 #line 14163 "tracker-sparql-pattern.c"
14168 				}
14169 			} else {
14170 				TrackerSparqlVariableBinding* _tmp335_;
14171 				TrackerSparqlVariableBinding* _tmp336_;
14172 				gchar* _tmp337_;
14173 				TrackerSparqlVariableBinding* _tmp338_;
14174 #line 1494 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14175 				_tmp335_ = binding;
14176 #line 1494 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14177 				((TrackerSparqlDataBinding*) _tmp335_)->data_type = TRACKER_PROPERTY_TYPE_STRING;
14178 #line 1495 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14179 				_tmp336_ = binding;
14180 #line 1495 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14181 				_tmp337_ = g_strdup ("object");
14182 #line 1495 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14183 				_g_free0 (((TrackerSparqlDataBinding*) _tmp336_)->sql_db_column_name);
14184 #line 1495 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14185 				((TrackerSparqlDataBinding*) _tmp336_)->sql_db_column_name = _tmp337_;
14186 #line 1496 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14187 				_tmp338_ = binding;
14188 #line 1496 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14189 				_tmp338_->maybe_null = TRUE;
14190 #line 14186 "tracker-sparql-pattern.c"
14191 			}
14192 #line 1500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14193 			_tmp339_ = in_simple_optional;
14194 #line 1500 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14195 			if (_tmp339_) {
14196 #line 1501 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14197 				state = TRACKER_SPARQL_VARIABLE_STATE_OPTIONAL;
14198 #line 14194 "tracker-sparql-pattern.c"
14199 			} else {
14200 #line 1503 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14201 				state = TRACKER_SPARQL_VARIABLE_STATE_BOUND;
14202 #line 14198 "tracker-sparql-pattern.c"
14203 			}
14204 #line 1506 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14205 			_tmp340_ = sql;
14206 #line 1506 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14207 			_tmp341_ = binding;
14208 #line 1506 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14209 			_tmp342_ = state;
14210 #line 1506 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14211 			tracker_sparql_pattern_add_variable_binding (self, _tmp340_, _tmp341_, _tmp342_);
14212 #line 1476 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14213 			_g_object_unref0 (binding);
14214 #line 14210 "tracker-sparql-pattern.c"
14215 		} else {
14216 			gboolean _tmp343_;
14217 #line 1507 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14218 			_tmp343_ = is_fts_match;
14219 #line 1507 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14220 			if (_tmp343_) {
14221 #line 14217 "tracker-sparql-pattern.c"
14222 				TrackerSparqlLiteralBinding* _tmp344_;
14223 				TrackerSparqlLiteralBinding* binding;
14224 				TrackerSparqlLiteralBinding* _tmp345_;
14225 				TrackerSparqlLiteralBinding* _tmp346_;
14226 				const gchar* _tmp347_;
14227 				gchar* _tmp348_;
14228 				TrackerSparqlLiteralBinding* _tmp349_;
14229 				TrackerSparqlDataTable* _tmp350_;
14230 				TrackerSparqlDataTable* _tmp351_;
14231 				TrackerSparqlLiteralBinding* _tmp352_;
14232 				gchar* _tmp353_;
14233 				TrackerSparqlPatternTripleContext* _tmp354_;
14234 				TrackerSparqlLiteralBinding* _tmp355_;
14235 				TrackerSparqlLiteralBinding* _tmp356_;
14236 				GString* _tmp357_;
14237 				TrackerSparqlLiteralBinding* _tmp358_;
14238 				TrackerSparqlDataTable* _tmp359_;
14239 				const gchar* _tmp360_;
14240 				GString* _tmp361_;
14241 				TrackerSparqlLiteralBinding* _tmp362_;
14242 				TrackerSparqlDataTable* _tmp363_;
14243 				const gchar* _tmp364_;
14244 				TrackerSparqlContext* _tmp365_;
14245 				TrackerSparqlContext* _tmp366_;
14246 				const gchar* _tmp367_;
14247 				TrackerSparqlVariable* _tmp368_ = NULL;
14248 				const gchar* _tmp369_;
14249 				const gchar* _tmp370_;
14250 #line 1508 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14251 				_tmp344_ = tracker_sparql_literal_binding_new ();
14252 #line 1508 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14253 				binding = _tmp344_;
14254 #line 1509 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14255 				_tmp345_ = binding;
14256 #line 1509 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14257 				_tmp345_->is_fts_match = TRUE;
14258 #line 1510 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14259 				_tmp346_ = binding;
14260 #line 1510 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14261 				_tmp347_ = object;
14262 #line 1510 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14263 				_tmp348_ = g_strdup (_tmp347_);
14264 #line 1510 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14265 				_g_free0 (_tmp346_->literal);
14266 #line 1510 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14267 				_tmp346_->literal = _tmp348_;
14268 #line 1512 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14269 				_tmp349_ = binding;
14270 #line 1512 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14271 				_tmp350_ = table;
14272 #line 1512 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14273 				_tmp351_ = _g_object_ref0 (_tmp350_);
14274 #line 1512 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14275 				_g_object_unref0 (((TrackerSparqlDataBinding*) _tmp349_)->table);
14276 #line 1512 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14277 				((TrackerSparqlDataBinding*) _tmp349_)->table = _tmp351_;
14278 #line 1513 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14279 				_tmp352_ = binding;
14280 #line 1513 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14281 				_tmp353_ = g_strdup ("fts");
14282 #line 1513 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14283 				_g_free0 (((TrackerSparqlDataBinding*) _tmp352_)->sql_db_column_name);
14284 #line 1513 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14285 				((TrackerSparqlDataBinding*) _tmp352_)->sql_db_column_name = _tmp353_;
14286 #line 1514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14287 				_tmp354_ = self->priv->triple_context;
14288 #line 1514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14289 				_tmp355_ = binding;
14290 #line 1514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14291 				_tmp356_ = _g_object_ref0 (_tmp355_);
14292 #line 1514 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14293 				_tmp354_->bindings = g_list_append (_tmp354_->bindings, _tmp356_);
14294 #line 1516 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14295 				_tmp357_ = sql;
14296 #line 1516 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14297 				_tmp358_ = binding;
14298 #line 1516 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14299 				_tmp359_ = ((TrackerSparqlDataBinding*) _tmp358_)->table;
14300 #line 1516 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14301 				_tmp360_ = _tmp359_->sql_query_tablename;
14302 #line 1516 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14303 				g_string_append_printf (_tmp357_, "\"%s\".\"docid\" AS \"ID\", ", _tmp360_);
14304 #line 1518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14305 				_tmp361_ = sql;
14306 #line 1518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14307 				_tmp362_ = binding;
14308 #line 1518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14309 				_tmp363_ = ((TrackerSparqlDataBinding*) _tmp362_)->table;
14310 #line 1518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14311 				_tmp364_ = _tmp363_->sql_query_tablename;
14312 #line 1518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14313 				_tmp365_ = tracker_sparql_pattern_get_context (self);
14314 #line 1518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14315 				_tmp366_ = _tmp365_;
14316 #line 1518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14317 				_tmp367_ = self->priv->current_subject;
14318 #line 1518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14319 				_tmp368_ = tracker_sparql_context_get_variable (_tmp366_, _tmp367_);
14320 #line 1518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14321 				_tmp369_ = tracker_sparql_variable_get_name (_tmp368_);
14322 #line 1518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14323 				_tmp370_ = _tmp369_;
14324 #line 1518 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14325 				g_string_append_printf (_tmp361_, "tracker_rank(matchinfo(\"%s\".\"fts\", 'cl'),fts_column_weights()) " "AS \"%s_u_rank\", ", _tmp364_, _tmp370_);
14326 #line 1507 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14327 				_g_object_unref0 (binding);
14328 #line 14324 "tracker-sparql-pattern.c"
14329 			} else {
14330 				TrackerSparqlLiteralBinding* _tmp371_;
14331 				TrackerSparqlLiteralBinding* binding;
14332 				TrackerSparqlLiteralBinding* _tmp372_;
14333 				const gchar* _tmp373_;
14334 				gchar* _tmp374_;
14335 				TrackerSparqlLiteralBinding* _tmp375_;
14336 				TrackerSparqlDataTable* _tmp376_;
14337 				TrackerSparqlDataTable* _tmp377_;
14338 				TrackerProperty* _tmp378_;
14339 				TrackerSparqlPatternTripleContext* _tmp390_;
14340 				TrackerSparqlLiteralBinding* _tmp391_;
14341 				TrackerSparqlLiteralBinding* _tmp392_;
14342 #line 1523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14343 				_tmp371_ = tracker_sparql_literal_binding_new ();
14344 #line 1523 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14345 				binding = _tmp371_;
14346 #line 1524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14347 				_tmp372_ = binding;
14348 #line 1524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14349 				_tmp373_ = object;
14350 #line 1524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14351 				_tmp374_ = g_strdup (_tmp373_);
14352 #line 1524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14353 				_g_free0 (_tmp372_->literal);
14354 #line 1524 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14355 				_tmp372_->literal = _tmp374_;
14356 #line 1526 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14357 				_tmp375_ = binding;
14358 #line 1526 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14359 				_tmp376_ = table;
14360 #line 1526 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14361 				_tmp377_ = _g_object_ref0 (_tmp376_);
14362 #line 1526 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14363 				_g_object_unref0 (((TrackerSparqlDataBinding*) _tmp375_)->table);
14364 #line 1526 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14365 				((TrackerSparqlDataBinding*) _tmp375_)->table = _tmp377_;
14366 #line 1527 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14367 				_tmp378_ = prop;
14368 #line 1527 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14369 				if (_tmp378_ != NULL) {
14370 #line 14366 "tracker-sparql-pattern.c"
14371 					TrackerSparqlLiteralBinding* _tmp379_;
14372 					TrackerProperty* _tmp380_;
14373 					TrackerPropertyType _tmp381_;
14374 					TrackerPropertyType _tmp382_;
14375 					TrackerSparqlLiteralBinding* _tmp383_;
14376 					TrackerProperty* _tmp384_;
14377 					const gchar* _tmp385_;
14378 					const gchar* _tmp386_;
14379 					gchar* _tmp387_;
14380 #line 1528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14381 					_tmp379_ = binding;
14382 #line 1528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14383 					_tmp380_ = prop;
14384 #line 1528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14385 					_tmp381_ = tracker_property_get_data_type (_tmp380_);
14386 #line 1528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14387 					_tmp382_ = _tmp381_;
14388 #line 1528 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14389 					((TrackerSparqlDataBinding*) _tmp379_)->data_type = _tmp382_;
14390 #line 1529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14391 					_tmp383_ = binding;
14392 #line 1529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14393 					_tmp384_ = prop;
14394 #line 1529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14395 					_tmp385_ = tracker_property_get_name (_tmp384_);
14396 #line 1529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14397 					_tmp386_ = _tmp385_;
14398 #line 1529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14399 					_tmp387_ = g_strdup (_tmp386_);
14400 #line 1529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14401 					_g_free0 (((TrackerSparqlDataBinding*) _tmp383_)->sql_db_column_name);
14402 #line 1529 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14403 					((TrackerSparqlDataBinding*) _tmp383_)->sql_db_column_name = _tmp387_;
14404 #line 14400 "tracker-sparql-pattern.c"
14405 				} else {
14406 					TrackerSparqlLiteralBinding* _tmp388_;
14407 					gchar* _tmp389_;
14408 #line 1532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14409 					_tmp388_ = binding;
14410 #line 1532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14411 					_tmp389_ = g_strdup ("object");
14412 #line 1532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14413 					_g_free0 (((TrackerSparqlDataBinding*) _tmp388_)->sql_db_column_name);
14414 #line 1532 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14415 					((TrackerSparqlDataBinding*) _tmp388_)->sql_db_column_name = _tmp389_;
14416 #line 14412 "tracker-sparql-pattern.c"
14417 				}
14418 #line 1534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14419 				_tmp390_ = self->priv->triple_context;
14420 #line 1534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14421 				_tmp391_ = binding;
14422 #line 1534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14423 				_tmp392_ = _g_object_ref0 (_tmp391_);
14424 #line 1534 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14425 				_tmp390_->bindings = g_list_append (_tmp390_->bindings, _tmp392_);
14426 #line 1507 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14427 				_g_object_unref0 (binding);
14428 #line 14424 "tracker-sparql-pattern.c"
14429 			}
14430 		}
14431 #line 1537 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14432 		_tmp393_ = self->current_graph;
14433 #line 1537 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14434 		if (_tmp393_ != NULL) {
14435 #line 14431 "tracker-sparql-pattern.c"
14436 			gboolean _tmp394_;
14437 #line 1538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14438 			_tmp394_ = self->priv->current_graph_is_var;
14439 #line 1538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14440 			if (_tmp394_) {
14441 #line 14437 "tracker-sparql-pattern.c"
14442 				TrackerSparqlVariableBinding* _tmp395_;
14443 				TrackerSparqlVariableBinding* binding;
14444 				TrackerSparqlVariableBinding* _tmp396_;
14445 				TrackerSparqlContext* _tmp397_;
14446 				TrackerSparqlContext* _tmp398_;
14447 				const gchar* _tmp399_;
14448 				TrackerSparqlVariable* _tmp400_ = NULL;
14449 				TrackerSparqlVariableBinding* _tmp401_;
14450 				TrackerSparqlDataTable* _tmp402_;
14451 				TrackerSparqlDataTable* _tmp403_;
14452 				TrackerSparqlVariableBinding* _tmp404_;
14453 				TrackerProperty* _tmp405_;
14454 				TrackerSparqlVariableBinding* _tmp413_;
14455 				TrackerSparqlVariableBinding* _tmp414_;
14456 				gboolean _tmp415_;
14457 				TrackerSparqlVariableState state = 0;
14458 				gboolean _tmp416_;
14459 				GString* _tmp417_;
14460 				TrackerSparqlVariableBinding* _tmp418_;
14461 				TrackerSparqlVariableState _tmp419_;
14462 #line 1539 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14463 				_tmp395_ = tracker_sparql_variable_binding_new ();
14464 #line 1539 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14465 				binding = _tmp395_;
14466 #line 1540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14467 				_tmp396_ = binding;
14468 #line 1540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14469 				_tmp397_ = tracker_sparql_pattern_get_context (self);
14470 #line 1540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14471 				_tmp398_ = _tmp397_;
14472 #line 1540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14473 				_tmp399_ = self->current_graph;
14474 #line 1540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14475 				_tmp400_ = tracker_sparql_context_get_variable (_tmp398_, _tmp399_);
14476 #line 1540 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14477 				_tmp396_->variable = _tmp400_;
14478 #line 1541 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14479 				_tmp401_ = binding;
14480 #line 1541 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14481 				_tmp402_ = table;
14482 #line 1541 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14483 				_tmp403_ = _g_object_ref0 (_tmp402_);
14484 #line 1541 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14485 				_g_object_unref0 (((TrackerSparqlDataBinding*) _tmp401_)->table);
14486 #line 1541 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14487 				((TrackerSparqlDataBinding*) _tmp401_)->table = _tmp403_;
14488 #line 1542 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14489 				_tmp404_ = binding;
14490 #line 1542 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14491 				((TrackerSparqlDataBinding*) _tmp404_)->data_type = TRACKER_PROPERTY_TYPE_RESOURCE;
14492 #line 1544 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14493 				_tmp405_ = prop;
14494 #line 1544 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14495 				if (_tmp405_ != NULL) {
14496 #line 14492 "tracker-sparql-pattern.c"
14497 					TrackerSparqlVariableBinding* _tmp406_;
14498 					TrackerProperty* _tmp407_;
14499 					const gchar* _tmp408_;
14500 					const gchar* _tmp409_;
14501 					gchar* _tmp410_;
14502 #line 1545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14503 					_tmp406_ = binding;
14504 #line 1545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14505 					_tmp407_ = prop;
14506 #line 1545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14507 					_tmp408_ = tracker_property_get_name (_tmp407_);
14508 #line 1545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14509 					_tmp409_ = _tmp408_;
14510 #line 1545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14511 					_tmp410_ = g_strconcat (_tmp409_, ":graph", NULL);
14512 #line 1545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14513 					_g_free0 (((TrackerSparqlDataBinding*) _tmp406_)->sql_db_column_name);
14514 #line 1545 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14515 					((TrackerSparqlDataBinding*) _tmp406_)->sql_db_column_name = _tmp410_;
14516 #line 14512 "tracker-sparql-pattern.c"
14517 				} else {
14518 					TrackerSparqlVariableBinding* _tmp411_;
14519 					gchar* _tmp412_;
14520 #line 1548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14521 					_tmp411_ = binding;
14522 #line 1548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14523 					_tmp412_ = g_strdup ("graph");
14524 #line 1548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14525 					_g_free0 (((TrackerSparqlDataBinding*) _tmp411_)->sql_db_column_name);
14526 #line 1548 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14527 					((TrackerSparqlDataBinding*) _tmp411_)->sql_db_column_name = _tmp412_;
14528 #line 14524 "tracker-sparql-pattern.c"
14529 				}
14530 #line 1551 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14531 				_tmp413_ = binding;
14532 #line 1551 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14533 				_tmp413_->maybe_null = TRUE;
14534 #line 1552 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14535 				_tmp414_ = binding;
14536 #line 1552 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14537 				_tmp415_ = in_simple_optional;
14538 #line 1552 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14539 				_tmp414_->in_simple_optional = _tmp415_;
14540 #line 1555 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14541 				_tmp416_ = in_simple_optional;
14542 #line 1555 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14543 				if (_tmp416_) {
14544 #line 1556 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14545 					state = TRACKER_SPARQL_VARIABLE_STATE_OPTIONAL;
14546 #line 14542 "tracker-sparql-pattern.c"
14547 				} else {
14548 #line 1558 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14549 					state = TRACKER_SPARQL_VARIABLE_STATE_BOUND;
14550 #line 14546 "tracker-sparql-pattern.c"
14551 				}
14552 #line 1561 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14553 				_tmp417_ = sql;
14554 #line 1561 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14555 				_tmp418_ = binding;
14556 #line 1561 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14557 				_tmp419_ = state;
14558 #line 1561 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14559 				tracker_sparql_pattern_add_variable_binding (self, _tmp417_, _tmp418_, _tmp419_);
14560 #line 1538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14561 				_g_object_unref0 (binding);
14562 #line 14558 "tracker-sparql-pattern.c"
14563 			} else {
14564 				TrackerSparqlLiteralBinding* _tmp420_;
14565 				TrackerSparqlLiteralBinding* binding;
14566 				TrackerSparqlLiteralBinding* _tmp421_;
14567 				const gchar* _tmp422_;
14568 				gchar* _tmp423_;
14569 				TrackerSparqlLiteralBinding* _tmp424_;
14570 				TrackerSparqlDataTable* _tmp425_;
14571 				TrackerSparqlDataTable* _tmp426_;
14572 				TrackerSparqlLiteralBinding* _tmp427_;
14573 				TrackerProperty* _tmp428_;
14574 				TrackerSparqlPatternTripleContext* _tmp436_;
14575 				TrackerSparqlLiteralBinding* _tmp437_;
14576 				TrackerSparqlLiteralBinding* _tmp438_;
14577 #line 1563 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14578 				_tmp420_ = tracker_sparql_literal_binding_new ();
14579 #line 1563 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14580 				binding = _tmp420_;
14581 #line 1564 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14582 				_tmp421_ = binding;
14583 #line 1564 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14584 				_tmp422_ = self->current_graph;
14585 #line 1564 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14586 				_tmp423_ = g_strdup (_tmp422_);
14587 #line 1564 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14588 				_g_free0 (_tmp421_->literal);
14589 #line 1564 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14590 				_tmp421_->literal = _tmp423_;
14591 #line 1565 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14592 				_tmp424_ = binding;
14593 #line 1565 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14594 				_tmp425_ = table;
14595 #line 1565 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14596 				_tmp426_ = _g_object_ref0 (_tmp425_);
14597 #line 1565 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14598 				_g_object_unref0 (((TrackerSparqlDataBinding*) _tmp424_)->table);
14599 #line 1565 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14600 				((TrackerSparqlDataBinding*) _tmp424_)->table = _tmp426_;
14601 #line 1566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14602 				_tmp427_ = binding;
14603 #line 1566 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14604 				((TrackerSparqlDataBinding*) _tmp427_)->data_type = TRACKER_PROPERTY_TYPE_RESOURCE;
14605 #line 1568 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14606 				_tmp428_ = prop;
14607 #line 1568 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14608 				if (_tmp428_ != NULL) {
14609 #line 14605 "tracker-sparql-pattern.c"
14610 					TrackerSparqlLiteralBinding* _tmp429_;
14611 					TrackerProperty* _tmp430_;
14612 					const gchar* _tmp431_;
14613 					const gchar* _tmp432_;
14614 					gchar* _tmp433_;
14615 #line 1569 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14616 					_tmp429_ = binding;
14617 #line 1569 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14618 					_tmp430_ = prop;
14619 #line 1569 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14620 					_tmp431_ = tracker_property_get_name (_tmp430_);
14621 #line 1569 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14622 					_tmp432_ = _tmp431_;
14623 #line 1569 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14624 					_tmp433_ = g_strconcat (_tmp432_, ":graph", NULL);
14625 #line 1569 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14626 					_g_free0 (((TrackerSparqlDataBinding*) _tmp429_)->sql_db_column_name);
14627 #line 1569 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14628 					((TrackerSparqlDataBinding*) _tmp429_)->sql_db_column_name = _tmp433_;
14629 #line 14625 "tracker-sparql-pattern.c"
14630 				} else {
14631 					TrackerSparqlLiteralBinding* _tmp434_;
14632 					gchar* _tmp435_;
14633 #line 1572 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14634 					_tmp434_ = binding;
14635 #line 1572 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14636 					_tmp435_ = g_strdup ("graph");
14637 #line 1572 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14638 					_g_free0 (((TrackerSparqlDataBinding*) _tmp434_)->sql_db_column_name);
14639 #line 1572 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14640 					((TrackerSparqlDataBinding*) _tmp434_)->sql_db_column_name = _tmp435_;
14641 #line 14637 "tracker-sparql-pattern.c"
14642 				}
14643 #line 1575 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14644 				_tmp436_ = self->priv->triple_context;
14645 #line 1575 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14646 				_tmp437_ = binding;
14647 #line 1575 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14648 				_tmp438_ = _g_object_ref0 (_tmp437_);
14649 #line 1575 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14650 				_tmp436_->bindings = g_list_append (_tmp436_->bindings, _tmp438_);
14651 #line 1538 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14652 				_g_object_unref0 (binding);
14653 #line 14649 "tracker-sparql-pattern.c"
14654 			}
14655 		}
14656 	}
14657 #line 1580 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14658 	_tmp439_ = sql;
14659 #line 1580 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14660 	_tmp440_ = _tmp439_->len;
14661 #line 1580 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14662 	_tmp441_ = begin_sql_len;
14663 #line 1580 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14664 	if (_tmp440_ == ((gssize) _tmp441_)) {
14665 #line 14661 "tracker-sparql-pattern.c"
14666 		GString* _tmp442_;
14667 #line 1583 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14668 		_tmp442_ = sql;
14669 #line 1583 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14670 		g_string_append (_tmp442_, "1, ");
14671 #line 14667 "tracker-sparql-pattern.c"
14672 	}
14673 #line 1296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14674 	_g_object_unref0 (subject_type);
14675 #line 1296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14676 	_g_object_unref0 (prop);
14677 #line 1296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14678 	_g_object_unref0 (table);
14679 #line 1296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14680 	_g_free0 (db_table);
14681 #line 1296 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14682 	_g_free0 (object);
14683 #line 14679 "tracker-sparql-pattern.c"
14684 }
14685 
14686 
14687 static TrackerSparqlDataTable* tracker_sparql_pattern_get_table (TrackerSparqlPattern* self, const gchar* subject, const gchar* db_table, gboolean share_table, gboolean* newtable) {
14688 	gboolean _vala_newtable = FALSE;
14689 	TrackerSparqlDataTable* result = NULL;
14690 	const gchar* _tmp0_;
14691 	const gchar* _tmp1_;
14692 	gchar* _tmp2_ = NULL;
14693 	gchar* tablestring;
14694 	TrackerSparqlDataTable* table;
14695 	gboolean _tmp3_;
14696 	TrackerSparqlDataTable* _tmp9_;
14697 #line 1587 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14698 	g_return_val_if_fail (self != NULL, NULL);
14699 #line 1587 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14700 	g_return_val_if_fail (subject != NULL, NULL);
14701 #line 1587 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14702 	g_return_val_if_fail (db_table != NULL, NULL);
14703 #line 1588 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14704 	_tmp0_ = subject;
14705 #line 1588 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14706 	_tmp1_ = db_table;
14707 #line 1588 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14708 	_tmp2_ = g_strdup_printf ("%s.%s", _tmp0_, _tmp1_);
14709 #line 1588 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14710 	tablestring = _tmp2_;
14711 #line 1589 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14712 	table = NULL;
14713 #line 1590 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14714 	_vala_newtable = FALSE;
14715 #line 1591 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14716 	_tmp3_ = share_table;
14717 #line 1591 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14718 	if (_tmp3_) {
14719 #line 14715 "tracker-sparql-pattern.c"
14720 		TrackerSparqlPatternTripleContext* _tmp4_;
14721 		GHashTable* _tmp5_;
14722 		const gchar* _tmp6_;
14723 		gconstpointer _tmp7_ = NULL;
14724 		TrackerSparqlDataTable* _tmp8_;
14725 #line 1592 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14726 		_tmp4_ = self->priv->triple_context;
14727 #line 1592 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14728 		_tmp5_ = _tmp4_->table_map;
14729 #line 1592 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14730 		_tmp6_ = tablestring;
14731 #line 1592 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14732 		_tmp7_ = g_hash_table_lookup (_tmp5_, _tmp6_);
14733 #line 1592 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14734 		_tmp8_ = _g_object_ref0 ((TrackerSparqlDataTable*) _tmp7_);
14735 #line 1592 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14736 		_g_object_unref0 (table);
14737 #line 1592 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14738 		table = _tmp8_;
14739 #line 14735 "tracker-sparql-pattern.c"
14740 	}
14741 #line 1594 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14742 	_tmp9_ = table;
14743 #line 1594 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14744 	if (_tmp9_ == NULL) {
14745 #line 14741 "tracker-sparql-pattern.c"
14746 		TrackerSparqlDataTable* _tmp10_;
14747 		TrackerSparqlDataTable* _tmp11_;
14748 		const gchar* _tmp12_;
14749 		gchar* _tmp13_;
14750 		TrackerSparqlDataTable* _tmp14_;
14751 		const gchar* _tmp15_;
14752 		gint _tmp16_;
14753 		gint _tmp17_;
14754 		gchar* _tmp18_ = NULL;
14755 		gchar* _tmp19_;
14756 		gchar* _tmp20_;
14757 		TrackerSparqlPatternTripleContext* _tmp21_;
14758 		TrackerSparqlDataTable* _tmp22_;
14759 		TrackerSparqlDataTable* _tmp23_;
14760 		TrackerSparqlPatternTripleContext* _tmp24_;
14761 		GHashTable* _tmp25_;
14762 		const gchar* _tmp26_;
14763 		gchar* _tmp27_;
14764 		TrackerSparqlDataTable* _tmp28_;
14765 		TrackerSparqlDataTable* _tmp29_;
14766 #line 1595 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14767 		_vala_newtable = TRUE;
14768 #line 1596 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14769 		_tmp10_ = tracker_sparql_data_table_new ();
14770 #line 1596 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14771 		_g_object_unref0 (table);
14772 #line 1596 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14773 		table = _tmp10_;
14774 #line 1597 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14775 		_tmp11_ = table;
14776 #line 1597 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14777 		_tmp12_ = db_table;
14778 #line 1597 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14779 		_tmp13_ = g_strdup (_tmp12_);
14780 #line 1597 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14781 		_g_free0 (_tmp11_->sql_db_tablename);
14782 #line 1597 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14783 		_tmp11_->sql_db_tablename = _tmp13_;
14784 #line 1598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14785 		_tmp14_ = table;
14786 #line 1598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14787 		_tmp15_ = db_table;
14788 #line 1598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14789 		_tmp16_ = self->priv->counter;
14790 #line 1598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14791 		self->priv->counter = _tmp16_ + 1;
14792 #line 1598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14793 		_tmp17_ = self->priv->counter;
14794 #line 1598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14795 		_tmp18_ = g_strdup_printf ("%i", _tmp17_);
14796 #line 1598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14797 		_tmp19_ = _tmp18_;
14798 #line 1598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14799 		_tmp20_ = g_strconcat (_tmp15_, _tmp19_, NULL);
14800 #line 1598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14801 		_g_free0 (_tmp14_->sql_query_tablename);
14802 #line 1598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14803 		_tmp14_->sql_query_tablename = _tmp20_;
14804 #line 1598 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14805 		_g_free0 (_tmp19_);
14806 #line 1599 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14807 		_tmp21_ = self->priv->triple_context;
14808 #line 1599 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14809 		_tmp22_ = table;
14810 #line 1599 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14811 		_tmp23_ = _g_object_ref0 (_tmp22_);
14812 #line 1599 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14813 		_tmp21_->tables = g_list_append (_tmp21_->tables, _tmp23_);
14814 #line 1600 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14815 		_tmp24_ = self->priv->triple_context;
14816 #line 1600 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14817 		_tmp25_ = _tmp24_->table_map;
14818 #line 1600 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14819 		_tmp26_ = tablestring;
14820 #line 1600 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14821 		_tmp27_ = g_strdup (_tmp26_);
14822 #line 1600 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14823 		_tmp28_ = table;
14824 #line 1600 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14825 		_tmp29_ = _g_object_ref0 (_tmp28_);
14826 #line 1600 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14827 		g_hash_table_insert (_tmp25_, _tmp27_, _tmp29_);
14828 #line 14824 "tracker-sparql-pattern.c"
14829 	}
14830 #line 1602 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14831 	result = table;
14832 #line 1602 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14833 	_g_free0 (tablestring);
14834 #line 1602 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14835 	if (newtable) {
14836 #line 1602 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14837 		*newtable = _vala_newtable;
14838 #line 14834 "tracker-sparql-pattern.c"
14839 	}
14840 #line 1602 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14841 	return result;
14842 #line 14838 "tracker-sparql-pattern.c"
14843 }
14844 
14845 
14846 static TrackerSparqlContext* tracker_sparql_pattern_get_context (TrackerSparqlPattern* self) {
14847 	TrackerSparqlContext* result;
14848 	TrackerSparqlQuery* _tmp0_;
14849 	TrackerSparqlContext* _tmp1_;
14850 #line 183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14851 	g_return_val_if_fail (self != NULL, NULL);
14852 #line 183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14853 	_tmp0_ = self->priv->query;
14854 #line 183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14855 	_tmp1_ = _tmp0_->context;
14856 #line 183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14857 	result = _tmp1_;
14858 #line 183 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14859 	return result;
14860 #line 14856 "tracker-sparql-pattern.c"
14861 }
14862 
14863 
14864 static void tracker_sparql_pattern_set_context (TrackerSparqlPattern* self, TrackerSparqlContext* value) {
14865 	TrackerSparqlQuery* _tmp0_;
14866 	TrackerSparqlContext* _tmp1_;
14867 	TrackerSparqlContext* _tmp2_;
14868 #line 184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14869 	g_return_if_fail (self != NULL);
14870 #line 184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14871 	_tmp0_ = self->priv->query;
14872 #line 184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14873 	_tmp1_ = value;
14874 #line 184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14875 	_tmp2_ = _tracker_sparql_context_ref0 (_tmp1_);
14876 #line 184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14877 	_tracker_sparql_context_unref0 (_tmp0_->context);
14878 #line 184 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14879 	_tmp0_->context = _tmp2_;
14880 #line 14876 "tracker-sparql-pattern.c"
14881 }
14882 
14883 
14884 static TrackerSparqlPatternTripleContext* tracker_sparql_pattern_triple_context_construct (GType object_type, TrackerSparqlQuery* query, TrackerSparqlContext* parent_context) {
14885 	TrackerSparqlPatternTripleContext* self = NULL;
14886 	TrackerSparqlQuery* _tmp0_;
14887 	TrackerSparqlContext* _tmp1_;
14888 	GHashFunc _tmp2_;
14889 	GEqualFunc _tmp3_;
14890 	GDestroyNotify _tmp4_;
14891 	GDestroyNotify _tmp5_;
14892 	GHashTable* _tmp6_;
14893 	GDestroyNotify _tmp7_;
14894 	GDestroyNotify _tmp8_;
14895 	GHashTable* _tmp9_;
14896 #line 229 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14897 	g_return_val_if_fail (query != NULL, NULL);
14898 #line 229 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14899 	g_return_val_if_fail (parent_context != NULL, NULL);
14900 #line 230 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14901 	_tmp0_ = query;
14902 #line 230 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14903 	_tmp1_ = parent_context;
14904 #line 230 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14905 	self = (TrackerSparqlPatternTripleContext*) tracker_sparql_context_construct (object_type, _tmp0_, _tmp1_);
14906 #line 232 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14907 	__g_list_free__g_object_unref0_0 (self->tables);
14908 #line 232 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14909 	self->tables = NULL;
14910 #line 233 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14911 	_tmp2_ = g_str_hash;
14912 #line 233 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14913 	_tmp3_ = g_str_equal;
14914 #line 233 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14915 	_tmp4_ = g_free;
14916 #line 233 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14917 	_tmp5_ = g_object_unref;
14918 #line 233 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14919 	_tmp6_ = g_hash_table_new_full (_tmp2_, _tmp3_, _tmp4_, _tmp5_);
14920 #line 233 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14921 	_g_hash_table_unref0 (self->table_map);
14922 #line 233 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14923 	self->table_map = _tmp6_;
14924 #line 235 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14925 	__g_list_free__g_object_unref0_0 (self->variables);
14926 #line 235 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14927 	self->variables = NULL;
14928 #line 236 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14929 	_tmp7_ = g_object_unref;
14930 #line 236 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14931 	_tmp8_ = g_object_unref;
14932 #line 236 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14933 	_tmp9_ = g_hash_table_new_full (_tracker_sparql_variable_hash_ghash_func, _tracker_sparql_variable_equal_gequal_func, _tmp7_, _tmp8_);
14934 #line 236 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14935 	_g_hash_table_unref0 (self->var_bindings);
14936 #line 236 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14937 	self->var_bindings = _tmp9_;
14938 #line 238 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14939 	__g_list_free__g_object_unref0_0 (self->bindings);
14940 #line 238 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14941 	self->bindings = NULL;
14942 #line 229 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14943 	return self;
14944 #line 14940 "tracker-sparql-pattern.c"
14945 }
14946 
14947 
14948 static TrackerSparqlPatternTripleContext* tracker_sparql_pattern_triple_context_new (TrackerSparqlQuery* query, TrackerSparqlContext* parent_context) {
14949 #line 229 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14950 	return tracker_sparql_pattern_triple_context_construct (TRACKER_SPARQL_PATTERN_TYPE_TRIPLE_CONTEXT, query, parent_context);
14951 #line 14947 "tracker-sparql-pattern.c"
14952 }
14953 
14954 
14955 static void tracker_sparql_pattern_triple_context_class_init (TrackerSparqlPatternTripleContextClass * klass) {
14956 #line 219 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14957 	tracker_sparql_pattern_triple_context_parent_class = g_type_class_peek_parent (klass);
14958 #line 219 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14959 	TRACKER_SPARQL_CONTEXT_CLASS (klass)->finalize = tracker_sparql_pattern_triple_context_finalize;
14960 #line 14956 "tracker-sparql-pattern.c"
14961 }
14962 
14963 
14964 static void tracker_sparql_pattern_triple_context_instance_init (TrackerSparqlPatternTripleContext * self) {
14965 }
14966 
14967 
14968 static void tracker_sparql_pattern_triple_context_finalize (TrackerSparqlContext* obj) {
14969 	TrackerSparqlPatternTripleContext * self;
14970 #line 219 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14971 	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TRACKER_SPARQL_PATTERN_TYPE_TRIPLE_CONTEXT, TrackerSparqlPatternTripleContext);
14972 #line 221 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14973 	__g_list_free__g_object_unref0_0 (self->tables);
14974 #line 222 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14975 	_g_hash_table_unref0 (self->table_map);
14976 #line 224 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14977 	__g_list_free__g_object_unref0_0 (self->bindings);
14978 #line 226 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14979 	__g_list_free__g_object_unref0_0 (self->variables);
14980 #line 227 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14981 	_g_hash_table_unref0 (self->var_bindings);
14982 #line 219 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
14983 	TRACKER_SPARQL_CONTEXT_CLASS (tracker_sparql_pattern_triple_context_parent_class)->finalize (obj);
14984 #line 14980 "tracker-sparql-pattern.c"
14985 }
14986 
14987 
14988 static GType tracker_sparql_pattern_triple_context_get_type (void) {
14989 	static volatile gsize tracker_sparql_pattern_triple_context_type_id__volatile = 0;
14990 	if (g_once_init_enter (&tracker_sparql_pattern_triple_context_type_id__volatile)) {
14991 		static const GTypeInfo g_define_type_info = { sizeof (TrackerSparqlPatternTripleContextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tracker_sparql_pattern_triple_context_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TrackerSparqlPatternTripleContext), 0, (GInstanceInitFunc) tracker_sparql_pattern_triple_context_instance_init, NULL };
14992 		GType tracker_sparql_pattern_triple_context_type_id;
14993 		tracker_sparql_pattern_triple_context_type_id = g_type_register_static (TRACKER_SPARQL_TYPE_CONTEXT, "TrackerSparqlPatternTripleContext", &g_define_type_info, 0);
14994 		g_once_init_leave (&tracker_sparql_pattern_triple_context_type_id__volatile, tracker_sparql_pattern_triple_context_type_id);
14995 	}
14996 	return tracker_sparql_pattern_triple_context_type_id__volatile;
14997 }
14998 
14999 
15000 static void tracker_sparql_pattern_class_init (TrackerSparqlPatternClass * klass) {
15001 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15002 	tracker_sparql_pattern_parent_class = g_type_class_peek_parent (klass);
15003 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15004 	g_type_class_add_private (klass, sizeof (TrackerSparqlPatternPrivate));
15005 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15006 	G_OBJECT_CLASS (klass)->get_property = _vala_tracker_sparql_pattern_get_property;
15007 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15008 	G_OBJECT_CLASS (klass)->set_property = _vala_tracker_sparql_pattern_set_property;
15009 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15010 	G_OBJECT_CLASS (klass)->finalize = tracker_sparql_pattern_finalize;
15011 #line 15007 "tracker-sparql-pattern.c"
15012 }
15013 
15014 
15015 static void tracker_sparql_pattern_instance_init (TrackerSparqlPattern * self) {
15016 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15017 	self->priv = TRACKER_SPARQL_PATTERN_GET_PRIVATE (self);
15018 #line 175 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15019 	self->queries_fts_data = FALSE;
15020 #line 15016 "tracker-sparql-pattern.c"
15021 }
15022 
15023 
15024 static void tracker_sparql_pattern_finalize (GObject* obj) {
15025 	TrackerSparqlPattern * self;
15026 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15027 	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TRACKER_SPARQL_TYPE_PATTERN, TrackerSparqlPattern);
15028 #line 166 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15029 	_g_free0 (self->current_graph);
15030 #line 168 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15031 	_g_free0 (self->priv->current_subject);
15032 #line 170 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15033 	_g_free0 (self->priv->current_predicate);
15034 #line 172 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15035 	_g_object_unref0 (self->fts_subject);
15036 #line 173 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15037 	self->fts_variables = (_vala_array_free (self->fts_variables, self->fts_variables_length1, (GDestroyNotify) g_free), NULL);
15038 #line 174 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15039 	_g_string_free0 (self->match_str);
15040 #line 242 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15041 	_tracker_sparql_context_unref0 (self->priv->triple_context);
15042 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15043 	G_OBJECT_CLASS (tracker_sparql_pattern_parent_class)->finalize (obj);
15044 #line 15040 "tracker-sparql-pattern.c"
15045 }
15046 
15047 
15048 GType tracker_sparql_pattern_get_type (void) {
15049 	static volatile gsize tracker_sparql_pattern_type_id__volatile = 0;
15050 	if (g_once_init_enter (&tracker_sparql_pattern_type_id__volatile)) {
15051 		static const GTypeInfo g_define_type_info = { sizeof (TrackerSparqlPatternClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tracker_sparql_pattern_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TrackerSparqlPattern), 0, (GInstanceInitFunc) tracker_sparql_pattern_instance_init, NULL };
15052 		GType tracker_sparql_pattern_type_id;
15053 		tracker_sparql_pattern_type_id = g_type_register_static (G_TYPE_OBJECT, "TrackerSparqlPattern", &g_define_type_info, 0);
15054 		g_once_init_leave (&tracker_sparql_pattern_type_id__volatile, tracker_sparql_pattern_type_id);
15055 	}
15056 	return tracker_sparql_pattern_type_id__volatile;
      (emitted by gcc)15057 }
15058 
15059 
15060 static void _vala_tracker_sparql_pattern_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
15061 	TrackerSparqlPattern * self;
15062 	self = G_TYPE_CHECK_INSTANCE_CAST (object, TRACKER_SPARQL_TYPE_PATTERN, TrackerSparqlPattern);
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
15063 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15064 	switch (property_id) {
15065 #line 15061 "tracker-sparql-pattern.c"
15066 		default:
15067 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15068 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
15069 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15070 		break;
15071 #line 15067 "tracker-sparql-pattern.c"
15072 	}
      (emitted by gcc)15073 }
15074 
15075 
15076 static void _vala_tracker_sparql_pattern_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
15077 	TrackerSparqlPattern * self;
15078 	self = G_TYPE_CHECK_INSTANCE_CAST (object, TRACKER_SPARQL_TYPE_PATTERN, TrackerSparqlPattern);
      (emitted by clang-analyzer)TODO: a detailed trace is available in the data model (not yet rendered in this report)
15079 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15080 	switch (property_id) {
15081 #line 15077 "tracker-sparql-pattern.c"
15082 		default:
15083 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15084 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
15085 #line 158 "/home/martyn/Source/tracker/src/libtracker-data/tracker-sparql-pattern.vala"
15086 		break;
15087 #line 15083 "tracker-sparql-pattern.c"
15088 	}
15089 }
15090 
15091 
15092 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
15093 	if ((array != NULL) && (destroy_func != NULL)) {
15094 		int i;
15095 		for (i = 0; i < array_length; i = i + 1) {
15096 			if (((gpointer*) array)[i] != NULL) {
15097 				destroy_func (((gpointer*) array)[i]);
15098 			}
15099 		}
15100 	}
15101 }
15102 
15103 
15104 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
15105 	_vala_array_destroy (array, array_length, destroy_func);
15106 	g_free (array);
15107 }
15108 
15109 
15110 static gint _vala_array_length (gpointer array) {
15111 	int length;
15112 	length = 0;
15113 	if (array) {
15114 		while (((gpointer*) array)[length]) {
15115 			length++;
15116 		}
15117 	}
15118 	return length;
15119 }