Merge lp:~zorba-coders/zorba/markos-scratch into lp:zorba
- markos-scratch
- Merge into trunk
Proposed by
Markos Zaharioudakis
Status: | Merged |
---|---|
Approved by: | Markos Zaharioudakis |
Approved revision: | 10998 |
Merged at revision: | 11154 |
Proposed branch: | lp:~zorba-coders/zorba/markos-scratch |
Merge into: | lp:zorba |
Diff against target: |
784 lines (+117/-99) 22 files modified
ChangeLog (+1/-0) src/compiler/codegen/plan_visitor.cpp (+47/-21) src/compiler/rewriter/rules/flwor_rules.cpp (+1/-10) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9065.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9066.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9067.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9068.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9197.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9198.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9199.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9204.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9207.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/gary1.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx4.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9065.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9198.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9199.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-gary1.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-idx4.iter (+3/-3) test/rbkt/ExpCompilerResults/IterPlan/zorba/udf/udf-recursive-1.iter (+4/-4) test/rbkt/ExpCompilerResults/IterPlan/zorba/w3c/rdb-queries-results-q5.iter (+13/-13) test/rbkt/ExpCompilerResults/IterPlan/zorba/xray/ppm_10.iter (+3/-3) |
To merge this branch: | bzr merge lp:~zorba-coders/zorba/markos-scratch |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Markos Zaharioudakis | Approve | ||
Review via email: mp+140471@code.launchpad.net |
Commit message
convert LET vars whose domain sequence has exactly one item to FOR vars; do this during codegen instead of during optimization
Description of the change
convert LET vars whose domain sequence has exactly one item to FOR vars; do this during codegen instead of during optimization
To post a comment you must log in.
Revision history for this message
Markos Zaharioudakis (markos-za) : | # |
review:
Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote : | # |
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue job markos-
All tests succeeded!
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'ChangeLog' |
2 | --- ChangeLog 2012-12-14 07:27:04 +0000 |
3 | +++ ChangeLog 2012-12-18 15:18:46 +0000 |
4 | @@ -18,6 +18,7 @@ |
5 | * Fixed iteration over the components of a window clause; this improves static |
6 | type computation of expressions referencing window vars. |
7 | * No need to cast xs:untypedAtomic to xs:string in order-by expression. |
8 | + * Convert LET vars whose domain sequence has exactly one item to FOR vars. |
9 | |
10 | Bug Fixes/Other Changes: |
11 | * Change XQXQ (XQuery-for-XQuery) module now part of Zorba core |
12 | |
13 | === modified file 'src/compiler/codegen/plan_visitor.cpp' |
14 | --- src/compiler/codegen/plan_visitor.cpp 2012-10-29 11:41:36 +0000 |
15 | +++ src/compiler/codegen/plan_visitor.cpp 2012-12-18 15:18:46 +0000 |
16 | @@ -197,6 +197,10 @@ |
17 | public: |
18 | PlanIter_t theInputVar; |
19 | std::vector<PlanIter_t> theOutputVarRefs; |
20 | + bool theIsFakeLetVar; |
21 | + |
22 | +public: |
23 | + VarRebind() : theIsFakeLetVar(false) {} |
24 | }; |
25 | |
26 | |
27 | @@ -776,13 +780,16 @@ |
28 | ZORBA_ASSERT(i >= 0); |
29 | } |
30 | |
31 | + FlworClauseVarMap* clauseVarMap = theClauseStack[i]; |
32 | + flwor_expr* flworExpr = clauseVarMap->theClause->get_flwor_expr(); |
33 | + bool isFakeLetVar = clauseVarMap->theVarRebinds[varPos]->theIsFakeLetVar; |
34 | + |
35 | + if (isFakeLetVar) |
36 | + isForVar = true; |
37 | + |
38 | // Create a var ref iter in the output of C. |
39 | varIter = create_var_iter(var, isForVar); |
40 | |
41 | - FlworClauseVarMap* clauseVarMap = theClauseStack[i]; |
42 | - |
43 | - flwor_expr* flworExpr = clauseVarMap->theClause->get_flwor_expr(); |
44 | - |
45 | clauseVarMap->theVarRebinds[varPos]->theOutputVarRefs.push_back(varIter); |
46 | |
47 | if (clauseVarMap->theIsGeneral || flworExpr->is_sequential()) |
48 | @@ -807,6 +814,7 @@ |
49 | clauseVarMap->theVarRebinds.push_back(varRebind); |
50 | |
51 | varRebind->theInputVar = varIter; |
52 | + varRebind->theIsFakeLetVar = isFakeLetVar; |
53 | |
54 | varIter = create_var_iter(var, isForVar); |
55 | |
56 | @@ -1097,12 +1105,12 @@ |
57 | const flwor_clause::rebind_list_t& gvars = gc->get_grouping_vars(); |
58 | const flwor_clause::rebind_list_t& ngvars = gc->get_nongrouping_vars(); |
59 | |
60 | - for (ulong i = 0; i < gvars.size(); ++i) |
61 | + for (csize i = 0; i < gvars.size(); ++i) |
62 | { |
63 | gvars[i].first->accept(*this); |
64 | } |
65 | |
66 | - for (ulong i = 0; i < ngvars.size(); ++i) |
67 | + for (csize i = 0; i < ngvars.size(); ++i) |
68 | { |
69 | ngvars[i].first->accept(*this); |
70 | } |
71 | @@ -1116,8 +1124,8 @@ |
72 | { |
73 | const orderby_clause* oc = reinterpret_cast<const orderby_clause*>(c); |
74 | |
75 | - ulong numCols = oc->num_columns(); |
76 | - for (ulong i = 0; i < numCols; ++i) |
77 | + csize numCols = oc->num_columns(); |
78 | + for (csize i = 0; i < numCols; ++i) |
79 | { |
80 | oc->get_column_expr(i)->accept(*this); |
81 | } |
82 | @@ -1208,11 +1216,15 @@ |
83 | case flwor_clause::let_clause: |
84 | { |
85 | const let_clause* lc = static_cast<const let_clause *>(c); |
86 | + xqtref_t domType = lc->get_expr()->get_return_type(); |
87 | |
88 | VarRebind_t varRebind = new VarRebind; |
89 | clauseVarMap->theVarExprs.push_back(lc->get_var()); |
90 | clauseVarMap->theVarRebinds.push_back(varRebind); |
91 | |
92 | + if (domType->get_quantifier() == TypeConstants::QUANT_ONE) |
93 | + varRebind->theIsFakeLetVar = true; |
94 | + |
95 | break; |
96 | } |
97 | |
98 | @@ -1513,14 +1525,19 @@ |
99 | |
100 | std::vector<PlanIter_t>& varRefs = clauseVarMap->theVarRebinds[0]->theOutputVarRefs; |
101 | |
102 | - return new flwor::LetIterator(sctx, |
103 | - var->get_loc(), |
104 | - var->get_name(), |
105 | - PREV_ITER, |
106 | - domainIter, |
107 | - varRefs, |
108 | - lc->lazyEval(), |
109 | - true); // materilize |
110 | + if (clauseVarMap->theVarRebinds[0]->theIsFakeLetVar) |
111 | + { |
112 | + std::vector<PlanIter_t>* posVarRefs = &no_var_iters; |
113 | + |
114 | + return new flwor::ForIterator(sctx, var->get_loc(), var->get_name(), |
115 | + PREV_ITER, domainIter, varRefs, *posVarRefs); |
116 | + } |
117 | + else |
118 | + { |
119 | + return new flwor::LetIterator(sctx, var->get_loc(), var->get_name(), |
120 | + PREV_ITER, domainIter, varRefs, |
121 | + lc->lazyEval(), true); // materialize |
122 | + } |
123 | } |
124 | |
125 | // |
126 | @@ -1894,11 +1911,20 @@ |
127 | std::vector<PlanIter_t>& varRefs = |
128 | clauseVarMap->theVarRebinds[0]->theOutputVarRefs; |
129 | |
130 | - forletClauses.push_back(flwor::ForLetClause(var->get_name(), |
131 | - varRefs, |
132 | - domainIter, |
133 | - lc->lazyEval(), |
134 | - true)); // materialize |
135 | + if (clauseVarMap->theVarRebinds[0]->theIsFakeLetVar) |
136 | + { |
137 | + forletClauses.push_back(flwor::ForLetClause(var->get_name(), |
138 | + varRefs, |
139 | + domainIter)); |
140 | + } |
141 | + else |
142 | + { |
143 | + forletClauses.push_back(flwor::ForLetClause(var->get_name(), |
144 | + varRefs, |
145 | + domainIter, |
146 | + lc->lazyEval(), |
147 | + true)); // materialize |
148 | + } |
149 | break; |
150 | } |
151 | |
152 | |
153 | === modified file 'src/compiler/rewriter/rules/flwor_rules.cpp' |
154 | --- src/compiler/rewriter/rules/flwor_rules.cpp 2012-10-30 13:33:05 +0000 |
155 | +++ src/compiler/rewriter/rules/flwor_rules.cpp 2012-12-18 15:18:46 +0000 |
156 | @@ -218,9 +218,7 @@ |
157 | // (a) Remove, if possible, FOR/LET vars that are not referenced anywhere |
158 | // (b) Replace, if possible, FOR/LET vars that are referenced only once, with |
159 | // their domain expr. |
160 | - // (c) Change a LET var into a FOR var, if its domain expr consists of |
161 | - // exactly one item. |
162 | - // (d) Remove any unused non-group variables from GROUP BY clauses. |
163 | + // (c) Remove any unused non-group variables from GROUP BY clauses. |
164 | for (csize i = 0; i < numClauses; ++i) |
165 | { |
166 | int numRefs; |
167 | @@ -327,7 +325,6 @@ |
168 | { |
169 | let_clause* lc = static_cast<let_clause *>(c); |
170 | expr* domExpr = lc->get_expr(); |
171 | - TypeConstants::quantifier_t domQuant = domExpr->get_return_type()->get_quantifier(); |
172 | var = lc->get_var(); |
173 | |
174 | if (safe_to_fold_var(i, numRefs)) |
175 | @@ -337,12 +334,6 @@ |
176 | |
177 | folded = true; |
178 | } |
179 | - else if (domQuant == TypeConstants::QUANT_ONE) |
180 | - { |
181 | - lc->set_kind(flwor_clause::for_clause); |
182 | - var->set_kind(var_expr::for_var); |
183 | - modified = true; |
184 | - } |
185 | } |
186 | default: |
187 | break; |
188 | |
189 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9065.iter' |
190 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9065.iter 2012-09-19 21:16:15 +0000 |
191 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9065.iter 2012-12-18 15:18:46 +0000 |
192 | @@ -16,7 +16,7 @@ |
193 | </ChildAxisIterator> |
194 | </HoistIterator> |
195 | </LetVariable> |
196 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
197 | + <ForVariable name="$$opt_temp_0"> |
198 | <HoistIterator> |
199 | <FnCountIterator> |
200 | <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
201 | @@ -28,7 +28,7 @@ |
202 | </ChildAxisIterator> |
203 | </FnCountIterator> |
204 | </HoistIterator> |
205 | - </LetVariable> |
206 | + </ForVariable> |
207 | <ForVariable name="er"> |
208 | <OpToIterator> |
209 | <SingletonIterator value="xs:integer(1)"/> |
210 | @@ -38,7 +38,7 @@ |
211 | <WhereClause> |
212 | <TypedValueCompareIterator_INTEGER> |
213 | <UnhoistIterator> |
214 | - <LetVarIterator varname="$$opt_temp_0"/> |
215 | + <ForVarIterator varname="$$opt_temp_0"/> |
216 | </UnhoistIterator> |
217 | <ForVarIterator varname="er"/> |
218 | </TypedValueCompareIterator_INTEGER> |
219 | |
220 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9066.iter' |
221 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9066.iter 2012-09-19 21:16:15 +0000 |
222 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9066.iter 2012-12-18 15:18:46 +0000 |
223 | @@ -5,7 +5,7 @@ |
224 | <SingletonIterator value="xs:string(books.xml)"/> |
225 | </FnDocIterator> |
226 | </ForVariable> |
227 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
228 | + <ForVariable name="$$opt_temp_0"> |
229 | <HoistIterator> |
230 | <FnCountIterator> |
231 | <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
232 | @@ -17,7 +17,7 @@ |
233 | </ChildAxisIterator> |
234 | </FnCountIterator> |
235 | </HoistIterator> |
236 | - </LetVariable> |
237 | + </ForVariable> |
238 | <ForVariable name="er"> |
239 | <OpToIterator> |
240 | <SingletonIterator value="xs:integer(1)"/> |
241 | @@ -27,7 +27,7 @@ |
242 | <WhereClause> |
243 | <TypedValueCompareIterator_INTEGER> |
244 | <UnhoistIterator> |
245 | - <LetVarIterator varname="$$opt_temp_0"/> |
246 | + <ForVarIterator varname="$$opt_temp_0"/> |
247 | </UnhoistIterator> |
248 | <ForVarIterator varname="er"/> |
249 | </TypedValueCompareIterator_INTEGER> |
250 | |
251 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9067.iter' |
252 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9067.iter 2012-09-19 21:16:15 +0000 |
253 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9067.iter 2012-12-18 15:18:46 +0000 |
254 | @@ -33,7 +33,7 @@ |
255 | </FnDocIterator> |
256 | </DescendantAxisIterator> |
257 | </ForVariable> |
258 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
259 | + <ForVariable name="$$opt_temp_1"> |
260 | <HoistIterator> |
261 | <FnCountIterator> |
262 | <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
263 | @@ -41,12 +41,12 @@ |
264 | </ChildAxisIterator> |
265 | </FnCountIterator> |
266 | </HoistIterator> |
267 | - </LetVariable> |
268 | + </ForVariable> |
269 | <ForVariable name="er"> |
270 | <ProbeIndexPointValueIterator> |
271 | <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
272 | <UnhoistIterator> |
273 | - <LetVarIterator varname="$$opt_temp_1"/> |
274 | + <ForVarIterator varname="$$opt_temp_1"/> |
275 | </UnhoistIterator> |
276 | </ProbeIndexPointValueIterator> |
277 | </ForVariable> |
278 | |
279 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9068.iter' |
280 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9068.iter 2012-09-19 21:16:15 +0000 |
281 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9068.iter 2012-12-18 15:18:46 +0000 |
282 | @@ -40,7 +40,7 @@ |
283 | </ChildAxisIterator> |
284 | </HoistIterator> |
285 | </LetVariable> |
286 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
287 | + <ForVariable name="$$opt_temp_1"> |
288 | <HoistIterator> |
289 | <FnCountIterator> |
290 | <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
291 | @@ -48,12 +48,12 @@ |
292 | </ChildAxisIterator> |
293 | </FnCountIterator> |
294 | </HoistIterator> |
295 | - </LetVariable> |
296 | + </ForVariable> |
297 | <ForVariable name="er"> |
298 | <ProbeIndexPointValueIterator> |
299 | <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
300 | <UnhoistIterator> |
301 | - <LetVarIterator varname="$$opt_temp_1"/> |
302 | + <ForVarIterator varname="$$opt_temp_1"/> |
303 | </UnhoistIterator> |
304 | </ProbeIndexPointValueIterator> |
305 | </ForVariable> |
306 | |
307 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9197.iter' |
308 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9197.iter 2012-09-19 21:16:15 +0000 |
309 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9197.iter 2012-12-18 15:18:46 +0000 |
310 | @@ -36,7 +36,7 @@ |
311 | </FnDocIterator> |
312 | </DescendantAxisIterator> |
313 | </ForVariable> |
314 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
315 | + <ForVariable name="$$opt_temp_1"> |
316 | <HoistIterator> |
317 | <FnCountIterator> |
318 | <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
319 | @@ -44,12 +44,12 @@ |
320 | </ChildAxisIterator> |
321 | </FnCountIterator> |
322 | </HoistIterator> |
323 | - </LetVariable> |
324 | + </ForVariable> |
325 | <ForVariable name="anzahl"> |
326 | <ProbeIndexPointValueIterator> |
327 | <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
328 | <UnhoistIterator> |
329 | - <LetVarIterator varname="$$opt_temp_1"/> |
330 | + <ForVarIterator varname="$$opt_temp_1"/> |
331 | </UnhoistIterator> |
332 | </ProbeIndexPointValueIterator> |
333 | </ForVariable> |
334 | |
335 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9198.iter' |
336 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9198.iter 2012-09-19 21:16:15 +0000 |
337 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9198.iter 2012-12-18 15:18:46 +0000 |
338 | @@ -36,7 +36,7 @@ |
339 | </FnDocIterator> |
340 | </DescendantAxisIterator> |
341 | </ForVariable> |
342 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
343 | + <ForVariable name="$$opt_temp_1"> |
344 | <HoistIterator> |
345 | <FnCountIterator> |
346 | <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
347 | @@ -44,12 +44,12 @@ |
348 | </ChildAxisIterator> |
349 | </FnCountIterator> |
350 | </HoistIterator> |
351 | - </LetVariable> |
352 | + </ForVariable> |
353 | <ForVariable name="anzahl"> |
354 | <ProbeIndexPointValueIterator> |
355 | <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
356 | <UnhoistIterator> |
357 | - <LetVarIterator varname="$$opt_temp_1"/> |
358 | + <ForVarIterator varname="$$opt_temp_1"/> |
359 | </UnhoistIterator> |
360 | </ProbeIndexPointValueIterator> |
361 | </ForVariable> |
362 | |
363 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9199.iter' |
364 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9199.iter 2012-09-19 21:16:15 +0000 |
365 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9199.iter 2012-12-18 15:18:46 +0000 |
366 | @@ -36,7 +36,7 @@ |
367 | </FnDocIterator> |
368 | </DescendantAxisIterator> |
369 | </ForVariable> |
370 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
371 | + <ForVariable name="$$opt_temp_1"> |
372 | <HoistIterator> |
373 | <FnCountIterator> |
374 | <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
375 | @@ -44,12 +44,12 @@ |
376 | </ChildAxisIterator> |
377 | </FnCountIterator> |
378 | </HoistIterator> |
379 | - </LetVariable> |
380 | + </ForVariable> |
381 | <ForVariable name="anzahl"> |
382 | <ProbeIndexPointValueIterator> |
383 | <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
384 | <UnhoistIterator> |
385 | - <LetVarIterator varname="$$opt_temp_1"/> |
386 | + <ForVarIterator varname="$$opt_temp_1"/> |
387 | </UnhoistIterator> |
388 | </ProbeIndexPointValueIterator> |
389 | </ForVariable> |
390 | |
391 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9204.iter' |
392 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9204.iter 2012-09-19 21:16:15 +0000 |
393 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9204.iter 2012-12-18 15:18:46 +0000 |
394 | @@ -33,7 +33,7 @@ |
395 | </FnDocIterator> |
396 | </DescendantAxisIterator> |
397 | </ForVariable> |
398 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
399 | + <ForVariable name="$$opt_temp_1"> |
400 | <HoistIterator> |
401 | <FnCountIterator> |
402 | <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
403 | @@ -41,7 +41,7 @@ |
404 | </ChildAxisIterator> |
405 | </FnCountIterator> |
406 | </HoistIterator> |
407 | - </LetVariable> |
408 | + </ForVariable> |
409 | <ReturnClause> |
410 | <ElementIterator> |
411 | <SingletonIterator value="xs:QName(,,karteikasten)"/> |
412 | @@ -51,7 +51,7 @@ |
413 | <ProbeIndexPointValueIterator> |
414 | <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
415 | <UnhoistIterator> |
416 | - <LetVarIterator varname="$$opt_temp_1"/> |
417 | + <ForVarIterator varname="$$opt_temp_1"/> |
418 | </UnhoistIterator> |
419 | </ProbeIndexPointValueIterator> |
420 | </ForVariable> |
421 | |
422 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9207.iter' |
423 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9207.iter 2012-09-19 21:16:15 +0000 |
424 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9207.iter 2012-12-18 15:18:46 +0000 |
425 | @@ -36,7 +36,7 @@ |
426 | </FnDocIterator> |
427 | </DescendantAxisIterator> |
428 | </ForVariable> |
429 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
430 | + <ForVariable name="$$opt_temp_1"> |
431 | <HoistIterator> |
432 | <FnCountIterator> |
433 | <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
434 | @@ -44,12 +44,12 @@ |
435 | </ChildAxisIterator> |
436 | </FnCountIterator> |
437 | </HoistIterator> |
438 | - </LetVariable> |
439 | + </ForVariable> |
440 | <ForVariable name="anzahl"> |
441 | <ProbeIndexPointValueIterator> |
442 | <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
443 | <UnhoistIterator> |
444 | - <LetVarIterator varname="$$opt_temp_1"/> |
445 | + <ForVarIterator varname="$$opt_temp_1"/> |
446 | </UnhoistIterator> |
447 | </ProbeIndexPointValueIterator> |
448 | </ForVariable> |
449 | |
450 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/gary1.iter' |
451 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/gary1.iter 2012-10-08 12:09:36 +0000 |
452 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/gary1.iter 2012-12-18 15:18:46 +0000 |
453 | @@ -147,7 +147,7 @@ |
454 | <ForVarIterator varname="j"/> |
455 | </AttributeAxisIterator> |
456 | </LetVariable> |
457 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
458 | + <ForVariable name="$$opt_temp_0"> |
459 | <HoistIterator> |
460 | <CompareIterator> |
461 | <FnDataIterator> |
462 | @@ -156,7 +156,7 @@ |
463 | <SingletonIterator value="xs:integer(1980)"/> |
464 | </CompareIterator> |
465 | </HoistIterator> |
466 | - </LetVariable> |
467 | + </ForVariable> |
468 | <ReturnClause> |
469 | <ElementIterator> |
470 | <SingletonIterator value="xs:QName(,,year)"/> |
471 | @@ -193,7 +193,7 @@ |
472 | <IfThenElseIterator> |
473 | <AndIterator> |
474 | <UnhoistIterator> |
475 | - <LetVarIterator varname="$$opt_temp_0"/> |
476 | + <ForVarIterator varname="$$opt_temp_0"/> |
477 | </UnhoistIterator> |
478 | <CompareIterator> |
479 | <FnDataIterator> |
480 | |
481 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx4.iter' |
482 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx4.iter 2012-10-08 12:09:36 +0000 |
483 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx4.iter 2012-12-18 15:18:46 +0000 |
484 | @@ -62,13 +62,13 @@ |
485 | </flwor::FLWORIterator> |
486 | </CreateInternalIndexIterator> |
487 | <flwor::FLWORIterator> |
488 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
489 | + <ForVariable name="$$opt_temp_0"> |
490 | <HoistIterator> |
491 | <TreatIterator quant=""> |
492 | <LetVarIterator varname="e"/> |
493 | </TreatIterator> |
494 | </HoistIterator> |
495 | - </LetVariable> |
496 | + </ForVariable> |
497 | <ForVariable name="prefix"> |
498 | <flwor::FLWORIterator> |
499 | <ForVariable name="prefixE"> |
500 | @@ -83,7 +83,7 @@ |
501 | <NamespaceUriForPrefixIterator> |
502 | <ForVarIterator varname="prefixE"/> |
503 | <UnhoistIterator> |
504 | - <LetVarIterator varname="$$opt_temp_0"/> |
505 | + <ForVarIterator varname="$$opt_temp_0"/> |
506 | </UnhoistIterator> |
507 | </NamespaceUriForPrefixIterator> |
508 | </HoistIterator> |
509 | |
510 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9065.iter' |
511 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9065.iter 2012-09-19 21:16:15 +0000 |
512 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9065.iter 2012-12-18 15:18:46 +0000 |
513 | @@ -16,7 +16,7 @@ |
514 | </ChildAxisIterator> |
515 | </HoistIterator> |
516 | </LetVariable> |
517 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
518 | + <ForVariable name="$$opt_temp_0"> |
519 | <HoistIterator> |
520 | <FnCountIterator> |
521 | <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
522 | @@ -28,7 +28,7 @@ |
523 | </ChildAxisIterator> |
524 | </FnCountIterator> |
525 | </HoistIterator> |
526 | - </LetVariable> |
527 | + </ForVariable> |
528 | <ForVariable name="er"> |
529 | <OpToIterator> |
530 | <SingletonIterator value="xs:integer(1)"/> |
531 | @@ -38,7 +38,7 @@ |
532 | <WhereClause> |
533 | <TypedValueCompareIterator_INTEGER> |
534 | <UnhoistIterator> |
535 | - <LetVarIterator varname="$$opt_temp_0"/> |
536 | + <ForVarIterator varname="$$opt_temp_0"/> |
537 | </UnhoistIterator> |
538 | <ForVarIterator varname="er"/> |
539 | </TypedValueCompareIterator_INTEGER> |
540 | |
541 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9198.iter' |
542 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9198.iter 2012-09-19 21:16:15 +0000 |
543 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9198.iter 2012-12-18 15:18:46 +0000 |
544 | @@ -36,7 +36,7 @@ |
545 | </FnDocIterator> |
546 | </DescendantAxisIterator> |
547 | </ForVariable> |
548 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
549 | + <ForVariable name="$$opt_temp_1"> |
550 | <HoistIterator> |
551 | <FnCountIterator> |
552 | <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
553 | @@ -44,12 +44,12 @@ |
554 | </ChildAxisIterator> |
555 | </FnCountIterator> |
556 | </HoistIterator> |
557 | - </LetVariable> |
558 | + </ForVariable> |
559 | <ForVariable name="anzahl"> |
560 | <ProbeIndexPointValueIterator> |
561 | <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
562 | <UnhoistIterator> |
563 | - <LetVarIterator varname="$$opt_temp_1"/> |
564 | + <ForVarIterator varname="$$opt_temp_1"/> |
565 | </UnhoistIterator> |
566 | </ProbeIndexPointValueIterator> |
567 | </ForVariable> |
568 | |
569 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9199.iter' |
570 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9199.iter 2012-09-19 21:16:15 +0000 |
571 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9199.iter 2012-12-18 15:18:46 +0000 |
572 | @@ -36,7 +36,7 @@ |
573 | </FnDocIterator> |
574 | </DescendantAxisIterator> |
575 | </ForVariable> |
576 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
577 | + <ForVariable name="$$opt_temp_1"> |
578 | <HoistIterator> |
579 | <FnCountIterator> |
580 | <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
581 | @@ -44,12 +44,12 @@ |
582 | </ChildAxisIterator> |
583 | </FnCountIterator> |
584 | </HoistIterator> |
585 | - </LetVariable> |
586 | + </ForVariable> |
587 | <ForVariable name="anzahl"> |
588 | <ProbeIndexPointValueIterator> |
589 | <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
590 | <UnhoistIterator> |
591 | - <LetVarIterator varname="$$opt_temp_1"/> |
592 | + <ForVarIterator varname="$$opt_temp_1"/> |
593 | </UnhoistIterator> |
594 | </ProbeIndexPointValueIterator> |
595 | </ForVariable> |
596 | |
597 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-gary1.iter' |
598 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-gary1.iter 2012-10-08 12:09:36 +0000 |
599 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-gary1.iter 2012-12-18 15:18:46 +0000 |
600 | @@ -147,7 +147,7 @@ |
601 | <ForVarIterator varname="j"/> |
602 | </AttributeAxisIterator> |
603 | </LetVariable> |
604 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
605 | + <ForVariable name="$$opt_temp_0"> |
606 | <HoistIterator> |
607 | <CompareIterator> |
608 | <FnDataIterator> |
609 | @@ -156,7 +156,7 @@ |
610 | <SingletonIterator value="xs:integer(1980)"/> |
611 | </CompareIterator> |
612 | </HoistIterator> |
613 | - </LetVariable> |
614 | + </ForVariable> |
615 | <ReturnClause> |
616 | <ElementIterator copyInputNodes="false"> |
617 | <SingletonIterator value="xs:QName(,,year)"/> |
618 | @@ -193,7 +193,7 @@ |
619 | <IfThenElseIterator> |
620 | <AndIterator> |
621 | <UnhoistIterator> |
622 | - <LetVarIterator varname="$$opt_temp_0"/> |
623 | + <ForVarIterator varname="$$opt_temp_0"/> |
624 | </UnhoistIterator> |
625 | <CompareIterator> |
626 | <FnDataIterator> |
627 | |
628 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-idx4.iter' |
629 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-idx4.iter 2012-10-08 12:09:36 +0000 |
630 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-idx4.iter 2012-12-18 15:18:46 +0000 |
631 | @@ -62,13 +62,13 @@ |
632 | </flwor::FLWORIterator> |
633 | </CreateInternalIndexIterator> |
634 | <flwor::FLWORIterator> |
635 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
636 | + <ForVariable name="$$opt_temp_0"> |
637 | <HoistIterator> |
638 | <TreatIterator quant=""> |
639 | <LetVarIterator varname="e"/> |
640 | </TreatIterator> |
641 | </HoistIterator> |
642 | - </LetVariable> |
643 | + </ForVariable> |
644 | <ForVariable name="prefix"> |
645 | <flwor::FLWORIterator> |
646 | <ForVariable name="prefixE"> |
647 | @@ -83,7 +83,7 @@ |
648 | <NamespaceUriForPrefixIterator> |
649 | <ForVarIterator varname="prefixE"/> |
650 | <UnhoistIterator> |
651 | - <LetVarIterator varname="$$opt_temp_0"/> |
652 | + <ForVarIterator varname="$$opt_temp_0"/> |
653 | </UnhoistIterator> |
654 | </NamespaceUriForPrefixIterator> |
655 | </HoistIterator> |
656 | |
657 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/udf/udf-recursive-1.iter' |
658 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/udf/udf-recursive-1.iter 2012-10-19 20:42:38 +0000 |
659 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/udf/udf-recursive-1.iter 2012-12-18 15:18:46 +0000 |
660 | @@ -5,9 +5,9 @@ |
661 | |
662 | Iterator tree for local:get-request-id2: |
663 | <flwor::FLWORIterator> |
664 | - <LetVariable name="p" materialize="true"> |
665 | + <ForVariable name="p"> |
666 | <LetVarIterator varname="p"/> |
667 | - </LetVariable> |
668 | + </ForVariable> |
669 | <ReturnClause> |
670 | <UDFunctionCallIterator cached="true"> |
671 | <SingletonIterator value="xs:integer(4)"/> |
672 | @@ -18,9 +18,9 @@ |
673 | Iterator tree for local:get-request-id1: |
674 | <PromoteIterator type="xs:string"> |
675 | <flwor::FLWORIterator> |
676 | - <LetVariable name="p" materialize="true"> |
677 | + <ForVariable name="p"> |
678 | <LetVarIterator varname="p"/> |
679 | - </LetVariable> |
680 | + </ForVariable> |
681 | <ReturnClause> |
682 | <flwor::FLWORIterator> |
683 | <ForVariable name="i"> |
684 | |
685 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/w3c/rdb-queries-results-q5.iter' |
686 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/w3c/rdb-queries-results-q5.iter 2012-09-27 11:14:04 +0000 |
687 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/w3c/rdb-queries-results-q5.iter 2012-12-18 15:18:46 +0000 |
688 | @@ -78,7 +78,7 @@ |
689 | </DescendantAxisIterator> |
690 | </NodeSortIterator> |
691 | </ForVariable> |
692 | - <LetVariable name="$$opt_temp_3" materialize="true"> |
693 | + <ForVariable name="$$opt_temp_3"> |
694 | <HoistIterator> |
695 | <CompareIterator> |
696 | <FnDataIterator> |
697 | @@ -89,7 +89,7 @@ |
698 | <SingletonIterator value="xs:string(Tom Jones)"/> |
699 | </CompareIterator> |
700 | </HoistIterator> |
701 | - </LetVariable> |
702 | + </ForVariable> |
703 | <ForVariable name="buyer"> |
704 | <UnhoistIterator> |
705 | <LetVarIterator varname="$$opt_temp_0"/> |
706 | @@ -182,7 +182,7 @@ |
707 | </FnDataIterator> |
708 | </HoistIterator> |
709 | </LetVariable> |
710 | - <LetVariable name="$$opt_temp_5" materialize="true"> |
711 | + <ForVariable name="$$opt_temp_5"> |
712 | <HoistIterator> |
713 | <ContainsIterator> |
714 | <PromoteIterator type="xs:string"> |
715 | @@ -197,8 +197,8 @@ |
716 | <SingletonIterator value="xs:string(Bicycle)"/> |
717 | </ContainsIterator> |
718 | </HoistIterator> |
719 | - </LetVariable> |
720 | - <LetVariable name="$$opt_temp_4" materialize="true"> |
721 | + </ForVariable> |
722 | + <ForVariable name="$$opt_temp_4"> |
723 | <HoistIterator> |
724 | <CompareIterator> |
725 | <FnDataIterator> |
726 | @@ -213,7 +213,7 @@ |
727 | </FnDataIterator> |
728 | </CompareIterator> |
729 | </HoistIterator> |
730 | - </LetVariable> |
731 | + </ForVariable> |
732 | <ForVariable name="highbid"> |
733 | <NodeSortIterator distinct="true" ascending="true"> |
734 | <ProbeIndexPointGeneralIterator> |
735 | @@ -227,13 +227,13 @@ |
736 | <WhereClause> |
737 | <AndIterator> |
738 | <UnhoistIterator> |
739 | - <LetVarIterator varname="$$opt_temp_3"/> |
740 | - </UnhoistIterator> |
741 | - <UnhoistIterator> |
742 | - <LetVarIterator varname="$$opt_temp_4"/> |
743 | - </UnhoistIterator> |
744 | - <UnhoistIterator> |
745 | - <LetVarIterator varname="$$opt_temp_5"/> |
746 | + <ForVarIterator varname="$$opt_temp_3"/> |
747 | + </UnhoistIterator> |
748 | + <UnhoistIterator> |
749 | + <ForVarIterator varname="$$opt_temp_4"/> |
750 | + </UnhoistIterator> |
751 | + <UnhoistIterator> |
752 | + <ForVarIterator varname="$$opt_temp_5"/> |
753 | </UnhoistIterator> |
754 | <SingletonIterator value="xs:boolean(true)"/> |
755 | <CompareIterator> |
756 | |
757 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/xray/ppm_10.iter' |
758 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/xray/ppm_10.iter 2012-12-06 22:49:35 +0000 |
759 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/xray/ppm_10.iter 2012-12-18 15:18:46 +0000 |
760 | @@ -214,13 +214,13 @@ |
761 | <SingletonIterator value="xs:decimal(0.5)"/> |
762 | </SpecificNumArithIterator_AddOperation_DECIMAL> |
763 | </ForVariable> |
764 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
765 | + <ForVariable name="$$opt_temp_1"> |
766 | <HoistIterator> |
767 | <PromoteIterator type="xs:double"> |
768 | <ForVarIterator varname="y-recentered"/> |
769 | </PromoteIterator> |
770 | </HoistIterator> |
771 | - </LetVariable> |
772 | + </ForVariable> |
773 | <ForVariable name="x"> |
774 | <UnhoistIterator> |
775 | <LetVarIterator varname="$$opt_temp_0"/> |
776 | @@ -245,7 +245,7 @@ |
777 | </SpecificNumArithIterator_MultiplyOperation_DECIMAL> |
778 | </PromoteIterator> |
779 | <UnhoistIterator> |
780 | - <LetVarIterator varname="$$opt_temp_1"/> |
781 | + <ForVarIterator varname="$$opt_temp_1"/> |
782 | </UnhoistIterator> |
783 | </UDFunctionCallIterator> |
784 | </ForVariable> |
Validation queue starting for merge proposal. zorbatest. lambda. nu:8080/ remotequeue/ markos- scratch- 2012-12- 18T15-32- 01.573Z/ log.html
Log at: http://