Merge lp:~zorba-coders/zorba/bug-967428 into lp:zorba

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
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 :

There are additional revisions which have not been approved in review. Please seek review and approval of these new revisions.

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job bug-967428-2012-06-14T14-35-22.814Z is finished. The final status was:

All tests succeeded!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'ChangeLog'
--- ChangeLog 2012-06-14 13:21:03 +0000
+++ ChangeLog 2012-06-14 14:31:26 +0000
@@ -1,5 +1,6 @@
1Zorba - The XQuery Processor1Zorba - The XQuery Processor
22
3
3version 2.x4version 2.x
45
5New Features:6New Features:
@@ -7,6 +8,8 @@
78
8Optimizations:9Optimizations:
9 * Small optimization of comparison operations.10 * Small optimization of comparison operations.
11 * Improved hoist rule: tighter hoisting of expressions (also fixes bug #967428,
12 which is only a performance bug)
1013
11Bug Fixes/Other Changes:14Bug Fixes/Other Changes:
12 * Fixed bug #854506 (ugly type error messages) and partial fix for bug #86700815 * Fixed bug #854506 (ugly type error messages) and partial fix for bug #867008
1316
=== modified file 'src/compiler/expression/expr.h'
--- src/compiler/expression/expr.h 2012-06-14 13:21:03 +0000
+++ src/compiler/expression/expr.h 2012-06-14 14:31:26 +0000
@@ -1007,6 +1007,8 @@
10071007
1008 expr* get_try_expr() const { return theTryExpr.getp(); }1008 expr* get_try_expr() const { return theTryExpr.getp(); }
10091009
1010 void set_try_expr(expr* e) { theTryExpr = e; }
1011
1010 expr* get_catch_expr(csize i) const { return theCatchExprs[i].getp(); }1012 expr* get_catch_expr(csize i) const { return theCatchExprs[i].getp(); }
10111013
1012 void add_catch_expr(expr_t e);1014 void add_catch_expr(expr_t e);
10131015
=== modified file 'src/compiler/rewriter/rules/hoist_rules.cpp'
--- src/compiler/rewriter/rules/hoist_rules.cpp 2012-06-14 13:21:03 +0000
+++ src/compiler/rewriter/rules/hoist_rules.cpp 2012-06-14 14:31:26 +0000
@@ -137,9 +137,9 @@
137 {137 {
138 flwor_expr* flwor = static_cast<flwor_expr *>(e);138 flwor_expr* flwor = static_cast<flwor_expr *>(e);
139139
140 PathHolder curr_holder;140 PathHolder step;
141 curr_holder.prev = path;141 step.prev = path;
142 curr_holder.expr = e;142 step.expr = e;
143143
144 csize numForLetClauses = flwor->num_forlet_clauses();144 csize numForLetClauses = flwor->num_forlet_clauses();
145 csize i = 0;145 csize i = 0;
@@ -147,32 +147,26 @@
147 while (i < numForLetClauses)147 while (i < numForLetClauses)
148 {148 {
149 forletwin_clause* flc = static_cast<forletwin_clause*>(flwor->get_clause(i));149 forletwin_clause* flc = static_cast<forletwin_clause*>(flwor->get_clause(i));
150
151 expr* domainExpr = flc->get_expr();150 expr* domainExpr = flc->get_expr();
152151
153 expr_t unhoistExpr = try_hoisting(rCtx,152 expr_t unhoistExpr =
154 domainExpr,153 try_hoisting(rCtx, domainExpr, varmap, freevarMap, &step);
155 varmap,154
156 freevarMap,
157 &curr_holder);
158 if (unhoistExpr != NULL)155 if (unhoistExpr != NULL)
159 {156 {
160 flc->set_expr(unhoistExpr.getp());157 flc->set_expr(unhoistExpr.getp());
161 status = true;158 status = true;
162
163 numForLetClauses = flwor->num_forlet_clauses();159 numForLetClauses = flwor->num_forlet_clauses();
164
165 // TODO: the expr that was just hoisted here, may contain sub-exprs that160 // TODO: the expr that was just hoisted here, may contain sub-exprs that
166 // can be hoisted even earlier. 161 // can be hoisted even earlier.
167 }162 }
168 else if (domainExpr->is_sequential())163 else if (domainExpr->is_sequential())
169 {164 {
170 PathHolder root;165 PathHolder root;
171 bool hoisted = hoist_expressions(rCtx,166
172 domainExpr,167 bool hoisted =
173 varmap,168 hoist_expressions(rCtx, domainExpr, varmap, freevarMap, &root);
174 freevarMap,169
175 &root);
176 if (hoisted)170 if (hoisted)
177 {171 {
178 if (root.expr != NULL)172 if (root.expr != NULL)
@@ -180,7 +174,6 @@
180 assert(root.expr->get_expr_kind() == flwor_expr_kind);174 assert(root.expr->get_expr_kind() == flwor_expr_kind);
181175
182 static_cast<flwor_expr*>(root.expr.getp())->set_return_expr(domainExpr);176 static_cast<flwor_expr*>(root.expr.getp())->set_return_expr(domainExpr);
183
184 flc->set_expr(root.expr.getp());177 flc->set_expr(root.expr.getp());
185 }178 }
186179
@@ -190,11 +183,9 @@
190 }183 }
191 else184 else
192 {185 {
193 bool hoisted = hoist_expressions(rCtx,186 bool hoisted =
194 domainExpr,187 hoist_expressions(rCtx, domainExpr, varmap, freevarMap, &step);
195 varmap,188
196 freevarMap,
197 &curr_holder);
198 if (hoisted)189 if (hoisted)
199 {190 {
200 status = true;191 status = true;
@@ -202,7 +193,7 @@
202 }193 }
203 }194 }
204195
205 i = ++(curr_holder.clauseCount);196 i = ++(step.clauseCount);
206197
207 assert(numForLetClauses == flwor->num_forlet_clauses());198 assert(numForLetClauses == flwor->num_forlet_clauses());
208 }199 }
@@ -212,7 +203,8 @@
212 {203 {
213 ZORBA_ASSERT(!we->is_sequential());204 ZORBA_ASSERT(!we->is_sequential());
214205
215 expr_t unhoistExpr = try_hoisting(rCtx, we, varmap, freevarMap, &curr_holder);206 expr_t unhoistExpr = try_hoisting(rCtx, we, varmap, freevarMap, &step);
207
216 if (unhoistExpr != NULL)208 if (unhoistExpr != NULL)
217 {209 {
218 flwor->set_where(unhoistExpr.getp());210 flwor->set_where(unhoistExpr.getp());
@@ -220,14 +212,14 @@
220 }212 }
221 else213 else
222 {214 {
223 status = hoist_expressions(rCtx, we, varmap, freevarMap, &curr_holder) || status;215 status = hoist_expressions(rCtx, we, varmap, freevarMap, &step) || status;
224 }216 }
225 }217 }
226218
227 // TODO: hoist orderby exprs219 // TODO: hoist orderby exprs
228220
229 expr_t re = flwor->get_return_expr();221 expr_t re = flwor->get_return_expr();
230 expr_t unhoistExpr = try_hoisting(rCtx, re, varmap, freevarMap, &curr_holder);222 expr_t unhoistExpr = try_hoisting(rCtx, re, varmap, freevarMap, &step);
231223
232 if (unhoistExpr != NULL)224 if (unhoistExpr != NULL)
233 {225 {
@@ -251,15 +243,15 @@
251 }243 }
252 else244 else
253 {245 {
254 status = hoist_expressions(rCtx, re, varmap, freevarMap, &curr_holder) || status;246 status = hoist_expressions(rCtx, re, varmap, freevarMap, &step) || status;
255 }247 }
256 }248 }
257249
258 else if (e->get_expr_kind() == trycatch_expr_kind)250 else if (e->get_expr_kind() == trycatch_expr_kind)
259 {251 {
260 PathHolder pathStep;252 PathHolder step;
261 pathStep.prev = path;253 step.prev = path;
262 pathStep.expr = e;254 step.expr = e;
263255
264 ExprIterator iter(e);256 ExprIterator iter(e);
265257
@@ -268,7 +260,7 @@
268 expr* ce = &*(*iter);260 expr* ce = &*(*iter);
269 if (ce)261 if (ce)
270 {262 {
271 expr_t unhoistExpr = try_hoisting(rCtx, ce, varmap, freevarMap, &pathStep);263 expr_t unhoistExpr = try_hoisting(rCtx, ce, varmap, freevarMap, &step);
272 if (unhoistExpr != NULL)264 if (unhoistExpr != NULL)
273 {265 {
274 *iter = unhoistExpr.getp();266 *iter = unhoistExpr.getp();
@@ -276,7 +268,7 @@
276 }268 }
277 else269 else
278 {270 {
279 status = hoist_expressions(rCtx, ce, varmap, freevarMap, &pathStep) || status;271 status = hoist_expressions(rCtx, ce, varmap, freevarMap, &step) || status;
280 }272 }
281 }273 }
282274
@@ -358,7 +350,7 @@
358 expr* e,350 expr* e,
359 const VarIdMap& varmap,351 const VarIdMap& varmap,
360 const ExprVarsMap& freevarMap,352 const ExprVarsMap& freevarMap,
361 struct PathHolder* holder)353 struct PathHolder* path)
362{354{
363 if (non_hoistable(e) || e->contains_node_construction())355 if (non_hoistable(e) || e->contains_node_construction())
364 {356 {
@@ -371,21 +363,21 @@
371 ZORBA_ASSERT(fvme != freevarMap.end());363 ZORBA_ASSERT(fvme != freevarMap.end());
372 const DynamicBitset& varset = fvme->second;364 const DynamicBitset& varset = fvme->second;
373365
374 PathHolder* h = holder;366 PathHolder* step = path;
375367
376 bool inloop = false;368 bool inloop = false;
377 bool foundReferencedFLWORVar = false;369 bool foundReferencedFLWORVar = false;
378 bool foundSequentialClause = false;370 bool foundSequentialClause = false;
379 int i = 0;371 int i = 0;
380372
381 // h->prev == NULL means that expr e is not inside any flwor expr, and as a373 // step->prev == NULL means that expr e is not inside any flwor expr, and as a
382 // result, there is nothing to hoist. 374 // result, there is nothing to hoist.
383 while (h->prev != NULL)375 while (step->prev != NULL)
384 {376 {
385 if (h->expr->get_expr_kind() == trycatch_expr_kind)377 if (step->expr->get_expr_kind() == trycatch_expr_kind)
386 {378 {
387 // Should not hoist an expr out of a try-catch if it contains any try-catch vars379 // Should not hoist an expr out of a try-catch if it contains any try-catch vars
388 trycatch_expr* trycatch = static_cast<trycatch_expr*>(h->expr.getp());380 trycatch_expr* trycatch = static_cast<trycatch_expr*>(step->expr.getp());
389 csize numClauses = trycatch->clause_count();381 csize numClauses = trycatch->clause_count();
390382
391 for (csize i = 0; i < numClauses; ++i)383 for (csize i = 0; i < numClauses; ++i)
@@ -407,10 +399,9 @@
407 }399 }
408 else400 else
409 {401 {
410 assert(h->expr->get_expr_kind() == flwor_expr_kind);402 assert(step->expr->get_expr_kind() == flwor_expr_kind);
411403
412 flwor_expr* flwor = static_cast<flwor_expr*>(h->expr.getp());404 flwor_expr* flwor = static_cast<flwor_expr*>(step->expr.getp());
413
414 group_clause* gc = flwor->get_group_clause();405 group_clause* gc = flwor->get_group_clause();
415406
416 // If any free variable is a group-by variable, give up.407 // If any free variable is a group-by variable, give up.
@@ -441,7 +432,7 @@
441 // If yes, then let V be the inner-most var referenced by e. If there are any432 // If yes, then let V be the inner-most var referenced by e. If there are any
442 // FOR vars after V, e can be hoisted out of any such FOR vars. Otherwise, e433 // FOR vars after V, e can be hoisted out of any such FOR vars. Otherwise, e
443 // cannot be hoisted.434 // cannot be hoisted.
444 for (i = h->clauseCount - 1; i >= 0; --i)435 for (i = step->clauseCount - 1; i >= 0; --i)
445 {436 {
446 const forletwin_clause* flc = 437 const forletwin_clause* flc =
447 static_cast<const forletwin_clause*>(flwor->get_clause(i));438 static_cast<const forletwin_clause*>(flwor->get_clause(i));
@@ -469,7 +460,10 @@
469 break;460 break;
470 }461 }
471462
472 h = h->prev;463 if (step->prev->prev == NULL)
464 break;
465
466 step = step->prev;
473 }467 }
474468
475 if (!inloop)469 if (!inloop)
@@ -489,27 +483,33 @@
489 hoisted->setFlags(e->getFlags());483 hoisted->setFlags(e->getFlags());
490 letvar->setFlags(e->getFlags());484 letvar->setFlags(e->getFlags());
491485
492 let_clause_t flref(new let_clause(e->get_sctx(),486 let_clause_t flref(new let_clause(e->get_sctx(), e->get_loc(), letvar, hoisted));
493 e->get_loc(),
494 letvar,
495 hoisted));
496487
497 letvar->set_flwor_clause(flref.getp());488 letvar->set_flwor_clause(flref.getp());
498489
499 if (h->prev == NULL)490 if (step->prev == NULL)
500 {491 {
501 if (h->expr == NULL)492 if (step->expr == NULL)
502 {493 {
503 h->expr = new flwor_expr(e->get_sctx(), e->get_loc(), false);494 step->expr = new flwor_expr(e->get_sctx(), e->get_loc(), false);
504 }495 }
505 static_cast<flwor_expr*>(h->expr.getp())->add_clause(flref);496 static_cast<flwor_expr*>(step->expr.getp())->add_clause(flref);
497 }
498 else if (step->expr->get_expr_kind() == flwor_expr_kind)
499 {
500 static_cast<flwor_expr*>(step->expr.getp())->add_clause(i + 1, flref);
501 ++step->clauseCount;
506 }502 }
507 else503 else
508 {504 {
509 assert(h->expr->get_expr_kind() == flwor_expr_kind);505 assert(step->expr->get_expr_kind() == trycatch_expr_kind);
510506 trycatch_expr* trycatchExpr = static_cast<trycatch_expr*>(step->expr.getp());
511 static_cast<flwor_expr*>(h->expr.getp())->add_clause(i + 1, flref);507
512 ++h->clauseCount;508 flwor_expr_t flwor = new flwor_expr(e->get_sctx(), e->get_loc(), false);
509 flwor->add_clause(flref);
510 flwor->set_return_expr(trycatchExpr->get_try_expr());
511
512 trycatchExpr->set_try_expr(flwor);
513 }513 }
514514
515 expr_t unhoisted = new fo_expr(e->get_sctx(),515 expr_t unhoisted = new fo_expr(e->get_sctx(),
516516
=== modified file 'src/compiler/rewriter/rules/index_join_rule.cpp'
--- src/compiler/rewriter/rules/index_join_rule.cpp 2012-05-03 12:31:51 +0000
+++ src/compiler/rewriter/rules/index_join_rule.cpp 2012-06-14 14:31:26 +0000
@@ -518,7 +518,7 @@
518 innerPosInStack))518 innerPosInStack))
519 return;519 return;
520520
521 ulong numClauses = innerFlwor->num_clauses();521 csize numClauses = innerFlwor->num_clauses();
522522
523 if (innerFlwor->defines_variable(predInfo.theOuterVar) >= 0 ||523 if (innerFlwor->defines_variable(predInfo.theOuterVar) >= 0 ||
524 mostInnerVarPos < numClauses-1)524 mostInnerVarPos < numClauses-1)
@@ -529,12 +529,12 @@
529529
530 flwor_expr_t nestedFlwor = new flwor_expr(sctx, nestedLoc, false);530 flwor_expr_t nestedFlwor = new flwor_expr(sctx, nestedLoc, false);
531531
532 for (ulong i = mostInnerVarPos+1; i < numClauses; ++i)532 for (csize i = mostInnerVarPos+1; i < numClauses; ++i)
533 {533 {
534 nestedFlwor->add_clause(innerFlwor->get_clause(i));534 nestedFlwor->add_clause(innerFlwor->get_clause(i));
535 }535 }
536536
537 for (ulong i = numClauses - 1; i > mostInnerVarPos; --i)537 for (csize i = numClauses - 1; i > mostInnerVarPos; --i)
538 {538 {
539 innerFlwor->remove_clause(i);539 innerFlwor->remove_clause(i);
540 }540 }
@@ -563,8 +563,8 @@
563 {563 {
564 block_expr* seqExpr = static_cast<block_expr*>(returnExpr);564 block_expr* seqExpr = static_cast<block_expr*>(returnExpr);
565565
566 ulong numArgs = seqExpr->size();566 csize numArgs = seqExpr->size();
567 ulong arg;567 csize arg;
568 for (arg = 0; arg < numArgs; ++arg)568 for (arg = 0; arg < numArgs; ++arg)
569 {569 {
570 if ((*seqExpr)[arg]->get_function_kind() !=570 if ((*seqExpr)[arg]->get_function_kind() !=
@@ -590,9 +590,9 @@
590 }590 }
591 else591 else
592 {592 {
593 // All the variables referenced by the inner domain expr are defined after593 // The inner domain expr does not reference any flwor vars. In this case,
594 // the outer var. In this case, Find the flwor expr defining the outer var594 // find the flwor expr defining the outer var and create the index just
595 // and create the index just before this flwor.595 // before this flwor.
596 flwor_expr* outerFlworExpr = NULL;596 flwor_expr* outerFlworExpr = NULL;
597 ulong outerPosInStack = 0;597 ulong outerPosInStack = 0;
598 ulong dummy = 0;598 ulong dummy = 0;
599599
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9197.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9197.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9197.iter 2012-06-14 14:31:26 +0000
@@ -1,33 +1,33 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <OpToIterator>5 <flwor::FLWORIterator>
6 <SingletonIterator value="xs:integer(1)"/>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:integer(2)"/>7 <HoistIterator>
8 </OpToIterator>8 <OpToIterator>
9 </HoistIterator>9 <SingletonIterator value="xs:integer(1)"/>
10 </LetVariable>10 <SingletonIterator value="xs:integer(2)"/>
11 <ReturnClause>11 </OpToIterator>
12 <SequentialIterator>12 </HoistIterator>
13 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">13 </LetVariable>
14 <flwor::FLWORIterator>14 <ReturnClause>
15 <ForVariable name="$$opt_temp_2">15 <SequentialIterator>
16 <UnhoistIterator>16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <LetVarIterator varname="$$opt_temp_0"/>17 <flwor::FLWORIterator>
18 </UnhoistIterator>18 <ForVariable name="$$opt_temp_2">
19 </ForVariable>19 <UnhoistIterator>
20 <ReturnClause>20 <LetVarIterator varname="$$opt_temp_0"/>
21 <ValueIndexEntryBuilderIterator>21 </UnhoistIterator>
22 <ForVarIterator varname="$$opt_temp_2"/>22 </ForVariable>
23 <ForVarIterator varname="$$opt_temp_2"/>23 <ReturnClause>
24 </ValueIndexEntryBuilderIterator>24 <ValueIndexEntryBuilderIterator>
25 </ReturnClause>25 <ForVarIterator varname="$$opt_temp_2"/>
26 </flwor::FLWORIterator>26 <ForVarIterator varname="$$opt_temp_2"/>
27 </CreateInternalIndexIterator>27 </ValueIndexEntryBuilderIterator>
28 <ElementIterator>28 </ReturnClause>
29 <SingletonIterator value="xs:QName(,,karteikasten)"/>29 </flwor::FLWORIterator>
30 <EnclosedIterator attr_cont="false">30 </CreateInternalIndexIterator>
31 <flwor::FLWORIterator>31 <flwor::FLWORIterator>
32 <ForVariable name="book">32 <ForVariable name="book">
33 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">33 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
@@ -64,9 +64,9 @@
64 </ElementIterator>64 </ElementIterator>
65 </ReturnClause>65 </ReturnClause>
66 </flwor::FLWORIterator>66 </flwor::FLWORIterator>
67 </EnclosedIterator>67 </SequentialIterator>
68 </ElementIterator>68 </ReturnClause>
69 </SequentialIterator>69 </flwor::FLWORIterator>
70 </ReturnClause>70 </EnclosedIterator>
71</flwor::FLWORIterator>71</ElementIterator>
7272
7373
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9198.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9198.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9198.iter 2012-06-14 14:31:26 +0000
@@ -1,33 +1,33 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <OpToIterator>5 <flwor::FLWORIterator>
6 <SingletonIterator value="xs:integer(1)"/>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:integer(2)"/>7 <HoistIterator>
8 </OpToIterator>8 <OpToIterator>
9 </HoistIterator>9 <SingletonIterator value="xs:integer(1)"/>
10 </LetVariable>10 <SingletonIterator value="xs:integer(2)"/>
11 <ReturnClause>11 </OpToIterator>
12 <SequentialIterator>12 </HoistIterator>
13 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">13 </LetVariable>
14 <flwor::FLWORIterator>14 <ReturnClause>
15 <ForVariable name="$$opt_temp_2">15 <SequentialIterator>
16 <UnhoistIterator>16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <LetVarIterator varname="$$opt_temp_0"/>17 <flwor::FLWORIterator>
18 </UnhoistIterator>18 <ForVariable name="$$opt_temp_2">
19 </ForVariable>19 <UnhoistIterator>
20 <ReturnClause>20 <LetVarIterator varname="$$opt_temp_0"/>
21 <ValueIndexEntryBuilderIterator>21 </UnhoistIterator>
22 <ForVarIterator varname="$$opt_temp_2"/>22 </ForVariable>
23 <ForVarIterator varname="$$opt_temp_2"/>23 <ReturnClause>
24 </ValueIndexEntryBuilderIterator>24 <ValueIndexEntryBuilderIterator>
25 </ReturnClause>25 <ForVarIterator varname="$$opt_temp_2"/>
26 </flwor::FLWORIterator>26 <ForVarIterator varname="$$opt_temp_2"/>
27 </CreateInternalIndexIterator>27 </ValueIndexEntryBuilderIterator>
28 <ElementIterator>28 </ReturnClause>
29 <SingletonIterator value="xs:QName(,,karteikasten)"/>29 </flwor::FLWORIterator>
30 <EnclosedIterator attr_cont="false">30 </CreateInternalIndexIterator>
31 <flwor::FLWORIterator>31 <flwor::FLWORIterator>
32 <ForVariable name="book">32 <ForVariable name="book">
33 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">33 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
@@ -67,9 +67,9 @@
67 </ElementIterator>67 </ElementIterator>
68 </ReturnClause>68 </ReturnClause>
69 </flwor::FLWORIterator>69 </flwor::FLWORIterator>
70 </EnclosedIterator>70 </SequentialIterator>
71 </ElementIterator>71 </ReturnClause>
72 </SequentialIterator>72 </flwor::FLWORIterator>
73 </ReturnClause>73 </EnclosedIterator>
74</flwor::FLWORIterator>74</ElementIterator>
7575
7676
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9199.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9199.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9199.iter 2012-06-14 14:31:26 +0000
@@ -1,33 +1,33 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <OpToIterator>5 <flwor::FLWORIterator>
6 <SingletonIterator value="xs:integer(1)"/>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:integer(2)"/>7 <HoistIterator>
8 </OpToIterator>8 <OpToIterator>
9 </HoistIterator>9 <SingletonIterator value="xs:integer(1)"/>
10 </LetVariable>10 <SingletonIterator value="xs:integer(2)"/>
11 <ReturnClause>11 </OpToIterator>
12 <SequentialIterator>12 </HoistIterator>
13 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">13 </LetVariable>
14 <flwor::FLWORIterator>14 <ReturnClause>
15 <ForVariable name="$$opt_temp_2">15 <SequentialIterator>
16 <UnhoistIterator>16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <LetVarIterator varname="$$opt_temp_0"/>17 <flwor::FLWORIterator>
18 </UnhoistIterator>18 <ForVariable name="$$opt_temp_2">
19 </ForVariable>19 <UnhoistIterator>
20 <ReturnClause>20 <LetVarIterator varname="$$opt_temp_0"/>
21 <ValueIndexEntryBuilderIterator>21 </UnhoistIterator>
22 <ForVarIterator varname="$$opt_temp_2"/>22 </ForVariable>
23 <ForVarIterator varname="$$opt_temp_2"/>23 <ReturnClause>
24 </ValueIndexEntryBuilderIterator>24 <ValueIndexEntryBuilderIterator>
25 </ReturnClause>25 <ForVarIterator varname="$$opt_temp_2"/>
26 </flwor::FLWORIterator>26 <ForVarIterator varname="$$opt_temp_2"/>
27 </CreateInternalIndexIterator>27 </ValueIndexEntryBuilderIterator>
28 <ElementIterator>28 </ReturnClause>
29 <SingletonIterator value="xs:QName(,,karteikasten)"/>29 </flwor::FLWORIterator>
30 <EnclosedIterator attr_cont="false">30 </CreateInternalIndexIterator>
31 <flwor::FLWORIterator>31 <flwor::FLWORIterator>
32 <ForVariable name="book">32 <ForVariable name="book">
33 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">33 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
@@ -67,9 +67,9 @@
67 </ElementIterator>67 </ElementIterator>
68 </ReturnClause>68 </ReturnClause>
69 </flwor::FLWORIterator>69 </flwor::FLWORIterator>
70 </EnclosedIterator>70 </SequentialIterator>
71 </ElementIterator>71 </ReturnClause>
72 </SequentialIterator>72 </flwor::FLWORIterator>
73 </ReturnClause>73 </EnclosedIterator>
74</flwor::FLWORIterator>74</ElementIterator>
7575
7676
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9206.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9206.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9206.iter 2012-06-14 14:31:26 +0000
@@ -1,38 +1,38 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <flwor::FLWORIterator>
6 <FnDocIterator>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:string(books.xml)"/>7 <HoistIterator>
8 </FnDocIterator>8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 </DescendantAxisIterator>9 <FnDocIterator>
10 </HoistIterator>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </LetVariable>11 </FnDocIterator>
12 <ReturnClause>12 </DescendantAxisIterator>
13 <SequentialIterator>13 </HoistIterator>
14 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">14 </LetVariable>
15 <flwor::FLWORIterator>15 <ReturnClause>
16 <ForVariable name="$$opt_temp_1">16 <SequentialIterator>
17 <UnhoistIterator>17 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
18 <LetVarIterator varname="$$opt_temp_0"/>18 <flwor::FLWORIterator>
19 </UnhoistIterator>19 <ForVariable name="$$opt_temp_1">
20 </ForVariable>20 <UnhoistIterator>
21 <ReturnClause>21 <LetVarIterator varname="$$opt_temp_0"/>
22 <ValueIndexEntryBuilderIterator>22 </UnhoistIterator>
23 <ForVarIterator varname="$$opt_temp_1"/>23 </ForVariable>
24 <FnCountIterator>24 <ReturnClause>
25 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">25 <ValueIndexEntryBuilderIterator>
26 <ForVarIterator varname="$$opt_temp_1"/>26 <ForVarIterator varname="$$opt_temp_1"/>
27 </ChildAxisIterator>27 <FnCountIterator>
28 </FnCountIterator>28 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
29 </ValueIndexEntryBuilderIterator>29 <ForVarIterator varname="$$opt_temp_1"/>
30 </ReturnClause>30 </ChildAxisIterator>
31 </flwor::FLWORIterator>31 </FnCountIterator>
32 </CreateInternalIndexIterator>32 </ValueIndexEntryBuilderIterator>
33 <ElementIterator>33 </ReturnClause>
34 <SingletonIterator value="xs:QName(,,karteikasten)"/>34 </flwor::FLWORIterator>
35 <EnclosedIterator attr_cont="false">35 </CreateInternalIndexIterator>
36 <flwor::FLWORIterator>36 <flwor::FLWORIterator>
37 <ForVariable name="anzahl">37 <ForVariable name="anzahl">
38 <OpToIterator>38 <OpToIterator>
@@ -60,9 +60,9 @@
60 </ElementIterator>60 </ElementIterator>
61 </ReturnClause>61 </ReturnClause>
62 </flwor::FLWORIterator>62 </flwor::FLWORIterator>
63 </EnclosedIterator>63 </SequentialIterator>
64 </ElementIterator>64 </ReturnClause>
65 </SequentialIterator>65 </flwor::FLWORIterator>
66 </ReturnClause>66 </EnclosedIterator>
67</flwor::FLWORIterator>67</ElementIterator>
6868
6969
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9207.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9207.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9207.iter 2012-06-14 14:31:26 +0000
@@ -1,33 +1,33 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <OpToIterator>5 <flwor::FLWORIterator>
6 <SingletonIterator value="xs:integer(1)"/>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:integer(2)"/>7 <HoistIterator>
8 </OpToIterator>8 <OpToIterator>
9 </HoistIterator>9 <SingletonIterator value="xs:integer(1)"/>
10 </LetVariable>10 <SingletonIterator value="xs:integer(2)"/>
11 <ReturnClause>11 </OpToIterator>
12 <SequentialIterator>12 </HoistIterator>
13 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">13 </LetVariable>
14 <flwor::FLWORIterator>14 <ReturnClause>
15 <ForVariable name="$$opt_temp_2">15 <SequentialIterator>
16 <UnhoistIterator>16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <LetVarIterator varname="$$opt_temp_0"/>17 <flwor::FLWORIterator>
18 </UnhoistIterator>18 <ForVariable name="$$opt_temp_2">
19 </ForVariable>19 <UnhoistIterator>
20 <ReturnClause>20 <LetVarIterator varname="$$opt_temp_0"/>
21 <ValueIndexEntryBuilderIterator>21 </UnhoistIterator>
22 <ForVarIterator varname="$$opt_temp_2"/>22 </ForVariable>
23 <ForVarIterator varname="$$opt_temp_2"/>23 <ReturnClause>
24 </ValueIndexEntryBuilderIterator>24 <ValueIndexEntryBuilderIterator>
25 </ReturnClause>25 <ForVarIterator varname="$$opt_temp_2"/>
26 </flwor::FLWORIterator>26 <ForVarIterator varname="$$opt_temp_2"/>
27 </CreateInternalIndexIterator>27 </ValueIndexEntryBuilderIterator>
28 <ElementIterator>28 </ReturnClause>
29 <SingletonIterator value="xs:QName(,,karteikasten)"/>29 </flwor::FLWORIterator>
30 <EnclosedIterator attr_cont="false">30 </CreateInternalIndexIterator>
31 <flwor::FLWORIterator>31 <flwor::FLWORIterator>
32 <ForVariable name="book">32 <ForVariable name="book">
33 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">33 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
@@ -67,9 +67,9 @@
67 </ElementIterator>67 </ElementIterator>
68 </ReturnClause>68 </ReturnClause>
69 </flwor::FLWORIterator>69 </flwor::FLWORIterator>
70 </EnclosedIterator>70 </SequentialIterator>
71 </ElementIterator>71 </ReturnClause>
72 </SequentialIterator>72 </flwor::FLWORIterator>
73 </ReturnClause>73 </EnclosedIterator>
74</flwor::FLWORIterator>74</ElementIterator>
7575
7676
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9210.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9210.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9210.iter 2012-06-14 14:31:26 +0000
@@ -1,38 +1,38 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <flwor::FLWORIterator>
6 <FnDocIterator>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:string(books.xml)"/>7 <HoistIterator>
8 </FnDocIterator>8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 </DescendantAxisIterator>9 <FnDocIterator>
10 </HoistIterator>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </LetVariable>11 </FnDocIterator>
12 <ReturnClause>12 </DescendantAxisIterator>
13 <SequentialIterator>13 </HoistIterator>
14 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">14 </LetVariable>
15 <flwor::FLWORIterator>15 <ReturnClause>
16 <ForVariable name="$$opt_temp_1">16 <SequentialIterator>
17 <UnhoistIterator>17 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
18 <LetVarIterator varname="$$opt_temp_0"/>18 <flwor::FLWORIterator>
19 </UnhoistIterator>19 <ForVariable name="$$opt_temp_1">
20 </ForVariable>20 <UnhoistIterator>
21 <ReturnClause>21 <LetVarIterator varname="$$opt_temp_0"/>
22 <ValueIndexEntryBuilderIterator>22 </UnhoistIterator>
23 <ForVarIterator varname="$$opt_temp_1"/>23 </ForVariable>
24 <FnCountIterator>24 <ReturnClause>
25 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">25 <ValueIndexEntryBuilderIterator>
26 <ForVarIterator varname="$$opt_temp_1"/>26 <ForVarIterator varname="$$opt_temp_1"/>
27 </ChildAxisIterator>27 <FnCountIterator>
28 </FnCountIterator>28 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
29 </ValueIndexEntryBuilderIterator>29 <ForVarIterator varname="$$opt_temp_1"/>
30 </ReturnClause>30 </ChildAxisIterator>
31 </flwor::FLWORIterator>31 </FnCountIterator>
32 </CreateInternalIndexIterator>32 </ValueIndexEntryBuilderIterator>
33 <ElementIterator>33 </ReturnClause>
34 <SingletonIterator value="xs:QName(,,karteikasten)"/>34 </flwor::FLWORIterator>
35 <EnclosedIterator attr_cont="false">35 </CreateInternalIndexIterator>
36 <flwor::FLWORIterator>36 <flwor::FLWORIterator>
37 <ForVariable name="anzahl">37 <ForVariable name="anzahl">
38 <OpToIterator>38 <OpToIterator>
@@ -64,9 +64,9 @@
64 </ElementIterator>64 </ElementIterator>
65 </ReturnClause>65 </ReturnClause>
66 </flwor::FLWORIterator>66 </flwor::FLWORIterator>
67 </EnclosedIterator>67 </SequentialIterator>
68 </ElementIterator>68 </ReturnClause>
69 </SequentialIterator>69 </flwor::FLWORIterator>
70 </ReturnClause>70 </EnclosedIterator>
71</flwor::FLWORIterator>71</ElementIterator>
7272
7373
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9211.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9211.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9211.iter 2012-06-14 14:31:26 +0000
@@ -1,38 +1,38 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <flwor::FLWORIterator>
6 <FnDocIterator>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:string(books.xml)"/>7 <HoistIterator>
8 </FnDocIterator>8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 </DescendantAxisIterator>9 <FnDocIterator>
10 </HoistIterator>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </LetVariable>11 </FnDocIterator>
12 <ReturnClause>12 </DescendantAxisIterator>
13 <SequentialIterator>13 </HoistIterator>
14 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">14 </LetVariable>
15 <flwor::FLWORIterator>15 <ReturnClause>
16 <ForVariable name="$$opt_temp_1">16 <SequentialIterator>
17 <UnhoistIterator>17 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
18 <LetVarIterator varname="$$opt_temp_0"/>18 <flwor::FLWORIterator>
19 </UnhoistIterator>19 <ForVariable name="$$opt_temp_1">
20 </ForVariable>20 <UnhoistIterator>
21 <ReturnClause>21 <LetVarIterator varname="$$opt_temp_0"/>
22 <ValueIndexEntryBuilderIterator>22 </UnhoistIterator>
23 <ForVarIterator varname="$$opt_temp_1"/>23 </ForVariable>
24 <FnCountIterator>24 <ReturnClause>
25 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">25 <ValueIndexEntryBuilderIterator>
26 <ForVarIterator varname="$$opt_temp_1"/>26 <ForVarIterator varname="$$opt_temp_1"/>
27 </ChildAxisIterator>27 <FnCountIterator>
28 </FnCountIterator>28 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
29 </ValueIndexEntryBuilderIterator>29 <ForVarIterator varname="$$opt_temp_1"/>
30 </ReturnClause>30 </ChildAxisIterator>
31 </flwor::FLWORIterator>31 </FnCountIterator>
32 </CreateInternalIndexIterator>32 </ValueIndexEntryBuilderIterator>
33 <ElementIterator>33 </ReturnClause>
34 <SingletonIterator value="xs:QName(,,karteikasten)"/>34 </flwor::FLWORIterator>
35 <EnclosedIterator attr_cont="false">35 </CreateInternalIndexIterator>
36 <flwor::FLWORIterator>36 <flwor::FLWORIterator>
37 <ForVariable name="anzahl">37 <ForVariable name="anzahl">
38 <OpToIterator>38 <OpToIterator>
@@ -67,9 +67,9 @@
67 </ElementIterator>67 </ElementIterator>
68 </ReturnClause>68 </ReturnClause>
69 </flwor::FLWORIterator>69 </flwor::FLWORIterator>
70 </EnclosedIterator>70 </SequentialIterator>
71 </ElementIterator>71 </ReturnClause>
72 </SequentialIterator>72 </flwor::FLWORIterator>
73 </ReturnClause>73 </EnclosedIterator>
74</flwor::FLWORIterator>74</ElementIterator>
7575
7676
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9212.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9212.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9212.iter 2012-06-14 14:31:26 +0000
@@ -1,38 +1,38 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <flwor::FLWORIterator>
6 <FnDocIterator>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:string(books.xml)"/>7 <HoistIterator>
8 </FnDocIterator>8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 </DescendantAxisIterator>9 <FnDocIterator>
10 </HoistIterator>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </LetVariable>11 </FnDocIterator>
12 <ReturnClause>12 </DescendantAxisIterator>
13 <SequentialIterator>13 </HoistIterator>
14 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">14 </LetVariable>
15 <flwor::FLWORIterator>15 <ReturnClause>
16 <ForVariable name="$$opt_temp_1">16 <SequentialIterator>
17 <UnhoistIterator>17 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
18 <LetVarIterator varname="$$opt_temp_0"/>18 <flwor::FLWORIterator>
19 </UnhoistIterator>19 <ForVariable name="$$opt_temp_1">
20 </ForVariable>20 <UnhoistIterator>
21 <ReturnClause>21 <LetVarIterator varname="$$opt_temp_0"/>
22 <ValueIndexEntryBuilderIterator>22 </UnhoistIterator>
23 <ForVarIterator varname="$$opt_temp_1"/>23 </ForVariable>
24 <FnCountIterator>24 <ReturnClause>
25 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">25 <ValueIndexEntryBuilderIterator>
26 <ForVarIterator varname="$$opt_temp_1"/>26 <ForVarIterator varname="$$opt_temp_1"/>
27 </ChildAxisIterator>27 <FnCountIterator>
28 </FnCountIterator>28 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
29 </ValueIndexEntryBuilderIterator>29 <ForVarIterator varname="$$opt_temp_1"/>
30 </ReturnClause>30 </ChildAxisIterator>
31 </flwor::FLWORIterator>31 </FnCountIterator>
32 </CreateInternalIndexIterator>32 </ValueIndexEntryBuilderIterator>
33 <ElementIterator>33 </ReturnClause>
34 <SingletonIterator value="xs:QName(,,karteikasten)"/>34 </flwor::FLWORIterator>
35 <EnclosedIterator attr_cont="false">35 </CreateInternalIndexIterator>
36 <flwor::FLWORIterator>36 <flwor::FLWORIterator>
37 <ForVariable name="book">37 <ForVariable name="book">
38 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">38 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
@@ -75,9 +75,9 @@
75 </ElementIterator>75 </ElementIterator>
76 </ReturnClause>76 </ReturnClause>
77 </flwor::FLWORIterator>77 </flwor::FLWORIterator>
78 </EnclosedIterator>78 </SequentialIterator>
79 </ElementIterator>79 </ReturnClause>
80 </SequentialIterator>80 </flwor::FLWORIterator>
81 </ReturnClause>81 </EnclosedIterator>
82</flwor::FLWORIterator>82</ElementIterator>
8383
8484
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9389.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9389.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9389.iter 2012-06-14 14:31:26 +0000
@@ -1,38 +1,38 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <flwor::FLWORIterator>
6 <FnDocIterator>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:string(books.xml)"/>7 <HoistIterator>
8 </FnDocIterator>8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 </DescendantAxisIterator>9 <FnDocIterator>
10 </HoistIterator>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </LetVariable>11 </FnDocIterator>
12 <ReturnClause>12 </DescendantAxisIterator>
13 <SequentialIterator>13 </HoistIterator>
14 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">14 </LetVariable>
15 <flwor::FLWORIterator>15 <ReturnClause>
16 <ForVariable name="$$opt_temp_1">16 <SequentialIterator>
17 <UnhoistIterator>17 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
18 <LetVarIterator varname="$$opt_temp_0"/>18 <flwor::FLWORIterator>
19 </UnhoistIterator>19 <ForVariable name="$$opt_temp_1">
20 </ForVariable>20 <UnhoistIterator>
21 <ReturnClause>21 <LetVarIterator varname="$$opt_temp_0"/>
22 <ValueIndexEntryBuilderIterator>22 </UnhoistIterator>
23 <ForVarIterator varname="$$opt_temp_1"/>23 </ForVariable>
24 <FnCountIterator>24 <ReturnClause>
25 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">25 <ValueIndexEntryBuilderIterator>
26 <ForVarIterator varname="$$opt_temp_1"/>26 <ForVarIterator varname="$$opt_temp_1"/>
27 </ChildAxisIterator>27 <FnCountIterator>
28 </FnCountIterator>28 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
29 </ValueIndexEntryBuilderIterator>29 <ForVarIterator varname="$$opt_temp_1"/>
30 </ReturnClause>30 </ChildAxisIterator>
31 </flwor::FLWORIterator>31 </FnCountIterator>
32 </CreateInternalIndexIterator>32 </ValueIndexEntryBuilderIterator>
33 <ElementIterator>33 </ReturnClause>
34 <SingletonIterator value="xs:QName(,,karteikasten)"/>34 </flwor::FLWORIterator>
35 <EnclosedIterator attr_cont="false">35 </CreateInternalIndexIterator>
36 <flwor::FLWORIterator>36 <flwor::FLWORIterator>
37 <ForVariable name="anzahl">37 <ForVariable name="anzahl">
38 <OpToIterator>38 <OpToIterator>
@@ -62,9 +62,9 @@
62 </ElementIterator>62 </ElementIterator>
63 </ReturnClause>63 </ReturnClause>
64 </flwor::FLWORIterator>64 </flwor::FLWORIterator>
65 </EnclosedIterator>65 </SequentialIterator>
66 </ElementIterator>66 </ReturnClause>
67 </SequentialIterator>67 </flwor::FLWORIterator>
68 </ReturnClause>68 </EnclosedIterator>
69</flwor::FLWORIterator>69</ElementIterator>
7070
7171
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9391.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9391.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9391.iter 2012-06-14 14:31:26 +0000
@@ -1,38 +1,38 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <flwor::FLWORIterator>
6 <FnDocIterator>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:string(books.xml)"/>7 <HoistIterator>
8 </FnDocIterator>8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 </DescendantAxisIterator>9 <FnDocIterator>
10 </HoistIterator>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </LetVariable>11 </FnDocIterator>
12 <ReturnClause>12 </DescendantAxisIterator>
13 <SequentialIterator>13 </HoistIterator>
14 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">14 </LetVariable>
15 <flwor::FLWORIterator>15 <ReturnClause>
16 <ForVariable name="$$opt_temp_1">16 <SequentialIterator>
17 <UnhoistIterator>17 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
18 <LetVarIterator varname="$$opt_temp_0"/>18 <flwor::FLWORIterator>
19 </UnhoistIterator>19 <ForVariable name="$$opt_temp_1">
20 </ForVariable>20 <UnhoistIterator>
21 <ReturnClause>21 <LetVarIterator varname="$$opt_temp_0"/>
22 <ValueIndexEntryBuilderIterator>22 </UnhoistIterator>
23 <ForVarIterator varname="$$opt_temp_1"/>23 </ForVariable>
24 <FnCountIterator>24 <ReturnClause>
25 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">25 <ValueIndexEntryBuilderIterator>
26 <ForVarIterator varname="$$opt_temp_1"/>26 <ForVarIterator varname="$$opt_temp_1"/>
27 </ChildAxisIterator>27 <FnCountIterator>
28 </FnCountIterator>28 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
29 </ValueIndexEntryBuilderIterator>29 <ForVarIterator varname="$$opt_temp_1"/>
30 </ReturnClause>30 </ChildAxisIterator>
31 </flwor::FLWORIterator>31 </FnCountIterator>
32 </CreateInternalIndexIterator>32 </ValueIndexEntryBuilderIterator>
33 <ElementIterator>33 </ReturnClause>
34 <SingletonIterator value="xs:QName(,,karteikasten)"/>34 </flwor::FLWORIterator>
35 <EnclosedIterator attr_cont="false">35 </CreateInternalIndexIterator>
36 <flwor::FLWORIterator>36 <flwor::FLWORIterator>
37 <ForVariable name="anzahl">37 <ForVariable name="anzahl">
38 <OpToIterator>38 <OpToIterator>
@@ -67,9 +67,9 @@
67 </ElementIterator>67 </ElementIterator>
68 </ReturnClause>68 </ReturnClause>
69 </flwor::FLWORIterator>69 </flwor::FLWORIterator>
70 </EnclosedIterator>70 </SequentialIterator>
71 </ElementIterator>71 </ReturnClause>
72 </SequentialIterator>72 </flwor::FLWORIterator>
73 </ReturnClause>73 </EnclosedIterator>
74</flwor::FLWORIterator>74</ElementIterator>
7575
7676
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9392.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9392.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9392.iter 2012-06-14 14:31:26 +0000
@@ -1,45 +1,45 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <ElementIterator>
6 <FnDocIterator>6 <SingletonIterator value="xs:QName(,,gruppe)"/>
7 <SingletonIterator value="xs:string(books.xml)"/>7 <AttributeIterator qname="xs:QName(,,anzahl)">
8 </FnDocIterator>8 <FnDataIterator>
9 </DescendantAxisIterator>9 <FnConcatIterator>
10 </HoistIterator>10 <SingletonIterator value="xs:string( )"/>
11 </LetVariable>11 <EnclosedIterator attr_cont="true">
12 <ReturnClause>12 <flwor::FLWORIterator>
13 <SequentialIterator>13 <LetVariable name="$$opt_temp_0" materialize="true">
14 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">14 <HoistIterator>
15 <flwor::FLWORIterator>15 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
16 <ForVariable name="$$opt_temp_1">16 <FnDocIterator>
17 <UnhoistIterator>17 <SingletonIterator value="xs:string(books.xml)"/>
18 <LetVarIterator varname="$$opt_temp_0"/>18 </FnDocIterator>
19 </UnhoistIterator>19 </DescendantAxisIterator>
20 </ForVariable>20 </HoistIterator>
21 <ReturnClause>21 </LetVariable>
22 <ValueIndexEntryBuilderIterator>22 <ReturnClause>
23 <ForVarIterator varname="$$opt_temp_1"/>23 <SequentialIterator>
24 <FnCountIterator>24 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
25 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">25 <flwor::FLWORIterator>
26 <ForVarIterator varname="$$opt_temp_1"/>26 <ForVariable name="$$opt_temp_1">
27 </ChildAxisIterator>27 <UnhoistIterator>
28 </FnCountIterator>28 <LetVarIterator varname="$$opt_temp_0"/>
29 </ValueIndexEntryBuilderIterator>29 </UnhoistIterator>
30 </ReturnClause>30 </ForVariable>
31 </flwor::FLWORIterator>31 <ReturnClause>
32 </CreateInternalIndexIterator>32 <ValueIndexEntryBuilderIterator>
33 <ElementIterator>33 <ForVarIterator varname="$$opt_temp_1"/>
34 <SingletonIterator value="xs:QName(,,karteikasten)"/>34 <FnCountIterator>
35 <EnclosedIterator attr_cont="false">35 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
36 <ElementIterator>36 <ForVarIterator varname="$$opt_temp_1"/>
37 <SingletonIterator value="xs:QName(,,gruppe)"/>37 </ChildAxisIterator>
38 <AttributeIterator qname="xs:QName(,,anzahl)">38 </FnCountIterator>
39 <FnDataIterator>39 </ValueIndexEntryBuilderIterator>
40 <FnConcatIterator>40 </ReturnClause>
41 <SingletonIterator value="xs:string( )"/>41 </flwor::FLWORIterator>
42 <EnclosedIterator attr_cont="true">42 </CreateInternalIndexIterator>
43 <flwor::FLWORIterator>43 <flwor::FLWORIterator>
44 <ForVariable name="anzahl">44 <ForVariable name="anzahl">
45 <OpToIterator>45 <OpToIterator>
@@ -57,15 +57,15 @@
57 <ForVarIterator varname="anzahl"/>57 <ForVarIterator varname="anzahl"/>
58 </ReturnClause>58 </ReturnClause>
59 </flwor::FLWORIterator>59 </flwor::FLWORIterator>
60 </EnclosedIterator>60 </SequentialIterator>
61 </FnConcatIterator>61 </ReturnClause>
62 </FnDataIterator>62 </flwor::FLWORIterator>
63 </AttributeIterator>63 </EnclosedIterator>
64 <FnConcatIterator/>64 </FnConcatIterator>
65 </ElementIterator>65 </FnDataIterator>
66 </EnclosedIterator>66 </AttributeIterator>
67 </ElementIterator>67 <FnConcatIterator/>
68 </SequentialIterator>68 </ElementIterator>
69 </ReturnClause>69 </EnclosedIterator>
70</flwor::FLWORIterator>70</ElementIterator>
7171
7272
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9399.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9399.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9399.iter 2012-06-14 14:31:26 +0000
@@ -1,38 +1,38 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <flwor::FLWORIterator>
6 <FnDocIterator>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:string(books.xml)"/>7 <HoistIterator>
8 </FnDocIterator>8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 </DescendantAxisIterator>9 <FnDocIterator>
10 </HoistIterator>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </LetVariable>11 </FnDocIterator>
12 <ReturnClause>12 </DescendantAxisIterator>
13 <SequentialIterator>13 </HoistIterator>
14 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">14 </LetVariable>
15 <flwor::FLWORIterator>15 <ReturnClause>
16 <ForVariable name="$$opt_temp_1">16 <SequentialIterator>
17 <UnhoistIterator>17 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
18 <LetVarIterator varname="$$opt_temp_0"/>18 <flwor::FLWORIterator>
19 </UnhoistIterator>19 <ForVariable name="$$opt_temp_1">
20 </ForVariable>20 <UnhoistIterator>
21 <ReturnClause>21 <LetVarIterator varname="$$opt_temp_0"/>
22 <ValueIndexEntryBuilderIterator>22 </UnhoistIterator>
23 <ForVarIterator varname="$$opt_temp_1"/>23 </ForVariable>
24 <FnCountIterator>24 <ReturnClause>
25 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">25 <ValueIndexEntryBuilderIterator>
26 <ForVarIterator varname="$$opt_temp_1"/>26 <ForVarIterator varname="$$opt_temp_1"/>
27 </ChildAxisIterator>27 <FnCountIterator>
28 </FnCountIterator>28 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
29 </ValueIndexEntryBuilderIterator>29 <ForVarIterator varname="$$opt_temp_1"/>
30 </ReturnClause>30 </ChildAxisIterator>
31 </flwor::FLWORIterator>31 </FnCountIterator>
32 </CreateInternalIndexIterator>32 </ValueIndexEntryBuilderIterator>
33 <ElementIterator>33 </ReturnClause>
34 <SingletonIterator value="xs:QName(,,karteikasten)"/>34 </flwor::FLWORIterator>
35 <EnclosedIterator attr_cont="false">35 </CreateInternalIndexIterator>
36 <flwor::FLWORIterator>36 <flwor::FLWORIterator>
37 <ForVariable name="anzahl">37 <ForVariable name="anzahl">
38 <OpToIterator>38 <OpToIterator>
@@ -61,9 +61,9 @@
61 </ElementIterator>61 </ElementIterator>
62 </ReturnClause>62 </ReturnClause>
63 </flwor::FLWORIterator>63 </flwor::FLWORIterator>
64 </EnclosedIterator>64 </SequentialIterator>
65 </ElementIterator>65 </ReturnClause>
66 </SequentialIterator>66 </flwor::FLWORIterator>
67 </ReturnClause>67 </EnclosedIterator>
68</flwor::FLWORIterator>68</ElementIterator>
6969
7070
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9400.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9400.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/9400.iter 2012-06-14 14:31:26 +0000
@@ -1,38 +1,38 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <flwor::FLWORIterator>
6 <FnDocIterator>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:string(books.xml)"/>7 <HoistIterator>
8 </FnDocIterator>8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 </DescendantAxisIterator>9 <FnDocIterator>
10 </HoistIterator>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </LetVariable>11 </FnDocIterator>
12 <ReturnClause>12 </DescendantAxisIterator>
13 <SequentialIterator>13 </HoistIterator>
14 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">14 </LetVariable>
15 <flwor::FLWORIterator>15 <ReturnClause>
16 <ForVariable name="$$opt_temp_1">16 <SequentialIterator>
17 <UnhoistIterator>17 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
18 <LetVarIterator varname="$$opt_temp_0"/>18 <flwor::FLWORIterator>
19 </UnhoistIterator>19 <ForVariable name="$$opt_temp_1">
20 </ForVariable>20 <UnhoistIterator>
21 <ReturnClause>21 <LetVarIterator varname="$$opt_temp_0"/>
22 <ValueIndexEntryBuilderIterator>22 </UnhoistIterator>
23 <ForVarIterator varname="$$opt_temp_1"/>23 </ForVariable>
24 <FnCountIterator>24 <ReturnClause>
25 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">25 <ValueIndexEntryBuilderIterator>
26 <ForVarIterator varname="$$opt_temp_1"/>26 <ForVarIterator varname="$$opt_temp_1"/>
27 </ChildAxisIterator>27 <FnCountIterator>
28 </FnCountIterator>28 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
29 </ValueIndexEntryBuilderIterator>29 <ForVarIterator varname="$$opt_temp_1"/>
30 </ReturnClause>30 </ChildAxisIterator>
31 </flwor::FLWORIterator>31 </FnCountIterator>
32 </CreateInternalIndexIterator>32 </ValueIndexEntryBuilderIterator>
33 <ElementIterator>33 </ReturnClause>
34 <SingletonIterator value="xs:QName(,,karteikasten)"/>34 </flwor::FLWORIterator>
35 <EnclosedIterator attr_cont="false">35 </CreateInternalIndexIterator>
36 <flwor::FLWORIterator>36 <flwor::FLWORIterator>
37 <ForVariable name="anzahl">37 <ForVariable name="anzahl">
38 <OpToIterator>38 <OpToIterator>
@@ -62,9 +62,9 @@
62 </ElementIterator>62 </ElementIterator>
63 </ReturnClause>63 </ReturnClause>
64 </flwor::FLWORIterator>64 </flwor::FLWORIterator>
65 </EnclosedIterator>65 </SequentialIterator>
66 </ElementIterator>66 </ReturnClause>
67 </SequentialIterator>67 </flwor::FLWORIterator>
68 </ReturnClause>68 </EnclosedIterator>
69</flwor::FLWORIterator>69</ElementIterator>
7070
7171
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx4.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx4.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx4.iter 2012-06-14 14:31:26 +0000
@@ -76,89 +76,85 @@
76 </TreatIterator>76 </TreatIterator>
77 </HoistIterator>77 </HoistIterator>
78 </LetVariable>78 </LetVariable>
79 <ForVariable name="prefix">
80 <flwor::FLWORIterator>
81 <ForVariable name="prefixE">
82 <InScopePrefixesIterator>
83 <TreatIterator quant="">
84 <LetVarIterator varname="e"/>
85 </TreatIterator>
86 </InScopePrefixesIterator>
87 </ForVariable>
88 <LetVariable name="$$opt_temp_1" materialize="true">
89 <HoistIterator>
90 <NamespaceUriForPrefixIterator>
91 <ForVarIterator varname="prefixE"/>
92 <UnhoistIterator>
93 <LetVarIterator varname="$$opt_temp_0"/>
94 </UnhoistIterator>
95 </NamespaceUriForPrefixIterator>
96 </HoistIterator>
97 </LetVariable>
98 <ForVariable name="prefixP">
99 <ProbeIndexPointValueIterator>
100 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
101 <ForVarIterator varname="prefixE"/>
102 </ProbeIndexPointValueIterator>
103 </ForVariable>
104 <WhereClause>
105 <FnBooleanIterator>
106 <CompareIterator>
107 <UnhoistIterator>
108 <LetVarIterator varname="$$opt_temp_1"/>
109 </UnhoistIterator>
110 <NamespaceUriForPrefixIterator>
111 <ForVarIterator varname="prefixP"/>
112 <UnhoistIterator>
113 <ForVarIterator varname="$$opt_temp_2"/>
114 </UnhoistIterator>
115 </NamespaceUriForPrefixIterator>
116 </CompareIterator>
117 </FnBooleanIterator>
118 </WhereClause>
119 <ReturnClause>
120 <ForVarIterator varname="prefixE"/>
121 </ReturnClause>
122 </flwor::FLWORIterator>
123 </ForVariable>
79 <ReturnClause>124 <ReturnClause>
80 <flwor::FLWORIterator>125 <FnConcatIterator>
81 <ForVariable name="prefix">126 <SingletonIterator value="xs:string( )"/>
82 <flwor::FLWORIterator>127 <ElementIterator>
83 <ForVariable name="prefixE">128 <SingletonIterator value="xs:QName(,,span)"/>
84 <InScopePrefixesIterator>129 <AttributeIterator qname="xs:QName(,,class)">
85 <TreatIterator quant="">130 <SingletonIterator value="xs:string(ns)"/>
86 <LetVarIterator varname="e"/>131 </AttributeIterator>
87 </TreatIterator>132 <EnclosedIterator attr_cont="false">
88 </InScopePrefixesIterator>133 <FnConcatIterator>
89 </ForVariable>134 <ConcatStrIterator>
90 <LetVariable name="$$opt_temp_1" materialize="true">135 <SingletonIterator value="xs:string(xmlns:)"/>
91 <HoistIterator>136 <ForVarIterator varname="prefix"/>
92 <NamespaceUriForPrefixIterator>137 <SingletonIterator value="xs:string(=")"/>
93 <ForVarIterator varname="prefixE"/>138 </ConcatStrIterator>
94 <UnhoistIterator>139 <ElementIterator>
95 <LetVarIterator varname="$$opt_temp_0"/>140 <SingletonIterator value="xs:QName(,,span)"/>
96 </UnhoistIterator>141 <AttributeIterator qname="xs:QName(,,class)">
97 </NamespaceUriForPrefixIterator>142 <SingletonIterator value="xs:string(nsUri)"/>
98 </HoistIterator>143 </AttributeIterator>
99 </LetVariable>144 <EnclosedIterator attr_cont="false">
100 <ForVariable name="prefixP">
101 <ProbeIndexPointValueIterator>
102 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
103 <ForVarIterator varname="prefixE"/>
104 </ProbeIndexPointValueIterator>
105 </ForVariable>
106 <WhereClause>
107 <FnBooleanIterator>
108 <CompareIterator>
109 <UnhoistIterator>
110 <LetVarIterator varname="$$opt_temp_1"/>
111 </UnhoistIterator>
112 <NamespaceUriForPrefixIterator>145 <NamespaceUriForPrefixIterator>
113 <ForVarIterator varname="prefixP"/>146 <ForVarIterator varname="prefix"/>
114 <UnhoistIterator>147 <UnhoistIterator>
115 <ForVarIterator varname="$$opt_temp_2"/>148 <ForVarIterator varname="$$opt_temp_3"/>
116 </UnhoistIterator>149 </UnhoistIterator>
117 </NamespaceUriForPrefixIterator>150 </NamespaceUriForPrefixIterator>
118 </CompareIterator>151 </EnclosedIterator>
119 </FnBooleanIterator>152 </ElementIterator>
120 </WhereClause>153 <SingletonIterator value="xs:string(")"/>
121 <ReturnClause>154 </FnConcatIterator>
122 <ForVarIterator varname="prefixE"/>155 </EnclosedIterator>
123 </ReturnClause>156 </ElementIterator>
124 </flwor::FLWORIterator>157 </FnConcatIterator>
125 </ForVariable>
126 <ReturnClause>
127 <FnConcatIterator>
128 <SingletonIterator value="xs:string( )"/>
129 <ElementIterator>
130 <SingletonIterator value="xs:QName(,,span)"/>
131 <AttributeIterator qname="xs:QName(,,class)">
132 <SingletonIterator value="xs:string(ns)"/>
133 </AttributeIterator>
134 <EnclosedIterator attr_cont="false">
135 <FnConcatIterator>
136 <ConcatStrIterator>
137 <SingletonIterator value="xs:string(xmlns:)"/>
138 <ForVarIterator varname="prefix"/>
139 <SingletonIterator value="xs:string(=")"/>
140 </ConcatStrIterator>
141 <ElementIterator>
142 <SingletonIterator value="xs:QName(,,span)"/>
143 <AttributeIterator qname="xs:QName(,,class)">
144 <SingletonIterator value="xs:string(nsUri)"/>
145 </AttributeIterator>
146 <EnclosedIterator attr_cont="false">
147 <NamespaceUriForPrefixIterator>
148 <ForVarIterator varname="prefix"/>
149 <UnhoistIterator>
150 <ForVarIterator varname="$$opt_temp_3"/>
151 </UnhoistIterator>
152 </NamespaceUriForPrefixIterator>
153 </EnclosedIterator>
154 </ElementIterator>
155 <SingletonIterator value="xs:string(")"/>
156 </FnConcatIterator>
157 </EnclosedIterator>
158 </ElementIterator>
159 </FnConcatIterator>
160 </ReturnClause>
161 </flwor::FLWORIterator>
162 </ReturnClause>158 </ReturnClause>
163 </flwor::FLWORIterator>159 </flwor::FLWORIterator>
164 </SequentialIterator>160 </SequentialIterator>
165161
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx5.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx5.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/hashjoins/idx5.iter 2012-06-14 14:31:26 +0000
@@ -19,98 +19,94 @@
19 <SingletonIterator value="xs:QName(,,tests)"/>19 <SingletonIterator value="xs:QName(,,tests)"/>
20 </ElementIterator>20 </ElementIterator>
21 </CtxVarDeclareIterator>21 </CtxVarDeclareIterator>
22 <flwor::FLWORIterator>22 <SequentialIterator>
23 <LetVariable name="$$opt_temp_1" materialize="true">23 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
24 <HoistIterator>24 <flwor::FLWORIterator>
25 <flwor::FLWORIterator>25 <ForVariable name="$$opt_temp_2">
26 <ForVariable name="$$dot">26 <CtxVarIterator varid="2" varname="tests" varkind="global"/>
27 <CtxVarIterator varid="2" varname="tests" varkind="global"/>27 </ForVariable>
28 </ForVariable>28 <ReturnClause>
29 <WhereClause>29 <ValueIndexEntryBuilderIterator>
30 <FnBooleanIterator>30 <ForVarIterator varname="$$opt_temp_2"/>
31 <AttributeAxisIterator test kind="match_name_test" qname="xs:QName(,,name)" typename="*" nill allowed="0">31 <CastIterator type="xs:string">
32 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="*">32 <PromoteIterator type="xs:anyAtomicType">
33 <ForVarIterator varname="$$dot"/>33 <FnDataIterator>
34 </TreatIterator>34 <ChildAxisIterator test kind="match_text_test" qname="*" typename="*" nill allowed="0">
35 </AttributeAxisIterator>35 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="*">
36 </FnBooleanIterator>36 <ForVarIterator varname="$$opt_temp_2"/>
37 </WhereClause>37 </TreatIterator>
38 <ReturnClause>38 </ChildAxisIterator>
39 <ForVarIterator varname="$$dot"/>39 </FnDataIterator>
40 </ReturnClause>40 </PromoteIterator>
41 </flwor::FLWORIterator>41 </CastIterator>
42 </HoistIterator>42 </ValueIndexEntryBuilderIterator>
43 </LetVariable>43 </ReturnClause>
44 <ReturnClause>44 </flwor::FLWORIterator>
45 <SequentialIterator>45 </CreateInternalIndexIterator>
46 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">46 <flwor::FLWORIterator>
47 <LetVariable name="$$opt_temp_1" materialize="true">
48 <HoistIterator>
47 <flwor::FLWORIterator>49 <flwor::FLWORIterator>
48 <ForVariable name="$$opt_temp_2">50 <ForVariable name="$$dot">
49 <CtxVarIterator varid="2" varname="tests" varkind="global"/>51 <CtxVarIterator varid="2" varname="tests" varkind="global"/>
50 </ForVariable>52 </ForVariable>
53 <WhereClause>
54 <FnBooleanIterator>
55 <AttributeAxisIterator test kind="match_name_test" qname="xs:QName(,,name)" typename="*" nill allowed="0">
56 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="*">
57 <ForVarIterator varname="$$dot"/>
58 </TreatIterator>
59 </AttributeAxisIterator>
60 </FnBooleanIterator>
61 </WhereClause>
51 <ReturnClause>62 <ReturnClause>
52 <ValueIndexEntryBuilderIterator>63 <ForVarIterator varname="$$dot"/>
53 <ForVarIterator varname="$$opt_temp_2"/>
54 <CastIterator type="xs:string">
55 <PromoteIterator type="xs:anyAtomicType">
56 <FnDataIterator>
57 <ChildAxisIterator test kind="match_text_test" qname="*" typename="*" nill allowed="0">
58 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="*">
59 <ForVarIterator varname="$$opt_temp_2"/>
60 </TreatIterator>
61 </ChildAxisIterator>
62 </FnDataIterator>
63 </PromoteIterator>
64 </CastIterator>
65 </ValueIndexEntryBuilderIterator>
66 </ReturnClause>64 </ReturnClause>
67 </flwor::FLWORIterator>65 </flwor::FLWORIterator>
68 </CreateInternalIndexIterator>66 </HoistIterator>
67 </LetVariable>
68 <ForVariable name="test">
69 <CtxVarIterator varid="2" varname="tests" varkind="global"/>
70 </ForVariable>
71 <LetVariable name="$$opt_temp_0" materialize="true">
72 <HoistIterator>
73 <CastIterator type="xs:string">
74 <PromoteIterator type="xs:anyAtomicType">
75 <FnDataIterator>
76 <ChildAxisIterator test kind="match_text_test" qname="*" typename="*" nill allowed="0">
77 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="*">
78 <ForVarIterator varname="test"/>
79 </TreatIterator>
80 </ChildAxisIterator>
81 </FnDataIterator>
82 </PromoteIterator>
83 </CastIterator>
84 </HoistIterator>
85 </LetVariable>
86 <LetVariable name="test_old" materialize="true">
69 <flwor::FLWORIterator>87 <flwor::FLWORIterator>
70 <ForVariable name="test">88 <ForVariable name="$$dot">
71 <CtxVarIterator varid="2" varname="tests" varkind="global"/>89 <ProbeIndexPointValueIterator>
90 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
91 <UnhoistIterator>
92 <LetVarIterator varname="$$opt_temp_0"/>
93 </UnhoistIterator>
94 </ProbeIndexPointValueIterator>
72 </ForVariable>95 </ForVariable>
73 <LetVariable name="$$opt_temp_0" materialize="true">
74 <HoistIterator>
75 <CastIterator type="xs:string">
76 <PromoteIterator type="xs:anyAtomicType">
77 <FnDataIterator>
78 <ChildAxisIterator test kind="match_text_test" qname="*" typename="*" nill allowed="0">
79 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="*">
80 <ForVarIterator varname="test"/>
81 </TreatIterator>
82 </ChildAxisIterator>
83 </FnDataIterator>
84 </PromoteIterator>
85 </CastIterator>
86 </HoistIterator>
87 </LetVariable>
88 <LetVariable name="test_old" materialize="true">
89 <flwor::FLWORIterator>
90 <ForVariable name="$$dot">
91 <ProbeIndexPointValueIterator>
92 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
93 <UnhoistIterator>
94 <LetVarIterator varname="$$opt_temp_0"/>
95 </UnhoistIterator>
96 </ProbeIndexPointValueIterator>
97 </ForVariable>
98 <ReturnClause>
99 <ForVarIterator varname="$$dot"/>
100 </ReturnClause>
101 </flwor::FLWORIterator>
102 </LetVariable>
103 <LetVariable name="qt_old" materialize="true">
104 <UnhoistIterator>
105 <LetVarIterator varname="$$opt_temp_1"/>
106 </UnhoistIterator>
107 </LetVariable>
108 <ReturnClause>96 <ReturnClause>
109 <SingletonIterator value="xs:integer(1)"/>97 <ForVarIterator varname="$$dot"/>
110 </ReturnClause>98 </ReturnClause>
111 </flwor::FLWORIterator>99 </flwor::FLWORIterator>
112 </SequentialIterator>100 </LetVariable>
113 </ReturnClause>101 <LetVariable name="qt_old" materialize="true">
114 </flwor::FLWORIterator>102 <UnhoistIterator>
103 <LetVarIterator varname="$$opt_temp_1"/>
104 </UnhoistIterator>
105 </LetVariable>
106 <ReturnClause>
107 <SingletonIterator value="xs:integer(1)"/>
108 </ReturnClause>
109 </flwor::FLWORIterator>
110 </SequentialIterator>
115</SequentialIterator>111</SequentialIterator>
116112
117113
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/misc/hoist4.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/misc/hoist4.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/misc/hoist4.iter 2012-06-14 14:31:26 +0000
@@ -83,27 +83,23 @@
83 </GenericArithIterator_AddOperation>83 </GenericArithIterator_AddOperation>
84 </HoistIterator>84 </HoistIterator>
85 </LetVariable>85 </LetVariable>
86 <ForVariable name="c">
87 <OpToIterator>
88 <SingletonIterator value="xs:integer(1)"/>
89 <PromoteIterator type="xs:integer">
90 <FnDataIterator>
91 <CtxVarIterator varid="2" varname="x" varkind="local"/>
92 </FnDataIterator>
93 </PromoteIterator>
94 </OpToIterator>
95 </ForVariable>
86 <ReturnClause>96 <ReturnClause>
87 <flwor::FLWORIterator>97 <GenericArithIterator_AddOperation>
88 <ForVariable name="c">98 <UnhoistIterator>
89 <OpToIterator>99 <LetVarIterator varname="$$opt_temp_0"/>
90 <SingletonIterator value="xs:integer(1)"/>100 </UnhoistIterator>
91 <PromoteIterator type="xs:integer">101 <ForVarIterator varname="c"/>
92 <FnDataIterator>102 </GenericArithIterator_AddOperation>
93 <CtxVarIterator varid="2" varname="x" varkind="local"/>
94 </FnDataIterator>
95 </PromoteIterator>
96 </OpToIterator>
97 </ForVariable>
98 <ReturnClause>
99 <GenericArithIterator_AddOperation>
100 <UnhoistIterator>
101 <LetVarIterator varname="$$opt_temp_0"/>
102 </UnhoistIterator>
103 <ForVarIterator varname="c"/>
104 </GenericArithIterator_AddOperation>
105 </ReturnClause>
106 </flwor::FLWORIterator>
107 </ReturnClause>103 </ReturnClause>
108 </flwor::FLWORIterator>104 </flwor::FLWORIterator>
109 </SequentialIterator>105 </SequentialIterator>
110106
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9198.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9198.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9198.iter 2012-06-14 14:31:26 +0000
@@ -1,33 +1,33 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator copyInputNodes="false">
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <OpToIterator>5 <flwor::FLWORIterator>
6 <SingletonIterator value="xs:integer(1)"/>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:integer(2)"/>7 <HoistIterator>
8 </OpToIterator>8 <OpToIterator>
9 </HoistIterator>9 <SingletonIterator value="xs:integer(1)"/>
10 </LetVariable>10 <SingletonIterator value="xs:integer(2)"/>
11 <ReturnClause>11 </OpToIterator>
12 <SequentialIterator>12 </HoistIterator>
13 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">13 </LetVariable>
14 <flwor::FLWORIterator>14 <ReturnClause>
15 <ForVariable name="$$opt_temp_2">15 <SequentialIterator>
16 <UnhoistIterator>16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <LetVarIterator varname="$$opt_temp_0"/>17 <flwor::FLWORIterator>
18 </UnhoistIterator>18 <ForVariable name="$$opt_temp_2">
19 </ForVariable>19 <UnhoistIterator>
20 <ReturnClause>20 <LetVarIterator varname="$$opt_temp_0"/>
21 <ValueIndexEntryBuilderIterator>21 </UnhoistIterator>
22 <ForVarIterator varname="$$opt_temp_2"/>22 </ForVariable>
23 <ForVarIterator varname="$$opt_temp_2"/>23 <ReturnClause>
24 </ValueIndexEntryBuilderIterator>24 <ValueIndexEntryBuilderIterator>
25 </ReturnClause>25 <ForVarIterator varname="$$opt_temp_2"/>
26 </flwor::FLWORIterator>26 <ForVarIterator varname="$$opt_temp_2"/>
27 </CreateInternalIndexIterator>27 </ValueIndexEntryBuilderIterator>
28 <ElementIterator copyInputNodes="false">28 </ReturnClause>
29 <SingletonIterator value="xs:QName(,,karteikasten)"/>29 </flwor::FLWORIterator>
30 <EnclosedIterator attr_cont="false">30 </CreateInternalIndexIterator>
31 <flwor::FLWORIterator>31 <flwor::FLWORIterator>
32 <ForVariable name="book">32 <ForVariable name="book">
33 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">33 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
@@ -67,9 +67,9 @@
67 </ElementIterator>67 </ElementIterator>
68 </ReturnClause>68 </ReturnClause>
69 </flwor::FLWORIterator>69 </flwor::FLWORIterator>
70 </EnclosedIterator>70 </SequentialIterator>
71 </ElementIterator>71 </ReturnClause>
72 </SequentialIterator>72 </flwor::FLWORIterator>
73 </ReturnClause>73 </EnclosedIterator>
74</flwor::FLWORIterator>74</ElementIterator>
7575
7676
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9199.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9199.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9199.iter 2012-06-14 14:31:26 +0000
@@ -1,33 +1,33 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator copyInputNodes="false">
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <OpToIterator>5 <flwor::FLWORIterator>
6 <SingletonIterator value="xs:integer(1)"/>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:integer(2)"/>7 <HoistIterator>
8 </OpToIterator>8 <OpToIterator>
9 </HoistIterator>9 <SingletonIterator value="xs:integer(1)"/>
10 </LetVariable>10 <SingletonIterator value="xs:integer(2)"/>
11 <ReturnClause>11 </OpToIterator>
12 <SequentialIterator>12 </HoistIterator>
13 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">13 </LetVariable>
14 <flwor::FLWORIterator>14 <ReturnClause>
15 <ForVariable name="$$opt_temp_2">15 <SequentialIterator>
16 <UnhoistIterator>16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <LetVarIterator varname="$$opt_temp_0"/>17 <flwor::FLWORIterator>
18 </UnhoistIterator>18 <ForVariable name="$$opt_temp_2">
19 </ForVariable>19 <UnhoistIterator>
20 <ReturnClause>20 <LetVarIterator varname="$$opt_temp_0"/>
21 <ValueIndexEntryBuilderIterator>21 </UnhoistIterator>
22 <ForVarIterator varname="$$opt_temp_2"/>22 </ForVariable>
23 <ForVarIterator varname="$$opt_temp_2"/>23 <ReturnClause>
24 </ValueIndexEntryBuilderIterator>24 <ValueIndexEntryBuilderIterator>
25 </ReturnClause>25 <ForVarIterator varname="$$opt_temp_2"/>
26 </flwor::FLWORIterator>26 <ForVarIterator varname="$$opt_temp_2"/>
27 </CreateInternalIndexIterator>27 </ValueIndexEntryBuilderIterator>
28 <ElementIterator copyInputNodes="false">28 </ReturnClause>
29 <SingletonIterator value="xs:QName(,,karteikasten)"/>29 </flwor::FLWORIterator>
30 <EnclosedIterator attr_cont="false">30 </CreateInternalIndexIterator>
31 <flwor::FLWORIterator>31 <flwor::FLWORIterator>
32 <ForVariable name="book">32 <ForVariable name="book">
33 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">33 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
@@ -67,9 +67,9 @@
67 </ElementIterator>67 </ElementIterator>
68 </ReturnClause>68 </ReturnClause>
69 </flwor::FLWORIterator>69 </flwor::FLWORIterator>
70 </EnclosedIterator>70 </SequentialIterator>
71 </ElementIterator>71 </ReturnClause>
72 </SequentialIterator>72 </flwor::FLWORIterator>
73 </ReturnClause>73 </EnclosedIterator>
74</flwor::FLWORIterator>74</ElementIterator>
7575
7676
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9212.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9212.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9212.iter 2012-06-14 14:31:26 +0000
@@ -1,38 +1,38 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator copyInputNodes="false">
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <flwor::FLWORIterator>
6 <FnDocIterator>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:string(books.xml)"/>7 <HoistIterator>
8 </FnDocIterator>8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 </DescendantAxisIterator>9 <FnDocIterator>
10 </HoistIterator>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </LetVariable>11 </FnDocIterator>
12 <ReturnClause>12 </DescendantAxisIterator>
13 <SequentialIterator>13 </HoistIterator>
14 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">14 </LetVariable>
15 <flwor::FLWORIterator>15 <ReturnClause>
16 <ForVariable name="$$opt_temp_1">16 <SequentialIterator>
17 <UnhoistIterator>17 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
18 <LetVarIterator varname="$$opt_temp_0"/>18 <flwor::FLWORIterator>
19 </UnhoistIterator>19 <ForVariable name="$$opt_temp_1">
20 </ForVariable>20 <UnhoistIterator>
21 <ReturnClause>21 <LetVarIterator varname="$$opt_temp_0"/>
22 <ValueIndexEntryBuilderIterator>22 </UnhoistIterator>
23 <ForVarIterator varname="$$opt_temp_1"/>23 </ForVariable>
24 <FnCountIterator>24 <ReturnClause>
25 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">25 <ValueIndexEntryBuilderIterator>
26 <ForVarIterator varname="$$opt_temp_1"/>26 <ForVarIterator varname="$$opt_temp_1"/>
27 </ChildAxisIterator>27 <FnCountIterator>
28 </FnCountIterator>28 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
29 </ValueIndexEntryBuilderIterator>29 <ForVarIterator varname="$$opt_temp_1"/>
30 </ReturnClause>30 </ChildAxisIterator>
31 </flwor::FLWORIterator>31 </FnCountIterator>
32 </CreateInternalIndexIterator>32 </ValueIndexEntryBuilderIterator>
33 <ElementIterator copyInputNodes="false">33 </ReturnClause>
34 <SingletonIterator value="xs:QName(,,karteikasten)"/>34 </flwor::FLWORIterator>
35 <EnclosedIterator attr_cont="false">35 </CreateInternalIndexIterator>
36 <flwor::FLWORIterator>36 <flwor::FLWORIterator>
37 <ForVariable name="book">37 <ForVariable name="book">
38 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">38 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
@@ -75,9 +75,9 @@
75 </ElementIterator>75 </ElementIterator>
76 </ReturnClause>76 </ReturnClause>
77 </flwor::FLWORIterator>77 </flwor::FLWORIterator>
78 </EnclosedIterator>78 </SequentialIterator>
79 </ElementIterator>79 </ReturnClause>
80 </SequentialIterator>80 </flwor::FLWORIterator>
81 </ReturnClause>81 </EnclosedIterator>
82</flwor::FLWORIterator>82</ElementIterator>
8383
8484
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9389.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9389.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9389.iter 2012-06-14 14:31:26 +0000
@@ -1,38 +1,38 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator copyInputNodes="false">
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <flwor::FLWORIterator>
6 <FnDocIterator>6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <SingletonIterator value="xs:string(books.xml)"/>7 <HoistIterator>
8 </FnDocIterator>8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 </DescendantAxisIterator>9 <FnDocIterator>
10 </HoistIterator>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </LetVariable>11 </FnDocIterator>
12 <ReturnClause>12 </DescendantAxisIterator>
13 <SequentialIterator>13 </HoistIterator>
14 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">14 </LetVariable>
15 <flwor::FLWORIterator>15 <ReturnClause>
16 <ForVariable name="$$opt_temp_1">16 <SequentialIterator>
17 <UnhoistIterator>17 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
18 <LetVarIterator varname="$$opt_temp_0"/>18 <flwor::FLWORIterator>
19 </UnhoistIterator>19 <ForVariable name="$$opt_temp_1">
20 </ForVariable>20 <UnhoistIterator>
21 <ReturnClause>21 <LetVarIterator varname="$$opt_temp_0"/>
22 <ValueIndexEntryBuilderIterator>22 </UnhoistIterator>
23 <ForVarIterator varname="$$opt_temp_1"/>23 </ForVariable>
24 <FnCountIterator>24 <ReturnClause>
25 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">25 <ValueIndexEntryBuilderIterator>
26 <ForVarIterator varname="$$opt_temp_1"/>26 <ForVarIterator varname="$$opt_temp_1"/>
27 </ChildAxisIterator>27 <FnCountIterator>
28 </FnCountIterator>28 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
29 </ValueIndexEntryBuilderIterator>29 <ForVarIterator varname="$$opt_temp_1"/>
30 </ReturnClause>30 </ChildAxisIterator>
31 </flwor::FLWORIterator>31 </FnCountIterator>
32 </CreateInternalIndexIterator>32 </ValueIndexEntryBuilderIterator>
33 <ElementIterator copyInputNodes="false">33 </ReturnClause>
34 <SingletonIterator value="xs:QName(,,karteikasten)"/>34 </flwor::FLWORIterator>
35 <EnclosedIterator attr_cont="false">35 </CreateInternalIndexIterator>
36 <flwor::FLWORIterator>36 <flwor::FLWORIterator>
37 <ForVariable name="anzahl">37 <ForVariable name="anzahl">
38 <OpToIterator>38 <OpToIterator>
@@ -62,9 +62,9 @@
62 </ElementIterator>62 </ElementIterator>
63 </ReturnClause>63 </ReturnClause>
64 </flwor::FLWORIterator>64 </flwor::FLWORIterator>
65 </EnclosedIterator>65 </SequentialIterator>
66 </ElementIterator>66 </ReturnClause>
67 </SequentialIterator>67 </flwor::FLWORIterator>
68 </ReturnClause>68 </EnclosedIterator>
69</flwor::FLWORIterator>69</ElementIterator>
7070
7171
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9392.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9392.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-9392.iter 2012-06-14 14:31:26 +0000
@@ -1,45 +1,45 @@
1Iterator tree for main query:1Iterator tree for main query:
2<flwor::FLWORIterator>2<ElementIterator copyInputNodes="false">
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <HoistIterator>4 <EnclosedIterator attr_cont="false">
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <ElementIterator copyInputNodes="false">
6 <FnDocIterator>6 <SingletonIterator value="xs:QName(,,gruppe)"/>
7 <SingletonIterator value="xs:string(books.xml)"/>7 <AttributeIterator qname="xs:QName(,,anzahl)">
8 </FnDocIterator>8 <FnDataIterator>
9 </DescendantAxisIterator>9 <FnConcatIterator>
10 </HoistIterator>10 <SingletonIterator value="xs:string( )"/>
11 </LetVariable>11 <EnclosedIterator attr_cont="true">
12 <ReturnClause>12 <flwor::FLWORIterator>
13 <SequentialIterator>13 <LetVariable name="$$opt_temp_0" materialize="true">
14 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">14 <HoistIterator>
15 <flwor::FLWORIterator>15 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
16 <ForVariable name="$$opt_temp_1">16 <FnDocIterator>
17 <UnhoistIterator>17 <SingletonIterator value="xs:string(books.xml)"/>
18 <LetVarIterator varname="$$opt_temp_0"/>18 </FnDocIterator>
19 </UnhoistIterator>19 </DescendantAxisIterator>
20 </ForVariable>20 </HoistIterator>
21 <ReturnClause>21 </LetVariable>
22 <ValueIndexEntryBuilderIterator>22 <ReturnClause>
23 <ForVarIterator varname="$$opt_temp_1"/>23 <SequentialIterator>
24 <FnCountIterator>24 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
25 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">25 <flwor::FLWORIterator>
26 <ForVarIterator varname="$$opt_temp_1"/>26 <ForVariable name="$$opt_temp_1">
27 </ChildAxisIterator>27 <UnhoistIterator>
28 </FnCountIterator>28 <LetVarIterator varname="$$opt_temp_0"/>
29 </ValueIndexEntryBuilderIterator>29 </UnhoistIterator>
30 </ReturnClause>30 </ForVariable>
31 </flwor::FLWORIterator>31 <ReturnClause>
32 </CreateInternalIndexIterator>32 <ValueIndexEntryBuilderIterator>
33 <ElementIterator copyInputNodes="false">33 <ForVarIterator varname="$$opt_temp_1"/>
34 <SingletonIterator value="xs:QName(,,karteikasten)"/>34 <FnCountIterator>
35 <EnclosedIterator attr_cont="false">35 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
36 <ElementIterator copyInputNodes="false">36 <ForVarIterator varname="$$opt_temp_1"/>
37 <SingletonIterator value="xs:QName(,,gruppe)"/>37 </ChildAxisIterator>
38 <AttributeIterator qname="xs:QName(,,anzahl)">38 </FnCountIterator>
39 <FnDataIterator>39 </ValueIndexEntryBuilderIterator>
40 <FnConcatIterator>40 </ReturnClause>
41 <SingletonIterator value="xs:string( )"/>41 </flwor::FLWORIterator>
42 <EnclosedIterator attr_cont="true">42 </CreateInternalIndexIterator>
43 <flwor::FLWORIterator>43 <flwor::FLWORIterator>
44 <ForVariable name="anzahl">44 <ForVariable name="anzahl">
45 <OpToIterator>45 <OpToIterator>
@@ -57,15 +57,15 @@
57 <ForVarIterator varname="anzahl"/>57 <ForVarIterator varname="anzahl"/>
58 </ReturnClause>58 </ReturnClause>
59 </flwor::FLWORIterator>59 </flwor::FLWORIterator>
60 </EnclosedIterator>60 </SequentialIterator>
61 </FnConcatIterator>61 </ReturnClause>
62 </FnDataIterator>62 </flwor::FLWORIterator>
63 </AttributeIterator>63 </EnclosedIterator>
64 <FnConcatIterator/>64 </FnConcatIterator>
65 </ElementIterator>65 </FnDataIterator>
66 </EnclosedIterator>66 </AttributeIterator>
67 </ElementIterator>67 <FnConcatIterator/>
68 </SequentialIterator>68 </ElementIterator>
69 </ReturnClause>69 </EnclosedIterator>
70</flwor::FLWORIterator>70</ElementIterator>
7171
7272
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-idx4.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-idx4.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/no-copy/hashjoin-idx4.iter 2012-06-14 14:31:26 +0000
@@ -76,89 +76,85 @@
76 </TreatIterator>76 </TreatIterator>
77 </HoistIterator>77 </HoistIterator>
78 </LetVariable>78 </LetVariable>
79 <ForVariable name="prefix">
80 <flwor::FLWORIterator>
81 <ForVariable name="prefixE">
82 <InScopePrefixesIterator>
83 <TreatIterator quant="">
84 <LetVarIterator varname="e"/>
85 </TreatIterator>
86 </InScopePrefixesIterator>
87 </ForVariable>
88 <LetVariable name="$$opt_temp_1" materialize="true">
89 <HoistIterator>
90 <NamespaceUriForPrefixIterator>
91 <ForVarIterator varname="prefixE"/>
92 <UnhoistIterator>
93 <LetVarIterator varname="$$opt_temp_0"/>
94 </UnhoistIterator>
95 </NamespaceUriForPrefixIterator>
96 </HoistIterator>
97 </LetVariable>
98 <ForVariable name="prefixP">
99 <ProbeIndexPointValueIterator>
100 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
101 <ForVarIterator varname="prefixE"/>
102 </ProbeIndexPointValueIterator>
103 </ForVariable>
104 <WhereClause>
105 <FnBooleanIterator>
106 <CompareIterator>
107 <UnhoistIterator>
108 <LetVarIterator varname="$$opt_temp_1"/>
109 </UnhoistIterator>
110 <NamespaceUriForPrefixIterator>
111 <ForVarIterator varname="prefixP"/>
112 <UnhoistIterator>
113 <ForVarIterator varname="$$opt_temp_2"/>
114 </UnhoistIterator>
115 </NamespaceUriForPrefixIterator>
116 </CompareIterator>
117 </FnBooleanIterator>
118 </WhereClause>
119 <ReturnClause>
120 <ForVarIterator varname="prefixE"/>
121 </ReturnClause>
122 </flwor::FLWORIterator>
123 </ForVariable>
79 <ReturnClause>124 <ReturnClause>
80 <flwor::FLWORIterator>125 <FnConcatIterator>
81 <ForVariable name="prefix">126 <SingletonIterator value="xs:string( )"/>
82 <flwor::FLWORIterator>127 <ElementIterator copyInputNodes="false">
83 <ForVariable name="prefixE">128 <SingletonIterator value="xs:QName(,,span)"/>
84 <InScopePrefixesIterator>129 <AttributeIterator qname="xs:QName(,,class)">
85 <TreatIterator quant="">130 <SingletonIterator value="xs:string(ns)"/>
86 <LetVarIterator varname="e"/>131 </AttributeIterator>
87 </TreatIterator>132 <EnclosedIterator attr_cont="false">
88 </InScopePrefixesIterator>133 <FnConcatIterator>
89 </ForVariable>134 <ConcatStrIterator>
90 <LetVariable name="$$opt_temp_1" materialize="true">135 <SingletonIterator value="xs:string(xmlns:)"/>
91 <HoistIterator>136 <ForVarIterator varname="prefix"/>
92 <NamespaceUriForPrefixIterator>137 <SingletonIterator value="xs:string(=")"/>
93 <ForVarIterator varname="prefixE"/>138 </ConcatStrIterator>
94 <UnhoistIterator>139 <ElementIterator copyInputNodes="false">
95 <LetVarIterator varname="$$opt_temp_0"/>140 <SingletonIterator value="xs:QName(,,span)"/>
96 </UnhoistIterator>141 <AttributeIterator qname="xs:QName(,,class)">
97 </NamespaceUriForPrefixIterator>142 <SingletonIterator value="xs:string(nsUri)"/>
98 </HoistIterator>143 </AttributeIterator>
99 </LetVariable>144 <EnclosedIterator attr_cont="false">
100 <ForVariable name="prefixP">
101 <ProbeIndexPointValueIterator>
102 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
103 <ForVarIterator varname="prefixE"/>
104 </ProbeIndexPointValueIterator>
105 </ForVariable>
106 <WhereClause>
107 <FnBooleanIterator>
108 <CompareIterator>
109 <UnhoistIterator>
110 <LetVarIterator varname="$$opt_temp_1"/>
111 </UnhoistIterator>
112 <NamespaceUriForPrefixIterator>145 <NamespaceUriForPrefixIterator>
113 <ForVarIterator varname="prefixP"/>146 <ForVarIterator varname="prefix"/>
114 <UnhoistIterator>147 <UnhoistIterator>
115 <ForVarIterator varname="$$opt_temp_2"/>148 <ForVarIterator varname="$$opt_temp_3"/>
116 </UnhoistIterator>149 </UnhoistIterator>
117 </NamespaceUriForPrefixIterator>150 </NamespaceUriForPrefixIterator>
118 </CompareIterator>151 </EnclosedIterator>
119 </FnBooleanIterator>152 </ElementIterator>
120 </WhereClause>153 <SingletonIterator value="xs:string(")"/>
121 <ReturnClause>154 </FnConcatIterator>
122 <ForVarIterator varname="prefixE"/>155 </EnclosedIterator>
123 </ReturnClause>156 </ElementIterator>
124 </flwor::FLWORIterator>157 </FnConcatIterator>
125 </ForVariable>
126 <ReturnClause>
127 <FnConcatIterator>
128 <SingletonIterator value="xs:string( )"/>
129 <ElementIterator copyInputNodes="false">
130 <SingletonIterator value="xs:QName(,,span)"/>
131 <AttributeIterator qname="xs:QName(,,class)">
132 <SingletonIterator value="xs:string(ns)"/>
133 </AttributeIterator>
134 <EnclosedIterator attr_cont="false">
135 <FnConcatIterator>
136 <ConcatStrIterator>
137 <SingletonIterator value="xs:string(xmlns:)"/>
138 <ForVarIterator varname="prefix"/>
139 <SingletonIterator value="xs:string(=")"/>
140 </ConcatStrIterator>
141 <ElementIterator copyInputNodes="false">
142 <SingletonIterator value="xs:QName(,,span)"/>
143 <AttributeIterator qname="xs:QName(,,class)">
144 <SingletonIterator value="xs:string(nsUri)"/>
145 </AttributeIterator>
146 <EnclosedIterator attr_cont="false">
147 <NamespaceUriForPrefixIterator>
148 <ForVarIterator varname="prefix"/>
149 <UnhoistIterator>
150 <ForVarIterator varname="$$opt_temp_3"/>
151 </UnhoistIterator>
152 </NamespaceUriForPrefixIterator>
153 </EnclosedIterator>
154 </ElementIterator>
155 <SingletonIterator value="xs:string(")"/>
156 </FnConcatIterator>
157 </EnclosedIterator>
158 </ElementIterator>
159 </FnConcatIterator>
160 </ReturnClause>
161 </flwor::FLWORIterator>
162 </ReturnClause>158 </ReturnClause>
163 </flwor::FLWORIterator>159 </flwor::FLWORIterator>
164 </SequentialIterator>160 </SequentialIterator>
165161
=== modified file 'test/rbkt/ExpCompilerResults/IterPlan/zorba/xray/ppm_10.iter'
--- test/rbkt/ExpCompilerResults/IterPlan/zorba/xray/ppm_10.iter 2012-05-03 12:31:51 +0000
+++ test/rbkt/ExpCompilerResults/IterPlan/zorba/xray/ppm_10.iter 2012-06-14 14:31:26 +0000
@@ -354,124 +354,120 @@
354 </TreatIterator>354 </TreatIterator>
355 </UDFunctionCallIterator>355 </UDFunctionCallIterator>
356 </CtxVarDeclareIterator>356 </CtxVarDeclareIterator>
357 <flwor::FLWORIterator>357 <FnConcatIterator>
358 <LetVariable name="$$opt_temp_0" materialize="true">358 <StringJoinIterator>
359 <HoistIterator>
360 <OpToIterator>
361 <SingletonIterator value="xs:integer(1)"/>
362 <CtxVarIterator varid="2" varname="width" varkind="global"/>
363 </OpToIterator>
364 </HoistIterator>
365 </LetVariable>
366 <LetVariable name="$$opt_temp_1" materialize="true">
367 <HoistIterator>
368 <TreatIterator type="[NodeXQType elementNode content=[XQType ANY_TYPE_KIND*]]" quant="">
369 <CtxVarIterator varid="4" varname="scene" varkind="global"/>
370 </TreatIterator>
371 </HoistIterator>
372 </LetVariable>
373 <ReturnClause>
374 <FnConcatIterator>359 <FnConcatIterator>
360 <SingletonIterator value="xs:string(P3)"/>
375 <StringJoinIterator>361 <StringJoinIterator>
376 <FnConcatIterator>362 <FnConcatIterator>
377 <SingletonIterator value="xs:string(P3)"/>363 <FnStringIterator>
364 <CtxVarIterator varid="2" varname="width" varkind="global"/>
365 </FnStringIterator>
366 <FnStringIterator>
367 <CtxVarIterator varid="3" varname="height" varkind="global"/>
368 </FnStringIterator>
369 </FnConcatIterator>
370 <SingletonIterator value="xs:string( )"/>
371 </StringJoinIterator>
372 <SingletonIterator value="xs:string(255)"/>
373 <flwor::FLWORIterator>
374 <LetVariable name="$$opt_temp_1" materialize="true">
375 <HoistIterator>
376 <TreatIterator type="[NodeXQType elementNode content=[XQType ANY_TYPE_KIND*]]" quant="">
377 <CtxVarIterator varid="4" varname="scene" varkind="global"/>
378 </TreatIterator>
379 </HoistIterator>
380 </LetVariable>
381 <LetVariable name="$$opt_temp_0" materialize="true">
382 <HoistIterator>
383 <OpToIterator>
384 <SingletonIterator value="xs:integer(1)"/>
385 <CtxVarIterator varid="2" varname="width" varkind="global"/>
386 </OpToIterator>
387 </HoistIterator>
388 </LetVariable>
389 <ForVariable name="aspect-ratio">
390 <SpecificNumArithIterator_DivideOperation_DECIMAL>
391 <CtxVarIterator varid="2" varname="width" varkind="global"/>
392 <CtxVarIterator varid="3" varname="height" varkind="global"/>
393 </SpecificNumArithIterator_DivideOperation_DECIMAL>
394 </ForVariable>
395 <ForVariable name="y">
396 <OpToIterator>
397 <SingletonIterator value="xs:integer(1)"/>
398 <CtxVarIterator varid="3" varname="height" varkind="global"/>
399 </OpToIterator>
400 </ForVariable>
401 <ForVariable name="y-recentered">
402 <SpecificNumArithIterator_AddOperation_DECIMAL>
403 <SpecificNumArithIterator_DivideOperation_DECIMAL>
404 <OpNumericUnaryIterator>
405 <ForVarIterator varname="y"/>
406 </OpNumericUnaryIterator>
407 <CtxVarIterator varid="3" varname="height" varkind="global"/>
408 </SpecificNumArithIterator_DivideOperation_DECIMAL>
409 <SingletonIterator value="xs:decimal(0.5)"/>
410 </SpecificNumArithIterator_AddOperation_DECIMAL>
411 </ForVariable>
412 <LetVariable name="$$opt_temp_2" materialize="true">
413 <HoistIterator>
414 <PromoteIterator type="xs:double">
415 <ForVarIterator varname="y-recentered"/>
416 </PromoteIterator>
417 </HoistIterator>
418 </LetVariable>
419 <ForVariable name="x">
420 <UnhoistIterator>
421 <LetVarIterator varname="$$opt_temp_0"/>
422 </UnhoistIterator>
423 </ForVariable>
424 <ReturnClause>
378 <StringJoinIterator>425 <StringJoinIterator>
379 <FnConcatIterator>426 <flwor::FLWORIterator>
380 <FnStringIterator>427 <ForVariable name="channel">
381 <CtxVarIterator varid="2" varname="width" varkind="global"/>428 <UDFunctionCallIterator>
382 </FnStringIterator>429 <UnhoistIterator>
383 <FnStringIterator>430 <LetVarIterator varname="$$opt_temp_1"/>
384 <CtxVarIterator varid="3" varname="height" varkind="global"/>431 </UnhoistIterator>
385 </FnStringIterator>432 <PromoteIterator type="xs:double">
386 </FnConcatIterator>433 <SpecificNumArithIterator_MultiplyOperation_DECIMAL>
434 <SpecificNumArithIterator_SubtractOperation_DECIMAL>
435 <SpecificNumArithIterator_DivideOperation_DECIMAL>
436 <ForVarIterator varname="x"/>
437 <CtxVarIterator varid="2" varname="width" varkind="global"/>
438 </SpecificNumArithIterator_DivideOperation_DECIMAL>
439 <SingletonIterator value="xs:decimal(0.5)"/>
440 </SpecificNumArithIterator_SubtractOperation_DECIMAL>
441 <ForVarIterator varname="aspect-ratio"/>
442 </SpecificNumArithIterator_MultiplyOperation_DECIMAL>
443 </PromoteIterator>
444 <UnhoistIterator>
445 <LetVarIterator varname="$$opt_temp_2"/>
446 </UnhoistIterator>
447 </UDFunctionCallIterator>
448 </ForVariable>
449 <ReturnClause>
450 <FnStringIterator>
451 <FloorIterator>
452 <SpecificNumArithIterator_MultiplyOperation_DOUBLE>
453 <ForVarIterator varname="channel"/>
454 <SingletonIterator value="xs:double(255)"/>
455 </SpecificNumArithIterator_MultiplyOperation_DOUBLE>
456 </FloorIterator>
457 </FnStringIterator>
458 </ReturnClause>
459 </flwor::FLWORIterator>
387 <SingletonIterator value="xs:string( )"/>460 <SingletonIterator value="xs:string( )"/>
388 </StringJoinIterator>461 </StringJoinIterator>
389 <SingletonIterator value="xs:string(255)"/>462 </ReturnClause>
390 <flwor::FLWORIterator>463 </flwor::FLWORIterator>
391 <ForVariable name="aspect-ratio">
392 <SpecificNumArithIterator_DivideOperation_DECIMAL>
393 <CtxVarIterator varid="2" varname="width" varkind="global"/>
394 <CtxVarIterator varid="3" varname="height" varkind="global"/>
395 </SpecificNumArithIterator_DivideOperation_DECIMAL>
396 </ForVariable>
397 <ForVariable name="y">
398 <OpToIterator>
399 <SingletonIterator value="xs:integer(1)"/>
400 <CtxVarIterator varid="3" varname="height" varkind="global"/>
401 </OpToIterator>
402 </ForVariable>
403 <ForVariable name="y-recentered">
404 <SpecificNumArithIterator_AddOperation_DECIMAL>
405 <SpecificNumArithIterator_DivideOperation_DECIMAL>
406 <OpNumericUnaryIterator>
407 <ForVarIterator varname="y"/>
408 </OpNumericUnaryIterator>
409 <CtxVarIterator varid="3" varname="height" varkind="global"/>
410 </SpecificNumArithIterator_DivideOperation_DECIMAL>
411 <SingletonIterator value="xs:decimal(0.5)"/>
412 </SpecificNumArithIterator_AddOperation_DECIMAL>
413 </ForVariable>
414 <LetVariable name="$$opt_temp_2" materialize="true">
415 <HoistIterator>
416 <PromoteIterator type="xs:double">
417 <ForVarIterator varname="y-recentered"/>
418 </PromoteIterator>
419 </HoistIterator>
420 </LetVariable>
421 <ForVariable name="x">
422 <UnhoistIterator>
423 <LetVarIterator varname="$$opt_temp_0"/>
424 </UnhoistIterator>
425 </ForVariable>
426 <ReturnClause>
427 <StringJoinIterator>
428 <flwor::FLWORIterator>
429 <ForVariable name="channel">
430 <UDFunctionCallIterator>
431 <UnhoistIterator>
432 <LetVarIterator varname="$$opt_temp_1"/>
433 </UnhoistIterator>
434 <PromoteIterator type="xs:double">
435 <SpecificNumArithIterator_MultiplyOperation_DECIMAL>
436 <SpecificNumArithIterator_SubtractOperation_DECIMAL>
437 <SpecificNumArithIterator_DivideOperation_DECIMAL>
438 <ForVarIterator varname="x"/>
439 <CtxVarIterator varid="2" varname="width" varkind="global"/>
440 </SpecificNumArithIterator_DivideOperation_DECIMAL>
441 <SingletonIterator value="xs:decimal(0.5)"/>
442 </SpecificNumArithIterator_SubtractOperation_DECIMAL>
443 <ForVarIterator varname="aspect-ratio"/>
444 </SpecificNumArithIterator_MultiplyOperation_DECIMAL>
445 </PromoteIterator>
446 <UnhoistIterator>
447 <LetVarIterator varname="$$opt_temp_2"/>
448 </UnhoistIterator>
449 </UDFunctionCallIterator>
450 </ForVariable>
451 <ReturnClause>
452 <FnStringIterator>
453 <FloorIterator>
454 <SpecificNumArithIterator_MultiplyOperation_DOUBLE>
455 <ForVarIterator varname="channel"/>
456 <SingletonIterator value="xs:double(255)"/>
457 </SpecificNumArithIterator_MultiplyOperation_DOUBLE>
458 </FloorIterator>
459 </FnStringIterator>
460 </ReturnClause>
461 </flwor::FLWORIterator>
462 <SingletonIterator value="xs:string( )"/>
463 </StringJoinIterator>
464 </ReturnClause>
465 </flwor::FLWORIterator>
466 </FnConcatIterator>
467 <SingletonIterator value="xs:string(
468)"/>
469 </StringJoinIterator>
470 <SingletonIterator value="xs:string(
471)"/>
472 </FnConcatIterator>464 </FnConcatIterator>
473 </ReturnClause>465 <SingletonIterator value="xs:string(
474 </flwor::FLWORIterator>466)"/>
467 </StringJoinIterator>
468 <SingletonIterator value="xs:string(
469)"/>
470 </FnConcatIterator>
475</SequentialIterator>471</SequentialIterator>
476472
477Iterator tree for scene:prepare-scene:473Iterator tree for scene:prepare-scene:
478474
=== modified file 'test/rbkt/Queries/zorba/hashjoins/idx10.xq'
--- test/rbkt/Queries/zorba/hashjoins/idx10.xq 2012-03-29 21:13:41 +0000
+++ test/rbkt/Queries/zorba/hashjoins/idx10.xq 2012-06-14 14:31:26 +0000
@@ -16,7 +16,7 @@
16{16{
17 for $i in local:bar()/@id17 for $i in local:bar()/@id
18 for $j in local:foo()/@id18 for $j in local:foo()/@id
19 where xs:string($i) eq xs:string($j)19 where xs:string($i) eq xs:string($j)
20 return $i20 return $i
21}21}
22catch * 22catch *
@@ -25,3 +25,136 @@
25}25}
2626
2727
28(:
29
30Expression tree after optimization for main query
31flwor_expr (0x8d66cd0)
32[
33 LET (0x8d66c88) $$opt_temp_0 (0x8d66e40)
34 [
35 hoist/1 (0x8d66c28) [ hoist/1 (0x8d6b298) [ error/0 (0x8d6ae08) [ ] ] ]
36 ]
37 LET (0x8d66f20) $$opt_temp_1 (0x8d670d8)
38 [
39 hoist/1 (0x8d66ec0) [
40 to/2 (0x8d6afa8) [
41 const_expr (0x8d6b008) [ xs:integer [ xs:integer(1) ] ]
42 const_expr (0x8d68c48) [ xs:integer [ xs:integer(10) ] ]
43 ]
44 ]
45 ]
46 RETURN
47 trycatch_expr (0x8d6f258)
48 [
49 flwor_expr (0x8d6fca8)
50 [
51 FOR (0x8d6b2f8) i (0x8d6e7f8)
52 [
53 sort-distinct-nodes-asc/1 (0x8d6e690) [
54 relpath_expr (0x8d6b238) [
55 function_trace_expr (0x8d6f530) [
56 flwor_expr (0x8d6b510)
57 [
58 FOR (0x8d6e7b0) i (0x8d6f5f0)
59 [
60 to/2 (0x8d6b578) [
61 const_expr (0x8d6e6f0) [ xs:integer [ xs:integer(1) ] ]
62 const_expr (0x8d6e748) [ xs:integer [ xs:integer(10) ] ]
63 ]
64 ]
65 RETURN
66 elem_expr (0x8d6f4c8) [
67 copy nodes = 1
68 const_expr (0x8d6f690) [ xs:QName [ xs:QName(,,b) ] ]
69 attr_expr (0x8d6f470) [
70 const_expr (0x8d6dd28) [ xs:QName [ xs:QName(,,id) ] ]
71 =
72 enclosed-expr/1 (0x8d6dd80) [
73 var_ref (0x8d6dde0) [ i (0x8d6f5f0) ]
74 ]
75 ]
76 ]
77 ]
78 ]
79 REL STEP attribute::match_expr [name_test(id)]
80 ]
81 ]
82 ]
83 LET (0x8d671c8) $$opt_temp_2 (0x8d67030)
84 [
85 hoist/1 (0x8d67158) [
86 cast_expr xs:string? (0x8d6f8a8) [
87 data/1 (0x8d6f848) [ var_ref (0x8d6f7b8) [ i (0x8d6e7f8) ] ]
88 ]
89 ]
90 ]
91 FOR (0x8d6f770) j (0x8d6f360)
92 [
93 sort-distinct-nodes-asc/1 (0x8d6f1f8) [
94 relpath_expr (0x8d6e8d0) [
95 function_trace_expr (0x8d692e0) [
96 flwor_expr (0x8d6ada0)
97 [
98 FOR (0x8d69590) $$opt_temp_0 (0x8d69510)
99 [
100 unhoist (0x8d66d90) [ vref(0x8d66d38) [ $$opt_temp_0 (0x8d66e40) ] ]
101 ]
102 FOR (0x8d68d50) i (0x8d68cb0)
103 [
104 unhoist (0x8d66fd0) [ vref (0x8d66f78) [ $$opt_temp_1 (0x8d670d8) ] ]
105 ]
106 RETURN
107 if_expr (0x8d69280) [
108 value-equal-integer/2 (0x8d68d98) [
109 numeric-mod/2 (0x8d68df8) [
110 var_ref (0x8d68e58) [ i (0x8d68cb0) ]
111 const_expr (0x8d68ec0) [ xs:integer [ xs:integer(2) ] ]
112 ]
113 const_expr (0x8d68f28) [ xs:integer [ xs:integer(0) ] ]
114 ]
115 THEN
116 elem_expr (0x8d69150) [
117 copy nodes = 1
118 const_expr (0x8d68f90) [ xs:QName [ xs:QName(,,a) ] ]
119 attr_expr (0x8d690f8) [
120 const_expr (0x8d68fe8) [ xs:QName [ xs:QName(,,id) ] ]
121 =
122 enclosed-expr/1 (0x8d69040) [
123 var_ref (0x8d690a0) [ i (0x8d68cb0) ]
124 ]
125 ]
126 ]
127 ELSE
128 unhoist/1 (0x8d691b8) [
129 var_ref (0x8d69218) [ $$opt_temp_0 (0x8d69510) ]
130 ]
131 ]
132 ]
133 ]
134 REL STEP attribute::match_expr [name_test(id)]
135 ]
136 ]
137 ]
138 WHERE
139 boolean/1 (0x8d6fbf0) [
140 value-equal-string/2 (0x8d6fa10) [
141 unhoist/1 (0x8d67268) [
142 var_ref (0x8d67210) [ $$opt_temp_2 (0x8d67030) ]
143 ]
144 cast_expr xs:string? (0x8d6f9b8) [
145 data/1 (0x8d6f958) [
146 var_ref (0x8d6f900) [ j (0x8d6f360) ]
147 ]
148 ]
149 ]
150 ]
151 RETURN
152 var_ref (0x8d6fc50) [ i (0x8d6e7f8) ]
153 ]
154 CATCH
155 const_expr (0x8d6ff10) [ xs:string [ xs:string(caught) ] ]
156 ]
157]
158
159
160:)

Subscribers

People subscribed via source and target branches