Merge lp:~zorba-coders/zorba/bug-967428 into lp:zorba
- bug-967428
- Merge into trunk
Proposed by
Markos Zaharioudakis
Status: | Merged |
---|---|
Approved by: | Markos Zaharioudakis |
Approved revision: | 10869 |
Merged at revision: | 10876 |
Proposed branch: | lp:~zorba-coders/zorba/bug-967428 |
Merge into: | lp:zorba |
Diff against target: |
2943 lines (+1239/-1121) 28 files modified
ChangeLog (+3/-0) src/compiler/expression/expr.h (+2/-0) src/compiler/rewriter/rules/hoist_rules.cpp (+55/-55) src/compiler/rewriter/rules/index_join_rule.cpp (+8/-8) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9197.iter (+34/-34) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9198.iter (+34/-34) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9199.iter (+34/-34) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9206.iter (+38/-38) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9207.iter (+34/-34) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9210.iter (+38/-38) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9211.iter (+38/-38) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9212.iter (+38/-38) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9389.iter (+38/-38) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9391.iter (+38/-38) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9392.iter (+52/-52) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9399.iter (+38/-38) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9400.iter (+38/-38) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx4.iter (+74/-78) test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx5.iter (+78/-82) test/rbkt/ExpCompilerResults/IterPlan/zorba/misc/hoist4.iter (+16/-20) test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9198.iter (+34/-34) test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9199.iter (+34/-34) test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9212.iter (+38/-38) test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9389.iter (+38/-38) test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9392.iter (+52/-52) test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-idx4.iter (+74/-78) test/rbkt/ExpCompilerResults/IterPlan/zorba/xray/ppm_10.iter (+107/-111) test/rbkt/Queries/zorba/hashjoins/idx10.xq (+134/-1) |
To merge this branch: | bzr merge lp:~zorba-coders/zorba/bug-967428 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Markos Zaharioudakis | Approve | ||
Review via email: mp+108704@code.launchpad.net |
Commit message
Improved hoist rule: tighter hoisting of expressions (also fixes bug #967428)
Description of the change
Improved hoist rule: tighter hoisting of expressions (also fixes bug #967428)
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 starting for merge proposal.
Log at: http://
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue job bug-967428-2012-06-
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-06-14 13:21:03 +0000 |
3 | +++ ChangeLog 2012-06-14 14:31:26 +0000 |
4 | @@ -1,5 +1,6 @@ |
5 | Zorba - The XQuery Processor |
6 | |
7 | + |
8 | version 2.x |
9 | |
10 | New Features: |
11 | @@ -7,6 +8,8 @@ |
12 | |
13 | Optimizations: |
14 | * Small optimization of comparison operations. |
15 | + * Improved hoist rule: tighter hoisting of expressions (also fixes bug #967428, |
16 | + which is only a performance bug) |
17 | |
18 | Bug Fixes/Other Changes: |
19 | * Fixed bug #854506 (ugly type error messages) and partial fix for bug #867008 |
20 | |
21 | === modified file 'src/compiler/expression/expr.h' |
22 | --- src/compiler/expression/expr.h 2012-06-14 13:21:03 +0000 |
23 | +++ src/compiler/expression/expr.h 2012-06-14 14:31:26 +0000 |
24 | @@ -1007,6 +1007,8 @@ |
25 | |
26 | expr* get_try_expr() const { return theTryExpr.getp(); } |
27 | |
28 | + void set_try_expr(expr* e) { theTryExpr = e; } |
29 | + |
30 | expr* get_catch_expr(csize i) const { return theCatchExprs[i].getp(); } |
31 | |
32 | void add_catch_expr(expr_t e); |
33 | |
34 | === modified file 'src/compiler/rewriter/rules/hoist_rules.cpp' |
35 | --- src/compiler/rewriter/rules/hoist_rules.cpp 2012-06-14 13:21:03 +0000 |
36 | +++ src/compiler/rewriter/rules/hoist_rules.cpp 2012-06-14 14:31:26 +0000 |
37 | @@ -137,9 +137,9 @@ |
38 | { |
39 | flwor_expr* flwor = static_cast<flwor_expr *>(e); |
40 | |
41 | - PathHolder curr_holder; |
42 | - curr_holder.prev = path; |
43 | - curr_holder.expr = e; |
44 | + PathHolder step; |
45 | + step.prev = path; |
46 | + step.expr = e; |
47 | |
48 | csize numForLetClauses = flwor->num_forlet_clauses(); |
49 | csize i = 0; |
50 | @@ -147,32 +147,26 @@ |
51 | while (i < numForLetClauses) |
52 | { |
53 | forletwin_clause* flc = static_cast<forletwin_clause*>(flwor->get_clause(i)); |
54 | - |
55 | expr* domainExpr = flc->get_expr(); |
56 | |
57 | - expr_t unhoistExpr = try_hoisting(rCtx, |
58 | - domainExpr, |
59 | - varmap, |
60 | - freevarMap, |
61 | - &curr_holder); |
62 | + expr_t unhoistExpr = |
63 | + try_hoisting(rCtx, domainExpr, varmap, freevarMap, &step); |
64 | + |
65 | if (unhoistExpr != NULL) |
66 | { |
67 | flc->set_expr(unhoistExpr.getp()); |
68 | status = true; |
69 | - |
70 | numForLetClauses = flwor->num_forlet_clauses(); |
71 | - |
72 | // TODO: the expr that was just hoisted here, may contain sub-exprs that |
73 | // can be hoisted even earlier. |
74 | } |
75 | else if (domainExpr->is_sequential()) |
76 | { |
77 | PathHolder root; |
78 | - bool hoisted = hoist_expressions(rCtx, |
79 | - domainExpr, |
80 | - varmap, |
81 | - freevarMap, |
82 | - &root); |
83 | + |
84 | + bool hoisted = |
85 | + hoist_expressions(rCtx, domainExpr, varmap, freevarMap, &root); |
86 | + |
87 | if (hoisted) |
88 | { |
89 | if (root.expr != NULL) |
90 | @@ -180,7 +174,6 @@ |
91 | assert(root.expr->get_expr_kind() == flwor_expr_kind); |
92 | |
93 | static_cast<flwor_expr*>(root.expr.getp())->set_return_expr(domainExpr); |
94 | - |
95 | flc->set_expr(root.expr.getp()); |
96 | } |
97 | |
98 | @@ -190,11 +183,9 @@ |
99 | } |
100 | else |
101 | { |
102 | - bool hoisted = hoist_expressions(rCtx, |
103 | - domainExpr, |
104 | - varmap, |
105 | - freevarMap, |
106 | - &curr_holder); |
107 | + bool hoisted = |
108 | + hoist_expressions(rCtx, domainExpr, varmap, freevarMap, &step); |
109 | + |
110 | if (hoisted) |
111 | { |
112 | status = true; |
113 | @@ -202,7 +193,7 @@ |
114 | } |
115 | } |
116 | |
117 | - i = ++(curr_holder.clauseCount); |
118 | + i = ++(step.clauseCount); |
119 | |
120 | assert(numForLetClauses == flwor->num_forlet_clauses()); |
121 | } |
122 | @@ -212,7 +203,8 @@ |
123 | { |
124 | ZORBA_ASSERT(!we->is_sequential()); |
125 | |
126 | - expr_t unhoistExpr = try_hoisting(rCtx, we, varmap, freevarMap, &curr_holder); |
127 | + expr_t unhoistExpr = try_hoisting(rCtx, we, varmap, freevarMap, &step); |
128 | + |
129 | if (unhoistExpr != NULL) |
130 | { |
131 | flwor->set_where(unhoistExpr.getp()); |
132 | @@ -220,14 +212,14 @@ |
133 | } |
134 | else |
135 | { |
136 | - status = hoist_expressions(rCtx, we, varmap, freevarMap, &curr_holder) || status; |
137 | + status = hoist_expressions(rCtx, we, varmap, freevarMap, &step) || status; |
138 | } |
139 | } |
140 | |
141 | // TODO: hoist orderby exprs |
142 | |
143 | expr_t re = flwor->get_return_expr(); |
144 | - expr_t unhoistExpr = try_hoisting(rCtx, re, varmap, freevarMap, &curr_holder); |
145 | + expr_t unhoistExpr = try_hoisting(rCtx, re, varmap, freevarMap, &step); |
146 | |
147 | if (unhoistExpr != NULL) |
148 | { |
149 | @@ -251,15 +243,15 @@ |
150 | } |
151 | else |
152 | { |
153 | - status = hoist_expressions(rCtx, re, varmap, freevarMap, &curr_holder) || status; |
154 | + status = hoist_expressions(rCtx, re, varmap, freevarMap, &step) || status; |
155 | } |
156 | } |
157 | |
158 | else if (e->get_expr_kind() == trycatch_expr_kind) |
159 | { |
160 | - PathHolder pathStep; |
161 | - pathStep.prev = path; |
162 | - pathStep.expr = e; |
163 | + PathHolder step; |
164 | + step.prev = path; |
165 | + step.expr = e; |
166 | |
167 | ExprIterator iter(e); |
168 | |
169 | @@ -268,7 +260,7 @@ |
170 | expr* ce = &*(*iter); |
171 | if (ce) |
172 | { |
173 | - expr_t unhoistExpr = try_hoisting(rCtx, ce, varmap, freevarMap, &pathStep); |
174 | + expr_t unhoistExpr = try_hoisting(rCtx, ce, varmap, freevarMap, &step); |
175 | if (unhoistExpr != NULL) |
176 | { |
177 | *iter = unhoistExpr.getp(); |
178 | @@ -276,7 +268,7 @@ |
179 | } |
180 | else |
181 | { |
182 | - status = hoist_expressions(rCtx, ce, varmap, freevarMap, &pathStep) || status; |
183 | + status = hoist_expressions(rCtx, ce, varmap, freevarMap, &step) || status; |
184 | } |
185 | } |
186 | |
187 | @@ -358,7 +350,7 @@ |
188 | expr* e, |
189 | const VarIdMap& varmap, |
190 | const ExprVarsMap& freevarMap, |
191 | - struct PathHolder* holder) |
192 | + struct PathHolder* path) |
193 | { |
194 | if (non_hoistable(e) || e->contains_node_construction()) |
195 | { |
196 | @@ -371,21 +363,21 @@ |
197 | ZORBA_ASSERT(fvme != freevarMap.end()); |
198 | const DynamicBitset& varset = fvme->second; |
199 | |
200 | - PathHolder* h = holder; |
201 | + PathHolder* step = path; |
202 | |
203 | bool inloop = false; |
204 | bool foundReferencedFLWORVar = false; |
205 | bool foundSequentialClause = false; |
206 | int i = 0; |
207 | |
208 | - // h->prev == NULL means that expr e is not inside any flwor expr, and as a |
209 | + // step->prev == NULL means that expr e is not inside any flwor expr, and as a |
210 | // result, there is nothing to hoist. |
211 | - while (h->prev != NULL) |
212 | + while (step->prev != NULL) |
213 | { |
214 | - if (h->expr->get_expr_kind() == trycatch_expr_kind) |
215 | + if (step->expr->get_expr_kind() == trycatch_expr_kind) |
216 | { |
217 | // Should not hoist an expr out of a try-catch if it contains any try-catch vars |
218 | - trycatch_expr* trycatch = static_cast<trycatch_expr*>(h->expr.getp()); |
219 | + trycatch_expr* trycatch = static_cast<trycatch_expr*>(step->expr.getp()); |
220 | csize numClauses = trycatch->clause_count(); |
221 | |
222 | for (csize i = 0; i < numClauses; ++i) |
223 | @@ -407,10 +399,9 @@ |
224 | } |
225 | else |
226 | { |
227 | - assert(h->expr->get_expr_kind() == flwor_expr_kind); |
228 | + assert(step->expr->get_expr_kind() == flwor_expr_kind); |
229 | |
230 | - flwor_expr* flwor = static_cast<flwor_expr*>(h->expr.getp()); |
231 | - |
232 | + flwor_expr* flwor = static_cast<flwor_expr*>(step->expr.getp()); |
233 | group_clause* gc = flwor->get_group_clause(); |
234 | |
235 | // If any free variable is a group-by variable, give up. |
236 | @@ -441,7 +432,7 @@ |
237 | // If yes, then let V be the inner-most var referenced by e. If there are any |
238 | // FOR vars after V, e can be hoisted out of any such FOR vars. Otherwise, e |
239 | // cannot be hoisted. |
240 | - for (i = h->clauseCount - 1; i >= 0; --i) |
241 | + for (i = step->clauseCount - 1; i >= 0; --i) |
242 | { |
243 | const forletwin_clause* flc = |
244 | static_cast<const forletwin_clause*>(flwor->get_clause(i)); |
245 | @@ -469,7 +460,10 @@ |
246 | break; |
247 | } |
248 | |
249 | - h = h->prev; |
250 | + if (step->prev->prev == NULL) |
251 | + break; |
252 | + |
253 | + step = step->prev; |
254 | } |
255 | |
256 | if (!inloop) |
257 | @@ -489,27 +483,33 @@ |
258 | hoisted->setFlags(e->getFlags()); |
259 | letvar->setFlags(e->getFlags()); |
260 | |
261 | - let_clause_t flref(new let_clause(e->get_sctx(), |
262 | - e->get_loc(), |
263 | - letvar, |
264 | - hoisted)); |
265 | + let_clause_t flref(new let_clause(e->get_sctx(), e->get_loc(), letvar, hoisted)); |
266 | |
267 | letvar->set_flwor_clause(flref.getp()); |
268 | |
269 | - if (h->prev == NULL) |
270 | + if (step->prev == NULL) |
271 | { |
272 | - if (h->expr == NULL) |
273 | + if (step->expr == NULL) |
274 | { |
275 | - h->expr = new flwor_expr(e->get_sctx(), e->get_loc(), false); |
276 | + step->expr = new flwor_expr(e->get_sctx(), e->get_loc(), false); |
277 | } |
278 | - static_cast<flwor_expr*>(h->expr.getp())->add_clause(flref); |
279 | + static_cast<flwor_expr*>(step->expr.getp())->add_clause(flref); |
280 | + } |
281 | + else if (step->expr->get_expr_kind() == flwor_expr_kind) |
282 | + { |
283 | + static_cast<flwor_expr*>(step->expr.getp())->add_clause(i + 1, flref); |
284 | + ++step->clauseCount; |
285 | } |
286 | else |
287 | { |
288 | - assert(h->expr->get_expr_kind() == flwor_expr_kind); |
289 | - |
290 | - static_cast<flwor_expr*>(h->expr.getp())->add_clause(i + 1, flref); |
291 | - ++h->clauseCount; |
292 | + assert(step->expr->get_expr_kind() == trycatch_expr_kind); |
293 | + trycatch_expr* trycatchExpr = static_cast<trycatch_expr*>(step->expr.getp()); |
294 | + |
295 | + flwor_expr_t flwor = new flwor_expr(e->get_sctx(), e->get_loc(), false); |
296 | + flwor->add_clause(flref); |
297 | + flwor->set_return_expr(trycatchExpr->get_try_expr()); |
298 | + |
299 | + trycatchExpr->set_try_expr(flwor); |
300 | } |
301 | |
302 | expr_t unhoisted = new fo_expr(e->get_sctx(), |
303 | |
304 | === modified file 'src/compiler/rewriter/rules/index_join_rule.cpp' |
305 | --- src/compiler/rewriter/rules/index_join_rule.cpp 2012-05-03 12:31:51 +0000 |
306 | +++ src/compiler/rewriter/rules/index_join_rule.cpp 2012-06-14 14:31:26 +0000 |
307 | @@ -518,7 +518,7 @@ |
308 | innerPosInStack)) |
309 | return; |
310 | |
311 | - ulong numClauses = innerFlwor->num_clauses(); |
312 | + csize numClauses = innerFlwor->num_clauses(); |
313 | |
314 | if (innerFlwor->defines_variable(predInfo.theOuterVar) >= 0 || |
315 | mostInnerVarPos < numClauses-1) |
316 | @@ -529,12 +529,12 @@ |
317 | |
318 | flwor_expr_t nestedFlwor = new flwor_expr(sctx, nestedLoc, false); |
319 | |
320 | - for (ulong i = mostInnerVarPos+1; i < numClauses; ++i) |
321 | + for (csize i = mostInnerVarPos+1; i < numClauses; ++i) |
322 | { |
323 | nestedFlwor->add_clause(innerFlwor->get_clause(i)); |
324 | } |
325 | |
326 | - for (ulong i = numClauses - 1; i > mostInnerVarPos; --i) |
327 | + for (csize i = numClauses - 1; i > mostInnerVarPos; --i) |
328 | { |
329 | innerFlwor->remove_clause(i); |
330 | } |
331 | @@ -563,8 +563,8 @@ |
332 | { |
333 | block_expr* seqExpr = static_cast<block_expr*>(returnExpr); |
334 | |
335 | - ulong numArgs = seqExpr->size(); |
336 | - ulong arg; |
337 | + csize numArgs = seqExpr->size(); |
338 | + csize arg; |
339 | for (arg = 0; arg < numArgs; ++arg) |
340 | { |
341 | if ((*seqExpr)[arg]->get_function_kind() != |
342 | @@ -590,9 +590,9 @@ |
343 | } |
344 | else |
345 | { |
346 | - // All the variables referenced by the inner domain expr are defined after |
347 | - // the outer var. In this case, Find the flwor expr defining the outer var |
348 | - // and create the index just before this flwor. |
349 | + // The inner domain expr does not reference any flwor vars. In this case, |
350 | + // find the flwor expr defining the outer var and create the index just |
351 | + // before this flwor. |
352 | flwor_expr* outerFlworExpr = NULL; |
353 | ulong outerPosInStack = 0; |
354 | ulong dummy = 0; |
355 | |
356 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9197.iter' |
357 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9197.iter 2012-05-03 12:31:51 +0000 |
358 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9197.iter 2012-06-14 14:31:26 +0000 |
359 | @@ -1,33 +1,33 @@ |
360 | Iterator tree for main query: |
361 | -<flwor::FLWORIterator> |
362 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
363 | - <HoistIterator> |
364 | - <OpToIterator> |
365 | - <SingletonIterator value="xs:integer(1)"/> |
366 | - <SingletonIterator value="xs:integer(2)"/> |
367 | - </OpToIterator> |
368 | - </HoistIterator> |
369 | - </LetVariable> |
370 | - <ReturnClause> |
371 | - <SequentialIterator> |
372 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
373 | - <flwor::FLWORIterator> |
374 | - <ForVariable name="$$opt_temp_2"> |
375 | - <UnhoistIterator> |
376 | - <LetVarIterator varname="$$opt_temp_0"/> |
377 | - </UnhoistIterator> |
378 | - </ForVariable> |
379 | - <ReturnClause> |
380 | - <ValueIndexEntryBuilderIterator> |
381 | - <ForVarIterator varname="$$opt_temp_2"/> |
382 | - <ForVarIterator varname="$$opt_temp_2"/> |
383 | - </ValueIndexEntryBuilderIterator> |
384 | - </ReturnClause> |
385 | - </flwor::FLWORIterator> |
386 | - </CreateInternalIndexIterator> |
387 | - <ElementIterator> |
388 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
389 | - <EnclosedIterator attr_cont="false"> |
390 | +<ElementIterator> |
391 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
392 | + <EnclosedIterator attr_cont="false"> |
393 | + <flwor::FLWORIterator> |
394 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
395 | + <HoistIterator> |
396 | + <OpToIterator> |
397 | + <SingletonIterator value="xs:integer(1)"/> |
398 | + <SingletonIterator value="xs:integer(2)"/> |
399 | + </OpToIterator> |
400 | + </HoistIterator> |
401 | + </LetVariable> |
402 | + <ReturnClause> |
403 | + <SequentialIterator> |
404 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
405 | + <flwor::FLWORIterator> |
406 | + <ForVariable name="$$opt_temp_2"> |
407 | + <UnhoistIterator> |
408 | + <LetVarIterator varname="$$opt_temp_0"/> |
409 | + </UnhoistIterator> |
410 | + </ForVariable> |
411 | + <ReturnClause> |
412 | + <ValueIndexEntryBuilderIterator> |
413 | + <ForVarIterator varname="$$opt_temp_2"/> |
414 | + <ForVarIterator varname="$$opt_temp_2"/> |
415 | + </ValueIndexEntryBuilderIterator> |
416 | + </ReturnClause> |
417 | + </flwor::FLWORIterator> |
418 | + </CreateInternalIndexIterator> |
419 | <flwor::FLWORIterator> |
420 | <ForVariable name="book"> |
421 | <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
422 | @@ -64,9 +64,9 @@ |
423 | </ElementIterator> |
424 | </ReturnClause> |
425 | </flwor::FLWORIterator> |
426 | - </EnclosedIterator> |
427 | - </ElementIterator> |
428 | - </SequentialIterator> |
429 | - </ReturnClause> |
430 | -</flwor::FLWORIterator> |
431 | + </SequentialIterator> |
432 | + </ReturnClause> |
433 | + </flwor::FLWORIterator> |
434 | + </EnclosedIterator> |
435 | +</ElementIterator> |
436 | |
437 | |
438 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9198.iter' |
439 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9198.iter 2012-05-03 12:31:51 +0000 |
440 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9198.iter 2012-06-14 14:31:26 +0000 |
441 | @@ -1,33 +1,33 @@ |
442 | Iterator tree for main query: |
443 | -<flwor::FLWORIterator> |
444 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
445 | - <HoistIterator> |
446 | - <OpToIterator> |
447 | - <SingletonIterator value="xs:integer(1)"/> |
448 | - <SingletonIterator value="xs:integer(2)"/> |
449 | - </OpToIterator> |
450 | - </HoistIterator> |
451 | - </LetVariable> |
452 | - <ReturnClause> |
453 | - <SequentialIterator> |
454 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
455 | - <flwor::FLWORIterator> |
456 | - <ForVariable name="$$opt_temp_2"> |
457 | - <UnhoistIterator> |
458 | - <LetVarIterator varname="$$opt_temp_0"/> |
459 | - </UnhoistIterator> |
460 | - </ForVariable> |
461 | - <ReturnClause> |
462 | - <ValueIndexEntryBuilderIterator> |
463 | - <ForVarIterator varname="$$opt_temp_2"/> |
464 | - <ForVarIterator varname="$$opt_temp_2"/> |
465 | - </ValueIndexEntryBuilderIterator> |
466 | - </ReturnClause> |
467 | - </flwor::FLWORIterator> |
468 | - </CreateInternalIndexIterator> |
469 | - <ElementIterator> |
470 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
471 | - <EnclosedIterator attr_cont="false"> |
472 | +<ElementIterator> |
473 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
474 | + <EnclosedIterator attr_cont="false"> |
475 | + <flwor::FLWORIterator> |
476 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
477 | + <HoistIterator> |
478 | + <OpToIterator> |
479 | + <SingletonIterator value="xs:integer(1)"/> |
480 | + <SingletonIterator value="xs:integer(2)"/> |
481 | + </OpToIterator> |
482 | + </HoistIterator> |
483 | + </LetVariable> |
484 | + <ReturnClause> |
485 | + <SequentialIterator> |
486 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
487 | + <flwor::FLWORIterator> |
488 | + <ForVariable name="$$opt_temp_2"> |
489 | + <UnhoistIterator> |
490 | + <LetVarIterator varname="$$opt_temp_0"/> |
491 | + </UnhoistIterator> |
492 | + </ForVariable> |
493 | + <ReturnClause> |
494 | + <ValueIndexEntryBuilderIterator> |
495 | + <ForVarIterator varname="$$opt_temp_2"/> |
496 | + <ForVarIterator varname="$$opt_temp_2"/> |
497 | + </ValueIndexEntryBuilderIterator> |
498 | + </ReturnClause> |
499 | + </flwor::FLWORIterator> |
500 | + </CreateInternalIndexIterator> |
501 | <flwor::FLWORIterator> |
502 | <ForVariable name="book"> |
503 | <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
504 | @@ -67,9 +67,9 @@ |
505 | </ElementIterator> |
506 | </ReturnClause> |
507 | </flwor::FLWORIterator> |
508 | - </EnclosedIterator> |
509 | - </ElementIterator> |
510 | - </SequentialIterator> |
511 | - </ReturnClause> |
512 | -</flwor::FLWORIterator> |
513 | + </SequentialIterator> |
514 | + </ReturnClause> |
515 | + </flwor::FLWORIterator> |
516 | + </EnclosedIterator> |
517 | +</ElementIterator> |
518 | |
519 | |
520 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9199.iter' |
521 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9199.iter 2012-05-03 12:31:51 +0000 |
522 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9199.iter 2012-06-14 14:31:26 +0000 |
523 | @@ -1,33 +1,33 @@ |
524 | Iterator tree for main query: |
525 | -<flwor::FLWORIterator> |
526 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
527 | - <HoistIterator> |
528 | - <OpToIterator> |
529 | - <SingletonIterator value="xs:integer(1)"/> |
530 | - <SingletonIterator value="xs:integer(2)"/> |
531 | - </OpToIterator> |
532 | - </HoistIterator> |
533 | - </LetVariable> |
534 | - <ReturnClause> |
535 | - <SequentialIterator> |
536 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
537 | - <flwor::FLWORIterator> |
538 | - <ForVariable name="$$opt_temp_2"> |
539 | - <UnhoistIterator> |
540 | - <LetVarIterator varname="$$opt_temp_0"/> |
541 | - </UnhoistIterator> |
542 | - </ForVariable> |
543 | - <ReturnClause> |
544 | - <ValueIndexEntryBuilderIterator> |
545 | - <ForVarIterator varname="$$opt_temp_2"/> |
546 | - <ForVarIterator varname="$$opt_temp_2"/> |
547 | - </ValueIndexEntryBuilderIterator> |
548 | - </ReturnClause> |
549 | - </flwor::FLWORIterator> |
550 | - </CreateInternalIndexIterator> |
551 | - <ElementIterator> |
552 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
553 | - <EnclosedIterator attr_cont="false"> |
554 | +<ElementIterator> |
555 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
556 | + <EnclosedIterator attr_cont="false"> |
557 | + <flwor::FLWORIterator> |
558 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
559 | + <HoistIterator> |
560 | + <OpToIterator> |
561 | + <SingletonIterator value="xs:integer(1)"/> |
562 | + <SingletonIterator value="xs:integer(2)"/> |
563 | + </OpToIterator> |
564 | + </HoistIterator> |
565 | + </LetVariable> |
566 | + <ReturnClause> |
567 | + <SequentialIterator> |
568 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
569 | + <flwor::FLWORIterator> |
570 | + <ForVariable name="$$opt_temp_2"> |
571 | + <UnhoistIterator> |
572 | + <LetVarIterator varname="$$opt_temp_0"/> |
573 | + </UnhoistIterator> |
574 | + </ForVariable> |
575 | + <ReturnClause> |
576 | + <ValueIndexEntryBuilderIterator> |
577 | + <ForVarIterator varname="$$opt_temp_2"/> |
578 | + <ForVarIterator varname="$$opt_temp_2"/> |
579 | + </ValueIndexEntryBuilderIterator> |
580 | + </ReturnClause> |
581 | + </flwor::FLWORIterator> |
582 | + </CreateInternalIndexIterator> |
583 | <flwor::FLWORIterator> |
584 | <ForVariable name="book"> |
585 | <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
586 | @@ -67,9 +67,9 @@ |
587 | </ElementIterator> |
588 | </ReturnClause> |
589 | </flwor::FLWORIterator> |
590 | - </EnclosedIterator> |
591 | - </ElementIterator> |
592 | - </SequentialIterator> |
593 | - </ReturnClause> |
594 | -</flwor::FLWORIterator> |
595 | + </SequentialIterator> |
596 | + </ReturnClause> |
597 | + </flwor::FLWORIterator> |
598 | + </EnclosedIterator> |
599 | +</ElementIterator> |
600 | |
601 | |
602 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9206.iter' |
603 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9206.iter 2012-05-03 12:31:51 +0000 |
604 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9206.iter 2012-06-14 14:31:26 +0000 |
605 | @@ -1,38 +1,38 @@ |
606 | Iterator tree for main query: |
607 | -<flwor::FLWORIterator> |
608 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
609 | - <HoistIterator> |
610 | - <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
611 | - <FnDocIterator> |
612 | - <SingletonIterator value="xs:string(books.xml)"/> |
613 | - </FnDocIterator> |
614 | - </DescendantAxisIterator> |
615 | - </HoistIterator> |
616 | - </LetVariable> |
617 | - <ReturnClause> |
618 | - <SequentialIterator> |
619 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
620 | - <flwor::FLWORIterator> |
621 | - <ForVariable name="$$opt_temp_1"> |
622 | - <UnhoistIterator> |
623 | - <LetVarIterator varname="$$opt_temp_0"/> |
624 | - </UnhoistIterator> |
625 | - </ForVariable> |
626 | - <ReturnClause> |
627 | - <ValueIndexEntryBuilderIterator> |
628 | - <ForVarIterator varname="$$opt_temp_1"/> |
629 | - <FnCountIterator> |
630 | - <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
631 | +<ElementIterator> |
632 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
633 | + <EnclosedIterator attr_cont="false"> |
634 | + <flwor::FLWORIterator> |
635 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
636 | + <HoistIterator> |
637 | + <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
638 | + <FnDocIterator> |
639 | + <SingletonIterator value="xs:string(books.xml)"/> |
640 | + </FnDocIterator> |
641 | + </DescendantAxisIterator> |
642 | + </HoistIterator> |
643 | + </LetVariable> |
644 | + <ReturnClause> |
645 | + <SequentialIterator> |
646 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
647 | + <flwor::FLWORIterator> |
648 | + <ForVariable name="$$opt_temp_1"> |
649 | + <UnhoistIterator> |
650 | + <LetVarIterator varname="$$opt_temp_0"/> |
651 | + </UnhoistIterator> |
652 | + </ForVariable> |
653 | + <ReturnClause> |
654 | + <ValueIndexEntryBuilderIterator> |
655 | <ForVarIterator varname="$$opt_temp_1"/> |
656 | - </ChildAxisIterator> |
657 | - </FnCountIterator> |
658 | - </ValueIndexEntryBuilderIterator> |
659 | - </ReturnClause> |
660 | - </flwor::FLWORIterator> |
661 | - </CreateInternalIndexIterator> |
662 | - <ElementIterator> |
663 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
664 | - <EnclosedIterator attr_cont="false"> |
665 | + <FnCountIterator> |
666 | + <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
667 | + <ForVarIterator varname="$$opt_temp_1"/> |
668 | + </ChildAxisIterator> |
669 | + </FnCountIterator> |
670 | + </ValueIndexEntryBuilderIterator> |
671 | + </ReturnClause> |
672 | + </flwor::FLWORIterator> |
673 | + </CreateInternalIndexIterator> |
674 | <flwor::FLWORIterator> |
675 | <ForVariable name="anzahl"> |
676 | <OpToIterator> |
677 | @@ -60,9 +60,9 @@ |
678 | </ElementIterator> |
679 | </ReturnClause> |
680 | </flwor::FLWORIterator> |
681 | - </EnclosedIterator> |
682 | - </ElementIterator> |
683 | - </SequentialIterator> |
684 | - </ReturnClause> |
685 | -</flwor::FLWORIterator> |
686 | + </SequentialIterator> |
687 | + </ReturnClause> |
688 | + </flwor::FLWORIterator> |
689 | + </EnclosedIterator> |
690 | +</ElementIterator> |
691 | |
692 | |
693 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9207.iter' |
694 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9207.iter 2012-05-03 12:31:51 +0000 |
695 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9207.iter 2012-06-14 14:31:26 +0000 |
696 | @@ -1,33 +1,33 @@ |
697 | Iterator tree for main query: |
698 | -<flwor::FLWORIterator> |
699 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
700 | - <HoistIterator> |
701 | - <OpToIterator> |
702 | - <SingletonIterator value="xs:integer(1)"/> |
703 | - <SingletonIterator value="xs:integer(2)"/> |
704 | - </OpToIterator> |
705 | - </HoistIterator> |
706 | - </LetVariable> |
707 | - <ReturnClause> |
708 | - <SequentialIterator> |
709 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
710 | - <flwor::FLWORIterator> |
711 | - <ForVariable name="$$opt_temp_2"> |
712 | - <UnhoistIterator> |
713 | - <LetVarIterator varname="$$opt_temp_0"/> |
714 | - </UnhoistIterator> |
715 | - </ForVariable> |
716 | - <ReturnClause> |
717 | - <ValueIndexEntryBuilderIterator> |
718 | - <ForVarIterator varname="$$opt_temp_2"/> |
719 | - <ForVarIterator varname="$$opt_temp_2"/> |
720 | - </ValueIndexEntryBuilderIterator> |
721 | - </ReturnClause> |
722 | - </flwor::FLWORIterator> |
723 | - </CreateInternalIndexIterator> |
724 | - <ElementIterator> |
725 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
726 | - <EnclosedIterator attr_cont="false"> |
727 | +<ElementIterator> |
728 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
729 | + <EnclosedIterator attr_cont="false"> |
730 | + <flwor::FLWORIterator> |
731 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
732 | + <HoistIterator> |
733 | + <OpToIterator> |
734 | + <SingletonIterator value="xs:integer(1)"/> |
735 | + <SingletonIterator value="xs:integer(2)"/> |
736 | + </OpToIterator> |
737 | + </HoistIterator> |
738 | + </LetVariable> |
739 | + <ReturnClause> |
740 | + <SequentialIterator> |
741 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
742 | + <flwor::FLWORIterator> |
743 | + <ForVariable name="$$opt_temp_2"> |
744 | + <UnhoistIterator> |
745 | + <LetVarIterator varname="$$opt_temp_0"/> |
746 | + </UnhoistIterator> |
747 | + </ForVariable> |
748 | + <ReturnClause> |
749 | + <ValueIndexEntryBuilderIterator> |
750 | + <ForVarIterator varname="$$opt_temp_2"/> |
751 | + <ForVarIterator varname="$$opt_temp_2"/> |
752 | + </ValueIndexEntryBuilderIterator> |
753 | + </ReturnClause> |
754 | + </flwor::FLWORIterator> |
755 | + </CreateInternalIndexIterator> |
756 | <flwor::FLWORIterator> |
757 | <ForVariable name="book"> |
758 | <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
759 | @@ -67,9 +67,9 @@ |
760 | </ElementIterator> |
761 | </ReturnClause> |
762 | </flwor::FLWORIterator> |
763 | - </EnclosedIterator> |
764 | - </ElementIterator> |
765 | - </SequentialIterator> |
766 | - </ReturnClause> |
767 | -</flwor::FLWORIterator> |
768 | + </SequentialIterator> |
769 | + </ReturnClause> |
770 | + </flwor::FLWORIterator> |
771 | + </EnclosedIterator> |
772 | +</ElementIterator> |
773 | |
774 | |
775 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9210.iter' |
776 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9210.iter 2012-05-03 12:31:51 +0000 |
777 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9210.iter 2012-06-14 14:31:26 +0000 |
778 | @@ -1,38 +1,38 @@ |
779 | Iterator tree for main query: |
780 | -<flwor::FLWORIterator> |
781 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
782 | - <HoistIterator> |
783 | - <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
784 | - <FnDocIterator> |
785 | - <SingletonIterator value="xs:string(books.xml)"/> |
786 | - </FnDocIterator> |
787 | - </DescendantAxisIterator> |
788 | - </HoistIterator> |
789 | - </LetVariable> |
790 | - <ReturnClause> |
791 | - <SequentialIterator> |
792 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
793 | - <flwor::FLWORIterator> |
794 | - <ForVariable name="$$opt_temp_1"> |
795 | - <UnhoistIterator> |
796 | - <LetVarIterator varname="$$opt_temp_0"/> |
797 | - </UnhoistIterator> |
798 | - </ForVariable> |
799 | - <ReturnClause> |
800 | - <ValueIndexEntryBuilderIterator> |
801 | - <ForVarIterator varname="$$opt_temp_1"/> |
802 | - <FnCountIterator> |
803 | - <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
804 | +<ElementIterator> |
805 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
806 | + <EnclosedIterator attr_cont="false"> |
807 | + <flwor::FLWORIterator> |
808 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
809 | + <HoistIterator> |
810 | + <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
811 | + <FnDocIterator> |
812 | + <SingletonIterator value="xs:string(books.xml)"/> |
813 | + </FnDocIterator> |
814 | + </DescendantAxisIterator> |
815 | + </HoistIterator> |
816 | + </LetVariable> |
817 | + <ReturnClause> |
818 | + <SequentialIterator> |
819 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
820 | + <flwor::FLWORIterator> |
821 | + <ForVariable name="$$opt_temp_1"> |
822 | + <UnhoistIterator> |
823 | + <LetVarIterator varname="$$opt_temp_0"/> |
824 | + </UnhoistIterator> |
825 | + </ForVariable> |
826 | + <ReturnClause> |
827 | + <ValueIndexEntryBuilderIterator> |
828 | <ForVarIterator varname="$$opt_temp_1"/> |
829 | - </ChildAxisIterator> |
830 | - </FnCountIterator> |
831 | - </ValueIndexEntryBuilderIterator> |
832 | - </ReturnClause> |
833 | - </flwor::FLWORIterator> |
834 | - </CreateInternalIndexIterator> |
835 | - <ElementIterator> |
836 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
837 | - <EnclosedIterator attr_cont="false"> |
838 | + <FnCountIterator> |
839 | + <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
840 | + <ForVarIterator varname="$$opt_temp_1"/> |
841 | + </ChildAxisIterator> |
842 | + </FnCountIterator> |
843 | + </ValueIndexEntryBuilderIterator> |
844 | + </ReturnClause> |
845 | + </flwor::FLWORIterator> |
846 | + </CreateInternalIndexIterator> |
847 | <flwor::FLWORIterator> |
848 | <ForVariable name="anzahl"> |
849 | <OpToIterator> |
850 | @@ -64,9 +64,9 @@ |
851 | </ElementIterator> |
852 | </ReturnClause> |
853 | </flwor::FLWORIterator> |
854 | - </EnclosedIterator> |
855 | - </ElementIterator> |
856 | - </SequentialIterator> |
857 | - </ReturnClause> |
858 | -</flwor::FLWORIterator> |
859 | + </SequentialIterator> |
860 | + </ReturnClause> |
861 | + </flwor::FLWORIterator> |
862 | + </EnclosedIterator> |
863 | +</ElementIterator> |
864 | |
865 | |
866 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9211.iter' |
867 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9211.iter 2012-05-03 12:31:51 +0000 |
868 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9211.iter 2012-06-14 14:31:26 +0000 |
869 | @@ -1,38 +1,38 @@ |
870 | Iterator tree for main query: |
871 | -<flwor::FLWORIterator> |
872 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
873 | - <HoistIterator> |
874 | - <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
875 | - <FnDocIterator> |
876 | - <SingletonIterator value="xs:string(books.xml)"/> |
877 | - </FnDocIterator> |
878 | - </DescendantAxisIterator> |
879 | - </HoistIterator> |
880 | - </LetVariable> |
881 | - <ReturnClause> |
882 | - <SequentialIterator> |
883 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
884 | - <flwor::FLWORIterator> |
885 | - <ForVariable name="$$opt_temp_1"> |
886 | - <UnhoistIterator> |
887 | - <LetVarIterator varname="$$opt_temp_0"/> |
888 | - </UnhoistIterator> |
889 | - </ForVariable> |
890 | - <ReturnClause> |
891 | - <ValueIndexEntryBuilderIterator> |
892 | - <ForVarIterator varname="$$opt_temp_1"/> |
893 | - <FnCountIterator> |
894 | - <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
895 | +<ElementIterator> |
896 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
897 | + <EnclosedIterator attr_cont="false"> |
898 | + <flwor::FLWORIterator> |
899 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
900 | + <HoistIterator> |
901 | + <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
902 | + <FnDocIterator> |
903 | + <SingletonIterator value="xs:string(books.xml)"/> |
904 | + </FnDocIterator> |
905 | + </DescendantAxisIterator> |
906 | + </HoistIterator> |
907 | + </LetVariable> |
908 | + <ReturnClause> |
909 | + <SequentialIterator> |
910 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
911 | + <flwor::FLWORIterator> |
912 | + <ForVariable name="$$opt_temp_1"> |
913 | + <UnhoistIterator> |
914 | + <LetVarIterator varname="$$opt_temp_0"/> |
915 | + </UnhoistIterator> |
916 | + </ForVariable> |
917 | + <ReturnClause> |
918 | + <ValueIndexEntryBuilderIterator> |
919 | <ForVarIterator varname="$$opt_temp_1"/> |
920 | - </ChildAxisIterator> |
921 | - </FnCountIterator> |
922 | - </ValueIndexEntryBuilderIterator> |
923 | - </ReturnClause> |
924 | - </flwor::FLWORIterator> |
925 | - </CreateInternalIndexIterator> |
926 | - <ElementIterator> |
927 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
928 | - <EnclosedIterator attr_cont="false"> |
929 | + <FnCountIterator> |
930 | + <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
931 | + <ForVarIterator varname="$$opt_temp_1"/> |
932 | + </ChildAxisIterator> |
933 | + </FnCountIterator> |
934 | + </ValueIndexEntryBuilderIterator> |
935 | + </ReturnClause> |
936 | + </flwor::FLWORIterator> |
937 | + </CreateInternalIndexIterator> |
938 | <flwor::FLWORIterator> |
939 | <ForVariable name="anzahl"> |
940 | <OpToIterator> |
941 | @@ -67,9 +67,9 @@ |
942 | </ElementIterator> |
943 | </ReturnClause> |
944 | </flwor::FLWORIterator> |
945 | - </EnclosedIterator> |
946 | - </ElementIterator> |
947 | - </SequentialIterator> |
948 | - </ReturnClause> |
949 | -</flwor::FLWORIterator> |
950 | + </SequentialIterator> |
951 | + </ReturnClause> |
952 | + </flwor::FLWORIterator> |
953 | + </EnclosedIterator> |
954 | +</ElementIterator> |
955 | |
956 | |
957 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9212.iter' |
958 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9212.iter 2012-05-03 12:31:51 +0000 |
959 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9212.iter 2012-06-14 14:31:26 +0000 |
960 | @@ -1,38 +1,38 @@ |
961 | Iterator tree for main query: |
962 | -<flwor::FLWORIterator> |
963 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
964 | - <HoistIterator> |
965 | - <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
966 | - <FnDocIterator> |
967 | - <SingletonIterator value="xs:string(books.xml)"/> |
968 | - </FnDocIterator> |
969 | - </DescendantAxisIterator> |
970 | - </HoistIterator> |
971 | - </LetVariable> |
972 | - <ReturnClause> |
973 | - <SequentialIterator> |
974 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
975 | - <flwor::FLWORIterator> |
976 | - <ForVariable name="$$opt_temp_1"> |
977 | - <UnhoistIterator> |
978 | - <LetVarIterator varname="$$opt_temp_0"/> |
979 | - </UnhoistIterator> |
980 | - </ForVariable> |
981 | - <ReturnClause> |
982 | - <ValueIndexEntryBuilderIterator> |
983 | - <ForVarIterator varname="$$opt_temp_1"/> |
984 | - <FnCountIterator> |
985 | - <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
986 | +<ElementIterator> |
987 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
988 | + <EnclosedIterator attr_cont="false"> |
989 | + <flwor::FLWORIterator> |
990 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
991 | + <HoistIterator> |
992 | + <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
993 | + <FnDocIterator> |
994 | + <SingletonIterator value="xs:string(books.xml)"/> |
995 | + </FnDocIterator> |
996 | + </DescendantAxisIterator> |
997 | + </HoistIterator> |
998 | + </LetVariable> |
999 | + <ReturnClause> |
1000 | + <SequentialIterator> |
1001 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1002 | + <flwor::FLWORIterator> |
1003 | + <ForVariable name="$$opt_temp_1"> |
1004 | + <UnhoistIterator> |
1005 | + <LetVarIterator varname="$$opt_temp_0"/> |
1006 | + </UnhoistIterator> |
1007 | + </ForVariable> |
1008 | + <ReturnClause> |
1009 | + <ValueIndexEntryBuilderIterator> |
1010 | <ForVarIterator varname="$$opt_temp_1"/> |
1011 | - </ChildAxisIterator> |
1012 | - </FnCountIterator> |
1013 | - </ValueIndexEntryBuilderIterator> |
1014 | - </ReturnClause> |
1015 | - </flwor::FLWORIterator> |
1016 | - </CreateInternalIndexIterator> |
1017 | - <ElementIterator> |
1018 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1019 | - <EnclosedIterator attr_cont="false"> |
1020 | + <FnCountIterator> |
1021 | + <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
1022 | + <ForVarIterator varname="$$opt_temp_1"/> |
1023 | + </ChildAxisIterator> |
1024 | + </FnCountIterator> |
1025 | + </ValueIndexEntryBuilderIterator> |
1026 | + </ReturnClause> |
1027 | + </flwor::FLWORIterator> |
1028 | + </CreateInternalIndexIterator> |
1029 | <flwor::FLWORIterator> |
1030 | <ForVariable name="book"> |
1031 | <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
1032 | @@ -75,9 +75,9 @@ |
1033 | </ElementIterator> |
1034 | </ReturnClause> |
1035 | </flwor::FLWORIterator> |
1036 | - </EnclosedIterator> |
1037 | - </ElementIterator> |
1038 | - </SequentialIterator> |
1039 | - </ReturnClause> |
1040 | -</flwor::FLWORIterator> |
1041 | + </SequentialIterator> |
1042 | + </ReturnClause> |
1043 | + </flwor::FLWORIterator> |
1044 | + </EnclosedIterator> |
1045 | +</ElementIterator> |
1046 | |
1047 | |
1048 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9389.iter' |
1049 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9389.iter 2012-05-03 12:31:51 +0000 |
1050 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9389.iter 2012-06-14 14:31:26 +0000 |
1051 | @@ -1,38 +1,38 @@ |
1052 | Iterator tree for main query: |
1053 | -<flwor::FLWORIterator> |
1054 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
1055 | - <HoistIterator> |
1056 | - <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
1057 | - <FnDocIterator> |
1058 | - <SingletonIterator value="xs:string(books.xml)"/> |
1059 | - </FnDocIterator> |
1060 | - </DescendantAxisIterator> |
1061 | - </HoistIterator> |
1062 | - </LetVariable> |
1063 | - <ReturnClause> |
1064 | - <SequentialIterator> |
1065 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1066 | - <flwor::FLWORIterator> |
1067 | - <ForVariable name="$$opt_temp_1"> |
1068 | - <UnhoistIterator> |
1069 | - <LetVarIterator varname="$$opt_temp_0"/> |
1070 | - </UnhoistIterator> |
1071 | - </ForVariable> |
1072 | - <ReturnClause> |
1073 | - <ValueIndexEntryBuilderIterator> |
1074 | - <ForVarIterator varname="$$opt_temp_1"/> |
1075 | - <FnCountIterator> |
1076 | - <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
1077 | +<ElementIterator> |
1078 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1079 | + <EnclosedIterator attr_cont="false"> |
1080 | + <flwor::FLWORIterator> |
1081 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
1082 | + <HoistIterator> |
1083 | + <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
1084 | + <FnDocIterator> |
1085 | + <SingletonIterator value="xs:string(books.xml)"/> |
1086 | + </FnDocIterator> |
1087 | + </DescendantAxisIterator> |
1088 | + </HoistIterator> |
1089 | + </LetVariable> |
1090 | + <ReturnClause> |
1091 | + <SequentialIterator> |
1092 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1093 | + <flwor::FLWORIterator> |
1094 | + <ForVariable name="$$opt_temp_1"> |
1095 | + <UnhoistIterator> |
1096 | + <LetVarIterator varname="$$opt_temp_0"/> |
1097 | + </UnhoistIterator> |
1098 | + </ForVariable> |
1099 | + <ReturnClause> |
1100 | + <ValueIndexEntryBuilderIterator> |
1101 | <ForVarIterator varname="$$opt_temp_1"/> |
1102 | - </ChildAxisIterator> |
1103 | - </FnCountIterator> |
1104 | - </ValueIndexEntryBuilderIterator> |
1105 | - </ReturnClause> |
1106 | - </flwor::FLWORIterator> |
1107 | - </CreateInternalIndexIterator> |
1108 | - <ElementIterator> |
1109 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1110 | - <EnclosedIterator attr_cont="false"> |
1111 | + <FnCountIterator> |
1112 | + <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
1113 | + <ForVarIterator varname="$$opt_temp_1"/> |
1114 | + </ChildAxisIterator> |
1115 | + </FnCountIterator> |
1116 | + </ValueIndexEntryBuilderIterator> |
1117 | + </ReturnClause> |
1118 | + </flwor::FLWORIterator> |
1119 | + </CreateInternalIndexIterator> |
1120 | <flwor::FLWORIterator> |
1121 | <ForVariable name="anzahl"> |
1122 | <OpToIterator> |
1123 | @@ -62,9 +62,9 @@ |
1124 | </ElementIterator> |
1125 | </ReturnClause> |
1126 | </flwor::FLWORIterator> |
1127 | - </EnclosedIterator> |
1128 | - </ElementIterator> |
1129 | - </SequentialIterator> |
1130 | - </ReturnClause> |
1131 | -</flwor::FLWORIterator> |
1132 | + </SequentialIterator> |
1133 | + </ReturnClause> |
1134 | + </flwor::FLWORIterator> |
1135 | + </EnclosedIterator> |
1136 | +</ElementIterator> |
1137 | |
1138 | |
1139 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9391.iter' |
1140 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9391.iter 2012-05-03 12:31:51 +0000 |
1141 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9391.iter 2012-06-14 14:31:26 +0000 |
1142 | @@ -1,38 +1,38 @@ |
1143 | Iterator tree for main query: |
1144 | -<flwor::FLWORIterator> |
1145 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
1146 | - <HoistIterator> |
1147 | - <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
1148 | - <FnDocIterator> |
1149 | - <SingletonIterator value="xs:string(books.xml)"/> |
1150 | - </FnDocIterator> |
1151 | - </DescendantAxisIterator> |
1152 | - </HoistIterator> |
1153 | - </LetVariable> |
1154 | - <ReturnClause> |
1155 | - <SequentialIterator> |
1156 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1157 | - <flwor::FLWORIterator> |
1158 | - <ForVariable name="$$opt_temp_1"> |
1159 | - <UnhoistIterator> |
1160 | - <LetVarIterator varname="$$opt_temp_0"/> |
1161 | - </UnhoistIterator> |
1162 | - </ForVariable> |
1163 | - <ReturnClause> |
1164 | - <ValueIndexEntryBuilderIterator> |
1165 | - <ForVarIterator varname="$$opt_temp_1"/> |
1166 | - <FnCountIterator> |
1167 | - <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
1168 | +<ElementIterator> |
1169 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1170 | + <EnclosedIterator attr_cont="false"> |
1171 | + <flwor::FLWORIterator> |
1172 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
1173 | + <HoistIterator> |
1174 | + <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
1175 | + <FnDocIterator> |
1176 | + <SingletonIterator value="xs:string(books.xml)"/> |
1177 | + </FnDocIterator> |
1178 | + </DescendantAxisIterator> |
1179 | + </HoistIterator> |
1180 | + </LetVariable> |
1181 | + <ReturnClause> |
1182 | + <SequentialIterator> |
1183 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1184 | + <flwor::FLWORIterator> |
1185 | + <ForVariable name="$$opt_temp_1"> |
1186 | + <UnhoistIterator> |
1187 | + <LetVarIterator varname="$$opt_temp_0"/> |
1188 | + </UnhoistIterator> |
1189 | + </ForVariable> |
1190 | + <ReturnClause> |
1191 | + <ValueIndexEntryBuilderIterator> |
1192 | <ForVarIterator varname="$$opt_temp_1"/> |
1193 | - </ChildAxisIterator> |
1194 | - </FnCountIterator> |
1195 | - </ValueIndexEntryBuilderIterator> |
1196 | - </ReturnClause> |
1197 | - </flwor::FLWORIterator> |
1198 | - </CreateInternalIndexIterator> |
1199 | - <ElementIterator> |
1200 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1201 | - <EnclosedIterator attr_cont="false"> |
1202 | + <FnCountIterator> |
1203 | + <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
1204 | + <ForVarIterator varname="$$opt_temp_1"/> |
1205 | + </ChildAxisIterator> |
1206 | + </FnCountIterator> |
1207 | + </ValueIndexEntryBuilderIterator> |
1208 | + </ReturnClause> |
1209 | + </flwor::FLWORIterator> |
1210 | + </CreateInternalIndexIterator> |
1211 | <flwor::FLWORIterator> |
1212 | <ForVariable name="anzahl"> |
1213 | <OpToIterator> |
1214 | @@ -67,9 +67,9 @@ |
1215 | </ElementIterator> |
1216 | </ReturnClause> |
1217 | </flwor::FLWORIterator> |
1218 | - </EnclosedIterator> |
1219 | - </ElementIterator> |
1220 | - </SequentialIterator> |
1221 | - </ReturnClause> |
1222 | -</flwor::FLWORIterator> |
1223 | + </SequentialIterator> |
1224 | + </ReturnClause> |
1225 | + </flwor::FLWORIterator> |
1226 | + </EnclosedIterator> |
1227 | +</ElementIterator> |
1228 | |
1229 | |
1230 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9392.iter' |
1231 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9392.iter 2012-05-03 12:31:51 +0000 |
1232 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9392.iter 2012-06-14 14:31:26 +0000 |
1233 | @@ -1,45 +1,45 @@ |
1234 | Iterator tree for main query: |
1235 | -<flwor::FLWORIterator> |
1236 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
1237 | - <HoistIterator> |
1238 | - <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
1239 | - <FnDocIterator> |
1240 | - <SingletonIterator value="xs:string(books.xml)"/> |
1241 | - </FnDocIterator> |
1242 | - </DescendantAxisIterator> |
1243 | - </HoistIterator> |
1244 | - </LetVariable> |
1245 | - <ReturnClause> |
1246 | - <SequentialIterator> |
1247 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1248 | - <flwor::FLWORIterator> |
1249 | - <ForVariable name="$$opt_temp_1"> |
1250 | - <UnhoistIterator> |
1251 | - <LetVarIterator varname="$$opt_temp_0"/> |
1252 | - </UnhoistIterator> |
1253 | - </ForVariable> |
1254 | - <ReturnClause> |
1255 | - <ValueIndexEntryBuilderIterator> |
1256 | - <ForVarIterator varname="$$opt_temp_1"/> |
1257 | - <FnCountIterator> |
1258 | - <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
1259 | - <ForVarIterator varname="$$opt_temp_1"/> |
1260 | - </ChildAxisIterator> |
1261 | - </FnCountIterator> |
1262 | - </ValueIndexEntryBuilderIterator> |
1263 | - </ReturnClause> |
1264 | - </flwor::FLWORIterator> |
1265 | - </CreateInternalIndexIterator> |
1266 | - <ElementIterator> |
1267 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1268 | - <EnclosedIterator attr_cont="false"> |
1269 | - <ElementIterator> |
1270 | - <SingletonIterator value="xs:QName(,,gruppe)"/> |
1271 | - <AttributeIterator qname="xs:QName(,,anzahl)"> |
1272 | - <FnDataIterator> |
1273 | - <FnConcatIterator> |
1274 | - <SingletonIterator value="xs:string( )"/> |
1275 | - <EnclosedIterator attr_cont="true"> |
1276 | +<ElementIterator> |
1277 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1278 | + <EnclosedIterator attr_cont="false"> |
1279 | + <ElementIterator> |
1280 | + <SingletonIterator value="xs:QName(,,gruppe)"/> |
1281 | + <AttributeIterator qname="xs:QName(,,anzahl)"> |
1282 | + <FnDataIterator> |
1283 | + <FnConcatIterator> |
1284 | + <SingletonIterator value="xs:string( )"/> |
1285 | + <EnclosedIterator attr_cont="true"> |
1286 | + <flwor::FLWORIterator> |
1287 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
1288 | + <HoistIterator> |
1289 | + <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
1290 | + <FnDocIterator> |
1291 | + <SingletonIterator value="xs:string(books.xml)"/> |
1292 | + </FnDocIterator> |
1293 | + </DescendantAxisIterator> |
1294 | + </HoistIterator> |
1295 | + </LetVariable> |
1296 | + <ReturnClause> |
1297 | + <SequentialIterator> |
1298 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1299 | + <flwor::FLWORIterator> |
1300 | + <ForVariable name="$$opt_temp_1"> |
1301 | + <UnhoistIterator> |
1302 | + <LetVarIterator varname="$$opt_temp_0"/> |
1303 | + </UnhoistIterator> |
1304 | + </ForVariable> |
1305 | + <ReturnClause> |
1306 | + <ValueIndexEntryBuilderIterator> |
1307 | + <ForVarIterator varname="$$opt_temp_1"/> |
1308 | + <FnCountIterator> |
1309 | + <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
1310 | + <ForVarIterator varname="$$opt_temp_1"/> |
1311 | + </ChildAxisIterator> |
1312 | + </FnCountIterator> |
1313 | + </ValueIndexEntryBuilderIterator> |
1314 | + </ReturnClause> |
1315 | + </flwor::FLWORIterator> |
1316 | + </CreateInternalIndexIterator> |
1317 | <flwor::FLWORIterator> |
1318 | <ForVariable name="anzahl"> |
1319 | <OpToIterator> |
1320 | @@ -57,15 +57,15 @@ |
1321 | <ForVarIterator varname="anzahl"/> |
1322 | </ReturnClause> |
1323 | </flwor::FLWORIterator> |
1324 | - </EnclosedIterator> |
1325 | - </FnConcatIterator> |
1326 | - </FnDataIterator> |
1327 | - </AttributeIterator> |
1328 | - <FnConcatIterator/> |
1329 | - </ElementIterator> |
1330 | - </EnclosedIterator> |
1331 | - </ElementIterator> |
1332 | - </SequentialIterator> |
1333 | - </ReturnClause> |
1334 | -</flwor::FLWORIterator> |
1335 | + </SequentialIterator> |
1336 | + </ReturnClause> |
1337 | + </flwor::FLWORIterator> |
1338 | + </EnclosedIterator> |
1339 | + </FnConcatIterator> |
1340 | + </FnDataIterator> |
1341 | + </AttributeIterator> |
1342 | + <FnConcatIterator/> |
1343 | + </ElementIterator> |
1344 | + </EnclosedIterator> |
1345 | +</ElementIterator> |
1346 | |
1347 | |
1348 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9399.iter' |
1349 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9399.iter 2012-05-03 12:31:51 +0000 |
1350 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9399.iter 2012-06-14 14:31:26 +0000 |
1351 | @@ -1,38 +1,38 @@ |
1352 | Iterator tree for main query: |
1353 | -<flwor::FLWORIterator> |
1354 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
1355 | - <HoistIterator> |
1356 | - <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
1357 | - <FnDocIterator> |
1358 | - <SingletonIterator value="xs:string(books.xml)"/> |
1359 | - </FnDocIterator> |
1360 | - </DescendantAxisIterator> |
1361 | - </HoistIterator> |
1362 | - </LetVariable> |
1363 | - <ReturnClause> |
1364 | - <SequentialIterator> |
1365 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1366 | - <flwor::FLWORIterator> |
1367 | - <ForVariable name="$$opt_temp_1"> |
1368 | - <UnhoistIterator> |
1369 | - <LetVarIterator varname="$$opt_temp_0"/> |
1370 | - </UnhoistIterator> |
1371 | - </ForVariable> |
1372 | - <ReturnClause> |
1373 | - <ValueIndexEntryBuilderIterator> |
1374 | - <ForVarIterator varname="$$opt_temp_1"/> |
1375 | - <FnCountIterator> |
1376 | - <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
1377 | +<ElementIterator> |
1378 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1379 | + <EnclosedIterator attr_cont="false"> |
1380 | + <flwor::FLWORIterator> |
1381 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
1382 | + <HoistIterator> |
1383 | + <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
1384 | + <FnDocIterator> |
1385 | + <SingletonIterator value="xs:string(books.xml)"/> |
1386 | + </FnDocIterator> |
1387 | + </DescendantAxisIterator> |
1388 | + </HoistIterator> |
1389 | + </LetVariable> |
1390 | + <ReturnClause> |
1391 | + <SequentialIterator> |
1392 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1393 | + <flwor::FLWORIterator> |
1394 | + <ForVariable name="$$opt_temp_1"> |
1395 | + <UnhoistIterator> |
1396 | + <LetVarIterator varname="$$opt_temp_0"/> |
1397 | + </UnhoistIterator> |
1398 | + </ForVariable> |
1399 | + <ReturnClause> |
1400 | + <ValueIndexEntryBuilderIterator> |
1401 | <ForVarIterator varname="$$opt_temp_1"/> |
1402 | - </ChildAxisIterator> |
1403 | - </FnCountIterator> |
1404 | - </ValueIndexEntryBuilderIterator> |
1405 | - </ReturnClause> |
1406 | - </flwor::FLWORIterator> |
1407 | - </CreateInternalIndexIterator> |
1408 | - <ElementIterator> |
1409 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1410 | - <EnclosedIterator attr_cont="false"> |
1411 | + <FnCountIterator> |
1412 | + <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
1413 | + <ForVarIterator varname="$$opt_temp_1"/> |
1414 | + </ChildAxisIterator> |
1415 | + </FnCountIterator> |
1416 | + </ValueIndexEntryBuilderIterator> |
1417 | + </ReturnClause> |
1418 | + </flwor::FLWORIterator> |
1419 | + </CreateInternalIndexIterator> |
1420 | <flwor::FLWORIterator> |
1421 | <ForVariable name="anzahl"> |
1422 | <OpToIterator> |
1423 | @@ -61,9 +61,9 @@ |
1424 | </ElementIterator> |
1425 | </ReturnClause> |
1426 | </flwor::FLWORIterator> |
1427 | - </EnclosedIterator> |
1428 | - </ElementIterator> |
1429 | - </SequentialIterator> |
1430 | - </ReturnClause> |
1431 | -</flwor::FLWORIterator> |
1432 | + </SequentialIterator> |
1433 | + </ReturnClause> |
1434 | + </flwor::FLWORIterator> |
1435 | + </EnclosedIterator> |
1436 | +</ElementIterator> |
1437 | |
1438 | |
1439 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9400.iter' |
1440 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9400.iter 2012-05-03 12:31:51 +0000 |
1441 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9400.iter 2012-06-14 14:31:26 +0000 |
1442 | @@ -1,38 +1,38 @@ |
1443 | Iterator tree for main query: |
1444 | -<flwor::FLWORIterator> |
1445 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
1446 | - <HoistIterator> |
1447 | - <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
1448 | - <FnDocIterator> |
1449 | - <SingletonIterator value="xs:string(books.xml)"/> |
1450 | - </FnDocIterator> |
1451 | - </DescendantAxisIterator> |
1452 | - </HoistIterator> |
1453 | - </LetVariable> |
1454 | - <ReturnClause> |
1455 | - <SequentialIterator> |
1456 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1457 | - <flwor::FLWORIterator> |
1458 | - <ForVariable name="$$opt_temp_1"> |
1459 | - <UnhoistIterator> |
1460 | - <LetVarIterator varname="$$opt_temp_0"/> |
1461 | - </UnhoistIterator> |
1462 | - </ForVariable> |
1463 | - <ReturnClause> |
1464 | - <ValueIndexEntryBuilderIterator> |
1465 | - <ForVarIterator varname="$$opt_temp_1"/> |
1466 | - <FnCountIterator> |
1467 | - <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
1468 | +<ElementIterator> |
1469 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1470 | + <EnclosedIterator attr_cont="false"> |
1471 | + <flwor::FLWORIterator> |
1472 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
1473 | + <HoistIterator> |
1474 | + <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
1475 | + <FnDocIterator> |
1476 | + <SingletonIterator value="xs:string(books.xml)"/> |
1477 | + </FnDocIterator> |
1478 | + </DescendantAxisIterator> |
1479 | + </HoistIterator> |
1480 | + </LetVariable> |
1481 | + <ReturnClause> |
1482 | + <SequentialIterator> |
1483 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1484 | + <flwor::FLWORIterator> |
1485 | + <ForVariable name="$$opt_temp_1"> |
1486 | + <UnhoistIterator> |
1487 | + <LetVarIterator varname="$$opt_temp_0"/> |
1488 | + </UnhoistIterator> |
1489 | + </ForVariable> |
1490 | + <ReturnClause> |
1491 | + <ValueIndexEntryBuilderIterator> |
1492 | <ForVarIterator varname="$$opt_temp_1"/> |
1493 | - </ChildAxisIterator> |
1494 | - </FnCountIterator> |
1495 | - </ValueIndexEntryBuilderIterator> |
1496 | - </ReturnClause> |
1497 | - </flwor::FLWORIterator> |
1498 | - </CreateInternalIndexIterator> |
1499 | - <ElementIterator> |
1500 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1501 | - <EnclosedIterator attr_cont="false"> |
1502 | + <FnCountIterator> |
1503 | + <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
1504 | + <ForVarIterator varname="$$opt_temp_1"/> |
1505 | + </ChildAxisIterator> |
1506 | + </FnCountIterator> |
1507 | + </ValueIndexEntryBuilderIterator> |
1508 | + </ReturnClause> |
1509 | + </flwor::FLWORIterator> |
1510 | + </CreateInternalIndexIterator> |
1511 | <flwor::FLWORIterator> |
1512 | <ForVariable name="anzahl"> |
1513 | <OpToIterator> |
1514 | @@ -62,9 +62,9 @@ |
1515 | </ElementIterator> |
1516 | </ReturnClause> |
1517 | </flwor::FLWORIterator> |
1518 | - </EnclosedIterator> |
1519 | - </ElementIterator> |
1520 | - </SequentialIterator> |
1521 | - </ReturnClause> |
1522 | -</flwor::FLWORIterator> |
1523 | + </SequentialIterator> |
1524 | + </ReturnClause> |
1525 | + </flwor::FLWORIterator> |
1526 | + </EnclosedIterator> |
1527 | +</ElementIterator> |
1528 | |
1529 | |
1530 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx4.iter' |
1531 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx4.iter 2012-05-03 12:31:51 +0000 |
1532 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx4.iter 2012-06-14 14:31:26 +0000 |
1533 | @@ -76,89 +76,85 @@ |
1534 | </TreatIterator> |
1535 | </HoistIterator> |
1536 | </LetVariable> |
1537 | + <ForVariable name="prefix"> |
1538 | + <flwor::FLWORIterator> |
1539 | + <ForVariable name="prefixE"> |
1540 | + <InScopePrefixesIterator> |
1541 | + <TreatIterator quant=""> |
1542 | + <LetVarIterator varname="e"/> |
1543 | + </TreatIterator> |
1544 | + </InScopePrefixesIterator> |
1545 | + </ForVariable> |
1546 | + <LetVariable name="$$opt_temp_1" materialize="true"> |
1547 | + <HoistIterator> |
1548 | + <NamespaceUriForPrefixIterator> |
1549 | + <ForVarIterator varname="prefixE"/> |
1550 | + <UnhoistIterator> |
1551 | + <LetVarIterator varname="$$opt_temp_0"/> |
1552 | + </UnhoistIterator> |
1553 | + </NamespaceUriForPrefixIterator> |
1554 | + </HoistIterator> |
1555 | + </LetVariable> |
1556 | + <ForVariable name="prefixP"> |
1557 | + <ProbeIndexPointValueIterator> |
1558 | + <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
1559 | + <ForVarIterator varname="prefixE"/> |
1560 | + </ProbeIndexPointValueIterator> |
1561 | + </ForVariable> |
1562 | + <WhereClause> |
1563 | + <FnBooleanIterator> |
1564 | + <CompareIterator> |
1565 | + <UnhoistIterator> |
1566 | + <LetVarIterator varname="$$opt_temp_1"/> |
1567 | + </UnhoistIterator> |
1568 | + <NamespaceUriForPrefixIterator> |
1569 | + <ForVarIterator varname="prefixP"/> |
1570 | + <UnhoistIterator> |
1571 | + <ForVarIterator varname="$$opt_temp_2"/> |
1572 | + </UnhoistIterator> |
1573 | + </NamespaceUriForPrefixIterator> |
1574 | + </CompareIterator> |
1575 | + </FnBooleanIterator> |
1576 | + </WhereClause> |
1577 | + <ReturnClause> |
1578 | + <ForVarIterator varname="prefixE"/> |
1579 | + </ReturnClause> |
1580 | + </flwor::FLWORIterator> |
1581 | + </ForVariable> |
1582 | <ReturnClause> |
1583 | - <flwor::FLWORIterator> |
1584 | - <ForVariable name="prefix"> |
1585 | - <flwor::FLWORIterator> |
1586 | - <ForVariable name="prefixE"> |
1587 | - <InScopePrefixesIterator> |
1588 | - <TreatIterator quant=""> |
1589 | - <LetVarIterator varname="e"/> |
1590 | - </TreatIterator> |
1591 | - </InScopePrefixesIterator> |
1592 | - </ForVariable> |
1593 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
1594 | - <HoistIterator> |
1595 | - <NamespaceUriForPrefixIterator> |
1596 | - <ForVarIterator varname="prefixE"/> |
1597 | - <UnhoistIterator> |
1598 | - <LetVarIterator varname="$$opt_temp_0"/> |
1599 | - </UnhoistIterator> |
1600 | - </NamespaceUriForPrefixIterator> |
1601 | - </HoistIterator> |
1602 | - </LetVariable> |
1603 | - <ForVariable name="prefixP"> |
1604 | - <ProbeIndexPointValueIterator> |
1605 | - <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
1606 | - <ForVarIterator varname="prefixE"/> |
1607 | - </ProbeIndexPointValueIterator> |
1608 | - </ForVariable> |
1609 | - <WhereClause> |
1610 | - <FnBooleanIterator> |
1611 | - <CompareIterator> |
1612 | - <UnhoistIterator> |
1613 | - <LetVarIterator varname="$$opt_temp_1"/> |
1614 | - </UnhoistIterator> |
1615 | + <FnConcatIterator> |
1616 | + <SingletonIterator value="xs:string( )"/> |
1617 | + <ElementIterator> |
1618 | + <SingletonIterator value="xs:QName(,,span)"/> |
1619 | + <AttributeIterator qname="xs:QName(,,class)"> |
1620 | + <SingletonIterator value="xs:string(ns)"/> |
1621 | + </AttributeIterator> |
1622 | + <EnclosedIterator attr_cont="false"> |
1623 | + <FnConcatIterator> |
1624 | + <ConcatStrIterator> |
1625 | + <SingletonIterator value="xs:string(xmlns:)"/> |
1626 | + <ForVarIterator varname="prefix"/> |
1627 | + <SingletonIterator value="xs:string(=")"/> |
1628 | + </ConcatStrIterator> |
1629 | + <ElementIterator> |
1630 | + <SingletonIterator value="xs:QName(,,span)"/> |
1631 | + <AttributeIterator qname="xs:QName(,,class)"> |
1632 | + <SingletonIterator value="xs:string(nsUri)"/> |
1633 | + </AttributeIterator> |
1634 | + <EnclosedIterator attr_cont="false"> |
1635 | <NamespaceUriForPrefixIterator> |
1636 | - <ForVarIterator varname="prefixP"/> |
1637 | + <ForVarIterator varname="prefix"/> |
1638 | <UnhoistIterator> |
1639 | - <ForVarIterator varname="$$opt_temp_2"/> |
1640 | + <ForVarIterator varname="$$opt_temp_3"/> |
1641 | </UnhoistIterator> |
1642 | </NamespaceUriForPrefixIterator> |
1643 | - </CompareIterator> |
1644 | - </FnBooleanIterator> |
1645 | - </WhereClause> |
1646 | - <ReturnClause> |
1647 | - <ForVarIterator varname="prefixE"/> |
1648 | - </ReturnClause> |
1649 | - </flwor::FLWORIterator> |
1650 | - </ForVariable> |
1651 | - <ReturnClause> |
1652 | - <FnConcatIterator> |
1653 | - <SingletonIterator value="xs:string( )"/> |
1654 | - <ElementIterator> |
1655 | - <SingletonIterator value="xs:QName(,,span)"/> |
1656 | - <AttributeIterator qname="xs:QName(,,class)"> |
1657 | - <SingletonIterator value="xs:string(ns)"/> |
1658 | - </AttributeIterator> |
1659 | - <EnclosedIterator attr_cont="false"> |
1660 | - <FnConcatIterator> |
1661 | - <ConcatStrIterator> |
1662 | - <SingletonIterator value="xs:string(xmlns:)"/> |
1663 | - <ForVarIterator varname="prefix"/> |
1664 | - <SingletonIterator value="xs:string(=")"/> |
1665 | - </ConcatStrIterator> |
1666 | - <ElementIterator> |
1667 | - <SingletonIterator value="xs:QName(,,span)"/> |
1668 | - <AttributeIterator qname="xs:QName(,,class)"> |
1669 | - <SingletonIterator value="xs:string(nsUri)"/> |
1670 | - </AttributeIterator> |
1671 | - <EnclosedIterator attr_cont="false"> |
1672 | - <NamespaceUriForPrefixIterator> |
1673 | - <ForVarIterator varname="prefix"/> |
1674 | - <UnhoistIterator> |
1675 | - <ForVarIterator varname="$$opt_temp_3"/> |
1676 | - </UnhoistIterator> |
1677 | - </NamespaceUriForPrefixIterator> |
1678 | - </EnclosedIterator> |
1679 | - </ElementIterator> |
1680 | - <SingletonIterator value="xs:string(")"/> |
1681 | - </FnConcatIterator> |
1682 | - </EnclosedIterator> |
1683 | - </ElementIterator> |
1684 | - </FnConcatIterator> |
1685 | - </ReturnClause> |
1686 | - </flwor::FLWORIterator> |
1687 | + </EnclosedIterator> |
1688 | + </ElementIterator> |
1689 | + <SingletonIterator value="xs:string(")"/> |
1690 | + </FnConcatIterator> |
1691 | + </EnclosedIterator> |
1692 | + </ElementIterator> |
1693 | + </FnConcatIterator> |
1694 | </ReturnClause> |
1695 | </flwor::FLWORIterator> |
1696 | </SequentialIterator> |
1697 | |
1698 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx5.iter' |
1699 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx5.iter 2012-05-03 12:31:51 +0000 |
1700 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx5.iter 2012-06-14 14:31:26 +0000 |
1701 | @@ -19,98 +19,94 @@ |
1702 | <SingletonIterator value="xs:QName(,,tests)"/> |
1703 | </ElementIterator> |
1704 | </CtxVarDeclareIterator> |
1705 | - <flwor::FLWORIterator> |
1706 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
1707 | - <HoistIterator> |
1708 | - <flwor::FLWORIterator> |
1709 | - <ForVariable name="$$dot"> |
1710 | - <CtxVarIterator varid="2" varname="tests" varkind="global"/> |
1711 | - </ForVariable> |
1712 | - <WhereClause> |
1713 | - <FnBooleanIterator> |
1714 | - <AttributeAxisIterator test kind="match_name_test" qname="xs:QName(,,name)" typename="*" nill allowed="0"> |
1715 | - <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="*"> |
1716 | - <ForVarIterator varname="$$dot"/> |
1717 | - </TreatIterator> |
1718 | - </AttributeAxisIterator> |
1719 | - </FnBooleanIterator> |
1720 | - </WhereClause> |
1721 | - <ReturnClause> |
1722 | - <ForVarIterator varname="$$dot"/> |
1723 | - </ReturnClause> |
1724 | - </flwor::FLWORIterator> |
1725 | - </HoistIterator> |
1726 | - </LetVariable> |
1727 | - <ReturnClause> |
1728 | - <SequentialIterator> |
1729 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1730 | + <SequentialIterator> |
1731 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1732 | + <flwor::FLWORIterator> |
1733 | + <ForVariable name="$$opt_temp_2"> |
1734 | + <CtxVarIterator varid="2" varname="tests" varkind="global"/> |
1735 | + </ForVariable> |
1736 | + <ReturnClause> |
1737 | + <ValueIndexEntryBuilderIterator> |
1738 | + <ForVarIterator varname="$$opt_temp_2"/> |
1739 | + <CastIterator type="xs:string"> |
1740 | + <PromoteIterator type="xs:anyAtomicType"> |
1741 | + <FnDataIterator> |
1742 | + <ChildAxisIterator test kind="match_text_test" qname="*" typename="*" nill allowed="0"> |
1743 | + <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="*"> |
1744 | + <ForVarIterator varname="$$opt_temp_2"/> |
1745 | + </TreatIterator> |
1746 | + </ChildAxisIterator> |
1747 | + </FnDataIterator> |
1748 | + </PromoteIterator> |
1749 | + </CastIterator> |
1750 | + </ValueIndexEntryBuilderIterator> |
1751 | + </ReturnClause> |
1752 | + </flwor::FLWORIterator> |
1753 | + </CreateInternalIndexIterator> |
1754 | + <flwor::FLWORIterator> |
1755 | + <LetVariable name="$$opt_temp_1" materialize="true"> |
1756 | + <HoistIterator> |
1757 | <flwor::FLWORIterator> |
1758 | - <ForVariable name="$$opt_temp_2"> |
1759 | + <ForVariable name="$$dot"> |
1760 | <CtxVarIterator varid="2" varname="tests" varkind="global"/> |
1761 | </ForVariable> |
1762 | + <WhereClause> |
1763 | + <FnBooleanIterator> |
1764 | + <AttributeAxisIterator test kind="match_name_test" qname="xs:QName(,,name)" typename="*" nill allowed="0"> |
1765 | + <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="*"> |
1766 | + <ForVarIterator varname="$$dot"/> |
1767 | + </TreatIterator> |
1768 | + </AttributeAxisIterator> |
1769 | + </FnBooleanIterator> |
1770 | + </WhereClause> |
1771 | <ReturnClause> |
1772 | - <ValueIndexEntryBuilderIterator> |
1773 | - <ForVarIterator varname="$$opt_temp_2"/> |
1774 | - <CastIterator type="xs:string"> |
1775 | - <PromoteIterator type="xs:anyAtomicType"> |
1776 | - <FnDataIterator> |
1777 | - <ChildAxisIterator test kind="match_text_test" qname="*" typename="*" nill allowed="0"> |
1778 | - <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="*"> |
1779 | - <ForVarIterator varname="$$opt_temp_2"/> |
1780 | - </TreatIterator> |
1781 | - </ChildAxisIterator> |
1782 | - </FnDataIterator> |
1783 | - </PromoteIterator> |
1784 | - </CastIterator> |
1785 | - </ValueIndexEntryBuilderIterator> |
1786 | + <ForVarIterator varname="$$dot"/> |
1787 | </ReturnClause> |
1788 | </flwor::FLWORIterator> |
1789 | - </CreateInternalIndexIterator> |
1790 | + </HoistIterator> |
1791 | + </LetVariable> |
1792 | + <ForVariable name="test"> |
1793 | + <CtxVarIterator varid="2" varname="tests" varkind="global"/> |
1794 | + </ForVariable> |
1795 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
1796 | + <HoistIterator> |
1797 | + <CastIterator type="xs:string"> |
1798 | + <PromoteIterator type="xs:anyAtomicType"> |
1799 | + <FnDataIterator> |
1800 | + <ChildAxisIterator test kind="match_text_test" qname="*" typename="*" nill allowed="0"> |
1801 | + <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="*"> |
1802 | + <ForVarIterator varname="test"/> |
1803 | + </TreatIterator> |
1804 | + </ChildAxisIterator> |
1805 | + </FnDataIterator> |
1806 | + </PromoteIterator> |
1807 | + </CastIterator> |
1808 | + </HoistIterator> |
1809 | + </LetVariable> |
1810 | + <LetVariable name="test_old" materialize="true"> |
1811 | <flwor::FLWORIterator> |
1812 | - <ForVariable name="test"> |
1813 | - <CtxVarIterator varid="2" varname="tests" varkind="global"/> |
1814 | + <ForVariable name="$$dot"> |
1815 | + <ProbeIndexPointValueIterator> |
1816 | + <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
1817 | + <UnhoistIterator> |
1818 | + <LetVarIterator varname="$$opt_temp_0"/> |
1819 | + </UnhoistIterator> |
1820 | + </ProbeIndexPointValueIterator> |
1821 | </ForVariable> |
1822 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
1823 | - <HoistIterator> |
1824 | - <CastIterator type="xs:string"> |
1825 | - <PromoteIterator type="xs:anyAtomicType"> |
1826 | - <FnDataIterator> |
1827 | - <ChildAxisIterator test kind="match_text_test" qname="*" typename="*" nill allowed="0"> |
1828 | - <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="*"> |
1829 | - <ForVarIterator varname="test"/> |
1830 | - </TreatIterator> |
1831 | - </ChildAxisIterator> |
1832 | - </FnDataIterator> |
1833 | - </PromoteIterator> |
1834 | - </CastIterator> |
1835 | - </HoistIterator> |
1836 | - </LetVariable> |
1837 | - <LetVariable name="test_old" materialize="true"> |
1838 | - <flwor::FLWORIterator> |
1839 | - <ForVariable name="$$dot"> |
1840 | - <ProbeIndexPointValueIterator> |
1841 | - <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
1842 | - <UnhoistIterator> |
1843 | - <LetVarIterator varname="$$opt_temp_0"/> |
1844 | - </UnhoistIterator> |
1845 | - </ProbeIndexPointValueIterator> |
1846 | - </ForVariable> |
1847 | - <ReturnClause> |
1848 | - <ForVarIterator varname="$$dot"/> |
1849 | - </ReturnClause> |
1850 | - </flwor::FLWORIterator> |
1851 | - </LetVariable> |
1852 | - <LetVariable name="qt_old" materialize="true"> |
1853 | - <UnhoistIterator> |
1854 | - <LetVarIterator varname="$$opt_temp_1"/> |
1855 | - </UnhoistIterator> |
1856 | - </LetVariable> |
1857 | <ReturnClause> |
1858 | - <SingletonIterator value="xs:integer(1)"/> |
1859 | + <ForVarIterator varname="$$dot"/> |
1860 | </ReturnClause> |
1861 | </flwor::FLWORIterator> |
1862 | - </SequentialIterator> |
1863 | - </ReturnClause> |
1864 | - </flwor::FLWORIterator> |
1865 | + </LetVariable> |
1866 | + <LetVariable name="qt_old" materialize="true"> |
1867 | + <UnhoistIterator> |
1868 | + <LetVarIterator varname="$$opt_temp_1"/> |
1869 | + </UnhoistIterator> |
1870 | + </LetVariable> |
1871 | + <ReturnClause> |
1872 | + <SingletonIterator value="xs:integer(1)"/> |
1873 | + </ReturnClause> |
1874 | + </flwor::FLWORIterator> |
1875 | + </SequentialIterator> |
1876 | </SequentialIterator> |
1877 | |
1878 | |
1879 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/misc/hoist4.iter' |
1880 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/misc/hoist4.iter 2012-05-03 12:31:51 +0000 |
1881 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/misc/hoist4.iter 2012-06-14 14:31:26 +0000 |
1882 | @@ -83,27 +83,23 @@ |
1883 | </GenericArithIterator_AddOperation> |
1884 | </HoistIterator> |
1885 | </LetVariable> |
1886 | + <ForVariable name="c"> |
1887 | + <OpToIterator> |
1888 | + <SingletonIterator value="xs:integer(1)"/> |
1889 | + <PromoteIterator type="xs:integer"> |
1890 | + <FnDataIterator> |
1891 | + <CtxVarIterator varid="2" varname="x" varkind="local"/> |
1892 | + </FnDataIterator> |
1893 | + </PromoteIterator> |
1894 | + </OpToIterator> |
1895 | + </ForVariable> |
1896 | <ReturnClause> |
1897 | - <flwor::FLWORIterator> |
1898 | - <ForVariable name="c"> |
1899 | - <OpToIterator> |
1900 | - <SingletonIterator value="xs:integer(1)"/> |
1901 | - <PromoteIterator type="xs:integer"> |
1902 | - <FnDataIterator> |
1903 | - <CtxVarIterator varid="2" varname="x" varkind="local"/> |
1904 | - </FnDataIterator> |
1905 | - </PromoteIterator> |
1906 | - </OpToIterator> |
1907 | - </ForVariable> |
1908 | - <ReturnClause> |
1909 | - <GenericArithIterator_AddOperation> |
1910 | - <UnhoistIterator> |
1911 | - <LetVarIterator varname="$$opt_temp_0"/> |
1912 | - </UnhoistIterator> |
1913 | - <ForVarIterator varname="c"/> |
1914 | - </GenericArithIterator_AddOperation> |
1915 | - </ReturnClause> |
1916 | - </flwor::FLWORIterator> |
1917 | + <GenericArithIterator_AddOperation> |
1918 | + <UnhoistIterator> |
1919 | + <LetVarIterator varname="$$opt_temp_0"/> |
1920 | + </UnhoistIterator> |
1921 | + <ForVarIterator varname="c"/> |
1922 | + </GenericArithIterator_AddOperation> |
1923 | </ReturnClause> |
1924 | </flwor::FLWORIterator> |
1925 | </SequentialIterator> |
1926 | |
1927 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9198.iter' |
1928 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9198.iter 2012-05-03 12:31:51 +0000 |
1929 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9198.iter 2012-06-14 14:31:26 +0000 |
1930 | @@ -1,33 +1,33 @@ |
1931 | Iterator tree for main query: |
1932 | -<flwor::FLWORIterator> |
1933 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
1934 | - <HoistIterator> |
1935 | - <OpToIterator> |
1936 | - <SingletonIterator value="xs:integer(1)"/> |
1937 | - <SingletonIterator value="xs:integer(2)"/> |
1938 | - </OpToIterator> |
1939 | - </HoistIterator> |
1940 | - </LetVariable> |
1941 | - <ReturnClause> |
1942 | - <SequentialIterator> |
1943 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1944 | - <flwor::FLWORIterator> |
1945 | - <ForVariable name="$$opt_temp_2"> |
1946 | - <UnhoistIterator> |
1947 | - <LetVarIterator varname="$$opt_temp_0"/> |
1948 | - </UnhoistIterator> |
1949 | - </ForVariable> |
1950 | - <ReturnClause> |
1951 | - <ValueIndexEntryBuilderIterator> |
1952 | - <ForVarIterator varname="$$opt_temp_2"/> |
1953 | - <ForVarIterator varname="$$opt_temp_2"/> |
1954 | - </ValueIndexEntryBuilderIterator> |
1955 | - </ReturnClause> |
1956 | - </flwor::FLWORIterator> |
1957 | - </CreateInternalIndexIterator> |
1958 | - <ElementIterator copyInputNodes="false"> |
1959 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1960 | - <EnclosedIterator attr_cont="false"> |
1961 | +<ElementIterator copyInputNodes="false"> |
1962 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
1963 | + <EnclosedIterator attr_cont="false"> |
1964 | + <flwor::FLWORIterator> |
1965 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
1966 | + <HoistIterator> |
1967 | + <OpToIterator> |
1968 | + <SingletonIterator value="xs:integer(1)"/> |
1969 | + <SingletonIterator value="xs:integer(2)"/> |
1970 | + </OpToIterator> |
1971 | + </HoistIterator> |
1972 | + </LetVariable> |
1973 | + <ReturnClause> |
1974 | + <SequentialIterator> |
1975 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
1976 | + <flwor::FLWORIterator> |
1977 | + <ForVariable name="$$opt_temp_2"> |
1978 | + <UnhoistIterator> |
1979 | + <LetVarIterator varname="$$opt_temp_0"/> |
1980 | + </UnhoistIterator> |
1981 | + </ForVariable> |
1982 | + <ReturnClause> |
1983 | + <ValueIndexEntryBuilderIterator> |
1984 | + <ForVarIterator varname="$$opt_temp_2"/> |
1985 | + <ForVarIterator varname="$$opt_temp_2"/> |
1986 | + </ValueIndexEntryBuilderIterator> |
1987 | + </ReturnClause> |
1988 | + </flwor::FLWORIterator> |
1989 | + </CreateInternalIndexIterator> |
1990 | <flwor::FLWORIterator> |
1991 | <ForVariable name="book"> |
1992 | <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
1993 | @@ -67,9 +67,9 @@ |
1994 | </ElementIterator> |
1995 | </ReturnClause> |
1996 | </flwor::FLWORIterator> |
1997 | - </EnclosedIterator> |
1998 | - </ElementIterator> |
1999 | - </SequentialIterator> |
2000 | - </ReturnClause> |
2001 | -</flwor::FLWORIterator> |
2002 | + </SequentialIterator> |
2003 | + </ReturnClause> |
2004 | + </flwor::FLWORIterator> |
2005 | + </EnclosedIterator> |
2006 | +</ElementIterator> |
2007 | |
2008 | |
2009 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9199.iter' |
2010 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9199.iter 2012-05-03 12:31:51 +0000 |
2011 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9199.iter 2012-06-14 14:31:26 +0000 |
2012 | @@ -1,33 +1,33 @@ |
2013 | Iterator tree for main query: |
2014 | -<flwor::FLWORIterator> |
2015 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
2016 | - <HoistIterator> |
2017 | - <OpToIterator> |
2018 | - <SingletonIterator value="xs:integer(1)"/> |
2019 | - <SingletonIterator value="xs:integer(2)"/> |
2020 | - </OpToIterator> |
2021 | - </HoistIterator> |
2022 | - </LetVariable> |
2023 | - <ReturnClause> |
2024 | - <SequentialIterator> |
2025 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
2026 | - <flwor::FLWORIterator> |
2027 | - <ForVariable name="$$opt_temp_2"> |
2028 | - <UnhoistIterator> |
2029 | - <LetVarIterator varname="$$opt_temp_0"/> |
2030 | - </UnhoistIterator> |
2031 | - </ForVariable> |
2032 | - <ReturnClause> |
2033 | - <ValueIndexEntryBuilderIterator> |
2034 | - <ForVarIterator varname="$$opt_temp_2"/> |
2035 | - <ForVarIterator varname="$$opt_temp_2"/> |
2036 | - </ValueIndexEntryBuilderIterator> |
2037 | - </ReturnClause> |
2038 | - </flwor::FLWORIterator> |
2039 | - </CreateInternalIndexIterator> |
2040 | - <ElementIterator copyInputNodes="false"> |
2041 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
2042 | - <EnclosedIterator attr_cont="false"> |
2043 | +<ElementIterator copyInputNodes="false"> |
2044 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
2045 | + <EnclosedIterator attr_cont="false"> |
2046 | + <flwor::FLWORIterator> |
2047 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
2048 | + <HoistIterator> |
2049 | + <OpToIterator> |
2050 | + <SingletonIterator value="xs:integer(1)"/> |
2051 | + <SingletonIterator value="xs:integer(2)"/> |
2052 | + </OpToIterator> |
2053 | + </HoistIterator> |
2054 | + </LetVariable> |
2055 | + <ReturnClause> |
2056 | + <SequentialIterator> |
2057 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
2058 | + <flwor::FLWORIterator> |
2059 | + <ForVariable name="$$opt_temp_2"> |
2060 | + <UnhoistIterator> |
2061 | + <LetVarIterator varname="$$opt_temp_0"/> |
2062 | + </UnhoistIterator> |
2063 | + </ForVariable> |
2064 | + <ReturnClause> |
2065 | + <ValueIndexEntryBuilderIterator> |
2066 | + <ForVarIterator varname="$$opt_temp_2"/> |
2067 | + <ForVarIterator varname="$$opt_temp_2"/> |
2068 | + </ValueIndexEntryBuilderIterator> |
2069 | + </ReturnClause> |
2070 | + </flwor::FLWORIterator> |
2071 | + </CreateInternalIndexIterator> |
2072 | <flwor::FLWORIterator> |
2073 | <ForVariable name="book"> |
2074 | <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
2075 | @@ -67,9 +67,9 @@ |
2076 | </ElementIterator> |
2077 | </ReturnClause> |
2078 | </flwor::FLWORIterator> |
2079 | - </EnclosedIterator> |
2080 | - </ElementIterator> |
2081 | - </SequentialIterator> |
2082 | - </ReturnClause> |
2083 | -</flwor::FLWORIterator> |
2084 | + </SequentialIterator> |
2085 | + </ReturnClause> |
2086 | + </flwor::FLWORIterator> |
2087 | + </EnclosedIterator> |
2088 | +</ElementIterator> |
2089 | |
2090 | |
2091 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9212.iter' |
2092 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9212.iter 2012-05-03 12:31:51 +0000 |
2093 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9212.iter 2012-06-14 14:31:26 +0000 |
2094 | @@ -1,38 +1,38 @@ |
2095 | Iterator tree for main query: |
2096 | -<flwor::FLWORIterator> |
2097 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
2098 | - <HoistIterator> |
2099 | - <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
2100 | - <FnDocIterator> |
2101 | - <SingletonIterator value="xs:string(books.xml)"/> |
2102 | - </FnDocIterator> |
2103 | - </DescendantAxisIterator> |
2104 | - </HoistIterator> |
2105 | - </LetVariable> |
2106 | - <ReturnClause> |
2107 | - <SequentialIterator> |
2108 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
2109 | - <flwor::FLWORIterator> |
2110 | - <ForVariable name="$$opt_temp_1"> |
2111 | - <UnhoistIterator> |
2112 | - <LetVarIterator varname="$$opt_temp_0"/> |
2113 | - </UnhoistIterator> |
2114 | - </ForVariable> |
2115 | - <ReturnClause> |
2116 | - <ValueIndexEntryBuilderIterator> |
2117 | - <ForVarIterator varname="$$opt_temp_1"/> |
2118 | - <FnCountIterator> |
2119 | - <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
2120 | +<ElementIterator copyInputNodes="false"> |
2121 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
2122 | + <EnclosedIterator attr_cont="false"> |
2123 | + <flwor::FLWORIterator> |
2124 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
2125 | + <HoistIterator> |
2126 | + <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
2127 | + <FnDocIterator> |
2128 | + <SingletonIterator value="xs:string(books.xml)"/> |
2129 | + </FnDocIterator> |
2130 | + </DescendantAxisIterator> |
2131 | + </HoistIterator> |
2132 | + </LetVariable> |
2133 | + <ReturnClause> |
2134 | + <SequentialIterator> |
2135 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
2136 | + <flwor::FLWORIterator> |
2137 | + <ForVariable name="$$opt_temp_1"> |
2138 | + <UnhoistIterator> |
2139 | + <LetVarIterator varname="$$opt_temp_0"/> |
2140 | + </UnhoistIterator> |
2141 | + </ForVariable> |
2142 | + <ReturnClause> |
2143 | + <ValueIndexEntryBuilderIterator> |
2144 | <ForVarIterator varname="$$opt_temp_1"/> |
2145 | - </ChildAxisIterator> |
2146 | - </FnCountIterator> |
2147 | - </ValueIndexEntryBuilderIterator> |
2148 | - </ReturnClause> |
2149 | - </flwor::FLWORIterator> |
2150 | - </CreateInternalIndexIterator> |
2151 | - <ElementIterator copyInputNodes="false"> |
2152 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
2153 | - <EnclosedIterator attr_cont="false"> |
2154 | + <FnCountIterator> |
2155 | + <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
2156 | + <ForVarIterator varname="$$opt_temp_1"/> |
2157 | + </ChildAxisIterator> |
2158 | + </FnCountIterator> |
2159 | + </ValueIndexEntryBuilderIterator> |
2160 | + </ReturnClause> |
2161 | + </flwor::FLWORIterator> |
2162 | + </CreateInternalIndexIterator> |
2163 | <flwor::FLWORIterator> |
2164 | <ForVariable name="book"> |
2165 | <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
2166 | @@ -75,9 +75,9 @@ |
2167 | </ElementIterator> |
2168 | </ReturnClause> |
2169 | </flwor::FLWORIterator> |
2170 | - </EnclosedIterator> |
2171 | - </ElementIterator> |
2172 | - </SequentialIterator> |
2173 | - </ReturnClause> |
2174 | -</flwor::FLWORIterator> |
2175 | + </SequentialIterator> |
2176 | + </ReturnClause> |
2177 | + </flwor::FLWORIterator> |
2178 | + </EnclosedIterator> |
2179 | +</ElementIterator> |
2180 | |
2181 | |
2182 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9389.iter' |
2183 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9389.iter 2012-05-03 12:31:51 +0000 |
2184 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9389.iter 2012-06-14 14:31:26 +0000 |
2185 | @@ -1,38 +1,38 @@ |
2186 | Iterator tree for main query: |
2187 | -<flwor::FLWORIterator> |
2188 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
2189 | - <HoistIterator> |
2190 | - <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
2191 | - <FnDocIterator> |
2192 | - <SingletonIterator value="xs:string(books.xml)"/> |
2193 | - </FnDocIterator> |
2194 | - </DescendantAxisIterator> |
2195 | - </HoistIterator> |
2196 | - </LetVariable> |
2197 | - <ReturnClause> |
2198 | - <SequentialIterator> |
2199 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
2200 | - <flwor::FLWORIterator> |
2201 | - <ForVariable name="$$opt_temp_1"> |
2202 | - <UnhoistIterator> |
2203 | - <LetVarIterator varname="$$opt_temp_0"/> |
2204 | - </UnhoistIterator> |
2205 | - </ForVariable> |
2206 | - <ReturnClause> |
2207 | - <ValueIndexEntryBuilderIterator> |
2208 | - <ForVarIterator varname="$$opt_temp_1"/> |
2209 | - <FnCountIterator> |
2210 | - <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
2211 | +<ElementIterator copyInputNodes="false"> |
2212 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
2213 | + <EnclosedIterator attr_cont="false"> |
2214 | + <flwor::FLWORIterator> |
2215 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
2216 | + <HoistIterator> |
2217 | + <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
2218 | + <FnDocIterator> |
2219 | + <SingletonIterator value="xs:string(books.xml)"/> |
2220 | + </FnDocIterator> |
2221 | + </DescendantAxisIterator> |
2222 | + </HoistIterator> |
2223 | + </LetVariable> |
2224 | + <ReturnClause> |
2225 | + <SequentialIterator> |
2226 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
2227 | + <flwor::FLWORIterator> |
2228 | + <ForVariable name="$$opt_temp_1"> |
2229 | + <UnhoistIterator> |
2230 | + <LetVarIterator varname="$$opt_temp_0"/> |
2231 | + </UnhoistIterator> |
2232 | + </ForVariable> |
2233 | + <ReturnClause> |
2234 | + <ValueIndexEntryBuilderIterator> |
2235 | <ForVarIterator varname="$$opt_temp_1"/> |
2236 | - </ChildAxisIterator> |
2237 | - </FnCountIterator> |
2238 | - </ValueIndexEntryBuilderIterator> |
2239 | - </ReturnClause> |
2240 | - </flwor::FLWORIterator> |
2241 | - </CreateInternalIndexIterator> |
2242 | - <ElementIterator copyInputNodes="false"> |
2243 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
2244 | - <EnclosedIterator attr_cont="false"> |
2245 | + <FnCountIterator> |
2246 | + <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
2247 | + <ForVarIterator varname="$$opt_temp_1"/> |
2248 | + </ChildAxisIterator> |
2249 | + </FnCountIterator> |
2250 | + </ValueIndexEntryBuilderIterator> |
2251 | + </ReturnClause> |
2252 | + </flwor::FLWORIterator> |
2253 | + </CreateInternalIndexIterator> |
2254 | <flwor::FLWORIterator> |
2255 | <ForVariable name="anzahl"> |
2256 | <OpToIterator> |
2257 | @@ -62,9 +62,9 @@ |
2258 | </ElementIterator> |
2259 | </ReturnClause> |
2260 | </flwor::FLWORIterator> |
2261 | - </EnclosedIterator> |
2262 | - </ElementIterator> |
2263 | - </SequentialIterator> |
2264 | - </ReturnClause> |
2265 | -</flwor::FLWORIterator> |
2266 | + </SequentialIterator> |
2267 | + </ReturnClause> |
2268 | + </flwor::FLWORIterator> |
2269 | + </EnclosedIterator> |
2270 | +</ElementIterator> |
2271 | |
2272 | |
2273 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9392.iter' |
2274 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9392.iter 2012-05-03 12:31:51 +0000 |
2275 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9392.iter 2012-06-14 14:31:26 +0000 |
2276 | @@ -1,45 +1,45 @@ |
2277 | Iterator tree for main query: |
2278 | -<flwor::FLWORIterator> |
2279 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
2280 | - <HoistIterator> |
2281 | - <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
2282 | - <FnDocIterator> |
2283 | - <SingletonIterator value="xs:string(books.xml)"/> |
2284 | - </FnDocIterator> |
2285 | - </DescendantAxisIterator> |
2286 | - </HoistIterator> |
2287 | - </LetVariable> |
2288 | - <ReturnClause> |
2289 | - <SequentialIterator> |
2290 | - <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
2291 | - <flwor::FLWORIterator> |
2292 | - <ForVariable name="$$opt_temp_1"> |
2293 | - <UnhoistIterator> |
2294 | - <LetVarIterator varname="$$opt_temp_0"/> |
2295 | - </UnhoistIterator> |
2296 | - </ForVariable> |
2297 | - <ReturnClause> |
2298 | - <ValueIndexEntryBuilderIterator> |
2299 | - <ForVarIterator varname="$$opt_temp_1"/> |
2300 | - <FnCountIterator> |
2301 | - <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
2302 | - <ForVarIterator varname="$$opt_temp_1"/> |
2303 | - </ChildAxisIterator> |
2304 | - </FnCountIterator> |
2305 | - </ValueIndexEntryBuilderIterator> |
2306 | - </ReturnClause> |
2307 | - </flwor::FLWORIterator> |
2308 | - </CreateInternalIndexIterator> |
2309 | - <ElementIterator copyInputNodes="false"> |
2310 | - <SingletonIterator value="xs:QName(,,karteikasten)"/> |
2311 | - <EnclosedIterator attr_cont="false"> |
2312 | - <ElementIterator copyInputNodes="false"> |
2313 | - <SingletonIterator value="xs:QName(,,gruppe)"/> |
2314 | - <AttributeIterator qname="xs:QName(,,anzahl)"> |
2315 | - <FnDataIterator> |
2316 | - <FnConcatIterator> |
2317 | - <SingletonIterator value="xs:string( )"/> |
2318 | - <EnclosedIterator attr_cont="true"> |
2319 | +<ElementIterator copyInputNodes="false"> |
2320 | + <SingletonIterator value="xs:QName(,,karteikasten)"/> |
2321 | + <EnclosedIterator attr_cont="false"> |
2322 | + <ElementIterator copyInputNodes="false"> |
2323 | + <SingletonIterator value="xs:QName(,,gruppe)"/> |
2324 | + <AttributeIterator qname="xs:QName(,,anzahl)"> |
2325 | + <FnDataIterator> |
2326 | + <FnConcatIterator> |
2327 | + <SingletonIterator value="xs:string( )"/> |
2328 | + <EnclosedIterator attr_cont="true"> |
2329 | + <flwor::FLWORIterator> |
2330 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
2331 | + <HoistIterator> |
2332 | + <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0"> |
2333 | + <FnDocIterator> |
2334 | + <SingletonIterator value="xs:string(books.xml)"/> |
2335 | + </FnDocIterator> |
2336 | + </DescendantAxisIterator> |
2337 | + </HoistIterator> |
2338 | + </LetVariable> |
2339 | + <ReturnClause> |
2340 | + <SequentialIterator> |
2341 | + <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)"> |
2342 | + <flwor::FLWORIterator> |
2343 | + <ForVariable name="$$opt_temp_1"> |
2344 | + <UnhoistIterator> |
2345 | + <LetVarIterator varname="$$opt_temp_0"/> |
2346 | + </UnhoistIterator> |
2347 | + </ForVariable> |
2348 | + <ReturnClause> |
2349 | + <ValueIndexEntryBuilderIterator> |
2350 | + <ForVarIterator varname="$$opt_temp_1"/> |
2351 | + <FnCountIterator> |
2352 | + <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0"> |
2353 | + <ForVarIterator varname="$$opt_temp_1"/> |
2354 | + </ChildAxisIterator> |
2355 | + </FnCountIterator> |
2356 | + </ValueIndexEntryBuilderIterator> |
2357 | + </ReturnClause> |
2358 | + </flwor::FLWORIterator> |
2359 | + </CreateInternalIndexIterator> |
2360 | <flwor::FLWORIterator> |
2361 | <ForVariable name="anzahl"> |
2362 | <OpToIterator> |
2363 | @@ -57,15 +57,15 @@ |
2364 | <ForVarIterator varname="anzahl"/> |
2365 | </ReturnClause> |
2366 | </flwor::FLWORIterator> |
2367 | - </EnclosedIterator> |
2368 | - </FnConcatIterator> |
2369 | - </FnDataIterator> |
2370 | - </AttributeIterator> |
2371 | - <FnConcatIterator/> |
2372 | - </ElementIterator> |
2373 | - </EnclosedIterator> |
2374 | - </ElementIterator> |
2375 | - </SequentialIterator> |
2376 | - </ReturnClause> |
2377 | -</flwor::FLWORIterator> |
2378 | + </SequentialIterator> |
2379 | + </ReturnClause> |
2380 | + </flwor::FLWORIterator> |
2381 | + </EnclosedIterator> |
2382 | + </FnConcatIterator> |
2383 | + </FnDataIterator> |
2384 | + </AttributeIterator> |
2385 | + <FnConcatIterator/> |
2386 | + </ElementIterator> |
2387 | + </EnclosedIterator> |
2388 | +</ElementIterator> |
2389 | |
2390 | |
2391 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-idx4.iter' |
2392 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-idx4.iter 2012-05-03 12:31:51 +0000 |
2393 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-idx4.iter 2012-06-14 14:31:26 +0000 |
2394 | @@ -76,89 +76,85 @@ |
2395 | </TreatIterator> |
2396 | </HoistIterator> |
2397 | </LetVariable> |
2398 | + <ForVariable name="prefix"> |
2399 | + <flwor::FLWORIterator> |
2400 | + <ForVariable name="prefixE"> |
2401 | + <InScopePrefixesIterator> |
2402 | + <TreatIterator quant=""> |
2403 | + <LetVarIterator varname="e"/> |
2404 | + </TreatIterator> |
2405 | + </InScopePrefixesIterator> |
2406 | + </ForVariable> |
2407 | + <LetVariable name="$$opt_temp_1" materialize="true"> |
2408 | + <HoistIterator> |
2409 | + <NamespaceUriForPrefixIterator> |
2410 | + <ForVarIterator varname="prefixE"/> |
2411 | + <UnhoistIterator> |
2412 | + <LetVarIterator varname="$$opt_temp_0"/> |
2413 | + </UnhoistIterator> |
2414 | + </NamespaceUriForPrefixIterator> |
2415 | + </HoistIterator> |
2416 | + </LetVariable> |
2417 | + <ForVariable name="prefixP"> |
2418 | + <ProbeIndexPointValueIterator> |
2419 | + <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
2420 | + <ForVarIterator varname="prefixE"/> |
2421 | + </ProbeIndexPointValueIterator> |
2422 | + </ForVariable> |
2423 | + <WhereClause> |
2424 | + <FnBooleanIterator> |
2425 | + <CompareIterator> |
2426 | + <UnhoistIterator> |
2427 | + <LetVarIterator varname="$$opt_temp_1"/> |
2428 | + </UnhoistIterator> |
2429 | + <NamespaceUriForPrefixIterator> |
2430 | + <ForVarIterator varname="prefixP"/> |
2431 | + <UnhoistIterator> |
2432 | + <ForVarIterator varname="$$opt_temp_2"/> |
2433 | + </UnhoistIterator> |
2434 | + </NamespaceUriForPrefixIterator> |
2435 | + </CompareIterator> |
2436 | + </FnBooleanIterator> |
2437 | + </WhereClause> |
2438 | + <ReturnClause> |
2439 | + <ForVarIterator varname="prefixE"/> |
2440 | + </ReturnClause> |
2441 | + </flwor::FLWORIterator> |
2442 | + </ForVariable> |
2443 | <ReturnClause> |
2444 | - <flwor::FLWORIterator> |
2445 | - <ForVariable name="prefix"> |
2446 | - <flwor::FLWORIterator> |
2447 | - <ForVariable name="prefixE"> |
2448 | - <InScopePrefixesIterator> |
2449 | - <TreatIterator quant=""> |
2450 | - <LetVarIterator varname="e"/> |
2451 | - </TreatIterator> |
2452 | - </InScopePrefixesIterator> |
2453 | - </ForVariable> |
2454 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
2455 | - <HoistIterator> |
2456 | - <NamespaceUriForPrefixIterator> |
2457 | - <ForVarIterator varname="prefixE"/> |
2458 | - <UnhoistIterator> |
2459 | - <LetVarIterator varname="$$opt_temp_0"/> |
2460 | - </UnhoistIterator> |
2461 | - </NamespaceUriForPrefixIterator> |
2462 | - </HoistIterator> |
2463 | - </LetVariable> |
2464 | - <ForVariable name="prefixP"> |
2465 | - <ProbeIndexPointValueIterator> |
2466 | - <SingletonIterator value="xs:QName(,,tempIndex0)"/> |
2467 | - <ForVarIterator varname="prefixE"/> |
2468 | - </ProbeIndexPointValueIterator> |
2469 | - </ForVariable> |
2470 | - <WhereClause> |
2471 | - <FnBooleanIterator> |
2472 | - <CompareIterator> |
2473 | - <UnhoistIterator> |
2474 | - <LetVarIterator varname="$$opt_temp_1"/> |
2475 | - </UnhoistIterator> |
2476 | + <FnConcatIterator> |
2477 | + <SingletonIterator value="xs:string( )"/> |
2478 | + <ElementIterator copyInputNodes="false"> |
2479 | + <SingletonIterator value="xs:QName(,,span)"/> |
2480 | + <AttributeIterator qname="xs:QName(,,class)"> |
2481 | + <SingletonIterator value="xs:string(ns)"/> |
2482 | + </AttributeIterator> |
2483 | + <EnclosedIterator attr_cont="false"> |
2484 | + <FnConcatIterator> |
2485 | + <ConcatStrIterator> |
2486 | + <SingletonIterator value="xs:string(xmlns:)"/> |
2487 | + <ForVarIterator varname="prefix"/> |
2488 | + <SingletonIterator value="xs:string(=")"/> |
2489 | + </ConcatStrIterator> |
2490 | + <ElementIterator copyInputNodes="false"> |
2491 | + <SingletonIterator value="xs:QName(,,span)"/> |
2492 | + <AttributeIterator qname="xs:QName(,,class)"> |
2493 | + <SingletonIterator value="xs:string(nsUri)"/> |
2494 | + </AttributeIterator> |
2495 | + <EnclosedIterator attr_cont="false"> |
2496 | <NamespaceUriForPrefixIterator> |
2497 | - <ForVarIterator varname="prefixP"/> |
2498 | + <ForVarIterator varname="prefix"/> |
2499 | <UnhoistIterator> |
2500 | - <ForVarIterator varname="$$opt_temp_2"/> |
2501 | + <ForVarIterator varname="$$opt_temp_3"/> |
2502 | </UnhoistIterator> |
2503 | </NamespaceUriForPrefixIterator> |
2504 | - </CompareIterator> |
2505 | - </FnBooleanIterator> |
2506 | - </WhereClause> |
2507 | - <ReturnClause> |
2508 | - <ForVarIterator varname="prefixE"/> |
2509 | - </ReturnClause> |
2510 | - </flwor::FLWORIterator> |
2511 | - </ForVariable> |
2512 | - <ReturnClause> |
2513 | - <FnConcatIterator> |
2514 | - <SingletonIterator value="xs:string( )"/> |
2515 | - <ElementIterator copyInputNodes="false"> |
2516 | - <SingletonIterator value="xs:QName(,,span)"/> |
2517 | - <AttributeIterator qname="xs:QName(,,class)"> |
2518 | - <SingletonIterator value="xs:string(ns)"/> |
2519 | - </AttributeIterator> |
2520 | - <EnclosedIterator attr_cont="false"> |
2521 | - <FnConcatIterator> |
2522 | - <ConcatStrIterator> |
2523 | - <SingletonIterator value="xs:string(xmlns:)"/> |
2524 | - <ForVarIterator varname="prefix"/> |
2525 | - <SingletonIterator value="xs:string(=")"/> |
2526 | - </ConcatStrIterator> |
2527 | - <ElementIterator copyInputNodes="false"> |
2528 | - <SingletonIterator value="xs:QName(,,span)"/> |
2529 | - <AttributeIterator qname="xs:QName(,,class)"> |
2530 | - <SingletonIterator value="xs:string(nsUri)"/> |
2531 | - </AttributeIterator> |
2532 | - <EnclosedIterator attr_cont="false"> |
2533 | - <NamespaceUriForPrefixIterator> |
2534 | - <ForVarIterator varname="prefix"/> |
2535 | - <UnhoistIterator> |
2536 | - <ForVarIterator varname="$$opt_temp_3"/> |
2537 | - </UnhoistIterator> |
2538 | - </NamespaceUriForPrefixIterator> |
2539 | - </EnclosedIterator> |
2540 | - </ElementIterator> |
2541 | - <SingletonIterator value="xs:string(")"/> |
2542 | - </FnConcatIterator> |
2543 | - </EnclosedIterator> |
2544 | - </ElementIterator> |
2545 | - </FnConcatIterator> |
2546 | - </ReturnClause> |
2547 | - </flwor::FLWORIterator> |
2548 | + </EnclosedIterator> |
2549 | + </ElementIterator> |
2550 | + <SingletonIterator value="xs:string(")"/> |
2551 | + </FnConcatIterator> |
2552 | + </EnclosedIterator> |
2553 | + </ElementIterator> |
2554 | + </FnConcatIterator> |
2555 | </ReturnClause> |
2556 | </flwor::FLWORIterator> |
2557 | </SequentialIterator> |
2558 | |
2559 | === modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/xray/ppm_10.iter' |
2560 | --- test/rbkt/ExpCompilerResults/IterPlan/zorba/xray/ppm_10.iter 2012-05-03 12:31:51 +0000 |
2561 | +++ test/rbkt/ExpCompilerResults/IterPlan/zorba/xray/ppm_10.iter 2012-06-14 14:31:26 +0000 |
2562 | @@ -354,124 +354,120 @@ |
2563 | </TreatIterator> |
2564 | </UDFunctionCallIterator> |
2565 | </CtxVarDeclareIterator> |
2566 | - <flwor::FLWORIterator> |
2567 | - <LetVariable name="$$opt_temp_0" materialize="true"> |
2568 | - <HoistIterator> |
2569 | - <OpToIterator> |
2570 | - <SingletonIterator value="xs:integer(1)"/> |
2571 | - <CtxVarIterator varid="2" varname="width" varkind="global"/> |
2572 | - </OpToIterator> |
2573 | - </HoistIterator> |
2574 | - </LetVariable> |
2575 | - <LetVariable name="$$opt_temp_1" materialize="true"> |
2576 | - <HoistIterator> |
2577 | - <TreatIterator type="[NodeXQType elementNode content=[XQType ANY_TYPE_KIND*]]" quant=""> |
2578 | - <CtxVarIterator varid="4" varname="scene" varkind="global"/> |
2579 | - </TreatIterator> |
2580 | - </HoistIterator> |
2581 | - </LetVariable> |
2582 | - <ReturnClause> |
2583 | + <FnConcatIterator> |
2584 | + <StringJoinIterator> |
2585 | <FnConcatIterator> |
2586 | + <SingletonIterator value="xs:string(P3)"/> |
2587 | <StringJoinIterator> |
2588 | <FnConcatIterator> |
2589 | - <SingletonIterator value="xs:string(P3)"/> |
2590 | + <FnStringIterator> |
2591 | + <CtxVarIterator varid="2" varname="width" varkind="global"/> |
2592 | + </FnStringIterator> |
2593 | + <FnStringIterator> |
2594 | + <CtxVarIterator varid="3" varname="height" varkind="global"/> |
2595 | + </FnStringIterator> |
2596 | + </FnConcatIterator> |
2597 | + <SingletonIterator value="xs:string( )"/> |
2598 | + </StringJoinIterator> |
2599 | + <SingletonIterator value="xs:string(255)"/> |
2600 | + <flwor::FLWORIterator> |
2601 | + <LetVariable name="$$opt_temp_1" materialize="true"> |
2602 | + <HoistIterator> |
2603 | + <TreatIterator type="[NodeXQType elementNode content=[XQType ANY_TYPE_KIND*]]" quant=""> |
2604 | + <CtxVarIterator varid="4" varname="scene" varkind="global"/> |
2605 | + </TreatIterator> |
2606 | + </HoistIterator> |
2607 | + </LetVariable> |
2608 | + <LetVariable name="$$opt_temp_0" materialize="true"> |
2609 | + <HoistIterator> |
2610 | + <OpToIterator> |
2611 | + <SingletonIterator value="xs:integer(1)"/> |
2612 | + <CtxVarIterator varid="2" varname="width" varkind="global"/> |
2613 | + </OpToIterator> |
2614 | + </HoistIterator> |
2615 | + </LetVariable> |
2616 | + <ForVariable name="aspect-ratio"> |
2617 | + <SpecificNumArithIterator_DivideOperation_DECIMAL> |
2618 | + <CtxVarIterator varid="2" varname="width" varkind="global"/> |
2619 | + <CtxVarIterator varid="3" varname="height" varkind="global"/> |
2620 | + </SpecificNumArithIterator_DivideOperation_DECIMAL> |
2621 | + </ForVariable> |
2622 | + <ForVariable name="y"> |
2623 | + <OpToIterator> |
2624 | + <SingletonIterator value="xs:integer(1)"/> |
2625 | + <CtxVarIterator varid="3" varname="height" varkind="global"/> |
2626 | + </OpToIterator> |
2627 | + </ForVariable> |
2628 | + <ForVariable name="y-recentered"> |
2629 | + <SpecificNumArithIterator_AddOperation_DECIMAL> |
2630 | + <SpecificNumArithIterator_DivideOperation_DECIMAL> |
2631 | + <OpNumericUnaryIterator> |
2632 | + <ForVarIterator varname="y"/> |
2633 | + </OpNumericUnaryIterator> |
2634 | + <CtxVarIterator varid="3" varname="height" varkind="global"/> |
2635 | + </SpecificNumArithIterator_DivideOperation_DECIMAL> |
2636 | + <SingletonIterator value="xs:decimal(0.5)"/> |
2637 | + </SpecificNumArithIterator_AddOperation_DECIMAL> |
2638 | + </ForVariable> |
2639 | + <LetVariable name="$$opt_temp_2" materialize="true"> |
2640 | + <HoistIterator> |
2641 | + <PromoteIterator type="xs:double"> |
2642 | + <ForVarIterator varname="y-recentered"/> |
2643 | + </PromoteIterator> |
2644 | + </HoistIterator> |
2645 | + </LetVariable> |
2646 | + <ForVariable name="x"> |
2647 | + <UnhoistIterator> |
2648 | + <LetVarIterator varname="$$opt_temp_0"/> |
2649 | + </UnhoistIterator> |
2650 | + </ForVariable> |
2651 | + <ReturnClause> |
2652 | <StringJoinIterator> |
2653 | - <FnConcatIterator> |
2654 | - <FnStringIterator> |
2655 | - <CtxVarIterator varid="2" varname="width" varkind="global"/> |
2656 | - </FnStringIterator> |
2657 | - <FnStringIterator> |
2658 | - <CtxVarIterator varid="3" varname="height" varkind="global"/> |
2659 | - </FnStringIterator> |
2660 | - </FnConcatIterator> |
2661 | + <flwor::FLWORIterator> |
2662 | + <ForVariable name="channel"> |
2663 | + <UDFunctionCallIterator> |
2664 | + <UnhoistIterator> |
2665 | + <LetVarIterator varname="$$opt_temp_1"/> |
2666 | + </UnhoistIterator> |
2667 | + <PromoteIterator type="xs:double"> |
2668 | + <SpecificNumArithIterator_MultiplyOperation_DECIMAL> |
2669 | + <SpecificNumArithIterator_SubtractOperation_DECIMAL> |
2670 | + <SpecificNumArithIterator_DivideOperation_DECIMAL> |
2671 | + <ForVarIterator varname="x"/> |
2672 | + <CtxVarIterator varid="2" varname="width" varkind="global"/> |
2673 | + </SpecificNumArithIterator_DivideOperation_DECIMAL> |
2674 | + <SingletonIterator value="xs:decimal(0.5)"/> |
2675 | + </SpecificNumArithIterator_SubtractOperation_DECIMAL> |
2676 | + <ForVarIterator varname="aspect-ratio"/> |
2677 | + </SpecificNumArithIterator_MultiplyOperation_DECIMAL> |
2678 | + </PromoteIterator> |
2679 | + <UnhoistIterator> |
2680 | + <LetVarIterator varname="$$opt_temp_2"/> |
2681 | + </UnhoistIterator> |
2682 | + </UDFunctionCallIterator> |
2683 | + </ForVariable> |
2684 | + <ReturnClause> |
2685 | + <FnStringIterator> |
2686 | + <FloorIterator> |
2687 | + <SpecificNumArithIterator_MultiplyOperation_DOUBLE> |
2688 | + <ForVarIterator varname="channel"/> |
2689 | + <SingletonIterator value="xs:double(255)"/> |
2690 | + </SpecificNumArithIterator_MultiplyOperation_DOUBLE> |
2691 | + </FloorIterator> |
2692 | + </FnStringIterator> |
2693 | + </ReturnClause> |
2694 | + </flwor::FLWORIterator> |
2695 | <SingletonIterator value="xs:string( )"/> |
2696 | </StringJoinIterator> |
2697 | - <SingletonIterator value="xs:string(255)"/> |
2698 | - <flwor::FLWORIterator> |
2699 | - <ForVariable name="aspect-ratio"> |
2700 | - <SpecificNumArithIterator_DivideOperation_DECIMAL> |
2701 | - <CtxVarIterator varid="2" varname="width" varkind="global"/> |
2702 | - <CtxVarIterator varid="3" varname="height" varkind="global"/> |
2703 | - </SpecificNumArithIterator_DivideOperation_DECIMAL> |
2704 | - </ForVariable> |
2705 | - <ForVariable name="y"> |
2706 | - <OpToIterator> |
2707 | - <SingletonIterator value="xs:integer(1)"/> |
2708 | - <CtxVarIterator varid="3" varname="height" varkind="global"/> |
2709 | - </OpToIterator> |
2710 | - </ForVariable> |
2711 | - <ForVariable name="y-recentered"> |
2712 | - <SpecificNumArithIterator_AddOperation_DECIMAL> |
2713 | - <SpecificNumArithIterator_DivideOperation_DECIMAL> |
2714 | - <OpNumericUnaryIterator> |
2715 | - <ForVarIterator varname="y"/> |
2716 | - </OpNumericUnaryIterator> |
2717 | - <CtxVarIterator varid="3" varname="height" varkind="global"/> |
2718 | - </SpecificNumArithIterator_DivideOperation_DECIMAL> |
2719 | - <SingletonIterator value="xs:decimal(0.5)"/> |
2720 | - </SpecificNumArithIterator_AddOperation_DECIMAL> |
2721 | - </ForVariable> |
2722 | - <LetVariable name="$$opt_temp_2" materialize="true"> |
2723 | - <HoistIterator> |
2724 | - <PromoteIterator type="xs:double"> |
2725 | - <ForVarIterator varname="y-recentered"/> |
2726 | - </PromoteIterator> |
2727 | - </HoistIterator> |
2728 | - </LetVariable> |
2729 | - <ForVariable name="x"> |
2730 | - <UnhoistIterator> |
2731 | - <LetVarIterator varname="$$opt_temp_0"/> |
2732 | - </UnhoistIterator> |
2733 | - </ForVariable> |
2734 | - <ReturnClause> |
2735 | - <StringJoinIterator> |
2736 | - <flwor::FLWORIterator> |
2737 | - <ForVariable name="channel"> |
2738 | - <UDFunctionCallIterator> |
2739 | - <UnhoistIterator> |
2740 | - <LetVarIterator varname="$$opt_temp_1"/> |
2741 | - </UnhoistIterator> |
2742 | - <PromoteIterator type="xs:double"> |
2743 | - <SpecificNumArithIterator_MultiplyOperation_DECIMAL> |
2744 | - <SpecificNumArithIterator_SubtractOperation_DECIMAL> |
2745 | - <SpecificNumArithIterator_DivideOperation_DECIMAL> |
2746 | - <ForVarIterator varname="x"/> |
2747 | - <CtxVarIterator varid="2" varname="width" varkind="global"/> |
2748 | - </SpecificNumArithIterator_DivideOperation_DECIMAL> |
2749 | - <SingletonIterator value="xs:decimal(0.5)"/> |
2750 | - </SpecificNumArithIterator_SubtractOperation_DECIMAL> |
2751 | - <ForVarIterator varname="aspect-ratio"/> |
2752 | - </SpecificNumArithIterator_MultiplyOperation_DECIMAL> |
2753 | - </PromoteIterator> |
2754 | - <UnhoistIterator> |
2755 | - <LetVarIterator varname="$$opt_temp_2"/> |
2756 | - </UnhoistIterator> |
2757 | - </UDFunctionCallIterator> |
2758 | - </ForVariable> |
2759 | - <ReturnClause> |
2760 | - <FnStringIterator> |
2761 | - <FloorIterator> |
2762 | - <SpecificNumArithIterator_MultiplyOperation_DOUBLE> |
2763 | - <ForVarIterator varname="channel"/> |
2764 | - <SingletonIterator value="xs:double(255)"/> |
2765 | - </SpecificNumArithIterator_MultiplyOperation_DOUBLE> |
2766 | - </FloorIterator> |
2767 | - </FnStringIterator> |
2768 | - </ReturnClause> |
2769 | - </flwor::FLWORIterator> |
2770 | - <SingletonIterator value="xs:string( )"/> |
2771 | - </StringJoinIterator> |
2772 | - </ReturnClause> |
2773 | - </flwor::FLWORIterator> |
2774 | - </FnConcatIterator> |
2775 | - <SingletonIterator value="xs:string( |
2776 | -)"/> |
2777 | - </StringJoinIterator> |
2778 | - <SingletonIterator value="xs:string( |
2779 | -)"/> |
2780 | + </ReturnClause> |
2781 | + </flwor::FLWORIterator> |
2782 | </FnConcatIterator> |
2783 | - </ReturnClause> |
2784 | - </flwor::FLWORIterator> |
2785 | + <SingletonIterator value="xs:string( |
2786 | +)"/> |
2787 | + </StringJoinIterator> |
2788 | + <SingletonIterator value="xs:string( |
2789 | +)"/> |
2790 | + </FnConcatIterator> |
2791 | </SequentialIterator> |
2792 | |
2793 | Iterator tree for scene:prepare-scene: |
2794 | |
2795 | === modified file 'test/rbkt/Queries/zorba/hashjoins/idx10.xq' |
2796 | --- test/rbkt/Queries/zorba/hashjoins/idx10.xq 2012-03-29 21:13:41 +0000 |
2797 | +++ test/rbkt/Queries/zorba/hashjoins/idx10.xq 2012-06-14 14:31:26 +0000 |
2798 | @@ -16,7 +16,7 @@ |
2799 | { |
2800 | for $i in local:bar()/@id |
2801 | for $j in local:foo()/@id |
2802 | - where xs:string($i) eq xs:string($j) |
2803 | + where xs:string($i) eq xs:string($j) |
2804 | return $i |
2805 | } |
2806 | catch * |
2807 | @@ -25,3 +25,136 @@ |
2808 | } |
2809 | |
2810 | |
2811 | +(: |
2812 | + |
2813 | +Expression tree after optimization for main query |
2814 | +flwor_expr (0x8d66cd0) |
2815 | +[ |
2816 | + LET (0x8d66c88) $$opt_temp_0 (0x8d66e40) |
2817 | + [ |
2818 | + hoist/1 (0x8d66c28) [ hoist/1 (0x8d6b298) [ error/0 (0x8d6ae08) [ ] ] ] |
2819 | + ] |
2820 | + LET (0x8d66f20) $$opt_temp_1 (0x8d670d8) |
2821 | + [ |
2822 | + hoist/1 (0x8d66ec0) [ |
2823 | + to/2 (0x8d6afa8) [ |
2824 | + const_expr (0x8d6b008) [ xs:integer [ xs:integer(1) ] ] |
2825 | + const_expr (0x8d68c48) [ xs:integer [ xs:integer(10) ] ] |
2826 | + ] |
2827 | + ] |
2828 | + ] |
2829 | + RETURN |
2830 | + trycatch_expr (0x8d6f258) |
2831 | + [ |
2832 | + flwor_expr (0x8d6fca8) |
2833 | + [ |
2834 | + FOR (0x8d6b2f8) i (0x8d6e7f8) |
2835 | + [ |
2836 | + sort-distinct-nodes-asc/1 (0x8d6e690) [ |
2837 | + relpath_expr (0x8d6b238) [ |
2838 | + function_trace_expr (0x8d6f530) [ |
2839 | + flwor_expr (0x8d6b510) |
2840 | + [ |
2841 | + FOR (0x8d6e7b0) i (0x8d6f5f0) |
2842 | + [ |
2843 | + to/2 (0x8d6b578) [ |
2844 | + const_expr (0x8d6e6f0) [ xs:integer [ xs:integer(1) ] ] |
2845 | + const_expr (0x8d6e748) [ xs:integer [ xs:integer(10) ] ] |
2846 | + ] |
2847 | + ] |
2848 | + RETURN |
2849 | + elem_expr (0x8d6f4c8) [ |
2850 | + copy nodes = 1 |
2851 | + const_expr (0x8d6f690) [ xs:QName [ xs:QName(,,b) ] ] |
2852 | + attr_expr (0x8d6f470) [ |
2853 | + const_expr (0x8d6dd28) [ xs:QName [ xs:QName(,,id) ] ] |
2854 | + = |
2855 | + enclosed-expr/1 (0x8d6dd80) [ |
2856 | + var_ref (0x8d6dde0) [ i (0x8d6f5f0) ] |
2857 | + ] |
2858 | + ] |
2859 | + ] |
2860 | + ] |
2861 | + ] |
2862 | + REL STEP attribute::match_expr [name_test(id)] |
2863 | + ] |
2864 | + ] |
2865 | + ] |
2866 | + LET (0x8d671c8) $$opt_temp_2 (0x8d67030) |
2867 | + [ |
2868 | + hoist/1 (0x8d67158) [ |
2869 | + cast_expr xs:string? (0x8d6f8a8) [ |
2870 | + data/1 (0x8d6f848) [ var_ref (0x8d6f7b8) [ i (0x8d6e7f8) ] ] |
2871 | + ] |
2872 | + ] |
2873 | + ] |
2874 | + FOR (0x8d6f770) j (0x8d6f360) |
2875 | + [ |
2876 | + sort-distinct-nodes-asc/1 (0x8d6f1f8) [ |
2877 | + relpath_expr (0x8d6e8d0) [ |
2878 | + function_trace_expr (0x8d692e0) [ |
2879 | + flwor_expr (0x8d6ada0) |
2880 | + [ |
2881 | + FOR (0x8d69590) $$opt_temp_0 (0x8d69510) |
2882 | + [ |
2883 | + unhoist (0x8d66d90) [ vref(0x8d66d38) [ $$opt_temp_0 (0x8d66e40) ] ] |
2884 | + ] |
2885 | + FOR (0x8d68d50) i (0x8d68cb0) |
2886 | + [ |
2887 | + unhoist (0x8d66fd0) [ vref (0x8d66f78) [ $$opt_temp_1 (0x8d670d8) ] ] |
2888 | + ] |
2889 | + RETURN |
2890 | + if_expr (0x8d69280) [ |
2891 | + value-equal-integer/2 (0x8d68d98) [ |
2892 | + numeric-mod/2 (0x8d68df8) [ |
2893 | + var_ref (0x8d68e58) [ i (0x8d68cb0) ] |
2894 | + const_expr (0x8d68ec0) [ xs:integer [ xs:integer(2) ] ] |
2895 | + ] |
2896 | + const_expr (0x8d68f28) [ xs:integer [ xs:integer(0) ] ] |
2897 | + ] |
2898 | + THEN |
2899 | + elem_expr (0x8d69150) [ |
2900 | + copy nodes = 1 |
2901 | + const_expr (0x8d68f90) [ xs:QName [ xs:QName(,,a) ] ] |
2902 | + attr_expr (0x8d690f8) [ |
2903 | + const_expr (0x8d68fe8) [ xs:QName [ xs:QName(,,id) ] ] |
2904 | + = |
2905 | + enclosed-expr/1 (0x8d69040) [ |
2906 | + var_ref (0x8d690a0) [ i (0x8d68cb0) ] |
2907 | + ] |
2908 | + ] |
2909 | + ] |
2910 | + ELSE |
2911 | + unhoist/1 (0x8d691b8) [ |
2912 | + var_ref (0x8d69218) [ $$opt_temp_0 (0x8d69510) ] |
2913 | + ] |
2914 | + ] |
2915 | + ] |
2916 | + ] |
2917 | + REL STEP attribute::match_expr [name_test(id)] |
2918 | + ] |
2919 | + ] |
2920 | + ] |
2921 | + WHERE |
2922 | + boolean/1 (0x8d6fbf0) [ |
2923 | + value-equal-string/2 (0x8d6fa10) [ |
2924 | + unhoist/1 (0x8d67268) [ |
2925 | + var_ref (0x8d67210) [ $$opt_temp_2 (0x8d67030) ] |
2926 | + ] |
2927 | + cast_expr xs:string? (0x8d6f9b8) [ |
2928 | + data/1 (0x8d6f958) [ |
2929 | + var_ref (0x8d6f900) [ j (0x8d6f360) ] |
2930 | + ] |
2931 | + ] |
2932 | + ] |
2933 | + ] |
2934 | + RETURN |
2935 | + var_ref (0x8d6fc50) [ i (0x8d6e7f8) ] |
2936 | + ] |
2937 | + CATCH |
2938 | + const_expr (0x8d6ff10) [ xs:string [ xs:string(caught) ] ] |
2939 | + ] |
2940 | +] |
2941 | + |
2942 | + |
2943 | +:) |
There are additional revisions which have not been approved in review. Please seek review and approval of these new revisions.