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 }