Merge lp:~paul-lucas/zorba/pjl-misc into lp:zorba

Proposed by Paul J. Lucas
Status: Merged
Approved by: Paul J. Lucas
Approved revision: 11450
Merged at revision: 11698
Proposed branch: lp:~paul-lucas/zorba/pjl-misc
Merge into: lp:zorba
Diff against target: 40111 lines (+18865/-19244)
193 files modified
bin/zorbacmd_args.cpp (+18/-2)
src/compiler/codegen/plan_visitor.cpp (+8/-9)
src/runtime/visitors/iterprinter.cpp (+110/-111)
src/runtime/visitors/iterprinter.h (+85/-120)
src/runtime/visitors/printer_visitor_api.cpp (+8/-8)
src/runtime/visitors/printer_visitor_impl.cpp (+1/-1)
test/iterplans/apitest_args.cpp (+30/-1)
test/iterplans/update_iter_plans (+13/-3)
test/iterplans/zorba/collections/count_dynamic_zorba_collection.iter (+17/-17)
test/iterplans/zorba/collections/count_static_zorba_collection.iter (+35/-35)
test/iterplans/zorba/collections/count_w3c_collection.iter (+27/-27)
test/iterplans/zorba/collections/no_copy_01.iter (+61/-61)
test/iterplans/zorba/dblp/q0.iter (+178/-178)
test/iterplans/zorba/error/trace1.iter (+8/-8)
test/iterplans/zorba/flwor/flwor24.iter (+54/-54)
test/iterplans/zorba/flwor/flwor25.iter (+54/-54)
test/iterplans/zorba/flwor/flwor26.iter (+64/-64)
test/iterplans/zorba/flwor/flwor27.iter (+60/-60)
test/iterplans/zorba/flwor/flwor28.iter (+54/-54)
test/iterplans/zorba/flwor/flwor_op00.iter (+26/-26)
test/iterplans/zorba/flwor/flwor_op01.iter (+32/-32)
test/iterplans/zorba/flwor/flwor_op02.iter (+37/-37)
test/iterplans/zorba/hashjoins/9065.iter (+54/-54)
test/iterplans/zorba/hashjoins/9066.iter (+44/-44)
test/iterplans/zorba/hashjoins/9067.iter (+63/-63)
test/iterplans/zorba/hashjoins/9068.iter (+71/-71)
test/iterplans/zorba/hashjoins/9197.iter (+68/-68)
test/iterplans/zorba/hashjoins/9198.iter (+69/-69)
test/iterplans/zorba/hashjoins/9199.iter (+69/-69)
test/iterplans/zorba/hashjoins/9204.iter (+70/-70)
test/iterplans/zorba/hashjoins/9206.iter (+63/-63)
test/iterplans/zorba/hashjoins/9207.iter (+69/-69)
test/iterplans/zorba/hashjoins/9210.iter (+63/-63)
test/iterplans/zorba/hashjoins/9211.iter (+66/-66)
test/iterplans/zorba/hashjoins/9212.iter (+73/-73)
test/iterplans/zorba/hashjoins/9389.iter (+65/-65)
test/iterplans/zorba/hashjoins/9390.iter (+65/-65)
test/iterplans/zorba/hashjoins/9391.iter (+70/-70)
test/iterplans/zorba/hashjoins/9392.iter (+66/-66)
test/iterplans/zorba/hashjoins/9399.iter (+64/-64)
test/iterplans/zorba/hashjoins/9400.iter (+61/-61)
test/iterplans/zorba/hashjoins/gary1.iter (+194/-194)
test/iterplans/zorba/hashjoins/gflwor_02.iter (+209/-209)
test/iterplans/zorba/hashjoins/gflwor_03.iter (+194/-194)
test/iterplans/zorba/hashjoins/gflwor_04.iter (+120/-120)
test/iterplans/zorba/hashjoins/gflwor_05.iter (+124/-124)
test/iterplans/zorba/hashjoins/idx1.iter (+90/-90)
test/iterplans/zorba/hashjoins/idx10.iter (+127/-127)
test/iterplans/zorba/hashjoins/idx11.iter (+75/-75)
test/iterplans/zorba/hashjoins/idx2.iter (+86/-86)
test/iterplans/zorba/hashjoins/idx3.iter (+82/-82)
test/iterplans/zorba/hashjoins/idx4.iter (+158/-158)
test/iterplans/zorba/hashjoins/idx5.iter (+24/-24)
test/iterplans/zorba/hashjoins/idx8.iter (+93/-93)
test/iterplans/zorba/hashjoins/idx9.iter (+88/-88)
test/iterplans/zorba/hashjoins/no_idx1.iter (+64/-64)
test/iterplans/zorba/hashjoins/q8.iter (+90/-90)
test/iterplans/zorba/index/match_veq_01.iter (+123/-123)
test/iterplans/zorba/index/match_veq_02.iter (+165/-165)
test/iterplans/zorba/index/match_veq_03.iter (+165/-165)
test/iterplans/zorba/index/match_veq_04.iter (+229/-229)
test/iterplans/zorba/index/match_veq_05.iter (+317/-317)
test/iterplans/zorba/index/match_veq_06.iter (+309/-309)
test/iterplans/zorba/index/match_veq_07.iter (+144/-144)
test/iterplans/zorba/index/match_veq_08b.iter (+112/-112)
test/iterplans/zorba/index/match_veq_09.iter (+112/-112)
test/iterplans/zorba/index/match_veq_10.iter (+126/-126)
test/iterplans/zorba/index/match_veq_11.iter (+182/-182)
test/iterplans/zorba/index/match_vrange_01.iter (+237/-237)
test/iterplans/zorba/index/match_vrange_02.iter (+279/-279)
test/iterplans/zorba/index/match_vrange_02a.iter (+317/-317)
test/iterplans/zorba/index/match_vrange_02b.iter (+301/-301)
test/iterplans/zorba/index/match_vrange_03.iter (+292/-292)
test/iterplans/zorba/index/match_vrange_04.iter (+47/-47)
test/iterplans/zorba/index/match_vrange_05.iter (+67/-67)
test/iterplans/zorba/index/match_vrange_06.iter (+88/-88)
test/iterplans/zorba/jsoniq/member_01.iter (+31/-31)
test/iterplans/zorba/misc/hoist4.iter (+103/-103)
test/iterplans/zorba/misc/inline_var1.iter (+63/-63)
test/iterplans/zorba/no-copy/dataguide-c.iter (+320/-320)
test/iterplans/zorba/no-copy/dataguide-nc.iter (+320/-320)
test/iterplans/zorba/no-copy/dataguide2-c.iter (+120/-120)
test/iterplans/zorba/no-copy/dataguide2-nc.iter (+120/-120)
test/iterplans/zorba/no-copy/dblp-q0.iter (+178/-178)
test/iterplans/zorba/no-copy/hashjoin-9065.iter (+54/-54)
test/iterplans/zorba/no-copy/hashjoin-9198.iter (+69/-69)
test/iterplans/zorba/no-copy/hashjoin-9199.iter (+69/-69)
test/iterplans/zorba/no-copy/hashjoin-9212.iter (+73/-73)
test/iterplans/zorba/no-copy/hashjoin-9389.iter (+65/-65)
test/iterplans/zorba/no-copy/hashjoin-9390.iter (+65/-65)
test/iterplans/zorba/no-copy/hashjoin-9392.iter (+66/-66)
test/iterplans/zorba/no-copy/hashjoin-gary1.iter (+194/-194)
test/iterplans/zorba/no-copy/hashjoin-idx1.iter (+90/-90)
test/iterplans/zorba/no-copy/hashjoin-idx4.iter (+158/-158)
test/iterplans/zorba/no-copy/hashjoin-q8.iter (+90/-90)
test/iterplans/zorba/no-copy/node-copy-01.iter (+30/-30)
test/iterplans/zorba/no-copy/node-copy-02.iter (+30/-30)
test/iterplans/zorba/no-copy/node-copy-03.iter (+30/-30)
test/iterplans/zorba/no-copy/path17.iter (+67/-67)
test/iterplans/zorba/no-copy/q1.iter (+47/-47)
test/iterplans/zorba/no-copy/q10.iter (+239/-239)
test/iterplans/zorba/no-copy/q11.iter (+98/-98)
test/iterplans/zorba/no-copy/q12.iter (+111/-111)
test/iterplans/zorba/no-copy/q13.iter (+40/-40)
test/iterplans/zorba/no-copy/q14.iter (+39/-39)
test/iterplans/zorba/no-copy/q15.iter (+38/-38)
test/iterplans/zorba/no-copy/q16.iter (+54/-54)
test/iterplans/zorba/no-copy/q17.iter (+46/-46)
test/iterplans/zorba/no-copy/q18.iter (+36/-36)
test/iterplans/zorba/no-copy/q19.iter (+51/-51)
test/iterplans/zorba/no-copy/q2.iter (+32/-32)
test/iterplans/zorba/no-copy/q20.iter (+172/-172)
test/iterplans/zorba/no-copy/q3.iter (+106/-106)
test/iterplans/zorba/no-copy/q4.iter (+105/-105)
test/iterplans/zorba/no-copy/q5.iter (+41/-41)
test/iterplans/zorba/no-copy/q6.iter (+28/-28)
test/iterplans/zorba/no-copy/q7.iter (+34/-34)
test/iterplans/zorba/no-copy/q8.iter (+97/-97)
test/iterplans/zorba/no-copy/q9.iter (+155/-155)
test/iterplans/zorba/no-copy/ser_03.iter (+31/-31)
test/iterplans/zorba/no-copy/test5.iter (+47/-47)
test/iterplans/zorba/no-copy/test6.iter (+43/-43)
test/iterplans/zorba/no-copy/udfs1.iter (+69/-69)
test/iterplans/zorba/optim/doc_order_01.iter (+46/-46)
test/iterplans/zorba/optim/hoist01.iter (+25/-25)
test/iterplans/zorba/optim/hoist_trycatch_01.iter (+206/-206)
test/iterplans/zorba/optim/hoist_window_01.iter (+272/-272)
test/iterplans/zorba/optim/pos_pred10.iter (+18/-18)
test/iterplans/zorba/optim/pos_pred11.iter (+52/-52)
test/iterplans/zorba/optim/pos_pred12.iter (+210/-210)
test/iterplans/zorba/optim/pos_pred13.iter (+84/-84)
test/iterplans/zorba/optim/pos_pred2.iter (+63/-63)
test/iterplans/zorba/optim/pos_pred3.iter (+76/-76)
test/iterplans/zorba/optim/pos_pred4.iter (+63/-63)
test/iterplans/zorba/optim/pos_pred5.iter (+30/-30)
test/iterplans/zorba/optim/pos_pred6.iter (+18/-18)
test/iterplans/zorba/optim/pos_pred7.iter (+21/-21)
test/iterplans/zorba/optim/pos_pred8.iter (+27/-27)
test/iterplans/zorba/optim/pos_pred9.iter (+36/-36)
test/iterplans/zorba/optim/positioned-access.iter (+47/-47)
test/iterplans/zorba/optim/var_elim_01.iter (+5/-5)
test/iterplans/zorba/optim/var_inline_01.iter (+51/-51)
test/iterplans/zorba/optim/var_inline_02.iter (+22/-22)
test/iterplans/zorba/optim/var_inline_03.iter (+35/-35)
test/iterplans/zorba/optim/var_inline_04.iter (+50/-50)
test/iterplans/zorba/optim/var_inline_05.iter (+72/-72)
test/iterplans/zorba/paths/path10.iter (+65/-65)
test/iterplans/zorba/paths/path11.iter (+35/-35)
test/iterplans/zorba/paths/path13.iter (+53/-53)
test/iterplans/zorba/paths/path17.iter (+67/-67)
test/iterplans/zorba/paths/path24.iter (+8/-8)
test/iterplans/zorba/paths/path_pred4.iter (+56/-56)
test/iterplans/zorba/paths/path_pred5.iter (+48/-48)
test/iterplans/zorba/paths/pred_order.iter (+30/-30)
test/iterplans/zorba/string/SubstringFunc/SubstringFunc2.iter (+10/-10)
test/iterplans/zorba/string/SubstringFunc/SubstringFunc3.iter (+14/-14)
test/iterplans/zorba/trycatch/trycatch7.iter (+14/-14)
test/iterplans/zorba/udf/udf-fib-rec2.iter (+40/-40)
test/iterplans/zorba/udf/udf-recursive-1.iter (+59/-59)
test/iterplans/zorba/udf/udf-recursive-2.iter (+49/-49)
test/iterplans/zorba/udf/udf1.iter (+53/-53)
test/iterplans/zorba/w3c/ForExpr010.iter (+47/-47)
test/iterplans/zorba/w3c/ForExpr025.iter (+36/-36)
test/iterplans/zorba/w3c/WhereExpr001.iter (+48/-48)
test/iterplans/zorba/w3c/fn-namespace-uri-17.iter (+13/-13)
test/iterplans/zorba/w3c/nodeexpression47.iter (+504/-504)
test/iterplans/zorba/w3c/rdb-queries-results-q5.iter (+279/-279)
test/iterplans/zorba/windowing/q10.iter (+129/-129)
test/iterplans/zorba/windowing/q4.iter (+77/-77)
test/iterplans/zorba/windowing/q9.iter (+122/-122)
test/iterplans/zorba/windowing/tumpling40.iter (+0/-397)
test/iterplans/zorba/windowing/windowing12.iter (+34/-34)
test/iterplans/zorba/xmark/q1.iter (+47/-47)
test/iterplans/zorba/xmark/q10.iter (+239/-239)
test/iterplans/zorba/xmark/q11.iter (+98/-98)
test/iterplans/zorba/xmark/q12.iter (+111/-111)
test/iterplans/zorba/xmark/q13.iter (+40/-40)
test/iterplans/zorba/xmark/q14.iter (+39/-39)
test/iterplans/zorba/xmark/q15.iter (+38/-38)
test/iterplans/zorba/xmark/q16.iter (+54/-54)
test/iterplans/zorba/xmark/q17.iter (+46/-46)
test/iterplans/zorba/xmark/q18.iter (+36/-36)
test/iterplans/zorba/xmark/q19.iter (+51/-51)
test/iterplans/zorba/xmark/q2.iter (+32/-32)
test/iterplans/zorba/xmark/q20.iter (+172/-172)
test/iterplans/zorba/xmark/q3.iter (+106/-106)
test/iterplans/zorba/xmark/q4.iter (+105/-105)
test/iterplans/zorba/xmark/q5.iter (+41/-41)
test/iterplans/zorba/xmark/q6.iter (+28/-28)
test/iterplans/zorba/xmark/q7.iter (+34/-34)
test/iterplans/zorba/xmark/q8.iter (+97/-97)
test/iterplans/zorba/xmark/q9.iter (+155/-155)
test/iterplans/zorba/xray/ppm_10.iter (+2070/-2070)
To merge this branch: bzr merge lp:~paul-lucas/zorba/pjl-misc
Reviewer Review Type Date Requested Status
Matthias Brantner Approve
Paul J. Lucas Approve
Review via email: mp+207355@code.launchpad.net

Commit message

Better iterator tree printing: it's either pure JSON or pure XML.

Description of the change

Better iterator tree printing: it's either pure JSON or pure XML.

To post a comment you must log in.
Revision history for this message
Paul J. Lucas (paul-lucas) :
review: Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~paul-lucas/zorba/pjl-misc/+merge/207355

Progress dashboard at http://jenkins.zorba.io:8180/view/ValidationQueue

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

Voting criteria failed for the following merge proposals:

https://code.launchpad.net/~paul-lucas/zorba/pjl-misc/+merge/207355 :
Votes: {'Approve': 1}

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

Validation queue result for https://code.launchpad.net/~paul-lucas/zorba/pjl-misc/+merge/207355

Stage "CommitZorba" failed.

Check console output at http://jenkins.zorba.io:8180/job/CommitZorba/295/console to view the results.

Revision history for this message
Matthias Brantner (matthias-brantner) wrote :

It's actually not pure JSON or pure XML.

JSON doesn't support a sequence of objects. This would need to become an array.
Same for XML, where we would need introduce an artificial root element.

review: Needs Fixing
Revision history for this message
Paul J. Lucas (paul-lucas) wrote :

> JSON doesn't support a sequence of objects. This would need to become an
> array.
> Same for XML, where we would need introduce an artificial root element.

The problem with that is that the local code has no way to know whether it's the last time it will ever be called to emit either a closing XML element or a ']' for JSON. Any ideas?

lp:~paul-lucas/zorba/pjl-misc updated
11451. By Paul J. Lucas

Now really XML and JSON.

Revision history for this message
Paul J. Lucas (paul-lucas) wrote :

Added a work-around. See if you like it.

lp:~paul-lucas/zorba/pjl-misc updated
11452. By Paul J. Lucas

Handling description properly.

11453. By Paul J. Lucas

Added --debug-stream argument.

Revision history for this message
Matthias Brantner (matthias-brantner) :
review: Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~paul-lucas/zorba/pjl-misc/+merge/207355

Progress dashboard at http://jenkins.zorba.io:8180/view/ValidationQueue

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

Validation queue result for https://code.launchpad.net/~paul-lucas/zorba/pjl-misc/+merge/207355

Stage "TestZorbaUbuntu" failed.
4 tests failed (8754 total tests run).

Check test results at http://jenkins.zorba.io:8180/job/TestZorbaUbuntu/467/testReport/ to view the results.

lp:~paul-lucas/zorba/pjl-misc updated
11454. By Paul J. Lucas

Removed wrappers.

11455. By Paul J. Lucas

Updated test results.

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

Validation queue starting for the following merge proposals:
https://code.launchpad.net/~paul-lucas/zorba/pjl-misc/+merge/207355

Progress dashboard at http://jenkins.zorba.io:8180/view/ValidationQueue

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

Validation queue succeeded - proposal merged!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bin/zorbacmd_args.cpp'
--- bin/zorbacmd_args.cpp 2014-02-19 04:27:02 +0000
+++ bin/zorbacmd_args.cpp 2014-02-24 20:09:23 +0000
@@ -114,6 +114,9 @@
114 HELP_OPT( "--debug-file" )114 HELP_OPT( "--debug-file" )
115 "Sets the file to write developer debugging information to.\n\n"115 "Sets the file to write developer debugging information to.\n\n"
116116
117 HELP_OPT( "--debug-stream <stream>" )
118 "Sets the stream to write developer debugging information to.\n\n"
119
117#ifdef ZORBA_WITH_DEBUGGER120#ifdef ZORBA_WITH_DEBUGGER
118 HELP_OPT( "--debug-host, -h" )121 HELP_OPT( "--debug-host, -h" )
119 "The host where the DBGP-enabled debugger client listens for connections. Defaults to: 127.0.0.1\n\n"122 "The host where the DBGP-enabled debugger client listens for connections. Defaults to: 127.0.0.1\n\n"
@@ -160,8 +163,8 @@
160 HELP_OPT( "--inline-udf" )163 HELP_OPT( "--inline-udf" )
161 "Inline user-defined functions.\n\n"164 "Inline user-defined functions.\n\n"
162165
163 HELP_OPT( "--iterator-tree <type>" )166 HELP_OPT( "--iterator-tree <format>" )
164 "Print the iterator tree in in one of DOT, JSON, or XML\n\n"167 "Print the iterator tree in in one of DOT, JSON, or XML formats.\n\n"
165168
166 ////////// j //////////////////////////////////////////////////////////////169 ////////// j //////////////////////////////////////////////////////////////
167170
@@ -466,6 +469,19 @@
466 PARSE_ARG( "--debug-file" );469 PARSE_ARG( "--debug-file" );
467 z_props.setDebugFile( ARG_VAL );470 z_props.setDebugFile( ARG_VAL );
468 }471 }
472 else if ( IS_LONG_OPT( "--debug-stream" ) ) {
473 PARSE_ARG( "--debug-stream" );
474 string val( ARG_VAL );
475 to_lower( val );
476 if ( val == "1" || val == "stdout" || val == "cout" )
477 z_props.setDebugStream( cout );
478 else if ( val == "2" || val == "stderr" || val == "cerr" )
479 z_props.setDebugStream( cerr );
480 else {
481 error = "--debug-stream argument must be one of: 1, stdout, cout, 2, stderr, or cerr.\n";
482 break;
483 }
484 }
469#ifdef ZORBA_WITH_DEBUGGER485#ifdef ZORBA_WITH_DEBUGGER
470 else if ( IS_OPT( "--debug-host", "-h" ) ) {486 else if ( IS_OPT( "--debug-host", "-h" ) ) {
471 PARSE_ARG( "--debug-host" );487 PARSE_ARG( "--debug-host" );
472488
=== modified file 'src/compiler/codegen/plan_visitor.cpp'
--- src/compiler/codegen/plan_visitor.cpp 2014-02-19 01:53:34 +0000
+++ src/compiler/codegen/plan_visitor.cpp 2014-02-24 20:09:23 +0000
@@ -27,6 +27,7 @@
2727
28#include "diagnostics/assert.h"28#include "diagnostics/assert.h"
29#include "util/hashmap32.h"29#include "util/hashmap32.h"
30#include "util/indent.h"
30#include "util/stl_util.h"31#include "util/stl_util.h"
31#include "util/tracer.h"32#include "util/tracer.h"
3233
@@ -3812,23 +3813,21 @@
3812 Zorba_plan_format_t const format = Properties::instance().getPlanFormat();3813 Zorba_plan_format_t const format = Properties::instance().getPlanFormat();
3813 if ( result && descr && format ) {3814 if ( result && descr && format ) {
3814 std::ostream &os = Properties::instance().getDebugStream();3815 std::ostream &os = Properties::instance().getDebugStream();
3815 os << "Iterator tree for " << descr << ":\n";
3816 unique_ptr<IterPrinter> printer;3816 unique_ptr<IterPrinter> printer;
3817 switch ( format ) {3817 switch ( format ) {
3818 case PLAN_FORMAT_NONE:
3819 return result;
3820 case PLAN_FORMAT_DOT:3818 case PLAN_FORMAT_DOT:
3821 printer.reset( new DOTIterPrinter( os ) );3819 printer.reset( new DOTIterPrinter( os, descr ) );
3822 break;3820 break;
3823 case PLAN_FORMAT_JSON:3821 case PLAN_FORMAT_JSON:
3824 printer.reset( new JSONIterPrinter( os ) );3822 printer.reset( new JSONIterPrinter( os, descr ) );
3825 break;3823 break;
3826 case PLAN_FORMAT_XML:3824 case PLAN_FORMAT_XML:
3827 printer.reset( new XMLIterPrinter( os ) );3825 printer.reset( new XMLIterPrinter( os, descr ) );
3828 break;3826 break;
3829 }3827 default: // to silence warning
3828 break;
3829 } // switch
3830 print_iter_plan( *printer, result );3830 print_iter_plan( *printer, result );
3831 os << std::endl;
3832 }3831 }
38333832
3834 return result;3833 return result;
38353834
=== modified file 'src/runtime/visitors/iterprinter.cpp'
--- src/runtime/visitors/iterprinter.cpp 2014-02-18 19:52:39 +0000
+++ src/runtime/visitors/iterprinter.cpp 2014-02-24 20:09:23 +0000
@@ -22,6 +22,7 @@
22// Zorba22// Zorba
23#include "runtime/visitors/iterprinter.h"23#include "runtime/visitors/iterprinter.h"
24#include "util/ascii_util.h"24#include "util/ascii_util.h"
25#include "util/indent.h"
25#include "util/xml_util.h"26#include "util/xml_util.h"
2627
27using namespace std;28using namespace std;
@@ -30,49 +31,65 @@
3031
31///////////////////////////////////////////////////////////////////////////////32///////////////////////////////////////////////////////////////////////////////
3233
33XMLIterPrinter::XMLIterPrinter(ostream& aOStream) :34IterPrinter::IterPrinter( ostream &os, char const *descr ) :
34 IterPrinter(aOStream),35 os_( os ), descr_( descr )
35 theOpenStart(false)36{
36{37}
38
39IterPrinter::~IterPrinter() {
40 // out-of-line since it's virtual
41}
42
43///////////////////////////////////////////////////////////////////////////////
44
45XMLIterPrinter::XMLIterPrinter( ostream &os, char const *descr ) :
46 IterPrinter( os, descr ),
47 theOpenStart( false )
48{
49}
50
51XMLIterPrinter::~XMLIterPrinter() {
52 // out-of-line since it's virtual
37}53}
3854
39void XMLIterPrinter::start() {55void XMLIterPrinter::start() {
56 os_ << indent << "<iterator-tree";
57 if ( !descr_.empty() )
58 os_ << " description=\"" << descr_ << '"';
59 os_ << ">\n" << inc_indent;
40}60}
4161
42void XMLIterPrinter::stop() {62void XMLIterPrinter::stop() {
63 os_ << dec_indent << indent << "</iterator-tree>\n";
43}64}
4465
45void XMLIterPrinter::startBeginVisit(const string& aName, int) {66void XMLIterPrinter::startBeginVisit( string const &name, int ) {
46 if (theOpenStart)67 if ( theOpenStart )
47 theOStream << ">\n";68 os_ << ">\n";
48 printSpaces(2 * theNameStack.size());69 os_ << indent << '<' << name << inc_indent;
49 theOStream << '<' << aName;70 theNameStack.push( name );
50 theNameStack.push(aName);
51 theOpenStart = true;71 theOpenStart = true;
52}72}
5373
54void XMLIterPrinter::endBeginVisit(int) {74void XMLIterPrinter::endBeginVisit( int ) {
55}75}
5676
57void XMLIterPrinter::addAttribute(const string& aName, const string& aValue) {77void XMLIterPrinter::addAttribute( string const &name, string const &value) {
58 assert(theOpenStart);78 assert( theOpenStart );
59 theOStream << ' ' << aName << "=\"" << aValue << "\"";79 os_ << ' ' << name << "=\"" << value << "\"";
60}80}
6181
62void XMLIterPrinter::addAttribute(const string& aName, xs_long aValue) {82void XMLIterPrinter::addAttribute( string const &name, xs_long value) {
63 assert(theOpenStart);83 assert( theOpenStart );
64 theOStream << ' ' << aName << "=\"" << aValue << "\"";84 os_ << ' ' << name << "=\"" << value << "\"";
65}85}
6686
67void XMLIterPrinter::startEndVisit() {87void XMLIterPrinter::startEndVisit() {
68 assert(!theNameStack.empty());88 assert( !theNameStack.empty() );
69 if (theOpenStart)89 if ( theOpenStart )
70 theOStream << "/>" << endl;90 os_ << "/>\n" << dec_indent;
71 else91 else
72 {92 os_ << dec_indent << indent << "</" << theNameStack.top() << ">\n";
73 printSpaces(2 * (theNameStack.size() - 1));
74 theOStream << "</" << theNameStack.top() << '>' << endl;
75 }
76 theNameStack.pop();93 theNameStack.pop();
77 theOpenStart = false;94 theOpenStart = false;
78}95}
@@ -82,48 +99,44 @@
8299
83///////////////////////////////////////////////////////////////////////////////100///////////////////////////////////////////////////////////////////////////////
84101
85DOTIterPrinter::DOTIterPrinter(ostream& aOStream) :102DOTIterPrinter::DOTIterPrinter( ostream &os, char const *descr ) :
86 IterPrinter(aOStream),103 IterPrinter( os, descr )
87 theIndent(0)
88{104{
89}105}
90106
107DOTIterPrinter::~DOTIterPrinter() {
108 // out-of-line since it's virtual
109}
110
91void DOTIterPrinter::start() {111void DOTIterPrinter::start() {
92 theOStream << "digraph {" << endl;112 os_ << indent << "digraph {\n" << inc_indent
93 theOStream << "node [ color=gray, fontname=\"Arial\" ]" << endl;113 << indent << "node [ color=gray, fontname=\"Arial\" ]\n";
94}114}
95115
96void DOTIterPrinter::stop() {116void DOTIterPrinter::stop() {
97 theOStream << '}' << endl;117 os_ << dec_indent << indent << "}\n";
98}118}
99119
100void DOTIterPrinter::startBeginVisit(const string& aName, int aAddr) {120void DOTIterPrinter::startBeginVisit( string const &name, int addr ) {
101 printSpaces(theIndent);121 os_ << indent << addr << " [ label=\"" << name;
102 theOStream << aAddr << " [ label=\"" << aName;122}
103 ++theIndent;123
104}124void DOTIterPrinter::endBeginVisit( int addr ) {
105125 os_ << "\" ];\n";
106void DOTIterPrinter::endBeginVisit(int aAddr) {126 if ( !theNameStack.empty() && theNameStack.top() != addr )
107 --theIndent;127 os_ << indent << theNameStack.top() << " -> " << addr << '\n';
108 printSpaces(theIndent);128 theNameStack.push( addr );
109 theOStream << "\"];" << endl;129}
110 printSpaces(theIndent);130
111 if (!theNameStack.empty() && theNameStack.top() != aAddr)131void DOTIterPrinter::addAttribute( string const &name, string const &value) {
112 theOStream << theNameStack.top() << "->" << aAddr << endl;132 string temp( value );
113 theNameStack.push(aAddr);133 ascii::replace_all( temp, "\"", "\\\"" );
114}134 ascii::replace_all( temp, "\n", " \\n " );
115135 os_ << "\\n" << name << '=' << temp;
116void DOTIterPrinter::addAttribute(const string& aName, const string& aValue) {136}
117 printSpaces(theIndent);137
118 string mvalue( aValue );138void DOTIterPrinter::addAttribute( string const &name, xs_long value) {
119 ascii::replace_all(mvalue, "\"", "\\\"");139 os_ << indent << "\\n" << name << '=' << value;
120 ascii::replace_all(mvalue, "\n", " \\n ");
121 theOStream << "\\n" << aName << '=' << mvalue;
122}
123
124void DOTIterPrinter::addAttribute(const string& aName, xs_long aValue) {
125 printSpaces(theIndent);
126 theOStream << "\\n" << aName << '=' << aValue;
127}140}
128141
129void DOTIterPrinter::startEndVisit() {142void DOTIterPrinter::startEndVisit() {
@@ -135,68 +148,54 @@
135148
136///////////////////////////////////////////////////////////////////////////////149///////////////////////////////////////////////////////////////////////////////
137150
138JSONIterPrinter::JSONIterPrinter(ostream& aOStream) :151JSONIterPrinter::JSONIterPrinter( ostream &os, char const *descr ) :
139 IterPrinter(aOStream), theIndent(0)152 IterPrinter( os, descr )
140{153{
141}154}
142155
156JSONIterPrinter::~JSONIterPrinter() {
157 // out-of-line since it's virtual
158}
159
143void JSONIterPrinter::start() {160void JSONIterPrinter::start() {
161 os_ << indent << "{\n" << inc_indent;
162 if ( !descr_.empty() )
163 os_ << indent << "\"description\": \"" << descr_ << "\",\n";
164 os_ << indent << "\"iterator-tree\":\n" << inc_indent;
144}165}
145166
146void JSONIterPrinter::stop() {167void JSONIterPrinter::stop() {
147 theOStream << endl;168 os_ << '\n' << dec_indent << dec_indent << indent << "}\n";
148}169}
149170
150void JSONIterPrinter::startBeginVisit(const string& aName, int) {171void JSONIterPrinter::startBeginVisit( string const &name, int ) {
151 if (!theListStack.empty())172 if ( !theListStack.empty() )
152 theOStream << ',' << endl;173 os_ << ",\n";
153174 if ( !theListStack.empty() && !theListStack.top() ) {
154 if (!theListStack.empty() && !theListStack.top()) {175 os_ << indent << "\"iterators\": [\n" << inc_indent;
155 printSpaces(2 * theIndent);
156 theOStream << "\"iterators\":" << endl;
157 printSpaces(2 * theIndent);
158 theOStream << '[';
159 theListStack.pop();176 theListStack.pop();
160 theListStack.push(true);177 theListStack.push( true );
161 theIndent++;
162 theOStream << endl;
163 }178 }
164179 os_ << indent << "{\n" << inc_indent
165 printSpaces(2 * theIndent);180 << indent << "\"kind\": \"" << name << "\"";
166 theOStream << "{" << endl;181 theListStack.push( false );
167 printSpaces(2 * (1+theIndent));182}
168 theOStream << "\"kind\": \"" << aName << "\"";183
169 theIndent++;184void JSONIterPrinter::endBeginVisit( int ) {
170 theListStack.push(false);185}
171}186
172187void JSONIterPrinter::addAttribute( string const &name, string const &value ) {
173void JSONIterPrinter::endBeginVisit(int) {188 os_ << ",\n" << indent << "\"" << name << "\": \"" << value << "\"";
174}189}
175190
176void JSONIterPrinter::addAttribute(const string& aName, const string& aValue) {191void JSONIterPrinter::addAttribute( string const &name, xs_long value ) {
177 theOStream << ',' << endl;192 os_ << ",\n" << indent << "\"" << name << "\": " << value;
178 printSpaces(2 * theIndent);
179 theOStream << "\"" << aName << "\": \"" << aValue << "\"";
180}
181
182void JSONIterPrinter::addAttribute(const string& aName, xs_long aValue) {
183 theOStream << ',' << endl;
184 printSpaces(2 * theIndent);
185 theOStream << "\"" << aName << "\": " << aValue;
186}193}
187194
188void JSONIterPrinter::startEndVisit() {195void JSONIterPrinter::startEndVisit() {
189 if (theListStack.top()) {196 if ( theListStack.top() )
190 theOStream << endl;197 os_ << '\n' << dec_indent << indent << ']';
191 printSpaces(2 * (theIndent - 1));198 os_ << '\n' << dec_indent << indent << '}';
192 theOStream << ']';
193 theIndent--;
194 }
195
196 theOStream << endl;
197 printSpaces(2 * (theIndent - 1));
198 theOStream << '}';
199 theIndent--;
200 theListStack.pop();199 theListStack.pop();
201}200}
202201
203202
=== modified file 'src/runtime/visitors/iterprinter.h'
--- src/runtime/visitors/iterprinter.h 2014-02-18 19:52:39 +0000
+++ src/runtime/visitors/iterprinter.h 2014-02-24 20:09:23 +0000
@@ -17,152 +17,117 @@
17#ifndef ZORBA_VISITORPRINTER_H17#ifndef ZORBA_VISITORPRINTER_H
18#define ZORBA_VISITORPRINTER_H18#define ZORBA_VISITORPRINTER_H
1919
20#include <string>20// standard
21#include <ostream>21#include <ostream>
22#include <stack>22#include <stack>
23#include <string>
2324
25// Zorba
24#include "common/common.h"26#include "common/common.h"
25#include "zorbatypes/schema_types.h"27#include "zorbatypes/schema_types.h"
2628
27
28namespace yy
29{
30 class location;
31}
32
33namespace zorba {29namespace zorba {
3430
35/**31///////////////////////////////////////////////////////////////////////////////
36 * Interface to print the PlanIterators.32
37 */33class IterPrinter {
38class IterPrinter
39{
40public:34public:
41 IterPrinter(std::ostream& aOStream) : theOStream(aOStream) {}35 IterPrinter( std::ostream &os, char const *descr = "" );
4236 virtual ~IterPrinter();
43 virtual ~IterPrinter() {}
4437
45 virtual void start() = 0;38 virtual void start() = 0;
46 virtual void stop() = 0;39 virtual void stop() = 0;
4740
48 virtual void startBeginVisit(const std::string& aName, int aAddr) = 0;41 virtual void startBeginVisit( std::string const &name, int addr ) = 0;
49 virtual void endBeginVisit(int aAddr) = 0;42 virtual void endBeginVisit( int addr ) = 0;
5043
51 virtual void addAttribute(const std::string& aName, const std::string& aValue) = 0;44 virtual void addAttribute( std::string const &name, std::string const &value ) = 0;
5245
53 virtual void addAttribute(const std::string& aName, xs_long aValue) = 0;46 virtual void addAttribute( std::string const &name, xs_long value ) = 0;
5447
55 virtual void startEndVisit() = 0;48 virtual void startEndVisit() = 0;
56
57 virtual void endEndVisit() = 0;49 virtual void endEndVisit() = 0;
5850
59protected: 51protected:
60 std::ostream& theOStream;52 zstring descr_;
61 void printSpaces(size_t aNr) { theOStream << std::string(aNr, ' '); }53 std::ostream &os_;
62}; /* class VisitorPrinter */54};
6355
64 56///////////////////////////////////////////////////////////////////////////////
65/**57
66 * Implementation of IterPrinter to print a PlanIterator tree in XML format58class XMLIterPrinter : public IterPrinter {
67 */59public:
68class XMLIterPrinter : public IterPrinter 60 XMLIterPrinter( std::ostream&, char const* = "" );
69{61 ~XMLIterPrinter();
62
63 void start();
64 void stop();
65
66 void startBeginVisit( std::string const &name, int addr );
67 void endBeginVisit( int addr );
68
69 void addAttribute( std::string const &name, std::string const &value );
70 void addAttribute( std::string const &name, xs_long value );
71
72 void startEndVisit();
73 void endEndVisit();
74
70private:75private:
76 std::stack<std::string> theNameStack;
71 bool theOpenStart;77 bool theOpenStart;
72 std::stack<std::string> theNameStack;78};
79
80///////////////////////////////////////////////////////////////////////////////
81
82class DOTIterPrinter : public IterPrinter {
83public:
84 DOTIterPrinter( std::ostream&, char const* = "" );
85 ~DOTIterPrinter();
73 86
74public:87 void start();
75 XMLIterPrinter(std::ostream& aOStream);88 void stop();
7689
77 virtual ~XMLIterPrinter(){}90 void startBeginVisit( std::string const &name, int addr );
7891 void endBeginVisit( int addr );
79 virtual void start();92
8093 void addAttribute( std::string const &name, std::string const &value );
81 virtual void stop();94 void addAttribute( std::string const &name, xs_long value );
8295
83 virtual void startBeginVisit(const std::string& aName, int aAddr);96 void startEndVisit();
8497 void endEndVisit();
85 virtual void endBeginVisit(int aAddr);98
86
87 virtual void addAttribute(const std::string& aName, const std::string& aValue);
88
89 virtual void addAttribute(const std::string& aName, xs_long aValue);
90
91 virtual void startEndVisit();
92
93 virtual void endEndVisit();
94}; /* class XMLVisitorPrinter */
95
96
97/**
98 * Implementation of IterPrinter to print a PlanIterator tree in DOT format
99 */
100class DOTIterPrinter : public IterPrinter
101{
102private:99private:
103 std::stack<int> theNameStack;100 std::stack<int> theNameStack;
104 uint32_t theIndent;101};
105 102
103///////////////////////////////////////////////////////////////////////////////
104
105class JSONIterPrinter : public IterPrinter {
106public:106public:
107 DOTIterPrinter(std::ostream& aOStream);107 JSONIterPrinter( std::ostream&, char const* = "" );
108108 ~JSONIterPrinter();
109 virtual ~DOTIterPrinter(){}109
110 110 void start();
111 virtual void start();111 void stop();
112112
113 virtual void stop();113 void startBeginVisit( std::string const &name, int addr );
114114 void endBeginVisit( int addr );
115 virtual void startBeginVisit(const std::string& aName, int aAddr);115
116116 void addAttribute( std::string const &name, std::string const &value );
117 virtual void endBeginVisit(int aAddr);117 void addAttribute( std::string const &name, xs_long value );
118118
119 virtual void addAttribute(const std::string& aName, const std::string& aValue);119 void startEndVisit();
120120 void endEndVisit();
121 virtual void addAttribute(const std::string& aName, xs_long aValue);121
122
123 virtual void startEndVisit();
124
125 virtual void endEndVisit();
126
127}; /* class DOTVisitorPrinter */
128
129/**
130 * Implementation of IterPrinter to print a PlanIterator tree in JSON format
131 */
132class JSONIterPrinter : public IterPrinter
133{
134private:122private:
135 uint32_t theIndent;
136 std::stack<bool> theListStack;123 std::stack<bool> theListStack;
137124};
138public:125
139 JSONIterPrinter(std::ostream& aOStream);126///////////////////////////////////////////////////////////////////////////////
140127
141 virtual ~JSONIterPrinter(){}128} // namespace zorba
142129
143 virtual void start();130#endif /* ZORBA_VISITORPRINTER_H */
144
145 virtual void stop();
146
147 virtual void startBeginVisit(const std::string& aName, int aAddr);
148
149 virtual void endBeginVisit(int aAddr);
150
151 virtual void addAttribute(const std::string& aName, const std::string& aValue);
152
153 virtual void addAttribute(const std::string& aName, xs_long aValue);
154
155 virtual void startEndVisit();
156
157 virtual void endEndVisit();
158}; /* class JSONVisitorPrinter */
159
160
161
162} /* namespace zorba */
163
164#endif
165
166/*131/*
167 * Local variables:132 * Local variables:
168 * mode: c++133 * mode: c++
169134
=== modified file 'src/runtime/visitors/printer_visitor_api.cpp'
--- src/runtime/visitors/printer_visitor_api.cpp 2013-02-07 17:24:36 +0000
+++ src/runtime/visitors/printer_visitor_api.cpp 2014-02-24 20:09:23 +0000
@@ -16,19 +16,19 @@
16#include "stdafx.h"16#include "stdafx.h"
1717
18#include "runtime/visitors/printer_visitor_api.h"18#include "runtime/visitors/printer_visitor_api.h"
19
20#include "runtime/visitors/printer_visitor.h"19#include "runtime/visitors/printer_visitor.h"
2120
22namespace zorba 21namespace zorba {
23{22
2423///////////////////////////////////////////////////////////////////////////////
25void print_iter_plan(IterPrinter& aPrinter, PlanIterator* aIter)24
26{25void print_iter_plan( IterPrinter &p, PlanIterator *pi ) {
27 PrinterVisitor v(aPrinter, aIter);26 PrinterVisitor v( p, pi );
28 v.print();27 v.print();
29}28}
3029
30///////////////////////////////////////////////////////////////////////////////
3131
32} /* namespace zorba */32} // namespace zorba
3333
34/* vim:set et sw=2 ts=2: */34/* vim:set et sw=2 ts=2: */
3535
=== modified file 'src/runtime/visitors/printer_visitor_impl.cpp'
--- src/runtime/visitors/printer_visitor_impl.cpp 2014-02-19 01:28:17 +0000
+++ src/runtime/visitors/printer_visitor_impl.cpp 2014-02-24 20:09:23 +0000
@@ -74,7 +74,7 @@
7474
75void PrinterVisitor::print() {75void PrinterVisitor::print() {
76 thePrinter.start();76 thePrinter.start();
77 theIterator->accept(*this);77 theIterator->accept( *this );
78 thePrinter.stop();78 thePrinter.stop();
79}79}
8080
8181
=== modified file 'test/iterplans/apitest_args.cpp'
--- test/iterplans/apitest_args.cpp 2014-02-19 00:43:31 +0000
+++ test/iterplans/apitest_args.cpp 2014-02-24 20:09:23 +0000
@@ -53,14 +53,24 @@
5353
54 ////////// d //////////////////////////////////////////////////////////////54 ////////// d //////////////////////////////////////////////////////////////
5555
56#ifdef ZORBA_WITH_DEBUGGER
56 HELP_OPT( "--debug, -d" )57 HELP_OPT( "--debug, -d" )
57 "Launch the Zorba debugger server and connect to a DBGP-enabled debugger client.\n\n"58 "Launch the Zorba debugger server and connect to a DBGP-enabled debugger client.\n\n"
5859#endif /* ZORBA_WITH_DEBUGGER */
60
61 HELP_OPT( "--debug-file" )
62 "Sets the file to write developer debugging information to.\n\n"
63
64 HELP_OPT( "--debug-stream <stream>" )
65 "Sets the stream to write developer debugging information to.\n\n"
66
67#ifdef ZORBA_WITH_DEBUGGER
59 HELP_OPT( "--debug-host, -h" )68 HELP_OPT( "--debug-host, -h" )
60 "The host where the DBGP-enabled debugger client listens for connections. Defaults to: 127.0.0.1\n\n"69 "The host where the DBGP-enabled debugger client listens for connections. Defaults to: 127.0.0.1\n\n"
6170
62 HELP_OPT( "--debug-port, -p" )71 HELP_OPT( "--debug-port, -p" )
63 "The port on which the DBGP-enabled debugger client listens for connections. Defaults to: 28028\n\n"72 "The port on which the DBGP-enabled debugger client listens for connections. Defaults to: 28028\n\n"
73#endif /* ZORBA_WITH_DEBUGGER */
6474
65 ////////// e //////////////////////////////////////////////////////////////75 ////////// e //////////////////////////////////////////////////////////////
6676
@@ -301,6 +311,25 @@
301 PARSE_ARG( "--debug-host" );311 PARSE_ARG( "--debug-host" );
302 at_props.debug_host_ = ARG_VAL;312 at_props.debug_host_ = ARG_VAL;
303 }313 }
314#endif /* ZORBA_WITH_DEBUGGER */
315 else if ( IS_LONG_OPT( "--debug-file" ) ) {
316 PARSE_ARG( "--debug-file" );
317 z_props.setDebugFile( ARG_VAL );
318 }
319 else if ( IS_LONG_OPT( "--debug-stream" ) ) {
320 PARSE_ARG( "--debug-stream" );
321 string val( ARG_VAL );
322 to_lower( val );
323 if ( val == "1" || val == "stdout" || val == "cout" )
324 z_props.setDebugStream( cout );
325 else if ( val == "2" || val == "stderr" || val == "cerr" )
326 z_props.setDebugStream( cerr );
327 else {
328 error = "--debug-stream argument must be one of: 1, stdout, cout, 2, stderr, or cerr.\n";
329 break;
330 }
331 }
332#ifdef ZORBA_WITH_DEBUGGER
304 else if ( IS_OPT( "--debug-port", "-p" ) ) {333 else if ( IS_OPT( "--debug-port", "-p" ) ) {
305 PARSE_ARG( "--debug-port" );334 PARSE_ARG( "--debug-port" );
306 SET_ATPROP( debug_port_ );335 SET_ATPROP( debug_port_ );
307336
=== modified file 'test/iterplans/update_iter_plans'
--- test/iterplans/update_iter_plans 2013-07-11 06:54:25 +0000
+++ test/iterplans/update_iter_plans 2014-02-24 20:09:23 +0000
@@ -1,7 +1,17 @@
1#!/bin/bash1#! /bin/bash
2
3# uncomment for dry run
4#ECHO=echo
5
2BUILDDIR=$16BUILDDIR=$1
3test -e "$BUILDDIR" || { echo "Arguments: BUILD_DIR"; exit 1; }7test -e "$BUILDDIR" || { echo "Arguments: BUILD_DIR"; exit 1; }
8
4D=$BUILDDIR/test/iterplans9D=$BUILDDIR/test/iterplans
5for f in `cd $D; find . -name *.iter`; do10
6 cp $D/$f `dirname $0`/iterplans/$f11for src_file in `cd $D; find . -name *.spec`
12do
13 dst_file=${src_file%.spec}.iter
14 $ECHO cp $D/$src_file $dst_file
7done15done
16
17# vim:set et sw=2 ts=2:
818
=== modified file 'test/iterplans/zorba/collections/count_dynamic_zorba_collection.iter'
--- test/iterplans/zorba/collections/count_dynamic_zorba_collection.iter 2013-03-24 20:40:03 +0000
+++ test/iterplans/zorba/collections/count_dynamic_zorba_collection.iter 2014-02-24 20:09:23 +0000
@@ -1,19 +1,19 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<SequentialIterator>
3 <CtxVarDeclareIterator varid="4" varname="coll">
4 <SingletonIterator value="xs:QName(,,collection)"/>
5 </CtxVarDeclareIterator>
6 <SequentialIterator>2 <SequentialIterator>
7 <ApplyIterator>3 <CtxVarDeclareIterator varid="4" varname="coll">
8 <ZorbaCreateCollectionIterator>4 <SingletonIterator value="xs:QName(,,collection)"/>
9 <CtxVarIterator varid="4" varname="coll" varkind="global"/>5 </CtxVarDeclareIterator>
10 </ZorbaCreateCollectionIterator>6 <SequentialIterator>
11 </ApplyIterator>7 <ApplyIterator>
12 <FnCountIterator>8 <ZorbaCreateCollectionIterator>
13 <ZorbaCollectionIterator>9 <CtxVarIterator varid="4" varname="coll" varkind="global"/>
14 <CtxVarIterator varid="4" varname="coll" varkind="global"/>10 </ZorbaCreateCollectionIterator>
15 </ZorbaCollectionIterator>11 </ApplyIterator>
16 </FnCountIterator>12 <FnCountIterator>
13 <ZorbaCollectionIterator>
14 <CtxVarIterator varid="4" varname="coll" varkind="global"/>
15 </ZorbaCollectionIterator>
16 </FnCountIterator>
17 </SequentialIterator>
17 </SequentialIterator>18 </SequentialIterator>
18</SequentialIterator>19</iterator-tree>
19
2020
=== modified file 'test/iterplans/zorba/collections/count_static_zorba_collection.iter'
--- test/iterplans/zorba/collections/count_static_zorba_collection.iter 2013-03-24 20:40:03 +0000
+++ test/iterplans/zorba/collections/count_static_zorba_collection.iter 2014-02-24 20:09:23 +0000
@@ -1,37 +1,37 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<SequentialIterator>
3 <CtxVarDeclareIterator varid="4" varname="ns:collection_1">
4 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,collection_1)"/>
5 </CtxVarDeclareIterator>
6 <CtxVarDeclareIterator varid="5" varname="ns:collection_2">
7 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,collection_2)"/>
8 </CtxVarDeclareIterator>
9 <CtxVarDeclareIterator varid="6" varname="ns:http">
10 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,http)"/>
11 </CtxVarDeclareIterator>
12 <CtxVarDeclareIterator varid="7" varname="ns:test1">
13 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,test1)"/>
14 </CtxVarDeclareIterator>
15 <CtxVarDeclareIterator varid="8" varname="ns:test2">
16 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,test2)"/>
17 </CtxVarDeclareIterator>
18 <CtxVarDeclareIterator varid="9" varname="ns:test3">
19 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,test3)"/>
20 </CtxVarDeclareIterator>
21 <CtxVarDeclareIterator varid="10" varname="coll">
22 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,test1)"/>
23 </CtxVarDeclareIterator>
24 <SequentialIterator>2 <SequentialIterator>
25 <ApplyIterator>3 <CtxVarDeclareIterator varid="4" varname="ns:collection_1">
26 <ZorbaCreateCollectionIterator>4 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,collection_1)"/>
27 <CtxVarIterator varid="10" varname="coll" varkind="global"/>5 </CtxVarDeclareIterator>
28 </ZorbaCreateCollectionIterator>6 <CtxVarDeclareIterator varid="5" varname="ns:collection_2">
29 </ApplyIterator>7 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,collection_2)"/>
30 <FnCountIterator>8 </CtxVarDeclareIterator>
31 <ZorbaCollectionIterator>9 <CtxVarDeclareIterator varid="6" varname="ns:http">
32 <CtxVarIterator varid="10" varname="coll" varkind="global"/>10 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,http)"/>
33 </ZorbaCollectionIterator>11 </CtxVarDeclareIterator>
34 </FnCountIterator>12 <CtxVarDeclareIterator varid="7" varname="ns:test1">
13 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,test1)"/>
14 </CtxVarDeclareIterator>
15 <CtxVarDeclareIterator varid="8" varname="ns:test2">
16 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,test2)"/>
17 </CtxVarDeclareIterator>
18 <CtxVarDeclareIterator varid="9" varname="ns:test3">
19 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,test3)"/>
20 </CtxVarDeclareIterator>
21 <CtxVarDeclareIterator varid="10" varname="coll">
22 <SingletonIterator value="xs:QName(http://example.org/datamodule/,ns,test1)"/>
23 </CtxVarDeclareIterator>
24 <SequentialIterator>
25 <ApplyIterator>
26 <ZorbaCreateCollectionIterator>
27 <CtxVarIterator varid="10" varname="coll" varkind="global"/>
28 </ZorbaCreateCollectionIterator>
29 </ApplyIterator>
30 <FnCountIterator>
31 <ZorbaCollectionIterator>
32 <CtxVarIterator varid="10" varname="coll" varkind="global"/>
33 </ZorbaCollectionIterator>
34 </FnCountIterator>
35 </SequentialIterator>
35 </SequentialIterator>36 </SequentialIterator>
36</SequentialIterator>37</iterator-tree>
37
3838
=== modified file 'test/iterplans/zorba/collections/count_w3c_collection.iter'
--- test/iterplans/zorba/collections/count_w3c_collection.iter 2013-10-09 02:40:46 +0000
+++ test/iterplans/zorba/collections/count_w3c_collection.iter 2014-02-24 20:09:23 +0000
@@ -1,29 +1,29 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<SequentialIterator>
3 <CtxVarDeclareIterator varid="4" varname="coll">
4 <SingletonIterator value="xs:string(http://zorba.io/collection)"/>
5 </CtxVarDeclareIterator>
6 <SequentialIterator>2 <SequentialIterator>
7 <ApplyIterator>3 <CtxVarDeclareIterator varid="4" varname="coll">
8 <UDFunctionCallIterator function="ddl:create">4 <SingletonIterator value="xs:string(http://zorba.io/collection)"/>
9 <CtxVarIterator varid="4" varname="coll" varkind="global"/>5 </CtxVarDeclareIterator>
10 </UDFunctionCallIterator>6 <SequentialIterator>
11 </ApplyIterator>7 <ApplyIterator>
12 <FnCountIterator>8 <UDFunctionCallIterator function="ddl:create">
13 <FnCollectionIterator>9 <CtxVarIterator varid="4" varname="coll" varkind="global"/>
14 <CtxVarIterator varid="4" varname="coll" varkind="global"/>10 </UDFunctionCallIterator>
15 </FnCollectionIterator>11 </ApplyIterator>
16 </FnCountIterator>12 <FnCountIterator>
13 <FnCollectionIterator>
14 <CtxVarIterator varid="4" varname="coll" varkind="global"/>
15 </FnCollectionIterator>
16 </FnCountIterator>
17 </SequentialIterator>
17 </SequentialIterator>18 </SequentialIterator>
18</SequentialIterator>19</iterator-tree>
1920<iterator-tree description="ddl:create">
20Iterator tree for ddl:create:21 <ZorbaCreateCollectionIterator>
21<ZorbaCreateCollectionIterator>22 <FunctionTraceIterator>
22 <FunctionTraceIterator>23 <QNameIterator>
23 <QNameIterator>24 <LetVarIterator varname="uri"/>
24 <LetVarIterator varname="uri"/>25 <SingletonIterator value="xs:string(zorba-internal-name-for-w3c-collections)"/>
25 <SingletonIterator value="xs:string(zorba-internal-name-for-w3c-collections)"/>26 </QNameIterator>
26 </QNameIterator>27 </FunctionTraceIterator>
27 </FunctionTraceIterator>28 </ZorbaCreateCollectionIterator>
28</ZorbaCreateCollectionIterator>29</iterator-tree>
29
3030
=== modified file 'test/iterplans/zorba/collections/no_copy_01.iter'
--- test/iterplans/zorba/collections/no_copy_01.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/collections/no_copy_01.iter 2014-02-24 20:09:23 +0000
@@ -1,61 +1,61 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<SequentialIterator>2 <SequentialIterator>
3 <ApplyIterator>3 <ApplyIterator>
4 <ZorbaCreateCollectionIterator>4 <ZorbaCreateCollectionIterator>
5 <SingletonIterator value="xs:QName(http://www.w3.org/2005/xquery-local-functions,local,bar)"/>5 <SingletonIterator value="xs:QName(http://www.w3.org/2005/xquery-local-functions,local,bar)"/>
6 </ZorbaCreateCollectionIterator>6 </ZorbaCreateCollectionIterator>
7 </ApplyIterator>7 </ApplyIterator>
8 <FnConcatIterator>8 <FnConcatIterator>
9 <MaterializeIterator>9 <MaterializeIterator>
10 <FLWORIterator>10 <FLWORIterator>
11 <ForVariable name="n">11 <ForVariable name="n">
12 <ElementIterator>12 <ElementIterator>
13 <SingletonIterator value="xs:QName(,,a)"/>13 <SingletonIterator value="xs:QName(,,a)"/>
14 </ElementIterator>14 </ElementIterator>
15 </ForVariable>15 </ForVariable>
16 <MaterializeClause>16 <MaterializeClause>
17 <MaterializeForVariable inputVar="n : "/>17 <MaterializeForVariable inputVar="n : "/>
18 </MaterializeClause>18 </MaterializeClause>
19 <ReturnClause>19 <ReturnClause>
20 <IsSameNodeIterator>20 <IsSameNodeIterator>
21 <ForVarIterator varname="n"/>21 <ForVarIterator varname="n"/>
22 <MaterializeIterator>22 <MaterializeIterator>
23 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="?">23 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="?">
24 <ZorbaApplyInsertLastIterator is-dynamic="true" need-to-copy="true">24 <ZorbaApplyInsertLastIterator is-dynamic="true" need-to-copy="true">
25 <SingletonIterator value="xs:QName(http://www.w3.org/2005/xquery-local-functions,local,bar)"/>25 <SingletonIterator value="xs:QName(http://www.w3.org/2005/xquery-local-functions,local,bar)"/>
26 <ForVarIterator varname="n"/>26 <ForVarIterator varname="n"/>
27 </ZorbaApplyInsertLastIterator>27 </ZorbaApplyInsertLastIterator>
28 </TreatIterator>28 </TreatIterator>
29 </MaterializeIterator>29 </MaterializeIterator>
30 </IsSameNodeIterator>30 </IsSameNodeIterator>
31 </ReturnClause>31 </ReturnClause>
32 </FLWORIterator>32 </FLWORIterator>
33 </MaterializeIterator>33 </MaterializeIterator>
34 <MaterializeIterator>34 <MaterializeIterator>
35 <FLWORIterator>35 <FLWORIterator>
36 <ForVariable name="n">36 <ForVariable name="n">
37 <ElementIterator>37 <ElementIterator>
38 <SingletonIterator value="xs:QName(,,a)"/>38 <SingletonIterator value="xs:QName(,,a)"/>
39 </ElementIterator>39 </ElementIterator>
40 </ForVariable>40 </ForVariable>
41 <MaterializeClause>41 <MaterializeClause>
42 <MaterializeForVariable inputVar="n : "/>42 <MaterializeForVariable inputVar="n : "/>
43 </MaterializeClause>43 </MaterializeClause>
44 <ReturnClause>44 <ReturnClause>
45 <IsSameNodeIterator>45 <IsSameNodeIterator>
46 <ForVarIterator varname="n"/>46 <ForVarIterator varname="n"/>
47 <MaterializeIterator>47 <MaterializeIterator>
48 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="?">48 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="?">
49 <ZorbaApplyInsertLastIterator is-dynamic="true">49 <ZorbaApplyInsertLastIterator is-dynamic="true">
50 <SingletonIterator value="xs:QName(http://www.w3.org/2005/xquery-local-functions,local,bar)"/>50 <SingletonIterator value="xs:QName(http://www.w3.org/2005/xquery-local-functions,local,bar)"/>
51 <ForVarIterator varname="n"/>51 <ForVarIterator varname="n"/>
52 </ZorbaApplyInsertLastIterator>52 </ZorbaApplyInsertLastIterator>
53 </TreatIterator>53 </TreatIterator>
54 </MaterializeIterator>54 </MaterializeIterator>
55 </IsSameNodeIterator>55 </IsSameNodeIterator>
56 </ReturnClause>56 </ReturnClause>
57 </FLWORIterator>57 </FLWORIterator>
58 </MaterializeIterator>58 </MaterializeIterator>
59 </FnConcatIterator>59 </FnConcatIterator>
60</SequentialIterator>60 </SequentialIterator>
6161</iterator-tree>
6262
=== modified file 'test/iterplans/zorba/dblp/q0.iter'
--- test/iterplans/zorba/dblp/q0.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/dblp/q0.iter 2014-02-24 20:09:23 +0000
@@ -1,182 +1,182 @@
1Iterator tree for const-folded expr:1<iterator-tree description="const-folded expr">
2<OrIterator>2 <OrIterator>
3 <SingletonIterator value="xs:boolean(false)"/>3 <SingletonIterator value="xs:boolean(false)"/>
4 <SingletonIterator value="xs:boolean(false)"/>4 <SingletonIterator value="xs:boolean(false)"/>
5 <SingletonIterator value="xs:boolean(false)"/>5 <SingletonIterator value="xs:boolean(false)"/>
6</OrIterator>6 </OrIterator>
77</iterator-tree>
8Iterator tree for const-folded expr:8<iterator-tree description="const-folded expr">
9<OrIterator>9 <OrIterator>
10 <SingletonIterator value="xs:boolean(false)"/>10 <SingletonIterator value="xs:boolean(false)"/>
11 <SingletonIterator value="xs:boolean(false)"/>11 <SingletonIterator value="xs:boolean(false)"/>
12 <SingletonIterator value="xs:boolean(false)"/>12 <SingletonIterator value="xs:boolean(false)"/>
13</OrIterator>13 </OrIterator>
1414</iterator-tree>
15Iterator tree for main query:15<iterator-tree description="main query">
16<SequentialIterator>16 <SequentialIterator>
17 <CtxVarDeclareIterator varid="4" varname="input-context"/>17 <CtxVarDeclareIterator varid="4" varname="input-context"/>
18 <FLWORIterator>18 <FLWORIterator>
19 <LetVariable name="doc" materialize="true">19 <LetVariable name="doc" materialize="true">
20 <FnDocIterator>20 <FnDocIterator>
21 <PromoteIterator type="xs:string">21 <PromoteIterator type="xs:string">
22 <FnDataIterator>22 <FnDataIterator>
23 <CtxVarIterator varid="4" varname="input-context" varkind="global"/>23 <CtxVarIterator varid="4" varname="input-context" varkind="global"/>
24 </FnDataIterator>24 </FnDataIterator>
25 </PromoteIterator>25 </PromoteIterator>
26 </FnDocIterator>26 </FnDocIterator>
27 </LetVariable>27 </LetVariable>
28 <LetVariable name="$$opt_temp_1" materialize="true">28 <LetVariable name="$$opt_temp_1" materialize="true">
29 <HoistIterator>29 <HoistIterator>
30 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,dblp)" typename="*" nill allowed="0">30 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,dblp)" typename="*" nill allowed="0">
31 <LetVarIterator varname="doc"/>31 <LetVarIterator varname="doc"/>
32 </ChildAxisIterator>32 </ChildAxisIterator>
33 </HoistIterator>33 </HoistIterator>
34 </LetVariable>34 </LetVariable>
35 <LetVariable name="$$opt_temp_0" materialize="true">35 <LetVariable name="$$opt_temp_0" materialize="true">
36 <HoistIterator>36 <HoistIterator>
37 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,dblp)" typename="*" nill allowed="0">37 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,dblp)" typename="*" nill allowed="0">
38 <LetVarIterator varname="doc"/>38 <LetVarIterator varname="doc"/>
39 </ChildAxisIterator>39 </ChildAxisIterator>
40 </HoistIterator>40 </HoistIterator>
41 </LetVariable>41 </LetVariable>
42 <ReturnClause>42 <ReturnClause>
43 <ElementIterator>43 <ElementIterator>
44 <SingletonIterator value="xs:QName(,,statistics)"/>44 <SingletonIterator value="xs:QName(,,statistics)"/>
45 <FnConcatIterator>45 <FnConcatIterator>
46 <ElementIterator>46 <ElementIterator>
47 <SingletonIterator value="xs:QName(,,total)"/>47 <SingletonIterator value="xs:QName(,,total)"/>
48 <FnConcatIterator>48 <FnConcatIterator>
49 <ElementIterator>49 <ElementIterator>
50 <SingletonIterator value="xs:QName(,,paper)"/>50 <SingletonIterator value="xs:QName(,,paper)"/>
51 <EnclosedIterator attr_cont="false">51 <EnclosedIterator attr_cont="false">
52 <FnCountIterator>52 <FnCountIterator>
53 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,inproceedings)" typename="*" nill allowed="0">53 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,inproceedings)" typename="*" nill allowed="0">
54 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,dblp)" typename="*" nill allowed="0">54 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,dblp)" typename="*" nill allowed="0">
55 <LetVarIterator varname="doc"/>55 <LetVarIterator varname="doc"/>
56 </ChildAxisIterator>
56 </ChildAxisIterator>57 </ChildAxisIterator>
57 </ChildAxisIterator>58 </FnCountIterator>
58 </FnCountIterator>59 </EnclosedIterator>
59 </EnclosedIterator>60 </ElementIterator>
60 </ElementIterator>61 <ElementIterator>
61 <ElementIterator>62 <SingletonIterator value="xs:QName(,,author)"/>
62 <SingletonIterator value="xs:QName(,,author)"/>63 <EnclosedIterator attr_cont="false">
63 <EnclosedIterator attr_cont="false">64 <FnCountIterator>
64 <FnCountIterator>65 <FnDistinctValuesIterator>
65 <FnDistinctValuesIterator>66 <FnDataIterator>
66 <FnDataIterator>67 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
67 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">68 <LetVarIterator varname="doc"/>
68 <LetVarIterator varname="doc"/>69 </DescendantAxisIterator>
69 </DescendantAxisIterator>70 </FnDataIterator>
70 </FnDataIterator>71 </FnDistinctValuesIterator>
71 </FnDistinctValuesIterator>72 </FnCountIterator>
72 </FnCountIterator>73 </EnclosedIterator>
73 </EnclosedIterator>74 </ElementIterator>
74 </ElementIterator>75 </FnConcatIterator>
75 </FnConcatIterator>76 </ElementIterator>
76 </ElementIterator>77 <ElementIterator>
77 <ElementIterator>78 <SingletonIterator value="xs:QName(,,conferences)"/>
78 <SingletonIterator value="xs:QName(,,conferences)"/>79 <EnclosedIterator attr_cont="false">
79 <EnclosedIterator attr_cont="false">80 <FLWORIterator>
80 <FLWORIterator>81 <ForVariable name="conference">
81 <ForVariable name="conference">
82 <FnConcatIterator>
83 <SingletonIterator value="xs:string(EDBT)"/>
84 <SingletonIterator value="xs:string(ICDT)"/>
85 <SingletonIterator value="xs:string(ICDE)"/>
86 <SingletonIterator value="xs:string(PODS)"/>
87 <SingletonIterator value="xs:string(VLDB)"/>
88 <SingletonIterator value="xs:string(SIGMOD Conference)"/>
89 </FnConcatIterator>
90 </ForVariable>
91 <ReturnClause>
92 <ElementIterator>
93 <SingletonIterator value="xs:QName(,,conference)"/>
94 <FnConcatIterator>82 <FnConcatIterator>
95 <ElementIterator>83 <SingletonIterator value="xs:string(EDBT)"/>
96 <SingletonIterator value="xs:QName(,,name)"/>84 <SingletonIterator value="xs:string(ICDT)"/>
97 <EnclosedIterator attr_cont="false">85 <SingletonIterator value="xs:string(ICDE)"/>
98 <ForVarIterator varname="conference"/>86 <SingletonIterator value="xs:string(PODS)"/>
99 </EnclosedIterator>87 <SingletonIterator value="xs:string(VLDB)"/>
100 </ElementIterator>88 <SingletonIterator value="xs:string(SIGMOD Conference)"/>
101 <ElementIterator>89 </FnConcatIterator>
102 <SingletonIterator value="xs:QName(,,paper)"/>90 </ForVariable>
103 <EnclosedIterator attr_cont="false">91 <ReturnClause>
104 <FnCountIterator>92 <ElementIterator>
105 <FLWORIterator>93 <SingletonIterator value="xs:QName(,,conference)"/>
106 <ForVariable name="$$context-item">94 <FnConcatIterator>
107 <UnhoistIterator>95 <ElementIterator>
108 <LetVarIterator varname="$$opt_temp_0"/>96 <SingletonIterator value="xs:QName(,,name)"/>
109 </UnhoistIterator>97 <EnclosedIterator attr_cont="false">
110 </ForVariable>98 <ForVarIterator varname="conference"/>
111 <ForVariable name="$$context-item">99 </EnclosedIterator>
112 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,inproceedings)" typename="*" nill allowed="0">100 </ElementIterator>
113 <ForVarIterator varname="$$context-item"/>101 <ElementIterator>
114 </ChildAxisIterator>102 <SingletonIterator value="xs:QName(,,paper)"/>
115 </ForVariable>103 <EnclosedIterator attr_cont="false">
116 <WhereClause>104 <FnCountIterator>
117 <CompareIterator>105 <FLWORIterator>
118 <FnDataIterator>106 <ForVariable name="$$context-item">
119 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,booktitle)" typename="*" nill allowed="0">107 <UnhoistIterator>
120 <ForVarIterator varname="$$context-item"/>108 <LetVarIterator varname="$$opt_temp_0"/>
121 </ChildAxisIterator>109 </UnhoistIterator>
122 </FnDataIterator>110 </ForVariable>
123 <ForVarIterator varname="conference"/>111 <ForVariable name="$$context-item">
124 </CompareIterator>112 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,inproceedings)" typename="*" nill allowed="0">
125 </WhereClause>113 <ForVarIterator varname="$$context-item"/>
126 <ReturnClause>114 </ChildAxisIterator>
127 <SingletonIterator value="xs:boolean(true)"/>115 </ForVariable>
128 </ReturnClause>116 <WhereClause>
129 </FLWORIterator>117 <CompareIterator>
130 </FnCountIterator>118 <FnDataIterator>
131 </EnclosedIterator>119 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,booktitle)" typename="*" nill allowed="0">
132 </ElementIterator>
133 <ElementIterator>
134 <SingletonIterator value="xs:QName(,,author)"/>
135 <EnclosedIterator attr_cont="false">
136 <FnCountIterator>
137 <FnDistinctValuesIterator>
138 <FnDataIterator>
139 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
140 <FLWORIterator>
141 <ForVariable name="$$context-item">
142 <UnhoistIterator>
143 <LetVarIterator varname="$$opt_temp_1"/>
144 </UnhoistIterator>
145 </ForVariable>
146 <ForVariable name="$$context-item">
147 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,inproceedings)" typename="*" nill allowed="0">
148 <ForVarIterator varname="$$context-item"/>120 <ForVarIterator varname="$$context-item"/>
149 </ChildAxisIterator>121 </ChildAxisIterator>
150 </ForVariable>122 </FnDataIterator>
151 <WhereClause>123 <ForVarIterator varname="conference"/>
152 <CompareIterator>124 </CompareIterator>
153 <FnDataIterator>125 </WhereClause>
154 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,booktitle)" typename="*" nill allowed="0">126 <ReturnClause>
155 <ForVarIterator varname="$$context-item"/>127 <SingletonIterator value="xs:boolean(true)"/>
156 </ChildAxisIterator>128 </ReturnClause>
157 </FnDataIterator>129 </FLWORIterator>
158 <ForVarIterator varname="conference"/>130 </FnCountIterator>
159 </CompareIterator>131 </EnclosedIterator>
160 </WhereClause>132 </ElementIterator>
161 <ReturnClause>133 <ElementIterator>
162 <ForVarIterator varname="$$context-item"/>134 <SingletonIterator value="xs:QName(,,author)"/>
163 </ReturnClause>135 <EnclosedIterator attr_cont="false">
164 </FLWORIterator>136 <FnCountIterator>
165 </ChildAxisIterator>137 <FnDistinctValuesIterator>
166 </FnDataIterator>138 <FnDataIterator>
167 </FnDistinctValuesIterator>139 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
168 </FnCountIterator>140 <FLWORIterator>
169 </EnclosedIterator>141 <ForVariable name="$$context-item">
170 </ElementIterator>142 <UnhoistIterator>
171 </FnConcatIterator>143 <LetVarIterator varname="$$opt_temp_1"/>
172 </ElementIterator>144 </UnhoistIterator>
173 </ReturnClause>145 </ForVariable>
174 </FLWORIterator>146 <ForVariable name="$$context-item">
175 </EnclosedIterator>147 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,inproceedings)" typename="*" nill allowed="0">
176 </ElementIterator>148 <ForVarIterator varname="$$context-item"/>
177 </FnConcatIterator>149 </ChildAxisIterator>
178 </ElementIterator>150 </ForVariable>
179 </ReturnClause>151 <WhereClause>
180 </FLWORIterator>152 <CompareIterator>
181</SequentialIterator>153 <FnDataIterator>
182154 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,booktitle)" typename="*" nill allowed="0">
155 <ForVarIterator varname="$$context-item"/>
156 </ChildAxisIterator>
157 </FnDataIterator>
158 <ForVarIterator varname="conference"/>
159 </CompareIterator>
160 </WhereClause>
161 <ReturnClause>
162 <ForVarIterator varname="$$context-item"/>
163 </ReturnClause>
164 </FLWORIterator>
165 </ChildAxisIterator>
166 </FnDataIterator>
167 </FnDistinctValuesIterator>
168 </FnCountIterator>
169 </EnclosedIterator>
170 </ElementIterator>
171 </FnConcatIterator>
172 </ElementIterator>
173 </ReturnClause>
174 </FLWORIterator>
175 </EnclosedIterator>
176 </ElementIterator>
177 </FnConcatIterator>
178 </ElementIterator>
179 </ReturnClause>
180 </FLWORIterator>
181 </SequentialIterator>
182</iterator-tree>
183183
=== modified file 'test/iterplans/zorba/error/trace1.iter'
--- test/iterplans/zorba/error/trace1.iter 2013-02-07 17:24:36 +0000
+++ test/iterplans/zorba/error/trace1.iter 2014-02-24 20:09:23 +0000
@@ -1,8 +1,8 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<FunctionTraceIterator>2 <FunctionTraceIterator>
3 <TraceIterator>3 <TraceIterator>
4 <SingletonIterator value="xs:integer(3)"/>4 <SingletonIterator value="xs:integer(3)"/>
5 <SingletonIterator value="xs:string(foo)"/>5 <SingletonIterator value="xs:string(foo)"/>
6 </TraceIterator>6 </TraceIterator>
7</FunctionTraceIterator>7 </FunctionTraceIterator>
88</iterator-tree>
99
=== modified file 'test/iterplans/zorba/flwor/flwor24.iter'
--- test/iterplans/zorba/flwor/flwor24.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/flwor/flwor24.iter 2014-02-24 20:09:23 +0000
@@ -1,56 +1,56 @@
1Iterator tree for const-folded expr:1<iterator-tree description="const-folded expr">
2<FunctionTraceIterator>2 <FunctionTraceIterator>
3 <FnConcatIterator/>3 <FnConcatIterator/>
4</FunctionTraceIterator>4 </FunctionTraceIterator>
55</iterator-tree>
6Iterator tree for main query:6<iterator-tree description="main query">
7<SequentialIterator>7 <SequentialIterator>
8 <CtxVarDeclareIterator varid="4" varname="xmlcontents">8 <CtxVarDeclareIterator varid="4" varname="xmlcontents">
9 <UDFunctionCallIterator function="fetch:content">9 <UDFunctionCallIterator function="fetch:content">
10 <SingletonIterator value="xs:string($RBKT_SRC_DIR/Queries/zorba/flwor/flwor24.xml)"/>10 <SingletonIterator value="xs:string($RBKT_SRC_DIR/Queries/zorba/flwor/flwor24.xml)"/>
11 </UDFunctionCallIterator>11 </UDFunctionCallIterator>
12 </CtxVarDeclareIterator>12 </CtxVarDeclareIterator>
13 <FLWORIterator>13 <FLWORIterator>
14 <ForVariable name="w">14 <ForVariable name="w">
15 <FnZorbaParseXmlFragmentIterator>15 <FnZorbaParseXmlFragmentIterator>
16 <PromoteIterator type="xs:string">16 <PromoteIterator type="xs:string">
17 <FnDataIterator>17 <FnDataIterator>
18 <CtxVarIterator varid="4" varname="xmlcontents" varkind="local"/>18 <CtxVarIterator varid="4" varname="xmlcontents" varkind="local"/>
19 </FnDataIterator>19 </FnDataIterator>
20 </PromoteIterator>20 </PromoteIterator>
21 <TreatIterator type="[NodeXQType elementNode nametest=[uri: http://zorba.io/modules/xml-options, local: options] content=[XQType ANY_TYPE_KIND*]]" quant="?">21 <TreatIterator type="[NodeXQType elementNode nametest=[uri: http://zorba.io/modules/xml-options, local: options] content=[XQType ANY_TYPE_KIND*]]" quant="?">
22 <ElementIterator>
23 <SingletonIterator value="xs:QName(http://zorba.io/modules/xml-options,opt,options)"/>
24 <ElementIterator>22 <ElementIterator>
25 <SingletonIterator value="xs:QName(http://zorba.io/modules/xml-options,opt,parse-external-parsed-entity)"/>23 <SingletonIterator value="xs:QName(http://zorba.io/modules/xml-options,opt,options)"/>
26 <AttributeIterator qname="xs:QName(http://zorba.io/modules/xml-options,opt,skip-root-nodes)">24 <ElementIterator>
27 <SingletonIterator value="xs:string(1)"/>25 <SingletonIterator value="xs:QName(http://zorba.io/modules/xml-options,opt,parse-external-parsed-entity)"/>
28 </AttributeIterator>26 <AttributeIterator qname="xs:QName(http://zorba.io/modules/xml-options,opt,skip-root-nodes)">
27 <SingletonIterator value="xs:string(1)"/>
28 </AttributeIterator>
29 </ElementIterator>
29 </ElementIterator>30 </ElementIterator>
30 </ElementIterator>31 </TreatIterator>
31 </TreatIterator>32 </FnZorbaParseXmlFragmentIterator>
32 </FnZorbaParseXmlFragmentIterator>33 </ForVariable>
33 </ForVariable>34 <MaterializeClause>
34 <MaterializeClause>35 <MaterializeForVariable inputVar="w : "/>
35 <MaterializeForVariable inputVar="w : "/>36 </MaterializeClause>
36 </MaterializeClause>37 <ReturnClause>
37 <ReturnClause>38 <SequentialIterator>
38 <SequentialIterator>39 <ApplyIterator>
39 <ApplyIterator>40 <FnConcatIterator/>
40 <FnConcatIterator/>41 </ApplyIterator>
41 </ApplyIterator>42 <ForVarIterator varname="w"/>
42 <ForVarIterator varname="w"/>43 </SequentialIterator>
43 </SequentialIterator>44 </ReturnClause>
44 </ReturnClause>45 </FLWORIterator>
45 </FLWORIterator>46 </SequentialIterator>
46</SequentialIterator>47</iterator-tree>
4748<iterator-tree description="fetch:content">
48Iterator tree for fetch:content:49 <FunctionTraceIterator>
49<FunctionTraceIterator>50 <FetchContentIterator>
50 <FetchContentIterator>51 <LetVarIterator varname="uri"/>
51 <LetVarIterator varname="uri"/>52 <SingletonIterator value="xs:string(SOME_CONTENT)"/>
52 <SingletonIterator value="xs:string(SOME_CONTENT)"/>53 <SingletonIterator value="xs:string(UTF-8)"/>
53 <SingletonIterator value="xs:string(UTF-8)"/>54 </FetchContentIterator>
54 </FetchContentIterator>55 </FunctionTraceIterator>
55</FunctionTraceIterator>56</iterator-tree>
56
5757
=== modified file 'test/iterplans/zorba/flwor/flwor25.iter'
--- test/iterplans/zorba/flwor/flwor25.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/flwor/flwor25.iter 2014-02-24 20:09:23 +0000
@@ -1,56 +1,56 @@
1Iterator tree for const-folded expr:1<iterator-tree description="const-folded expr">
2<FunctionTraceIterator>2 <FunctionTraceIterator>
3 <FnConcatIterator/>3 <FnConcatIterator/>
4</FunctionTraceIterator>4 </FunctionTraceIterator>
55</iterator-tree>
6Iterator tree for main query:6<iterator-tree description="main query">
7<SequentialIterator>7 <SequentialIterator>
8 <CtxVarDeclareIterator varid="4" varname="xmlcontents">8 <CtxVarDeclareIterator varid="4" varname="xmlcontents">
9 <UDFunctionCallIterator function="fetch:content">9 <UDFunctionCallIterator function="fetch:content">
10 <SingletonIterator value="xs:string($RBKT_SRC_DIR/Queries/zorba/flwor/flwor24.xml)"/>10 <SingletonIterator value="xs:string($RBKT_SRC_DIR/Queries/zorba/flwor/flwor24.xml)"/>
11 </UDFunctionCallIterator>11 </UDFunctionCallIterator>
12 </CtxVarDeclareIterator>12 </CtxVarDeclareIterator>
13 <CtxVarDeclareIterator varid="5" varname="contents">13 <CtxVarDeclareIterator varid="5" varname="contents">
14 <FnZorbaParseXmlFragmentIterator>14 <FnZorbaParseXmlFragmentIterator>
15 <PromoteIterator type="xs:string">15 <PromoteIterator type="xs:string">
16 <FnDataIterator>16 <FnDataIterator>
17 <CtxVarIterator varid="4" varname="xmlcontents" varkind="local"/>17 <CtxVarIterator varid="4" varname="xmlcontents" varkind="local"/>
18 </FnDataIterator>18 </FnDataIterator>
19 </PromoteIterator>19 </PromoteIterator>
20 <TreatIterator type="[NodeXQType elementNode nametest=[uri: http://zorba.io/modules/xml-options, local: options] content=[XQType ANY_TYPE_KIND*]]" quant="?">20 <TreatIterator type="[NodeXQType elementNode nametest=[uri: http://zorba.io/modules/xml-options, local: options] content=[XQType ANY_TYPE_KIND*]]" quant="?">
21 <ElementIterator>
22 <SingletonIterator value="xs:QName(http://zorba.io/modules/xml-options,opt,options)"/>
23 <ElementIterator>21 <ElementIterator>
24 <SingletonIterator value="xs:QName(http://zorba.io/modules/xml-options,opt,parse-external-parsed-entity)"/>22 <SingletonIterator value="xs:QName(http://zorba.io/modules/xml-options,opt,options)"/>
25 <AttributeIterator qname="xs:QName(http://zorba.io/modules/xml-options,opt,skip-root-nodes)">23 <ElementIterator>
26 <SingletonIterator value="xs:string(1)"/>24 <SingletonIterator value="xs:QName(http://zorba.io/modules/xml-options,opt,parse-external-parsed-entity)"/>
27 </AttributeIterator>25 <AttributeIterator qname="xs:QName(http://zorba.io/modules/xml-options,opt,skip-root-nodes)">
26 <SingletonIterator value="xs:string(1)"/>
27 </AttributeIterator>
28 </ElementIterator>
28 </ElementIterator>29 </ElementIterator>
29 </ElementIterator>30 </TreatIterator>
30 </TreatIterator>31 </FnZorbaParseXmlFragmentIterator>
31 </FnZorbaParseXmlFragmentIterator>32 </CtxVarDeclareIterator>
32 </CtxVarDeclareIterator>33 <FLWORIterator>
33 <FLWORIterator>34 <ForVariable name="w">
34 <ForVariable name="w">35 <CtxVarIterator varid="5" varname="contents" varkind="local"/>
35 <CtxVarIterator varid="5" varname="contents" varkind="local"/>36 </ForVariable>
36 </ForVariable>37 <ReturnClause>
37 <ReturnClause>38 <SequentialIterator>
38 <SequentialIterator>39 <ApplyIterator>
39 <ApplyIterator>40 <FnConcatIterator/>
40 <FnConcatIterator/>41 </ApplyIterator>
41 </ApplyIterator>42 <ForVarIterator varname="w"/>
42 <ForVarIterator varname="w"/>43 </SequentialIterator>
43 </SequentialIterator>44 </ReturnClause>
44 </ReturnClause>45 </FLWORIterator>
45 </FLWORIterator>46 </SequentialIterator>
46</SequentialIterator>47</iterator-tree>
4748<iterator-tree description="fetch:content">
48Iterator tree for fetch:content:49 <FunctionTraceIterator>
49<FunctionTraceIterator>50 <FetchContentIterator>
50 <FetchContentIterator>51 <LetVarIterator varname="uri"/>
51 <LetVarIterator varname="uri"/>52 <SingletonIterator value="xs:string(SOME_CONTENT)"/>
52 <SingletonIterator value="xs:string(SOME_CONTENT)"/>53 <SingletonIterator value="xs:string(UTF-8)"/>
53 <SingletonIterator value="xs:string(UTF-8)"/>54 </FetchContentIterator>
54 </FetchContentIterator>55 </FunctionTraceIterator>
55</FunctionTraceIterator>56</iterator-tree>
56
5757
=== modified file 'test/iterplans/zorba/flwor/flwor26.iter'
--- test/iterplans/zorba/flwor/flwor26.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/flwor/flwor26.iter 2014-02-24 20:09:23 +0000
@@ -1,66 +1,66 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<SequentialIterator>
3 <CtxVarDeclareIterator varid="4" varname="coll">
4 <SingletonIterator value="xs:QName(http://zorba.io/modules/store/dynamic/collections/ddl,ddl,coll1)"/>
5 </CtxVarDeclareIterator>
6 <SequentialIterator>2 <SequentialIterator>
7 <ApplyIterator>3 <CtxVarDeclareIterator varid="4" varname="coll">
8 <ZorbaCreateCollectionIterator>4 <SingletonIterator value="xs:QName(http://zorba.io/modules/store/dynamic/collections/ddl,ddl,coll1)"/>
9 <CtxVarIterator varid="4" varname="coll" varkind="global"/>5 </CtxVarDeclareIterator>
10 </ZorbaCreateCollectionIterator>6 <SequentialIterator>
11 </ApplyIterator>7 <ApplyIterator>
12 <ApplyIterator>8 <ZorbaCreateCollectionIterator>
13 <ZorbaInsertLastIterator is-dynamic="true" need-to-copy="true">9 <CtxVarIterator varid="4" varname="coll" varkind="global"/>
14 <CtxVarIterator varid="4" varname="coll" varkind="global"/>10 </ZorbaCreateCollectionIterator>
15 <FnConcatIterator>11 </ApplyIterator>
16 <ElementIterator>12 <ApplyIterator>
17 <SingletonIterator value="xs:QName(,,a)"/>13 <ZorbaInsertLastIterator is-dynamic="true" need-to-copy="true">
18 </ElementIterator>14 <CtxVarIterator varid="4" varname="coll" varkind="global"/>
19 <ElementIterator>15 <FnConcatIterator>
20 <SingletonIterator value="xs:QName(,,c)"/>16 <ElementIterator>
21 </ElementIterator>17 <SingletonIterator value="xs:QName(,,a)"/>
22 <ElementIterator>18 </ElementIterator>
23 <SingletonIterator value="xs:QName(,,b)"/>19 <ElementIterator>
24 </ElementIterator>20 <SingletonIterator value="xs:QName(,,c)"/>
25 </FnConcatIterator>21 </ElementIterator>
26 </ZorbaInsertLastIterator>22 <ElementIterator>
27 </ApplyIterator>23 <SingletonIterator value="xs:QName(,,b)"/>
28 <FLWORIterator>24 </ElementIterator>
29 <ForVariable name="w">25 </FnConcatIterator>
30 <ZorbaCollectionIterator>26 </ZorbaInsertLastIterator>
31 <CtxVarIterator varid="4" varname="coll" varkind="global"/>27 </ApplyIterator>
32 </ZorbaCollectionIterator>28 <FLWORIterator>
33 </ForVariable>29 <ForVariable name="w">
34 <ReturnClause>30 <ZorbaCollectionIterator>
35 <SequentialIterator>31 <CtxVarIterator varid="4" varname="coll" varkind="global"/>
36 <ApplyIterator>32 </ZorbaCollectionIterator>
37 <FunctionTraceIterator>33 </ForVariable>
38 <IfThenElseIterator>34 <ReturnClause>
39 <TypedValueCompareIterator_INTEGER>35 <SequentialIterator>
40 <ForVarIterator varname="pos"/>36 <ApplyIterator>
41 <SingletonIterator value="xs:integer(1)"/>37 <FunctionTraceIterator>
42 </TypedValueCompareIterator_INTEGER>38 <IfThenElseIterator>
43 <ApplyIterator>39 <TypedValueCompareIterator_INTEGER>
44 <ZorbaInsertLastIterator is-dynamic="true" need-to-copy="true">40 <ForVarIterator varname="pos"/>
45 <CtxVarIterator varid="4" varname="coll" varkind="global"/>41 <SingletonIterator value="xs:integer(1)"/>
46 <ElementIterator>42 </TypedValueCompareIterator_INTEGER>
47 <SingletonIterator value="xs:QName(,,d)"/>43 <ApplyIterator>
48 <EnclosedIterator attr_cont="false">44 <ZorbaInsertLastIterator is-dynamic="true" need-to-copy="true">
49 <ForVarIterator varname="pos"/>45 <CtxVarIterator varid="4" varname="coll" varkind="global"/>
50 </EnclosedIterator>46 <ElementIterator>
51 </ElementIterator>47 <SingletonIterator value="xs:QName(,,d)"/>
52 </ZorbaInsertLastIterator>48 <EnclosedIterator attr_cont="false">
53 </ApplyIterator>49 <ForVarIterator varname="pos"/>
54 <ApplyIterator>50 </EnclosedIterator>
55 <FnConcatIterator/>51 </ElementIterator>
56 </ApplyIterator>52 </ZorbaInsertLastIterator>
57 </IfThenElseIterator>53 </ApplyIterator>
58 </FunctionTraceIterator>54 <ApplyIterator>
59 </ApplyIterator>55 <FnConcatIterator/>
60 <ForVarIterator varname="w"/>56 </ApplyIterator>
61 </SequentialIterator>57 </IfThenElseIterator>
62 </ReturnClause>58 </FunctionTraceIterator>
63 </FLWORIterator>59 </ApplyIterator>
60 <ForVarIterator varname="w"/>
61 </SequentialIterator>
62 </ReturnClause>
63 </FLWORIterator>
64 </SequentialIterator>
64 </SequentialIterator>65 </SequentialIterator>
65</SequentialIterator>66</iterator-tree>
66
6767
=== modified file 'test/iterplans/zorba/flwor/flwor27.iter'
--- test/iterplans/zorba/flwor/flwor27.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/flwor/flwor27.iter 2014-02-24 20:09:23 +0000
@@ -1,63 +1,63 @@
1Iterator tree for const-folded expr:1<iterator-tree description="const-folded expr">
2<FunctionTraceIterator>2 <FunctionTraceIterator>
3 <FnConcatIterator/>3 <FnConcatIterator/>
4</FunctionTraceIterator>4 </FunctionTraceIterator>
55</iterator-tree>
6Iterator tree for main query:6<iterator-tree description="main query">
7<SequentialIterator>7 <SequentialIterator>
8 <CtxVarDeclareIterator varid="4" varname="xmlcontents">8 <CtxVarDeclareIterator varid="4" varname="xmlcontents">
9 <UDFunctionCallIterator function="fetch:content">9 <UDFunctionCallIterator function="fetch:content">
10 <SingletonIterator value="xs:string($RBKT_SRC_DIR/Queries/zorba/flwor/flwor24.xml)"/>10 <SingletonIterator value="xs:string($RBKT_SRC_DIR/Queries/zorba/flwor/flwor24.xml)"/>
11 </UDFunctionCallIterator>11 </UDFunctionCallIterator>
12 </CtxVarDeclareIterator>12 </CtxVarDeclareIterator>
13 <CtxVarDeclareIterator varid="5" varname="contents">13 <CtxVarDeclareIterator varid="5" varname="contents">
14 <FnZorbaParseXmlFragmentIterator>14 <FnZorbaParseXmlFragmentIterator>
15 <PromoteIterator type="xs:string">15 <PromoteIterator type="xs:string">
16 <FnDataIterator>16 <FnDataIterator>
17 <CtxVarIterator varid="4" varname="xmlcontents" varkind="local"/>17 <CtxVarIterator varid="4" varname="xmlcontents" varkind="local"/>
18 </FnDataIterator>18 </FnDataIterator>
19 </PromoteIterator>19 </PromoteIterator>
20 <TreatIterator type="[NodeXQType elementNode nametest=[uri: http://zorba.io/modules/xml-options, local: options] content=[XQType ANY_TYPE_KIND*]]" quant="?">20 <TreatIterator type="[NodeXQType elementNode nametest=[uri: http://zorba.io/modules/xml-options, local: options] content=[XQType ANY_TYPE_KIND*]]" quant="?">
21 <ElementIterator>
22 <SingletonIterator value="xs:QName(http://zorba.io/modules/xml-options,opt,options)"/>
23 <ElementIterator>21 <ElementIterator>
24 <SingletonIterator value="xs:QName(http://zorba.io/modules/xml-options,opt,parse-external-parsed-entity)"/>22 <SingletonIterator value="xs:QName(http://zorba.io/modules/xml-options,opt,options)"/>
25 <AttributeIterator qname="xs:QName(http://zorba.io/modules/xml-options,opt,skip-root-nodes)">23 <ElementIterator>
26 <SingletonIterator value="xs:string(1)"/>24 <SingletonIterator value="xs:QName(http://zorba.io/modules/xml-options,opt,parse-external-parsed-entity)"/>
27 </AttributeIterator>25 <AttributeIterator qname="xs:QName(http://zorba.io/modules/xml-options,opt,skip-root-nodes)">
26 <SingletonIterator value="xs:string(1)"/>
27 </AttributeIterator>
28 </ElementIterator>
28 </ElementIterator>29 </ElementIterator>
29 </ElementIterator>30 </TreatIterator>
30 </TreatIterator>31 </FnZorbaParseXmlFragmentIterator>
31 </FnZorbaParseXmlFragmentIterator>32 </CtxVarDeclareIterator>
32 </CtxVarDeclareIterator>33 <FLWORIterator>
33 <FLWORIterator>34 <ForVariable name="w">
34 <ForVariable name="w">35 <CtxVarIterator varid="5" varname="contents" varkind="local"/>
35 <CtxVarIterator varid="5" varname="contents" varkind="local"/>36 </ForVariable>
36 </ForVariable>37 <OrderBySpec>
37 <OrderBySpec>38 <FnLocalNameIterator>
38 <FnLocalNameIterator>39 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="?">
39 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="?">40 <ForVarIterator varname="w"/>
41 </TreatIterator>
42 </FnLocalNameIterator>
43 </OrderBySpec>
44 <ReturnClause>
45 <SequentialIterator>
46 <ApplyIterator>
47 <FnConcatIterator/>
48 </ApplyIterator>
40 <ForVarIterator varname="w"/>49 <ForVarIterator varname="w"/>
41 </TreatIterator>50 </SequentialIterator>
42 </FnLocalNameIterator>51 </ReturnClause>
43 </OrderBySpec>52 </FLWORIterator>
44 <ReturnClause>53 </SequentialIterator>
45 <SequentialIterator>54</iterator-tree>
46 <ApplyIterator>55<iterator-tree description="fetch:content">
47 <FnConcatIterator/>56 <FunctionTraceIterator>
48 </ApplyIterator>57 <FetchContentIterator>
49 <ForVarIterator varname="w"/>58 <LetVarIterator varname="uri"/>
50 </SequentialIterator>59 <SingletonIterator value="xs:string(SOME_CONTENT)"/>
51 </ReturnClause>60 <SingletonIterator value="xs:string(UTF-8)"/>
52 </FLWORIterator>61 </FetchContentIterator>
53</SequentialIterator>62 </FunctionTraceIterator>
5463</iterator-tree>
55Iterator tree for fetch:content:
56<FunctionTraceIterator>
57 <FetchContentIterator>
58 <LetVarIterator varname="uri"/>
59 <SingletonIterator value="xs:string(SOME_CONTENT)"/>
60 <SingletonIterator value="xs:string(UTF-8)"/>
61 </FetchContentIterator>
62</FunctionTraceIterator>
63
6464
=== modified file 'test/iterplans/zorba/flwor/flwor28.iter'
--- test/iterplans/zorba/flwor/flwor28.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/flwor/flwor28.iter 2014-02-24 20:09:23 +0000
@@ -1,57 +1,57 @@
1Iterator tree for const-folded expr:1<iterator-tree description="const-folded expr">
2<FunctionTraceIterator>2 <FunctionTraceIterator>
3 <FnConcatIterator/>3 <FnConcatIterator/>
4</FunctionTraceIterator>4 </FunctionTraceIterator>
55</iterator-tree>
6Iterator tree for main query:6<iterator-tree description="main query">
7<SequentialIterator>
8 <CtxVarDeclareIterator varid="4" varname="coll">
9 <SingletonIterator value="xs:QName(http://zorba.io/modules/store/dynamic/collections/ddl,ddl,coll1)"/>
10 </CtxVarDeclareIterator>
11 <SequentialIterator>7 <SequentialIterator>
12 <ApplyIterator>8 <CtxVarDeclareIterator varid="4" varname="coll">
13 <ZorbaCreateCollectionIterator>9 <SingletonIterator value="xs:QName(http://zorba.io/modules/store/dynamic/collections/ddl,ddl,coll1)"/>
14 <CtxVarIterator varid="4" varname="coll" varkind="global"/>10 </CtxVarDeclareIterator>
15 </ZorbaCreateCollectionIterator>11 <SequentialIterator>
16 </ApplyIterator>12 <ApplyIterator>
17 <ApplyIterator>13 <ZorbaCreateCollectionIterator>
18 <ZorbaInsertLastIterator is-dynamic="true" need-to-copy="true">14 <CtxVarIterator varid="4" varname="coll" varkind="global"/>
19 <CtxVarIterator varid="4" varname="coll" varkind="global"/>15 </ZorbaCreateCollectionIterator>
20 <FnConcatIterator>16 </ApplyIterator>
21 <ElementIterator>17 <ApplyIterator>
22 <SingletonIterator value="xs:QName(,,a)"/>18 <ZorbaInsertLastIterator is-dynamic="true" need-to-copy="true">
23 </ElementIterator>19 <CtxVarIterator varid="4" varname="coll" varkind="global"/>
24 <ElementIterator>20 <FnConcatIterator>
25 <SingletonIterator value="xs:QName(,,c)"/>21 <ElementIterator>
26 </ElementIterator>22 <SingletonIterator value="xs:QName(,,a)"/>
27 <ElementIterator>23 </ElementIterator>
28 <SingletonIterator value="xs:QName(,,b)"/>24 <ElementIterator>
29 </ElementIterator>25 <SingletonIterator value="xs:QName(,,c)"/>
30 </FnConcatIterator>26 </ElementIterator>
31 </ZorbaInsertLastIterator>27 <ElementIterator>
32 </ApplyIterator>28 <SingletonIterator value="xs:QName(,,b)"/>
33 <FLWORIterator>29 </ElementIterator>
34 <ForVariable name="w">30 </FnConcatIterator>
35 <ZorbaCollectionIterator>31 </ZorbaInsertLastIterator>
36 <CtxVarIterator varid="4" varname="coll" varkind="global"/>32 </ApplyIterator>
37 </ZorbaCollectionIterator>33 <FLWORIterator>
38 </ForVariable>34 <ForVariable name="w">
39 <OrderBySpec>35 <ZorbaCollectionIterator>
40 <FnLocalNameIterator>36 <CtxVarIterator varid="4" varname="coll" varkind="global"/>
41 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="?">37 </ZorbaCollectionIterator>
38 </ForVariable>
39 <OrderBySpec>
40 <FnLocalNameIterator>
41 <TreatIterator type="[NodeXQType anyNode content=[XQType ANY_TYPE_KIND*]]" quant="?">
42 <ForVarIterator varname="w"/>
43 </TreatIterator>
44 </FnLocalNameIterator>
45 </OrderBySpec>
46 <ReturnClause>
47 <SequentialIterator>
48 <ApplyIterator>
49 <FnConcatIterator/>
50 </ApplyIterator>
42 <ForVarIterator varname="w"/>51 <ForVarIterator varname="w"/>
43 </TreatIterator>52 </SequentialIterator>
44 </FnLocalNameIterator>53 </ReturnClause>
45 </OrderBySpec>54 </FLWORIterator>
46 <ReturnClause>55 </SequentialIterator>
47 <SequentialIterator>
48 <ApplyIterator>
49 <FnConcatIterator/>
50 </ApplyIterator>
51 <ForVarIterator varname="w"/>
52 </SequentialIterator>
53 </ReturnClause>
54 </FLWORIterator>
55 </SequentialIterator>56 </SequentialIterator>
56</SequentialIterator>57</iterator-tree>
57
5858
=== modified file 'test/iterplans/zorba/flwor/flwor_op00.iter'
--- test/iterplans/zorba/flwor/flwor_op00.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/flwor/flwor_op00.iter 2014-02-24 20:09:23 +0000
@@ -1,27 +1,27 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<FLWORIterator>2 <FLWORIterator>
3 <ForVariable name="x">3 <ForVariable name="x">
4 <FnConcatIterator>4 <FnConcatIterator>
5 <SingletonIterator value="xs:integer(1)"/>5 <SingletonIterator value="xs:integer(1)"/>
6 <SingletonIterator value="xs:integer(2)"/>6 <SingletonIterator value="xs:integer(2)"/>
7 <SingletonIterator value="xs:integer(3)"/>7 <SingletonIterator value="xs:integer(3)"/>
8 <SingletonIterator value="xs:integer(4)"/>8 <SingletonIterator value="xs:integer(4)"/>
9 <SingletonIterator value="xs:integer(5)"/>9 <SingletonIterator value="xs:integer(5)"/>
10 <SingletonIterator value="xs:integer(6)"/>10 <SingletonIterator value="xs:integer(6)"/>
11 <SingletonIterator value="xs:integer(7)"/>11 <SingletonIterator value="xs:integer(7)"/>
12 <SingletonIterator value="xs:integer(8)"/>12 <SingletonIterator value="xs:integer(8)"/>
13 <SingletonIterator value="xs:integer(9)"/>13 <SingletonIterator value="xs:integer(9)"/>
14 <SingletonIterator value="xs:integer(10)"/>14 <SingletonIterator value="xs:integer(10)"/>
15 </FnConcatIterator>15 </FnConcatIterator>
16 </ForVariable>16 </ForVariable>
17 <WhereClause>17 <WhereClause>
18 <TypedValueCompareIterator_INTEGER>18 <TypedValueCompareIterator_INTEGER>
19 <ForVarIterator varname="x"/>
20 <SingletonIterator value="xs:integer(2)"/>
21 </TypedValueCompareIterator_INTEGER>
22 </WhereClause>
23 <ReturnClause>
19 <ForVarIterator varname="x"/>24 <ForVarIterator varname="x"/>
20 <SingletonIterator value="xs:integer(2)"/>25 </ReturnClause>
21 </TypedValueCompareIterator_INTEGER>26 </FLWORIterator>
22 </WhereClause>27</iterator-tree>
23 <ReturnClause>
24 <ForVarIterator varname="x"/>
25 </ReturnClause>
26</FLWORIterator>
27
2828
=== modified file 'test/iterplans/zorba/flwor/flwor_op01.iter'
--- test/iterplans/zorba/flwor/flwor_op01.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/flwor/flwor_op01.iter 2014-02-24 20:09:23 +0000
@@ -1,33 +1,33 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<FLWORIterator>2 <FLWORIterator>
3 <ForVariable name="x">3 <ForVariable name="x">
4 <FnConcatIterator>4 <FnConcatIterator>
5 <SingletonIterator value="xs:integer(1)"/>5 <SingletonIterator value="xs:integer(1)"/>
6 <SingletonIterator value="xs:integer(2)"/>6 <SingletonIterator value="xs:integer(2)"/>
7 <SingletonIterator value="xs:integer(3)"/>7 <SingletonIterator value="xs:integer(3)"/>
8 <SingletonIterator value="xs:integer(4)"/>8 <SingletonIterator value="xs:integer(4)"/>
9 <SingletonIterator value="xs:integer(5)"/>9 <SingletonIterator value="xs:integer(5)"/>
10 <SingletonIterator value="xs:integer(6)"/>10 <SingletonIterator value="xs:integer(6)"/>
11 <SingletonIterator value="xs:integer(7)"/>11 <SingletonIterator value="xs:integer(7)"/>
12 <SingletonIterator value="xs:integer(8)"/>
13 <SingletonIterator value="xs:integer(9)"/>
14 <SingletonIterator value="xs:integer(10)"/>
15 </FnConcatIterator>
16 </ForVariable>
17 <WhereClause>
18 <AndIterator>
19 <TypedValueCompareIterator_INTEGER>
20 <ForVarIterator varname="x"/>
21 <SingletonIterator value="xs:integer(8)"/>12 <SingletonIterator value="xs:integer(8)"/>
22 </TypedValueCompareIterator_INTEGER>13 <SingletonIterator value="xs:integer(9)"/>
23 <TypedValueCompareIterator_INTEGER>14 <SingletonIterator value="xs:integer(10)"/>
24 <ForVarIterator varname="x"/>15 </FnConcatIterator>
25 <SingletonIterator value="xs:integer(2)"/>16 </ForVariable>
26 </TypedValueCompareIterator_INTEGER>17 <WhereClause>
27 </AndIterator>18 <AndIterator>
28 </WhereClause>19 <TypedValueCompareIterator_INTEGER>
29 <ReturnClause>20 <ForVarIterator varname="x"/>
30 <ForVarIterator varname="x"/>21 <SingletonIterator value="xs:integer(8)"/>
31 </ReturnClause>22 </TypedValueCompareIterator_INTEGER>
32</FLWORIterator>23 <TypedValueCompareIterator_INTEGER>
3324 <ForVarIterator varname="x"/>
25 <SingletonIterator value="xs:integer(2)"/>
26 </TypedValueCompareIterator_INTEGER>
27 </AndIterator>
28 </WhereClause>
29 <ReturnClause>
30 <ForVarIterator varname="x"/>
31 </ReturnClause>
32 </FLWORIterator>
33</iterator-tree>
3434
=== modified file 'test/iterplans/zorba/flwor/flwor_op02.iter'
--- test/iterplans/zorba/flwor/flwor_op02.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/flwor/flwor_op02.iter 2014-02-24 20:09:23 +0000
@@ -1,40 +1,40 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<FLWORIterator>2 <FLWORIterator>
3 <ForVariable name="x">3 <ForVariable name="x">
4 <FnConcatIterator>4 <FnConcatIterator>
5 <SingletonIterator value="xs:integer(1)"/>5 <SingletonIterator value="xs:integer(1)"/>
6 <SingletonIterator value="xs:integer(2)"/>6 <SingletonIterator value="xs:integer(2)"/>
7 <SingletonIterator value="xs:integer(3)"/>7 <SingletonIterator value="xs:integer(3)"/>
8 <SingletonIterator value="xs:integer(4)"/>8 <SingletonIterator value="xs:integer(4)"/>
9 <SingletonIterator value="xs:integer(5)"/>9 <SingletonIterator value="xs:integer(5)"/>
10 <SingletonIterator value="xs:integer(6)"/>10 <SingletonIterator value="xs:integer(6)"/>
11 <SingletonIterator value="xs:integer(7)"/>11 <SingletonIterator value="xs:integer(7)"/>
12 <SingletonIterator value="xs:integer(8)"/>
13 <SingletonIterator value="xs:integer(9)"/>
14 <SingletonIterator value="xs:integer(10)"/>
15 </FnConcatIterator>
16 </ForVariable>
17 <WhereClause>
18 <AndIterator>
19 <TypedValueCompareIterator_INTEGER>
20 <ForVarIterator varname="x"/>
21 <SingletonIterator value="xs:integer(8)"/>12 <SingletonIterator value="xs:integer(8)"/>
22 </TypedValueCompareIterator_INTEGER>13 <SingletonIterator value="xs:integer(9)"/>
23 <TypedValueCompareIterator_INTEGER>14 <SingletonIterator value="xs:integer(10)"/>
24 <ForVarIterator varname="x"/>15 </FnConcatIterator>
25 <SingletonIterator value="xs:integer(2)"/>16 </ForVariable>
26 </TypedValueCompareIterator_INTEGER>17 <WhereClause>
27 <TypedValueCompareIterator_INTEGER>18 <AndIterator>
28 <NumArithIterator_ModOperation>19 <TypedValueCompareIterator_INTEGER>
20 <ForVarIterator varname="x"/>
21 <SingletonIterator value="xs:integer(8)"/>
22 </TypedValueCompareIterator_INTEGER>
23 <TypedValueCompareIterator_INTEGER>
29 <ForVarIterator varname="x"/>24 <ForVarIterator varname="x"/>
30 <SingletonIterator value="xs:integer(2)"/>25 <SingletonIterator value="xs:integer(2)"/>
31 </NumArithIterator_ModOperation>26 </TypedValueCompareIterator_INTEGER>
32 <SingletonIterator value="xs:integer(0)"/>27 <TypedValueCompareIterator_INTEGER>
33 </TypedValueCompareIterator_INTEGER>28 <NumArithIterator_ModOperation>
34 </AndIterator>29 <ForVarIterator varname="x"/>
35 </WhereClause>30 <SingletonIterator value="xs:integer(2)"/>
36 <ReturnClause>31 </NumArithIterator_ModOperation>
37 <ForVarIterator varname="x"/>32 <SingletonIterator value="xs:integer(0)"/>
38 </ReturnClause>33 </TypedValueCompareIterator_INTEGER>
39</FLWORIterator>34 </AndIterator>
4035 </WhereClause>
36 <ReturnClause>
37 <ForVarIterator varname="x"/>
38 </ReturnClause>
39 </FLWORIterator>
40</iterator-tree>
4141
=== modified file 'test/iterplans/zorba/hashjoins/9065.iter'
--- test/iterplans/zorba/hashjoins/9065.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9065.iter 2014-02-24 20:09:23 +0000
@@ -1,62 +1,62 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<FLWORIterator>2 <FLWORIterator>
3 <ForVariable name="b">3 <ForVariable name="b">
4 <FnDocIterator>4 <FnDocIterator>
5 <SingletonIterator value="xs:string(books.xml)"/>5 <SingletonIterator value="xs:string(books.xml)"/>
6 </FnDocIterator>6 </FnDocIterator>
7 </ForVariable>7 </ForVariable>
8 <LetVariable name="$$opt_temp_1" materialize="true">8 <LetVariable name="$$opt_temp_1" materialize="true">
9 <HoistIterator>9 <HoistIterator>
10 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,title)" typename="*" nill allowed="0">10 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,title)" typename="*" nill allowed="0">
11 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
12 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,bib)" typename="*" nill allowed="0">
13 <ForVarIterator varname="b"/>
14 </ChildAxisIterator>
15 </ChildAxisIterator>
16 </ChildAxisIterator>
17 </HoistIterator>
18 </LetVariable>
19 <ForVariable name="$$opt_temp_0">
20 <HoistIterator>
21 <FnCountIterator>
22 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
23 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">11 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
24 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,bib)" typename="*" nill allowed="0">12 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,bib)" typename="*" nill allowed="0">
25 <ForVarIterator varname="b"/>13 <ForVarIterator varname="b"/>
26 </ChildAxisIterator>14 </ChildAxisIterator>
27 </ChildAxisIterator>15 </ChildAxisIterator>
28 </ChildAxisIterator>16 </ChildAxisIterator>
29 </FnCountIterator>17 </HoistIterator>
30 </HoistIterator>18 </LetVariable>
31 </ForVariable>19 <ForVariable name="$$opt_temp_0">
32 <ForVariable name="er">20 <HoistIterator>
33 <OpToIterator>21 <FnCountIterator>
34 <SingletonIterator value="xs:integer(1)"/>22 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
35 <SingletonIterator value="xs:integer(3)"/>23 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
36 </OpToIterator>24 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,bib)" typename="*" nill allowed="0">
37 </ForVariable>25 <ForVarIterator varname="b"/>
38 <WhereClause>26 </ChildAxisIterator>
39 <TypedValueCompareIterator_INTEGER>27 </ChildAxisIterator>
40 <UnhoistIterator>28 </ChildAxisIterator>
41 <ForVarIterator varname="$$opt_temp_0"/>29 </FnCountIterator>
42 </UnhoistIterator>30 </HoistIterator>
43 <ForVarIterator varname="er"/>31 </ForVariable>
44 </TypedValueCompareIterator_INTEGER>32 <ForVariable name="er">
45 </WhereClause>33 <OpToIterator>
46 <ReturnClause>34 <SingletonIterator value="xs:integer(1)"/>
47 <ElementIterator>35 <SingletonIterator value="xs:integer(3)"/>
48 <SingletonIterator value="xs:QName(,,gruppe)"/>36 </OpToIterator>
49 <AttributeIterator qname="xs:QName(,,anzahl)">37 </ForVariable>
50 <EnclosedIterator attr_cont="true">38 <WhereClause>
51 <ForVarIterator varname="er"/>39 <TypedValueCompareIterator_INTEGER>
52 </EnclosedIterator>
53 </AttributeIterator>
54 <EnclosedIterator attr_cont="false">
55 <UnhoistIterator>40 <UnhoistIterator>
56 <LetVarIterator varname="$$opt_temp_1"/>41 <ForVarIterator varname="$$opt_temp_0"/>
57 </UnhoistIterator>42 </UnhoistIterator>
58 </EnclosedIterator>43 <ForVarIterator varname="er"/>
59 </ElementIterator>44 </TypedValueCompareIterator_INTEGER>
60 </ReturnClause>45 </WhereClause>
61</FLWORIterator>46 <ReturnClause>
6247 <ElementIterator>
48 <SingletonIterator value="xs:QName(,,gruppe)"/>
49 <AttributeIterator qname="xs:QName(,,anzahl)">
50 <EnclosedIterator attr_cont="true">
51 <ForVarIterator varname="er"/>
52 </EnclosedIterator>
53 </AttributeIterator>
54 <EnclosedIterator attr_cont="false">
55 <UnhoistIterator>
56 <LetVarIterator varname="$$opt_temp_1"/>
57 </UnhoistIterator>
58 </EnclosedIterator>
59 </ElementIterator>
60 </ReturnClause>
61 </FLWORIterator>
62</iterator-tree>
6363
=== modified file 'test/iterplans/zorba/hashjoins/9066.iter'
--- test/iterplans/zorba/hashjoins/9066.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9066.iter 2014-02-24 20:09:23 +0000
@@ -1,46 +1,46 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<FLWORIterator>2 <FLWORIterator>
3 <ForVariable name="b">3 <ForVariable name="b">
4 <FnDocIterator>4 <FnDocIterator>
5 <SingletonIterator value="xs:string(books.xml)"/>5 <SingletonIterator value="xs:string(books.xml)"/>
6 </FnDocIterator>6 </FnDocIterator>
7 </ForVariable>7 </ForVariable>
8 <ForVariable name="$$opt_temp_0">8 <ForVariable name="$$opt_temp_0">
9 <HoistIterator>9 <HoistIterator>
10 <FnCountIterator>10 <FnCountIterator>
11 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">11 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
12 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">12 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
13 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,bib)" typename="*" nill allowed="0">13 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,bib)" typename="*" nill allowed="0">
14 <ForVarIterator varname="b"/>14 <ForVarIterator varname="b"/>
15 </ChildAxisIterator>
15 </ChildAxisIterator>16 </ChildAxisIterator>
16 </ChildAxisIterator>17 </ChildAxisIterator>
17 </ChildAxisIterator>18 </FnCountIterator>
18 </FnCountIterator>19 </HoistIterator>
19 </HoistIterator>20 </ForVariable>
20 </ForVariable>21 <ForVariable name="er">
21 <ForVariable name="er">22 <OpToIterator>
22 <OpToIterator>23 <SingletonIterator value="xs:integer(1)"/>
23 <SingletonIterator value="xs:integer(1)"/>24 <SingletonIterator value="xs:integer(3)"/>
24 <SingletonIterator value="xs:integer(3)"/>25 </OpToIterator>
25 </OpToIterator>26 </ForVariable>
26 </ForVariable>27 <WhereClause>
27 <WhereClause>28 <TypedValueCompareIterator_INTEGER>
28 <TypedValueCompareIterator_INTEGER>29 <UnhoistIterator>
29 <UnhoistIterator>30 <ForVarIterator varname="$$opt_temp_0"/>
30 <ForVarIterator varname="$$opt_temp_0"/>31 </UnhoistIterator>
31 </UnhoistIterator>32 <ForVarIterator varname="er"/>
32 <ForVarIterator varname="er"/>33 </TypedValueCompareIterator_INTEGER>
33 </TypedValueCompareIterator_INTEGER>34 </WhereClause>
34 </WhereClause>35 <ReturnClause>
35 <ReturnClause>36 <ElementIterator>
36 <ElementIterator>37 <SingletonIterator value="xs:QName(,,gruppe)"/>
37 <SingletonIterator value="xs:QName(,,gruppe)"/>38 <AttributeIterator qname="xs:QName(,,anzahl)">
38 <AttributeIterator qname="xs:QName(,,anzahl)">39 <EnclosedIterator attr_cont="true">
39 <EnclosedIterator attr_cont="true">40 <ForVarIterator varname="er"/>
40 <ForVarIterator varname="er"/>41 </EnclosedIterator>
41 </EnclosedIterator>42 </AttributeIterator>
42 </AttributeIterator>43 </ElementIterator>
43 </ElementIterator>44 </ReturnClause>
44 </ReturnClause>45 </FLWORIterator>
45</FLWORIterator>46</iterator-tree>
46
4747
=== modified file 'test/iterplans/zorba/hashjoins/9067.iter'
--- test/iterplans/zorba/hashjoins/9067.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9067.iter 2014-02-24 20:09:23 +0000
@@ -1,63 +1,63 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<FLWORIterator>2 <FLWORIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <LetVariable name="$$opt_temp_0" materialize="true">
4 <HoistIterator>4 <HoistIterator>
5 <OpToIterator>5 <OpToIterator>
6 <SingletonIterator value="xs:integer(1)"/>6 <SingletonIterator value="xs:integer(1)"/>
7 <SingletonIterator value="xs:integer(3)"/>7 <SingletonIterator value="xs:integer(3)"/>
8 </OpToIterator>8 </OpToIterator>
9 </HoistIterator>9 </HoistIterator>
10 </LetVariable>10 </LetVariable>
11 <LetVariable name="$$opt_temp_4" materialize="true">11 <LetVariable name="$$opt_temp_4" materialize="true">
12 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">12 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
13 <FLWORIterator>13 <FLWORIterator>
14 <ForVariable name="$$opt_temp_2">14 <ForVariable name="$$opt_temp_2">
15 <UnhoistIterator>15 <UnhoistIterator>
16 <LetVarIterator varname="$$opt_temp_0"/>16 <LetVarIterator varname="$$opt_temp_0"/>
17 </UnhoistIterator>17 </UnhoistIterator>
18 </ForVariable>18 </ForVariable>
19 <ReturnClause>19 <ReturnClause>
20 <ValueIndexEntryBuilderIterator>20 <ValueIndexEntryBuilderIterator>
21 <ForVarIterator varname="$$opt_temp_2"/>21 <ForVarIterator varname="$$opt_temp_2"/>
22 <ForVarIterator varname="$$opt_temp_2"/>22 <ForVarIterator varname="$$opt_temp_2"/>
23 </ValueIndexEntryBuilderIterator>23 </ValueIndexEntryBuilderIterator>
24 </ReturnClause>24 </ReturnClause>
25 </FLWORIterator>25 </FLWORIterator>
26 </CreateInternalIndexIterator>26 </CreateInternalIndexIterator>
27 </LetVariable>27 </LetVariable>
28 <ForVariable name="b">28 <ForVariable name="b">
29 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">29 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
30 <FnDocIterator>30 <FnDocIterator>
31 <SingletonIterator value="xs:string(books.xml)"/>31 <SingletonIterator value="xs:string(books.xml)"/>
32 </FnDocIterator>32 </FnDocIterator>
33 </DescendantAxisIterator>33 </DescendantAxisIterator>
34 </ForVariable>34 </ForVariable>
35 <ForVariable name="$$opt_temp_1">35 <ForVariable name="$$opt_temp_1">
36 <HoistIterator>36 <HoistIterator>
37 <FnCountIterator>37 <FnCountIterator>
38 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">38 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
39 <ForVarIterator varname="b"/>39 <ForVarIterator varname="b"/>
40 </ChildAxisIterator>40 </ChildAxisIterator>
41 </FnCountIterator>41 </FnCountIterator>
42 </HoistIterator>42 </HoistIterator>
43 </ForVariable>43 </ForVariable>
44 <ForVariable name="er">44 <ForVariable name="er">
45 <ProbeIndexPointValueIterator>45 <ProbeIndexPointValueIterator>
46 <SingletonIterator value="xs:QName(,,tempIndex0)"/>46 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
47 <UnhoistIterator>47 <UnhoistIterator>
48 <ForVarIterator varname="$$opt_temp_1"/>48 <ForVarIterator varname="$$opt_temp_1"/>
49 </UnhoistIterator>49 </UnhoistIterator>
50 </ProbeIndexPointValueIterator>50 </ProbeIndexPointValueIterator>
51 </ForVariable>51 </ForVariable>
52 <ReturnClause>52 <ReturnClause>
53 <ElementIterator>53 <ElementIterator>
54 <SingletonIterator value="xs:QName(,,gruppe)"/>54 <SingletonIterator value="xs:QName(,,gruppe)"/>
55 <AttributeIterator qname="xs:QName(,,anzahl)">55 <AttributeIterator qname="xs:QName(,,anzahl)">
56 <EnclosedIterator attr_cont="true">56 <EnclosedIterator attr_cont="true">
57 <ForVarIterator varname="er"/>57 <ForVarIterator varname="er"/>
58 </EnclosedIterator>58 </EnclosedIterator>
59 </AttributeIterator>59 </AttributeIterator>
60 </ElementIterator>60 </ElementIterator>
61 </ReturnClause>61 </ReturnClause>
62</FLWORIterator>62 </FLWORIterator>
6363</iterator-tree>
6464
=== modified file 'test/iterplans/zorba/hashjoins/9068.iter'
--- test/iterplans/zorba/hashjoins/9068.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9068.iter 2014-02-24 20:09:23 +0000
@@ -1,75 +1,75 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<FLWORIterator>2 <FLWORIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <LetVariable name="$$opt_temp_0" materialize="true">
4 <HoistIterator>4 <HoistIterator>
5 <OpToIterator>5 <OpToIterator>
6 <SingletonIterator value="xs:integer(1)"/>6 <SingletonIterator value="xs:integer(1)"/>
7 <SingletonIterator value="xs:integer(3)"/>7 <SingletonIterator value="xs:integer(3)"/>
8 </OpToIterator>8 </OpToIterator>
9 </HoistIterator>9 </HoistIterator>
10 </LetVariable>10 </LetVariable>
11 <LetVariable name="$$opt_temp_5" materialize="true">11 <LetVariable name="$$opt_temp_5" materialize="true">
12 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">12 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
13 <FLWORIterator>13 <FLWORIterator>
14 <ForVariable name="$$opt_temp_3">14 <ForVariable name="$$opt_temp_3">
15 <UnhoistIterator>15 <UnhoistIterator>
16 <LetVarIterator varname="$$opt_temp_0"/>16 <LetVarIterator varname="$$opt_temp_0"/>
17 </UnhoistIterator>17 </UnhoistIterator>
18 </ForVariable>18 </ForVariable>
19 <ReturnClause>19 <ReturnClause>
20 <ValueIndexEntryBuilderIterator>20 <ValueIndexEntryBuilderIterator>
21 <ForVarIterator varname="$$opt_temp_3"/>21 <ForVarIterator varname="$$opt_temp_3"/>
22 <ForVarIterator varname="$$opt_temp_3"/>22 <ForVarIterator varname="$$opt_temp_3"/>
23 </ValueIndexEntryBuilderIterator>23 </ValueIndexEntryBuilderIterator>
24 </ReturnClause>24 </ReturnClause>
25 </FLWORIterator>25 </FLWORIterator>
26 </CreateInternalIndexIterator>26 </CreateInternalIndexIterator>
27 </LetVariable>27 </LetVariable>
28 <ForVariable name="b">28 <ForVariable name="b">
29 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">29 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
30 <FnDocIterator>30 <FnDocIterator>
31 <SingletonIterator value="xs:string(books.xml)"/>31 <SingletonIterator value="xs:string(books.xml)"/>
32 </FnDocIterator>32 </FnDocIterator>
33 </DescendantAxisIterator>33 </DescendantAxisIterator>
34 </ForVariable>34 </ForVariable>
35 <LetVariable name="$$opt_temp_2" materialize="true">35 <LetVariable name="$$opt_temp_2" materialize="true">
36 <HoistIterator>36 <HoistIterator>
37 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,title)" typename="*" nill allowed="0">37 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,title)" typename="*" nill allowed="0">
38 <ForVarIterator varname="b"/>
39 </ChildAxisIterator>
40 </HoistIterator>
41 </LetVariable>
42 <ForVariable name="$$opt_temp_1">
43 <HoistIterator>
44 <FnCountIterator>
45 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
46 <ForVarIterator varname="b"/>38 <ForVarIterator varname="b"/>
47 </ChildAxisIterator>39 </ChildAxisIterator>
48 </FnCountIterator>40 </HoistIterator>
49 </HoistIterator>41 </LetVariable>
50 </ForVariable>42 <ForVariable name="$$opt_temp_1">
51 <ForVariable name="er">43 <HoistIterator>
52 <ProbeIndexPointValueIterator>44 <FnCountIterator>
53 <SingletonIterator value="xs:QName(,,tempIndex0)"/>45 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
54 <UnhoistIterator>46 <ForVarIterator varname="b"/>
55 <ForVarIterator varname="$$opt_temp_1"/>47 </ChildAxisIterator>
56 </UnhoistIterator>48 </FnCountIterator>
57 </ProbeIndexPointValueIterator>49 </HoistIterator>
58 </ForVariable>50 </ForVariable>
59 <ReturnClause>51 <ForVariable name="er">
60 <ElementIterator>52 <ProbeIndexPointValueIterator>
61 <SingletonIterator value="xs:QName(,,gruppe)"/>53 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
62 <AttributeIterator qname="xs:QName(,,anzahl)">
63 <EnclosedIterator attr_cont="true">
64 <ForVarIterator varname="er"/>
65 </EnclosedIterator>
66 </AttributeIterator>
67 <EnclosedIterator attr_cont="false">
68 <UnhoistIterator>54 <UnhoistIterator>
69 <LetVarIterator varname="$$opt_temp_2"/>55 <ForVarIterator varname="$$opt_temp_1"/>
70 </UnhoistIterator>56 </UnhoistIterator>
71 </EnclosedIterator>57 </ProbeIndexPointValueIterator>
72 </ElementIterator>58 </ForVariable>
73 </ReturnClause>59 <ReturnClause>
74</FLWORIterator>60 <ElementIterator>
7561 <SingletonIterator value="xs:QName(,,gruppe)"/>
62 <AttributeIterator qname="xs:QName(,,anzahl)">
63 <EnclosedIterator attr_cont="true">
64 <ForVarIterator varname="er"/>
65 </EnclosedIterator>
66 </AttributeIterator>
67 <EnclosedIterator attr_cont="false">
68 <UnhoistIterator>
69 <LetVarIterator varname="$$opt_temp_2"/>
70 </UnhoistIterator>
71 </EnclosedIterator>
72 </ElementIterator>
73 </ReturnClause>
74 </FLWORIterator>
75</iterator-tree>
7676
=== modified file 'test/iterplans/zorba/hashjoins/9197.iter'
--- test/iterplans/zorba/hashjoins/9197.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9197.iter 2014-02-24 20:09:23 +0000
@@ -1,68 +1,68 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <FLWORIterator>5 <FLWORIterator>
6 <LetVariable name="$$opt_temp_0" materialize="true">6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <HoistIterator>7 <HoistIterator>
8 <OpToIterator>8 <OpToIterator>
9 <SingletonIterator value="xs:integer(1)"/>9 <SingletonIterator value="xs:integer(1)"/>
10 <SingletonIterator value="xs:integer(2)"/>10 <SingletonIterator value="xs:integer(2)"/>
11 </OpToIterator>11 </OpToIterator>
12 </HoistIterator>12 </HoistIterator>
13 </LetVariable>13 </LetVariable>
14 <LetVariable name="$$opt_temp_4" materialize="true">14 <LetVariable name="$$opt_temp_4" materialize="true">
15 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">15 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
16 <FLWORIterator>16 <FLWORIterator>
17 <ForVariable name="$$opt_temp_2">17 <ForVariable name="$$opt_temp_2">
18 <UnhoistIterator>18 <UnhoistIterator>
19 <LetVarIterator varname="$$opt_temp_0"/>19 <LetVarIterator varname="$$opt_temp_0"/>
20 </UnhoistIterator>20 </UnhoistIterator>
21 </ForVariable>21 </ForVariable>
22 <ReturnClause>22 <ReturnClause>
23 <ValueIndexEntryBuilderIterator>23 <ValueIndexEntryBuilderIterator>
24 <ForVarIterator varname="$$opt_temp_2"/>24 <ForVarIterator varname="$$opt_temp_2"/>
25 <ForVarIterator varname="$$opt_temp_2"/>25 <ForVarIterator varname="$$opt_temp_2"/>
26 </ValueIndexEntryBuilderIterator>26 </ValueIndexEntryBuilderIterator>
27 </ReturnClause>27 </ReturnClause>
28 </FLWORIterator>28 </FLWORIterator>
29 </CreateInternalIndexIterator>29 </CreateInternalIndexIterator>
30 </LetVariable>30 </LetVariable>
31 <ForVariable name="book">31 <ForVariable name="book">
32 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">32 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
33 <FnDocIterator>33 <FnDocIterator>
34 <SingletonIterator value="xs:string(books.xml)"/>34 <SingletonIterator value="xs:string(books.xml)"/>
35 </FnDocIterator>35 </FnDocIterator>
36 </DescendantAxisIterator>36 </DescendantAxisIterator>
37 </ForVariable>37 </ForVariable>
38 <ForVariable name="$$opt_temp_1">38 <ForVariable name="$$opt_temp_1">
39 <HoistIterator>39 <HoistIterator>
40 <FnCountIterator>40 <FnCountIterator>
41 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">41 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
42 <ForVarIterator varname="book"/>42 <ForVarIterator varname="book"/>
43 </ChildAxisIterator>43 </ChildAxisIterator>
44 </FnCountIterator>44 </FnCountIterator>
45 </HoistIterator>45 </HoistIterator>
46 </ForVariable>46 </ForVariable>
47 <ForVariable name="anzahl">47 <ForVariable name="anzahl">
48 <ProbeIndexPointValueIterator>48 <ProbeIndexPointValueIterator>
49 <SingletonIterator value="xs:QName(,,tempIndex0)"/>49 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
50 <UnhoistIterator>50 <UnhoistIterator>
51 <ForVarIterator varname="$$opt_temp_1"/>51 <ForVarIterator varname="$$opt_temp_1"/>
52 </UnhoistIterator>52 </UnhoistIterator>
53 </ProbeIndexPointValueIterator>53 </ProbeIndexPointValueIterator>
54 </ForVariable>54 </ForVariable>
55 <ReturnClause>55 <ReturnClause>
56 <ElementIterator>56 <ElementIterator>
57 <SingletonIterator value="xs:QName(,,gruppe)"/>57 <SingletonIterator value="xs:QName(,,gruppe)"/>
58 <AttributeIterator qname="xs:QName(,,anzahl)">58 <AttributeIterator qname="xs:QName(,,anzahl)">
59 <EnclosedIterator attr_cont="true">59 <EnclosedIterator attr_cont="true">
60 <ForVarIterator varname="anzahl"/>60 <ForVarIterator varname="anzahl"/>
61 </EnclosedIterator>61 </EnclosedIterator>
62 </AttributeIterator>62 </AttributeIterator>
63 </ElementIterator>63 </ElementIterator>
64 </ReturnClause>64 </ReturnClause>
65 </FLWORIterator>65 </FLWORIterator>
66 </EnclosedIterator>66 </EnclosedIterator>
67</ElementIterator>67 </ElementIterator>
6868</iterator-tree>
6969
=== modified file 'test/iterplans/zorba/hashjoins/9198.iter'
--- test/iterplans/zorba/hashjoins/9198.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9198.iter 2014-02-24 20:09:23 +0000
@@ -1,71 +1,71 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <FLWORIterator>5 <FLWORIterator>
6 <LetVariable name="$$opt_temp_0" materialize="true">6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <HoistIterator>7 <HoistIterator>
8 <OpToIterator>8 <OpToIterator>
9 <SingletonIterator value="xs:integer(1)"/>9 <SingletonIterator value="xs:integer(1)"/>
10 <SingletonIterator value="xs:integer(2)"/>10 <SingletonIterator value="xs:integer(2)"/>
11 </OpToIterator>11 </OpToIterator>
12 </HoistIterator>12 </HoistIterator>
13 </LetVariable>13 </LetVariable>
14 <LetVariable name="$$opt_temp_4" materialize="true">14 <LetVariable name="$$opt_temp_4" materialize="true">
15 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">15 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
16 <FLWORIterator>16 <FLWORIterator>
17 <ForVariable name="$$opt_temp_2">17 <ForVariable name="$$opt_temp_2">
18 <UnhoistIterator>18 <UnhoistIterator>
19 <LetVarIterator varname="$$opt_temp_0"/>19 <LetVarIterator varname="$$opt_temp_0"/>
20 </UnhoistIterator>20 </UnhoistIterator>
21 </ForVariable>21 </ForVariable>
22 <ReturnClause>22 <ReturnClause>
23 <ValueIndexEntryBuilderIterator>23 <ValueIndexEntryBuilderIterator>
24 <ForVarIterator varname="$$opt_temp_2"/>24 <ForVarIterator varname="$$opt_temp_2"/>
25 <ForVarIterator varname="$$opt_temp_2"/>25 <ForVarIterator varname="$$opt_temp_2"/>
26 </ValueIndexEntryBuilderIterator>26 </ValueIndexEntryBuilderIterator>
27 </ReturnClause>27 </ReturnClause>
28 </FLWORIterator>28 </FLWORIterator>
29 </CreateInternalIndexIterator>29 </CreateInternalIndexIterator>
30 </LetVariable>30 </LetVariable>
31 <ForVariable name="book">31 <ForVariable name="book">
32 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">32 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
33 <FnDocIterator>33 <FnDocIterator>
34 <SingletonIterator value="xs:string(books.xml)"/>34 <SingletonIterator value="xs:string(books.xml)"/>
35 </FnDocIterator>35 </FnDocIterator>
36 </DescendantAxisIterator>36 </DescendantAxisIterator>
37 </ForVariable>37 </ForVariable>
38 <ForVariable name="$$opt_temp_1">38 <ForVariable name="$$opt_temp_1">
39 <HoistIterator>39 <HoistIterator>
40 <FnCountIterator>40 <FnCountIterator>
41 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">41 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
42 <ForVarIterator varname="book"/>
43 </ChildAxisIterator>
44 </FnCountIterator>
45 </HoistIterator>
46 </ForVariable>
47 <ForVariable name="anzahl">
48 <ProbeIndexPointValueIterator>
49 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
50 <UnhoistIterator>
51 <ForVarIterator varname="$$opt_temp_1"/>
52 </UnhoistIterator>
53 </ProbeIndexPointValueIterator>
54 </ForVariable>
55 <ReturnClause>
56 <ElementIterator>
57 <SingletonIterator value="xs:QName(,,gruppe)"/>
58 <AttributeIterator qname="xs:QName(,,anzahl)">
59 <EnclosedIterator attr_cont="true">
60 <ForVarIterator varname="anzahl"/>
61 </EnclosedIterator>
62 </AttributeIterator>
63 <EnclosedIterator attr_cont="false">
42 <ForVarIterator varname="book"/>64 <ForVarIterator varname="book"/>
43 </ChildAxisIterator>
44 </FnCountIterator>
45 </HoistIterator>
46 </ForVariable>
47 <ForVariable name="anzahl">
48 <ProbeIndexPointValueIterator>
49 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
50 <UnhoistIterator>
51 <ForVarIterator varname="$$opt_temp_1"/>
52 </UnhoistIterator>
53 </ProbeIndexPointValueIterator>
54 </ForVariable>
55 <ReturnClause>
56 <ElementIterator>
57 <SingletonIterator value="xs:QName(,,gruppe)"/>
58 <AttributeIterator qname="xs:QName(,,anzahl)">
59 <EnclosedIterator attr_cont="true">
60 <ForVarIterator varname="anzahl"/>
61 </EnclosedIterator>65 </EnclosedIterator>
62 </AttributeIterator>66 </ElementIterator>
63 <EnclosedIterator attr_cont="false">67 </ReturnClause>
64 <ForVarIterator varname="book"/>68 </FLWORIterator>
65 </EnclosedIterator>69 </EnclosedIterator>
66 </ElementIterator>70 </ElementIterator>
67 </ReturnClause>71</iterator-tree>
68 </FLWORIterator>
69 </EnclosedIterator>
70</ElementIterator>
71
7272
=== modified file 'test/iterplans/zorba/hashjoins/9199.iter'
--- test/iterplans/zorba/hashjoins/9199.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9199.iter 2014-02-24 20:09:23 +0000
@@ -1,71 +1,71 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <FLWORIterator>5 <FLWORIterator>
6 <LetVariable name="$$opt_temp_0" materialize="true">6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <HoistIterator>7 <HoistIterator>
8 <OpToIterator>8 <OpToIterator>
9 <SingletonIterator value="xs:integer(1)"/>9 <SingletonIterator value="xs:integer(1)"/>
10 <SingletonIterator value="xs:integer(2)"/>10 <SingletonIterator value="xs:integer(2)"/>
11 </OpToIterator>11 </OpToIterator>
12 </HoistIterator>12 </HoistIterator>
13 </LetVariable>13 </LetVariable>
14 <LetVariable name="$$opt_temp_4" materialize="true">14 <LetVariable name="$$opt_temp_4" materialize="true">
15 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">15 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
16 <FLWORIterator>16 <FLWORIterator>
17 <ForVariable name="$$opt_temp_2">17 <ForVariable name="$$opt_temp_2">
18 <UnhoistIterator>18 <UnhoistIterator>
19 <LetVarIterator varname="$$opt_temp_0"/>19 <LetVarIterator varname="$$opt_temp_0"/>
20 </UnhoistIterator>20 </UnhoistIterator>
21 </ForVariable>21 </ForVariable>
22 <ReturnClause>22 <ReturnClause>
23 <ValueIndexEntryBuilderIterator>23 <ValueIndexEntryBuilderIterator>
24 <ForVarIterator varname="$$opt_temp_2"/>24 <ForVarIterator varname="$$opt_temp_2"/>
25 <ForVarIterator varname="$$opt_temp_2"/>25 <ForVarIterator varname="$$opt_temp_2"/>
26 </ValueIndexEntryBuilderIterator>26 </ValueIndexEntryBuilderIterator>
27 </ReturnClause>27 </ReturnClause>
28 </FLWORIterator>28 </FLWORIterator>
29 </CreateInternalIndexIterator>29 </CreateInternalIndexIterator>
30 </LetVariable>30 </LetVariable>
31 <ForVariable name="book">31 <ForVariable name="book">
32 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">32 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
33 <FnDocIterator>33 <FnDocIterator>
34 <SingletonIterator value="xs:string(books.xml)"/>34 <SingletonIterator value="xs:string(books.xml)"/>
35 </FnDocIterator>35 </FnDocIterator>
36 </DescendantAxisIterator>36 </DescendantAxisIterator>
37 </ForVariable>37 </ForVariable>
38 <ForVariable name="$$opt_temp_1">38 <ForVariable name="$$opt_temp_1">
39 <HoistIterator>39 <HoistIterator>
40 <FnCountIterator>40 <FnCountIterator>
41 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">41 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
42 <ForVarIterator varname="book"/>
43 </ChildAxisIterator>
44 </FnCountIterator>
45 </HoistIterator>
46 </ForVariable>
47 <ForVariable name="anzahl">
48 <ProbeIndexPointValueIterator>
49 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
50 <UnhoistIterator>
51 <ForVarIterator varname="$$opt_temp_1"/>
52 </UnhoistIterator>
53 </ProbeIndexPointValueIterator>
54 </ForVariable>
55 <ReturnClause>
56 <ElementIterator>
57 <SingletonIterator value="xs:QName(,,gruppe)"/>
58 <AttributeIterator qname="xs:QName(,,anzahl)">
59 <EnclosedIterator attr_cont="true">
60 <ForVarIterator varname="anzahl"/>
61 </EnclosedIterator>
62 </AttributeIterator>
63 <EnclosedIterator attr_cont="false">
42 <ForVarIterator varname="book"/>64 <ForVarIterator varname="book"/>
43 </ChildAxisIterator>
44 </FnCountIterator>
45 </HoistIterator>
46 </ForVariable>
47 <ForVariable name="anzahl">
48 <ProbeIndexPointValueIterator>
49 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
50 <UnhoistIterator>
51 <ForVarIterator varname="$$opt_temp_1"/>
52 </UnhoistIterator>
53 </ProbeIndexPointValueIterator>
54 </ForVariable>
55 <ReturnClause>
56 <ElementIterator>
57 <SingletonIterator value="xs:QName(,,gruppe)"/>
58 <AttributeIterator qname="xs:QName(,,anzahl)">
59 <EnclosedIterator attr_cont="true">
60 <ForVarIterator varname="anzahl"/>
61 </EnclosedIterator>65 </EnclosedIterator>
62 </AttributeIterator>66 </ElementIterator>
63 <EnclosedIterator attr_cont="false">67 </ReturnClause>
64 <ForVarIterator varname="book"/>68 </FLWORIterator>
65 </EnclosedIterator>69 </EnclosedIterator>
66 </ElementIterator>70 </ElementIterator>
67 </ReturnClause>71</iterator-tree>
68 </FLWORIterator>
69 </EnclosedIterator>
70</ElementIterator>
71
7272
=== modified file 'test/iterplans/zorba/hashjoins/9204.iter'
--- test/iterplans/zorba/hashjoins/9204.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9204.iter 2014-02-24 20:09:23 +0000
@@ -1,75 +1,75 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<FLWORIterator>2 <FLWORIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <LetVariable name="$$opt_temp_0" materialize="true">
4 <HoistIterator>4 <HoistIterator>
5 <OpToIterator>5 <OpToIterator>
6 <SingletonIterator value="xs:integer(1)"/>6 <SingletonIterator value="xs:integer(1)"/>
7 <SingletonIterator value="xs:integer(2)"/>7 <SingletonIterator value="xs:integer(2)"/>
8 </OpToIterator>8 </OpToIterator>
9 </HoistIterator>9 </HoistIterator>
10 </LetVariable>10 </LetVariable>
11 <LetVariable name="$$opt_temp_4" materialize="true">11 <LetVariable name="$$opt_temp_4" materialize="true">
12 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">12 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
13 <FLWORIterator>
14 <ForVariable name="$$opt_temp_2">
15 <UnhoistIterator>
16 <LetVarIterator varname="$$opt_temp_0"/>
17 </UnhoistIterator>
18 </ForVariable>
19 <ReturnClause>
20 <ValueIndexEntryBuilderIterator>
21 <ForVarIterator varname="$$opt_temp_2"/>
22 <ForVarIterator varname="$$opt_temp_2"/>
23 </ValueIndexEntryBuilderIterator>
24 </ReturnClause>
25 </FLWORIterator>
26 </CreateInternalIndexIterator>
27 </LetVariable>
28 <ForVariable name="book">
29 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
30 <FnDocIterator>
31 <SingletonIterator value="xs:string(books.xml)"/>
32 </FnDocIterator>
33 </DescendantAxisIterator>
34 </ForVariable>
35 <ForVariable name="$$opt_temp_1">
36 <HoistIterator>
37 <FnCountIterator>
38 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
39 <ForVarIterator varname="book"/>
40 </ChildAxisIterator>
41 </FnCountIterator>
42 </HoistIterator>
43 </ForVariable>
44 <ReturnClause>
45 <ElementIterator>
46 <SingletonIterator value="xs:QName(,,karteikasten)"/>
47 <EnclosedIterator attr_cont="false">
48 <FLWORIterator>13 <FLWORIterator>
49 <ForVariable name="anzahl">14 <ForVariable name="$$opt_temp_2">
50 <ProbeIndexPointValueIterator>15 <UnhoistIterator>
51 <SingletonIterator value="xs:QName(,,tempIndex0)"/>16 <LetVarIterator varname="$$opt_temp_0"/>
52 <UnhoistIterator>17 </UnhoistIterator>
53 <ForVarIterator varname="$$opt_temp_1"/>
54 </UnhoistIterator>
55 </ProbeIndexPointValueIterator>
56 </ForVariable>18 </ForVariable>
57 <ReturnClause>19 <ReturnClause>
58 <ElementIterator>20 <ValueIndexEntryBuilderIterator>
59 <SingletonIterator value="xs:QName(,,gruppe)"/>21 <ForVarIterator varname="$$opt_temp_2"/>
60 <AttributeIterator qname="xs:QName(,,anzahl)">22 <ForVarIterator varname="$$opt_temp_2"/>
61 <EnclosedIterator attr_cont="true">23 </ValueIndexEntryBuilderIterator>
62 <ForVarIterator varname="anzahl"/>
63 </EnclosedIterator>
64 </AttributeIterator>
65 <EnclosedIterator attr_cont="false">
66 <ForVarIterator varname="book"/>
67 </EnclosedIterator>
68 </ElementIterator>
69 </ReturnClause>24 </ReturnClause>
70 </FLWORIterator>25 </FLWORIterator>
71 </EnclosedIterator>26 </CreateInternalIndexIterator>
72 </ElementIterator>27 </LetVariable>
73 </ReturnClause>28 <ForVariable name="book">
74</FLWORIterator>29 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
7530 <FnDocIterator>
31 <SingletonIterator value="xs:string(books.xml)"/>
32 </FnDocIterator>
33 </DescendantAxisIterator>
34 </ForVariable>
35 <ForVariable name="$$opt_temp_1">
36 <HoistIterator>
37 <FnCountIterator>
38 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
39 <ForVarIterator varname="book"/>
40 </ChildAxisIterator>
41 </FnCountIterator>
42 </HoistIterator>
43 </ForVariable>
44 <ReturnClause>
45 <ElementIterator>
46 <SingletonIterator value="xs:QName(,,karteikasten)"/>
47 <EnclosedIterator attr_cont="false">
48 <FLWORIterator>
49 <ForVariable name="anzahl">
50 <ProbeIndexPointValueIterator>
51 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
52 <UnhoistIterator>
53 <ForVarIterator varname="$$opt_temp_1"/>
54 </UnhoistIterator>
55 </ProbeIndexPointValueIterator>
56 </ForVariable>
57 <ReturnClause>
58 <ElementIterator>
59 <SingletonIterator value="xs:QName(,,gruppe)"/>
60 <AttributeIterator qname="xs:QName(,,anzahl)">
61 <EnclosedIterator attr_cont="true">
62 <ForVarIterator varname="anzahl"/>
63 </EnclosedIterator>
64 </AttributeIterator>
65 <EnclosedIterator attr_cont="false">
66 <ForVarIterator varname="book"/>
67 </EnclosedIterator>
68 </ElementIterator>
69 </ReturnClause>
70 </FLWORIterator>
71 </EnclosedIterator>
72 </ElementIterator>
73 </ReturnClause>
74 </FLWORIterator>
75</iterator-tree>
7676
=== modified file 'test/iterplans/zorba/hashjoins/9206.iter'
--- test/iterplans/zorba/hashjoins/9206.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9206.iter 2014-02-24 20:09:23 +0000
@@ -1,64 +1,64 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <FLWORIterator>5 <FLWORIterator>
6 <LetVariable name="$$opt_temp_0" materialize="true">6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <HoistIterator>7 <HoistIterator>
8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 <FnDocIterator>9 <FnDocIterator>
10 <SingletonIterator value="xs:string(books.xml)"/>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </FnDocIterator>11 </FnDocIterator>
12 </DescendantAxisIterator>12 </DescendantAxisIterator>
13 </HoistIterator>13 </HoistIterator>
14 </LetVariable>14 </LetVariable>
15 <LetVariable name="$$opt_temp_3" materialize="true">15 <LetVariable name="$$opt_temp_3" materialize="true">
16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <FLWORIterator>17 <FLWORIterator>
18 <ForVariable name="$$opt_temp_1">18 <ForVariable name="$$opt_temp_1">
19 <UnhoistIterator>19 <UnhoistIterator>
20 <LetVarIterator varname="$$opt_temp_0"/>20 <LetVarIterator varname="$$opt_temp_0"/>
21 </UnhoistIterator>21 </UnhoistIterator>
22 </ForVariable>22 </ForVariable>
23 <ReturnClause>23 <ReturnClause>
24 <ValueIndexEntryBuilderIterator>24 <ValueIndexEntryBuilderIterator>
25 <ForVarIterator varname="$$opt_temp_1"/>25 <ForVarIterator varname="$$opt_temp_1"/>
26 <FnCountIterator>26 <FnCountIterator>
27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
28 <ForVarIterator varname="$$opt_temp_1"/>28 <ForVarIterator varname="$$opt_temp_1"/>
29 </ChildAxisIterator>29 </ChildAxisIterator>
30 </FnCountIterator>30 </FnCountIterator>
31 </ValueIndexEntryBuilderIterator>31 </ValueIndexEntryBuilderIterator>
32 </ReturnClause>32 </ReturnClause>
33 </FLWORIterator>33 </FLWORIterator>
34 </CreateInternalIndexIterator>34 </CreateInternalIndexIterator>
35 </LetVariable>35 </LetVariable>
36 <ForVariable name="anzahl">36 <ForVariable name="anzahl">
37 <OpToIterator>37 <OpToIterator>
38 <SingletonIterator value="xs:integer(1)"/>38 <SingletonIterator value="xs:integer(1)"/>
39 <SingletonIterator value="xs:integer(2)"/>39 <SingletonIterator value="xs:integer(2)"/>
40 </OpToIterator>40 </OpToIterator>
41 </ForVariable>41 </ForVariable>
42 <ForVariable name="book">42 <ForVariable name="book">
43 <ProbeIndexPointValueIterator>43 <ProbeIndexPointValueIterator>
44 <SingletonIterator value="xs:QName(,,tempIndex0)"/>44 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
45 <ForVarIterator varname="anzahl"/>45 <ForVarIterator varname="anzahl"/>
46 </ProbeIndexPointValueIterator>46 </ProbeIndexPointValueIterator>
47 </ForVariable>47 </ForVariable>
48 <ReturnClause>48 <ReturnClause>
49 <ElementIterator>49 <ElementIterator>
50 <SingletonIterator value="xs:QName(,,gruppe)"/>50 <SingletonIterator value="xs:QName(,,gruppe)"/>
51 <AttributeIterator qname="xs:QName(,,anzahl)">51 <AttributeIterator qname="xs:QName(,,anzahl)">
52 <EnclosedIterator attr_cont="true">52 <EnclosedIterator attr_cont="true">
53 <ForVarIterator varname="anzahl"/>53 <ForVarIterator varname="anzahl"/>
54 </EnclosedIterator>
55 </AttributeIterator>
56 <EnclosedIterator attr_cont="false">
57 <ForVarIterator varname="book"/>
54 </EnclosedIterator>58 </EnclosedIterator>
55 </AttributeIterator>59 </ElementIterator>
56 <EnclosedIterator attr_cont="false">60 </ReturnClause>
57 <ForVarIterator varname="book"/>61 </FLWORIterator>
58 </EnclosedIterator>62 </EnclosedIterator>
59 </ElementIterator>63 </ElementIterator>
60 </ReturnClause>64</iterator-tree>
61 </FLWORIterator>
62 </EnclosedIterator>
63</ElementIterator>
64
6565
=== modified file 'test/iterplans/zorba/hashjoins/9207.iter'
--- test/iterplans/zorba/hashjoins/9207.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9207.iter 2014-02-24 20:09:23 +0000
@@ -1,71 +1,71 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <FLWORIterator>5 <FLWORIterator>
6 <LetVariable name="$$opt_temp_0" materialize="true">6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <HoistIterator>7 <HoistIterator>
8 <OpToIterator>8 <OpToIterator>
9 <SingletonIterator value="xs:integer(1)"/>9 <SingletonIterator value="xs:integer(1)"/>
10 <SingletonIterator value="xs:integer(2)"/>10 <SingletonIterator value="xs:integer(2)"/>
11 </OpToIterator>11 </OpToIterator>
12 </HoistIterator>12 </HoistIterator>
13 </LetVariable>13 </LetVariable>
14 <LetVariable name="$$opt_temp_4" materialize="true">14 <LetVariable name="$$opt_temp_4" materialize="true">
15 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">15 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
16 <FLWORIterator>16 <FLWORIterator>
17 <ForVariable name="$$opt_temp_2">17 <ForVariable name="$$opt_temp_2">
18 <UnhoistIterator>18 <UnhoistIterator>
19 <LetVarIterator varname="$$opt_temp_0"/>19 <LetVarIterator varname="$$opt_temp_0"/>
20 </UnhoistIterator>20 </UnhoistIterator>
21 </ForVariable>21 </ForVariable>
22 <ReturnClause>22 <ReturnClause>
23 <ValueIndexEntryBuilderIterator>23 <ValueIndexEntryBuilderIterator>
24 <ForVarIterator varname="$$opt_temp_2"/>24 <ForVarIterator varname="$$opt_temp_2"/>
25 <ForVarIterator varname="$$opt_temp_2"/>25 <ForVarIterator varname="$$opt_temp_2"/>
26 </ValueIndexEntryBuilderIterator>26 </ValueIndexEntryBuilderIterator>
27 </ReturnClause>27 </ReturnClause>
28 </FLWORIterator>28 </FLWORIterator>
29 </CreateInternalIndexIterator>29 </CreateInternalIndexIterator>
30 </LetVariable>30 </LetVariable>
31 <ForVariable name="book">31 <ForVariable name="book">
32 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">32 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
33 <FnDocIterator>33 <FnDocIterator>
34 <SingletonIterator value="xs:string(books.xml)"/>34 <SingletonIterator value="xs:string(books.xml)"/>
35 </FnDocIterator>35 </FnDocIterator>
36 </DescendantAxisIterator>36 </DescendantAxisIterator>
37 </ForVariable>37 </ForVariable>
38 <ForVariable name="$$opt_temp_1">38 <ForVariable name="$$opt_temp_1">
39 <HoistIterator>39 <HoistIterator>
40 <FnCountIterator>40 <FnCountIterator>
41 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">41 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
42 <ForVarIterator varname="book"/>
43 </ChildAxisIterator>
44 </FnCountIterator>
45 </HoistIterator>
46 </ForVariable>
47 <ForVariable name="anzahl">
48 <ProbeIndexPointValueIterator>
49 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
50 <UnhoistIterator>
51 <ForVarIterator varname="$$opt_temp_1"/>
52 </UnhoistIterator>
53 </ProbeIndexPointValueIterator>
54 </ForVariable>
55 <ReturnClause>
56 <ElementIterator>
57 <SingletonIterator value="xs:QName(,,gruppe)"/>
58 <AttributeIterator qname="xs:QName(,,anzahl)">
59 <EnclosedIterator attr_cont="true">
60 <ForVarIterator varname="anzahl"/>
61 </EnclosedIterator>
62 </AttributeIterator>
63 <EnclosedIterator attr_cont="false">
42 <ForVarIterator varname="book"/>64 <ForVarIterator varname="book"/>
43 </ChildAxisIterator>
44 </FnCountIterator>
45 </HoistIterator>
46 </ForVariable>
47 <ForVariable name="anzahl">
48 <ProbeIndexPointValueIterator>
49 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
50 <UnhoistIterator>
51 <ForVarIterator varname="$$opt_temp_1"/>
52 </UnhoistIterator>
53 </ProbeIndexPointValueIterator>
54 </ForVariable>
55 <ReturnClause>
56 <ElementIterator>
57 <SingletonIterator value="xs:QName(,,gruppe)"/>
58 <AttributeIterator qname="xs:QName(,,anzahl)">
59 <EnclosedIterator attr_cont="true">
60 <ForVarIterator varname="anzahl"/>
61 </EnclosedIterator>65 </EnclosedIterator>
62 </AttributeIterator>66 </ElementIterator>
63 <EnclosedIterator attr_cont="false">67 </ReturnClause>
64 <ForVarIterator varname="book"/>68 </FLWORIterator>
65 </EnclosedIterator>69 </EnclosedIterator>
66 </ElementIterator>70 </ElementIterator>
67 </ReturnClause>71</iterator-tree>
68 </FLWORIterator>
69 </EnclosedIterator>
70</ElementIterator>
71
7272
=== modified file 'test/iterplans/zorba/hashjoins/9210.iter'
--- test/iterplans/zorba/hashjoins/9210.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9210.iter 2014-02-24 20:09:23 +0000
@@ -1,68 +1,68 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <FLWORIterator>5 <FLWORIterator>
6 <LetVariable name="$$opt_temp_0" materialize="true">6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <HoistIterator>7 <HoistIterator>
8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 <FnDocIterator>9 <FnDocIterator>
10 <SingletonIterator value="xs:string(books.xml)"/>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </FnDocIterator>11 </FnDocIterator>
12 </DescendantAxisIterator>12 </DescendantAxisIterator>
13 </HoistIterator>13 </HoistIterator>
14 </LetVariable>14 </LetVariable>
15 <LetVariable name="$$opt_temp_3" materialize="true">15 <LetVariable name="$$opt_temp_3" materialize="true">
16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <FLWORIterator>
18 <ForVariable name="$$opt_temp_1">
19 <UnhoistIterator>
20 <LetVarIterator varname="$$opt_temp_0"/>
21 </UnhoistIterator>
22 </ForVariable>
23 <ReturnClause>
24 <ValueIndexEntryBuilderIterator>
25 <ForVarIterator varname="$$opt_temp_1"/>
26 <FnCountIterator>
27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
28 <ForVarIterator varname="$$opt_temp_1"/>
29 </ChildAxisIterator>
30 </FnCountIterator>
31 </ValueIndexEntryBuilderIterator>
32 </ReturnClause>
33 </FLWORIterator>
34 </CreateInternalIndexIterator>
35 </LetVariable>
36 <ForVariable name="anzahl">
37 <OpToIterator>
38 <SingletonIterator value="xs:integer(1)"/>
39 <SingletonIterator value="xs:integer(2)"/>
40 </OpToIterator>
41 </ForVariable>
42 <ReturnClause>
43 <ElementIterator>
44 <SingletonIterator value="xs:QName(,,gruppe)"/>
45 <AttributeIterator qname="xs:QName(,,anzahl)">
46 <EnclosedIterator attr_cont="true">
47 <ForVarIterator varname="anzahl"/>
48 </EnclosedIterator>
49 </AttributeIterator>
50 <EnclosedIterator attr_cont="false">
51 <FLWORIterator>17 <FLWORIterator>
52 <ForVariable name="book">18 <ForVariable name="$$opt_temp_1">
53 <ProbeIndexPointValueIterator>19 <UnhoistIterator>
54 <SingletonIterator value="xs:QName(,,tempIndex0)"/>20 <LetVarIterator varname="$$opt_temp_0"/>
55 <ForVarIterator varname="anzahl"/>21 </UnhoistIterator>
56 </ProbeIndexPointValueIterator>
57 </ForVariable>22 </ForVariable>
58 <ReturnClause>23 <ReturnClause>
59 <ForVarIterator varname="book"/>24 <ValueIndexEntryBuilderIterator>
25 <ForVarIterator varname="$$opt_temp_1"/>
26 <FnCountIterator>
27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
28 <ForVarIterator varname="$$opt_temp_1"/>
29 </ChildAxisIterator>
30 </FnCountIterator>
31 </ValueIndexEntryBuilderIterator>
60 </ReturnClause>32 </ReturnClause>
61 </FLWORIterator>33 </FLWORIterator>
62 </EnclosedIterator>34 </CreateInternalIndexIterator>
63 </ElementIterator>35 </LetVariable>
64 </ReturnClause>36 <ForVariable name="anzahl">
65 </FLWORIterator>37 <OpToIterator>
66 </EnclosedIterator>38 <SingletonIterator value="xs:integer(1)"/>
67</ElementIterator>39 <SingletonIterator value="xs:integer(2)"/>
6840 </OpToIterator>
41 </ForVariable>
42 <ReturnClause>
43 <ElementIterator>
44 <SingletonIterator value="xs:QName(,,gruppe)"/>
45 <AttributeIterator qname="xs:QName(,,anzahl)">
46 <EnclosedIterator attr_cont="true">
47 <ForVarIterator varname="anzahl"/>
48 </EnclosedIterator>
49 </AttributeIterator>
50 <EnclosedIterator attr_cont="false">
51 <FLWORIterator>
52 <ForVariable name="book">
53 <ProbeIndexPointValueIterator>
54 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
55 <ForVarIterator varname="anzahl"/>
56 </ProbeIndexPointValueIterator>
57 </ForVariable>
58 <ReturnClause>
59 <ForVarIterator varname="book"/>
60 </ReturnClause>
61 </FLWORIterator>
62 </EnclosedIterator>
63 </ElementIterator>
64 </ReturnClause>
65 </FLWORIterator>
66 </EnclosedIterator>
67 </ElementIterator>
68</iterator-tree>
6969
=== modified file 'test/iterplans/zorba/hashjoins/9211.iter'
--- test/iterplans/zorba/hashjoins/9211.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9211.iter 2014-02-24 20:09:23 +0000
@@ -1,71 +1,71 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <FLWORIterator>5 <FLWORIterator>
6 <LetVariable name="$$opt_temp_0" materialize="true">6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <HoistIterator>7 <HoistIterator>
8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 <FnDocIterator>9 <FnDocIterator>
10 <SingletonIterator value="xs:string(books.xml)"/>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </FnDocIterator>11 </FnDocIterator>
12 </DescendantAxisIterator>12 </DescendantAxisIterator>
13 </HoistIterator>13 </HoistIterator>
14 </LetVariable>14 </LetVariable>
15 <LetVariable name="$$opt_temp_3" materialize="true">15 <LetVariable name="$$opt_temp_3" materialize="true">
16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <FLWORIterator>
18 <ForVariable name="$$opt_temp_1">
19 <UnhoistIterator>
20 <LetVarIterator varname="$$opt_temp_0"/>
21 </UnhoistIterator>
22 </ForVariable>
23 <ReturnClause>
24 <ValueIndexEntryBuilderIterator>
25 <ForVarIterator varname="$$opt_temp_1"/>
26 <FnCountIterator>
27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
28 <ForVarIterator varname="$$opt_temp_1"/>
29 </ChildAxisIterator>
30 </FnCountIterator>
31 </ValueIndexEntryBuilderIterator>
32 </ReturnClause>
33 </FLWORIterator>
34 </CreateInternalIndexIterator>
35 </LetVariable>
36 <ForVariable name="anzahl">
37 <OpToIterator>
38 <SingletonIterator value="xs:integer(1)"/>
39 <SingletonIterator value="xs:integer(2)"/>
40 </OpToIterator>
41 </ForVariable>
42 <OrderBySpec>
43 <ForVarIterator varname="anzahl"/>
44 </OrderBySpec>
45 <ReturnClause>
46 <ElementIterator>
47 <SingletonIterator value="xs:QName(,,gruppe)"/>
48 <AttributeIterator qname="xs:QName(,,anzahl)">
49 <EnclosedIterator attr_cont="true">
50 <ForVarIterator varname="anzahl"/>
51 </EnclosedIterator>
52 </AttributeIterator>
53 <EnclosedIterator attr_cont="false">
54 <FLWORIterator>17 <FLWORIterator>
55 <ForVariable name="book">18 <ForVariable name="$$opt_temp_1">
56 <ProbeIndexPointValueIterator>19 <UnhoistIterator>
57 <SingletonIterator value="xs:QName(,,tempIndex0)"/>20 <LetVarIterator varname="$$opt_temp_0"/>
58 <ForVarIterator varname="anzahl"/>21 </UnhoistIterator>
59 </ProbeIndexPointValueIterator>
60 </ForVariable>22 </ForVariable>
61 <ReturnClause>23 <ReturnClause>
62 <ForVarIterator varname="book"/>24 <ValueIndexEntryBuilderIterator>
25 <ForVarIterator varname="$$opt_temp_1"/>
26 <FnCountIterator>
27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
28 <ForVarIterator varname="$$opt_temp_1"/>
29 </ChildAxisIterator>
30 </FnCountIterator>
31 </ValueIndexEntryBuilderIterator>
63 </ReturnClause>32 </ReturnClause>
64 </FLWORIterator>33 </FLWORIterator>
65 </EnclosedIterator>34 </CreateInternalIndexIterator>
66 </ElementIterator>35 </LetVariable>
67 </ReturnClause>36 <ForVariable name="anzahl">
68 </FLWORIterator>37 <OpToIterator>
69 </EnclosedIterator>38 <SingletonIterator value="xs:integer(1)"/>
70</ElementIterator>39 <SingletonIterator value="xs:integer(2)"/>
7140 </OpToIterator>
41 </ForVariable>
42 <OrderBySpec>
43 <ForVarIterator varname="anzahl"/>
44 </OrderBySpec>
45 <ReturnClause>
46 <ElementIterator>
47 <SingletonIterator value="xs:QName(,,gruppe)"/>
48 <AttributeIterator qname="xs:QName(,,anzahl)">
49 <EnclosedIterator attr_cont="true">
50 <ForVarIterator varname="anzahl"/>
51 </EnclosedIterator>
52 </AttributeIterator>
53 <EnclosedIterator attr_cont="false">
54 <FLWORIterator>
55 <ForVariable name="book">
56 <ProbeIndexPointValueIterator>
57 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
58 <ForVarIterator varname="anzahl"/>
59 </ProbeIndexPointValueIterator>
60 </ForVariable>
61 <ReturnClause>
62 <ForVarIterator varname="book"/>
63 </ReturnClause>
64 </FLWORIterator>
65 </EnclosedIterator>
66 </ElementIterator>
67 </ReturnClause>
68 </FLWORIterator>
69 </EnclosedIterator>
70 </ElementIterator>
71</iterator-tree>
7272
=== modified file 'test/iterplans/zorba/hashjoins/9212.iter'
--- test/iterplans/zorba/hashjoins/9212.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9212.iter 2014-02-24 20:09:23 +0000
@@ -1,79 +1,79 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <FLWORIterator>5 <FLWORIterator>
6 <LetVariable name="$$opt_temp_0" materialize="true">6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <HoistIterator>7 <HoistIterator>
8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 <FnDocIterator>
10 <SingletonIterator value="xs:string(books.xml)"/>
11 </FnDocIterator>
12 </DescendantAxisIterator>
13 </HoistIterator>
14 </LetVariable>
15 <LetVariable name="$$opt_temp_3" materialize="true">
16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <FLWORIterator>
18 <ForVariable name="$$opt_temp_1">
19 <UnhoistIterator>
20 <LetVarIterator varname="$$opt_temp_0"/>
21 </UnhoistIterator>
22 </ForVariable>
23 <ReturnClause>
24 <ValueIndexEntryBuilderIterator>
25 <ForVarIterator varname="$$opt_temp_1"/>
26 <FnCountIterator>
27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
28 <ForVarIterator varname="$$opt_temp_1"/>
29 </ChildAxisIterator>
30 </FnCountIterator>
31 </ValueIndexEntryBuilderIterator>
32 </ReturnClause>
33 </FLWORIterator>
34 </CreateInternalIndexIterator>
35 </LetVariable>
36 <ForVariable name="book">
8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">37 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 <FnDocIterator>38 <FnDocIterator>
10 <SingletonIterator value="xs:string(books.xml)"/>39 <SingletonIterator value="xs:string(books.xml)"/>
11 </FnDocIterator>40 </FnDocIterator>
12 </DescendantAxisIterator>41 </DescendantAxisIterator>
13 </HoistIterator>42 </ForVariable>
14 </LetVariable>43 <ForVariable name="anzahl">
15 <LetVariable name="$$opt_temp_3" materialize="true">44 <FnCountIterator>
16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">45 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
17 <FLWORIterator>46 <ForVarIterator varname="book"/>
18 <ForVariable name="$$opt_temp_1">47 </ChildAxisIterator>
19 <UnhoistIterator>48 </FnCountIterator>
20 <LetVarIterator varname="$$opt_temp_0"/>49 </ForVariable>
21 </UnhoistIterator>50 <OrderBySpec>
22 </ForVariable>51 <ForVarIterator varname="anzahl"/>
23 <ReturnClause>52 </OrderBySpec>
24 <ValueIndexEntryBuilderIterator>53 <ReturnClause>
25 <ForVarIterator varname="$$opt_temp_1"/>54 <ElementIterator>
26 <FnCountIterator>55 <SingletonIterator value="xs:QName(,,gruppe)"/>
27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">56 <AttributeIterator qname="xs:QName(,,anzahl)">
28 <ForVarIterator varname="$$opt_temp_1"/>57 <EnclosedIterator attr_cont="true">
29 </ChildAxisIterator>58 <ForVarIterator varname="anzahl"/>
30 </FnCountIterator>59 </EnclosedIterator>
31 </ValueIndexEntryBuilderIterator>60 </AttributeIterator>
32 </ReturnClause>61 <EnclosedIterator attr_cont="false">
33 </FLWORIterator>62 <FLWORIterator>
34 </CreateInternalIndexIterator>63 <ForVariable name="book">
35 </LetVariable>64 <ProbeIndexPointValueIterator>
36 <ForVariable name="book">65 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
37 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">66 <ForVarIterator varname="anzahl"/>
38 <FnDocIterator>67 </ProbeIndexPointValueIterator>
39 <SingletonIterator value="xs:string(books.xml)"/>68 </ForVariable>
40 </FnDocIterator>69 <ReturnClause>
41 </DescendantAxisIterator>70 <ForVarIterator varname="book"/>
42 </ForVariable>71 </ReturnClause>
43 <ForVariable name="anzahl">72 </FLWORIterator>
44 <FnCountIterator>
45 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
46 <ForVarIterator varname="book"/>
47 </ChildAxisIterator>
48 </FnCountIterator>
49 </ForVariable>
50 <OrderBySpec>
51 <ForVarIterator varname="anzahl"/>
52 </OrderBySpec>
53 <ReturnClause>
54 <ElementIterator>
55 <SingletonIterator value="xs:QName(,,gruppe)"/>
56 <AttributeIterator qname="xs:QName(,,anzahl)">
57 <EnclosedIterator attr_cont="true">
58 <ForVarIterator varname="anzahl"/>
59 </EnclosedIterator>73 </EnclosedIterator>
60 </AttributeIterator>74 </ElementIterator>
61 <EnclosedIterator attr_cont="false">75 </ReturnClause>
62 <FLWORIterator>76 </FLWORIterator>
63 <ForVariable name="book">77 </EnclosedIterator>
64 <ProbeIndexPointValueIterator>78 </ElementIterator>
65 <SingletonIterator value="xs:QName(,,tempIndex0)"/>79</iterator-tree>
66 <ForVarIterator varname="anzahl"/>
67 </ProbeIndexPointValueIterator>
68 </ForVariable>
69 <ReturnClause>
70 <ForVarIterator varname="book"/>
71 </ReturnClause>
72 </FLWORIterator>
73 </EnclosedIterator>
74 </ElementIterator>
75 </ReturnClause>
76 </FLWORIterator>
77 </EnclosedIterator>
78</ElementIterator>
79
8080
=== modified file 'test/iterplans/zorba/hashjoins/9389.iter'
--- test/iterplans/zorba/hashjoins/9389.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9389.iter 2014-02-24 20:09:23 +0000
@@ -1,66 +1,66 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <FLWORIterator>5 <FLWORIterator>
6 <LetVariable name="$$opt_temp_0" materialize="true">6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <HoistIterator>7 <HoistIterator>
8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 <FnDocIterator>9 <FnDocIterator>
10 <SingletonIterator value="xs:string(books.xml)"/>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </FnDocIterator>11 </FnDocIterator>
12 </DescendantAxisIterator>12 </DescendantAxisIterator>
13 </HoistIterator>13 </HoistIterator>
14 </LetVariable>14 </LetVariable>
15 <LetVariable name="$$opt_temp_3" materialize="true">15 <LetVariable name="$$opt_temp_3" materialize="true">
16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <FLWORIterator>17 <FLWORIterator>
18 <ForVariable name="$$opt_temp_1">18 <ForVariable name="$$opt_temp_1">
19 <UnhoistIterator>19 <UnhoistIterator>
20 <LetVarIterator varname="$$opt_temp_0"/>20 <LetVarIterator varname="$$opt_temp_0"/>
21 </UnhoistIterator>21 </UnhoistIterator>
22 </ForVariable>22 </ForVariable>
23 <ReturnClause>23 <ReturnClause>
24 <ValueIndexEntryBuilderIterator>24 <ValueIndexEntryBuilderIterator>
25 <ForVarIterator varname="$$opt_temp_1"/>25 <ForVarIterator varname="$$opt_temp_1"/>
26 <FnCountIterator>26 <FnCountIterator>
27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
28 <ForVarIterator varname="$$opt_temp_1"/>28 <ForVarIterator varname="$$opt_temp_1"/>
29 </ChildAxisIterator>29 </ChildAxisIterator>
30 </FnCountIterator>30 </FnCountIterator>
31 </ValueIndexEntryBuilderIterator>31 </ValueIndexEntryBuilderIterator>
32 </ReturnClause>32 </ReturnClause>
33 </FLWORIterator>33 </FLWORIterator>
34 </CreateInternalIndexIterator>34 </CreateInternalIndexIterator>
35 </LetVariable>35 </LetVariable>
36 <ForVariable name="anzahl">36 <ForVariable name="anzahl">
37 <OpToIterator>37 <OpToIterator>
38 <SingletonIterator value="xs:integer(1)"/>38 <SingletonIterator value="xs:integer(1)"/>
39 <SingletonIterator value="xs:integer(5)"/>39 <SingletonIterator value="xs:integer(5)"/>
40 </OpToIterator>40 </OpToIterator>
41 </ForVariable>41 </ForVariable>
42 <ReturnClause>42 <ReturnClause>
43 <ElementIterator>43 <ElementIterator>
44 <SingletonIterator value="xs:QName(,,gruppe)"/>44 <SingletonIterator value="xs:QName(,,gruppe)"/>
45 <AttributeIterator qname="xs:QName(,,anzahl)">45 <AttributeIterator qname="xs:QName(,,anzahl)">
46 <EnclosedIterator attr_cont="true">46 <EnclosedIterator attr_cont="true">
47 <FLWORIterator>47 <FLWORIterator>
48 <ForVariable name="karte">48 <ForVariable name="karte">
49 <ProbeIndexPointValueIterator>49 <ProbeIndexPointValueIterator>
50 <SingletonIterator value="xs:QName(,,tempIndex0)"/>50 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
51 <ForVarIterator varname="anzahl"/>
52 </ProbeIndexPointValueIterator>
53 </ForVariable>
54 <ReturnClause>
51 <ForVarIterator varname="anzahl"/>55 <ForVarIterator varname="anzahl"/>
52 </ProbeIndexPointValueIterator>56 </ReturnClause>
53 </ForVariable>57 </FLWORIterator>
54 <ReturnClause>58 </EnclosedIterator>
55 <ForVarIterator varname="anzahl"/>59 </AttributeIterator>
56 </ReturnClause>60 <FnConcatIterator/>
57 </FLWORIterator>61 </ElementIterator>
58 </EnclosedIterator>62 </ReturnClause>
59 </AttributeIterator>63 </FLWORIterator>
60 <FnConcatIterator/>64 </EnclosedIterator>
61 </ElementIterator>65 </ElementIterator>
62 </ReturnClause>66</iterator-tree>
63 </FLWORIterator>
64 </EnclosedIterator>
65</ElementIterator>
66
6767
=== modified file 'test/iterplans/zorba/hashjoins/9390.iter'
--- test/iterplans/zorba/hashjoins/9390.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9390.iter 2014-02-24 20:09:23 +0000
@@ -1,66 +1,66 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<FLWORIterator>2 <FLWORIterator>
3 <LetVariable name="$$opt_temp_0" materialize="true">3 <LetVariable name="$$opt_temp_0" materialize="true">
4 <HoistIterator>4 <HoistIterator>
5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">5 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
6 <FnDocIterator>6 <FnDocIterator>
7 <SingletonIterator value="xs:string(books.xml)"/>7 <SingletonIterator value="xs:string(books.xml)"/>
8 </FnDocIterator>8 </FnDocIterator>
9 </DescendantAxisIterator>9 </DescendantAxisIterator>
10 </HoistIterator>10 </HoistIterator>
11 </LetVariable>11 </LetVariable>
12 <LetVariable name="$$opt_temp_3" materialize="true">12 <LetVariable name="$$opt_temp_3" materialize="true">
13 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">13 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
14 <FLWORIterator>14 <FLWORIterator>
15 <ForVariable name="$$opt_temp_1">15 <ForVariable name="$$opt_temp_1">
16 <UnhoistIterator>16 <UnhoistIterator>
17 <LetVarIterator varname="$$opt_temp_0"/>17 <LetVarIterator varname="$$opt_temp_0"/>
18 </UnhoistIterator>18 </UnhoistIterator>
19 </ForVariable>19 </ForVariable>
20 <ReturnClause>20 <ReturnClause>
21 <ValueIndexEntryBuilderIterator>21 <ValueIndexEntryBuilderIterator>
22 <ForVarIterator varname="$$opt_temp_1"/>22 <ForVarIterator varname="$$opt_temp_1"/>
23 <FnCountIterator>23 <FnCountIterator>
24 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">24 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
25 <ForVarIterator varname="$$opt_temp_1"/>25 <ForVarIterator varname="$$opt_temp_1"/>
26 </ChildAxisIterator>26 </ChildAxisIterator>
27 </FnCountIterator>27 </FnCountIterator>
28 </ValueIndexEntryBuilderIterator>28 </ValueIndexEntryBuilderIterator>
29 </ReturnClause>29 </ReturnClause>
30 </FLWORIterator>30 </FLWORIterator>
31 </CreateInternalIndexIterator>31 </CreateInternalIndexIterator>
32 </LetVariable>32 </LetVariable>
33 <ForVariable name="anzahl">33 <ForVariable name="anzahl">
34 <OpToIterator>34 <OpToIterator>
35 <SingletonIterator value="xs:integer(1)"/>35 <SingletonIterator value="xs:integer(1)"/>
36 <SingletonIterator value="xs:integer(5)"/>36 <SingletonIterator value="xs:integer(5)"/>
37 </OpToIterator>37 </OpToIterator>
38 </ForVariable>38 </ForVariable>
39 <ReturnClause>39 <ReturnClause>
40 <ElementIterator>40 <ElementIterator>
41 <SingletonIterator value="xs:QName(,,karteikasten)"/>41 <SingletonIterator value="xs:QName(,,karteikasten)"/>
42 <EnclosedIterator attr_cont="false">42 <EnclosedIterator attr_cont="false">
43 <ElementIterator>43 <ElementIterator>
44 <SingletonIterator value="xs:QName(,,gruppe)"/>44 <SingletonIterator value="xs:QName(,,gruppe)"/>
45 <AttributeIterator qname="xs:QName(,,anzahl)">45 <AttributeIterator qname="xs:QName(,,anzahl)">
46 <EnclosedIterator attr_cont="true">46 <EnclosedIterator attr_cont="true">
47 <FLWORIterator>47 <FLWORIterator>
48 <ForVariable name="karte">48 <ForVariable name="karte">
49 <ProbeIndexPointValueIterator>49 <ProbeIndexPointValueIterator>
50 <SingletonIterator value="xs:QName(,,tempIndex0)"/>50 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
51 <ForVarIterator varname="anzahl"/>
52 </ProbeIndexPointValueIterator>
53 </ForVariable>
54 <ReturnClause>
51 <ForVarIterator varname="anzahl"/>55 <ForVarIterator varname="anzahl"/>
52 </ProbeIndexPointValueIterator>56 </ReturnClause>
53 </ForVariable>57 </FLWORIterator>
54 <ReturnClause>58 </EnclosedIterator>
55 <ForVarIterator varname="anzahl"/>59 </AttributeIterator>
56 </ReturnClause>60 <FnConcatIterator/>
57 </FLWORIterator>61 </ElementIterator>
58 </EnclosedIterator>62 </EnclosedIterator>
59 </AttributeIterator>63 </ElementIterator>
60 <FnConcatIterator/>64 </ReturnClause>
61 </ElementIterator>65 </FLWORIterator>
62 </EnclosedIterator>66</iterator-tree>
63 </ElementIterator>
64 </ReturnClause>
65</FLWORIterator>
66
6767
=== modified file 'test/iterplans/zorba/hashjoins/9391.iter'
--- test/iterplans/zorba/hashjoins/9391.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9391.iter 2014-02-24 20:09:23 +0000
@@ -1,71 +1,71 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <FLWORIterator>5 <FLWORIterator>
6 <LetVariable name="$$opt_temp_0" materialize="true">6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <HoistIterator>7 <HoistIterator>
8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 <FnDocIterator>9 <FnDocIterator>
10 <SingletonIterator value="xs:string(books.xml)"/>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </FnDocIterator>11 </FnDocIterator>
12 </DescendantAxisIterator>12 </DescendantAxisIterator>
13 </HoistIterator>13 </HoistIterator>
14 </LetVariable>14 </LetVariable>
15 <LetVariable name="$$opt_temp_3" materialize="true">15 <LetVariable name="$$opt_temp_3" materialize="true">
16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <FLWORIterator>17 <FLWORIterator>
18 <ForVariable name="$$opt_temp_1">18 <ForVariable name="$$opt_temp_1">
19 <UnhoistIterator>19 <UnhoistIterator>
20 <LetVarIterator varname="$$opt_temp_0"/>20 <LetVarIterator varname="$$opt_temp_0"/>
21 </UnhoistIterator>21 </UnhoistIterator>
22 </ForVariable>22 </ForVariable>
23 <ReturnClause>23 <ReturnClause>
24 <ValueIndexEntryBuilderIterator>24 <ValueIndexEntryBuilderIterator>
25 <ForVarIterator varname="$$opt_temp_1"/>25 <ForVarIterator varname="$$opt_temp_1"/>
26 <FnCountIterator>26 <FnCountIterator>
27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
28 <ForVarIterator varname="$$opt_temp_1"/>28 <ForVarIterator varname="$$opt_temp_1"/>
29 </ChildAxisIterator>29 </ChildAxisIterator>
30 </FnCountIterator>30 </FnCountIterator>
31 </ValueIndexEntryBuilderIterator>31 </ValueIndexEntryBuilderIterator>
32 </ReturnClause>32 </ReturnClause>
33 </FLWORIterator>33 </FLWORIterator>
34 </CreateInternalIndexIterator>34 </CreateInternalIndexIterator>
35 </LetVariable>35 </LetVariable>
36 <ForVariable name="anzahl">36 <ForVariable name="anzahl">
37 <OpToIterator>37 <OpToIterator>
38 <SingletonIterator value="xs:integer(1)"/>38 <SingletonIterator value="xs:integer(1)"/>
39 <SingletonIterator value="xs:integer(2)"/>39 <SingletonIterator value="xs:integer(2)"/>
40 </OpToIterator>40 </OpToIterator>
41 </ForVariable>41 </ForVariable>
42 <ReturnClause>42 <ReturnClause>
43 <ElementIterator>43 <ElementIterator>
44 <SingletonIterator value="xs:QName(,,gruppe)"/>44 <SingletonIterator value="xs:QName(,,gruppe)"/>
45 <AttributeIterator qname="xs:QName(,,anzahl)">45 <AttributeIterator qname="xs:QName(,,anzahl)">
46 <FnDataIterator>46 <FnDataIterator>
47 <FnConcatIterator>47 <FnConcatIterator>
48 <SingletonIterator value="xs:string( )"/>48 <SingletonIterator value="xs:string( )"/>
49 <EnclosedIterator attr_cont="true">49 <EnclosedIterator attr_cont="true">
50 <FLWORIterator>50 <FLWORIterator>
51 <ForVariable name="karte">51 <ForVariable name="karte">
52 <ProbeIndexPointValueIterator>52 <ProbeIndexPointValueIterator>
53 <SingletonIterator value="xs:QName(,,tempIndex0)"/>53 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
54 <ForVarIterator varname="anzahl"/>
55 </ProbeIndexPointValueIterator>
56 </ForVariable>
57 <ReturnClause>
54 <ForVarIterator varname="anzahl"/>58 <ForVarIterator varname="anzahl"/>
55 </ProbeIndexPointValueIterator>59 </ReturnClause>
56 </ForVariable>60 </FLWORIterator>
57 <ReturnClause>61 </EnclosedIterator>
58 <ForVarIterator varname="anzahl"/>62 </FnConcatIterator>
59 </ReturnClause>63 </FnDataIterator>
60 </FLWORIterator>64 </AttributeIterator>
61 </EnclosedIterator>65 <FnConcatIterator/>
62 </FnConcatIterator>66 </ElementIterator>
63 </FnDataIterator>67 </ReturnClause>
64 </AttributeIterator>68 </FLWORIterator>
65 <FnConcatIterator/>69 </EnclosedIterator>
66 </ElementIterator>70 </ElementIterator>
67 </ReturnClause>71</iterator-tree>
68 </FLWORIterator>
69 </EnclosedIterator>
70</ElementIterator>
71
7272
=== modified file 'test/iterplans/zorba/hashjoins/9392.iter'
--- test/iterplans/zorba/hashjoins/9392.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9392.iter 2014-02-24 20:09:23 +0000
@@ -1,67 +1,67 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <ElementIterator>5 <ElementIterator>
6 <SingletonIterator value="xs:QName(,,gruppe)"/>6 <SingletonIterator value="xs:QName(,,gruppe)"/>
7 <AttributeIterator qname="xs:QName(,,anzahl)">7 <AttributeIterator qname="xs:QName(,,anzahl)">
8 <FnDataIterator>8 <FnDataIterator>
9 <FnConcatIterator>9 <FnConcatIterator>
10 <SingletonIterator value="xs:string( )"/>10 <SingletonIterator value="xs:string( )"/>
11 <EnclosedIterator attr_cont="true">11 <EnclosedIterator attr_cont="true">
12 <FLWORIterator>12 <FLWORIterator>
13 <LetVariable name="$$opt_temp_0" materialize="true">13 <LetVariable name="$$opt_temp_0" materialize="true">
14 <HoistIterator>14 <HoistIterator>
15 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">15 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
16 <FnDocIterator>16 <FnDocIterator>
17 <SingletonIterator value="xs:string(books.xml)"/>17 <SingletonIterator value="xs:string(books.xml)"/>
18 </FnDocIterator>18 </FnDocIterator>
19 </DescendantAxisIterator>19 </DescendantAxisIterator>
20 </HoistIterator>20 </HoistIterator>
21 </LetVariable>21 </LetVariable>
22 <LetVariable name="$$opt_temp_3" materialize="true">22 <LetVariable name="$$opt_temp_3" materialize="true">
23 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">23 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
24 <FLWORIterator>24 <FLWORIterator>
25 <ForVariable name="$$opt_temp_1">25 <ForVariable name="$$opt_temp_1">
26 <UnhoistIterator>26 <UnhoistIterator>
27 <LetVarIterator varname="$$opt_temp_0"/>27 <LetVarIterator varname="$$opt_temp_0"/>
28 </UnhoistIterator>28 </UnhoistIterator>
29 </ForVariable>29 </ForVariable>
30 <ReturnClause>30 <ReturnClause>
31 <ValueIndexEntryBuilderIterator>31 <ValueIndexEntryBuilderIterator>
32 <ForVarIterator varname="$$opt_temp_1"/>32 <ForVarIterator varname="$$opt_temp_1"/>
33 <FnCountIterator>33 <FnCountIterator>
34 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">34 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
35 <ForVarIterator varname="$$opt_temp_1"/>35 <ForVarIterator varname="$$opt_temp_1"/>
36 </ChildAxisIterator>36 </ChildAxisIterator>
37 </FnCountIterator>37 </FnCountIterator>
38 </ValueIndexEntryBuilderIterator>38 </ValueIndexEntryBuilderIterator>
39 </ReturnClause>39 </ReturnClause>
40 </FLWORIterator>40 </FLWORIterator>
41 </CreateInternalIndexIterator>41 </CreateInternalIndexIterator>
42 </LetVariable>42 </LetVariable>
43 <ForVariable name="anzahl">43 <ForVariable name="anzahl">
44 <OpToIterator>44 <OpToIterator>
45 <SingletonIterator value="xs:integer(1)"/>45 <SingletonIterator value="xs:integer(1)"/>
46 <SingletonIterator value="xs:integer(2)"/>46 <SingletonIterator value="xs:integer(2)"/>
47 </OpToIterator>47 </OpToIterator>
48 </ForVariable>48 </ForVariable>
49 <ForVariable name="karte">49 <ForVariable name="karte">
50 <ProbeIndexPointValueIterator>50 <ProbeIndexPointValueIterator>
51 <SingletonIterator value="xs:QName(,,tempIndex0)"/>51 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
52 <ForVarIterator varname="anzahl"/>
53 </ProbeIndexPointValueIterator>
54 </ForVariable>
55 <ReturnClause>
52 <ForVarIterator varname="anzahl"/>56 <ForVarIterator varname="anzahl"/>
53 </ProbeIndexPointValueIterator>57 </ReturnClause>
54 </ForVariable>58 </FLWORIterator>
55 <ReturnClause>59 </EnclosedIterator>
56 <ForVarIterator varname="anzahl"/>60 </FnConcatIterator>
57 </ReturnClause>61 </FnDataIterator>
58 </FLWORIterator>62 </AttributeIterator>
59 </EnclosedIterator>63 <FnConcatIterator/>
60 </FnConcatIterator>64 </ElementIterator>
61 </FnDataIterator>65 </EnclosedIterator>
62 </AttributeIterator>66 </ElementIterator>
63 <FnConcatIterator/>67</iterator-tree>
64 </ElementIterator>
65 </EnclosedIterator>
66</ElementIterator>
67
6868
=== modified file 'test/iterplans/zorba/hashjoins/9399.iter'
--- test/iterplans/zorba/hashjoins/9399.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9399.iter 2014-02-24 20:09:23 +0000
@@ -1,65 +1,65 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <FLWORIterator>5 <FLWORIterator>
6 <LetVariable name="$$opt_temp_0" materialize="true">6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <HoistIterator>7 <HoistIterator>
8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 <FnDocIterator>9 <FnDocIterator>
10 <SingletonIterator value="xs:string(books.xml)"/>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </FnDocIterator>11 </FnDocIterator>
12 </DescendantAxisIterator>12 </DescendantAxisIterator>
13 </HoistIterator>13 </HoistIterator>
14 </LetVariable>14 </LetVariable>
15 <LetVariable name="$$opt_temp_3" materialize="true">15 <LetVariable name="$$opt_temp_3" materialize="true">
16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <FLWORIterator>17 <FLWORIterator>
18 <ForVariable name="$$opt_temp_1">18 <ForVariable name="$$opt_temp_1">
19 <UnhoistIterator>19 <UnhoistIterator>
20 <LetVarIterator varname="$$opt_temp_0"/>20 <LetVarIterator varname="$$opt_temp_0"/>
21 </UnhoistIterator>21 </UnhoistIterator>
22 </ForVariable>22 </ForVariable>
23 <ReturnClause>23 <ReturnClause>
24 <ValueIndexEntryBuilderIterator>24 <ValueIndexEntryBuilderIterator>
25 <ForVarIterator varname="$$opt_temp_1"/>25 <ForVarIterator varname="$$opt_temp_1"/>
26 <FnCountIterator>26 <FnCountIterator>
27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
28 <ForVarIterator varname="$$opt_temp_1"/>28 <ForVarIterator varname="$$opt_temp_1"/>
29 </ChildAxisIterator>29 </ChildAxisIterator>
30 </FnCountIterator>30 </FnCountIterator>
31 </ValueIndexEntryBuilderIterator>31 </ValueIndexEntryBuilderIterator>
32 </ReturnClause>32 </ReturnClause>
33 </FLWORIterator>33 </FLWORIterator>
34 </CreateInternalIndexIterator>34 </CreateInternalIndexIterator>
35 </LetVariable>35 </LetVariable>
36 <ForVariable name="anzahl">36 <ForVariable name="anzahl">
37 <OpToIterator>37 <OpToIterator>
38 <SingletonIterator value="xs:integer(1)"/>38 <SingletonIterator value="xs:integer(1)"/>
39 <SingletonIterator value="xs:integer(2)"/>39 <SingletonIterator value="xs:integer(2)"/>
40 </OpToIterator>40 </OpToIterator>
41 </ForVariable>41 </ForVariable>
42 <ReturnClause>42 <ReturnClause>
43 <ElementIterator>43 <ElementIterator>
44 <SingletonIterator value="xs:QName(,,gruppe)"/>44 <SingletonIterator value="xs:QName(,,gruppe)"/>
45 <AttributeIterator qname="xs:QName(,,anzahl)">45 <AttributeIterator qname="xs:QName(,,anzahl)">
46 <EnclosedIterator attr_cont="true">46 <EnclosedIterator attr_cont="true">
47 <FLWORIterator>47 <FLWORIterator>
48 <ForVariable name="a">48 <ForVariable name="a">
49 <ProbeIndexPointValueIterator>49 <ProbeIndexPointValueIterator>
50 <SingletonIterator value="xs:QName(,,tempIndex0)"/>50 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
51 <ForVarIterator varname="anzahl"/>
52 </ProbeIndexPointValueIterator>
53 </ForVariable>
54 <ReturnClause>
51 <ForVarIterator varname="anzahl"/>55 <ForVarIterator varname="anzahl"/>
52 </ProbeIndexPointValueIterator>56 </ReturnClause>
53 </ForVariable>57 </FLWORIterator>
54 <ReturnClause>58 </EnclosedIterator>
55 <ForVarIterator varname="anzahl"/>59 </AttributeIterator>
56 </ReturnClause>60 </ElementIterator>
57 </FLWORIterator>61 </ReturnClause>
58 </EnclosedIterator>62 </FLWORIterator>
59 </AttributeIterator>63 </EnclosedIterator>
60 </ElementIterator>64 </ElementIterator>
61 </ReturnClause>65</iterator-tree>
62 </FLWORIterator>
63 </EnclosedIterator>
64</ElementIterator>
65
6666
=== modified file 'test/iterplans/zorba/hashjoins/9400.iter'
--- test/iterplans/zorba/hashjoins/9400.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/9400.iter 2014-02-24 20:09:23 +0000
@@ -1,66 +1,66 @@
1Iterator tree for main query:1<iterator-tree description="main query">
2<ElementIterator>2 <ElementIterator>
3 <SingletonIterator value="xs:QName(,,karteikasten)"/>3 <SingletonIterator value="xs:QName(,,karteikasten)"/>
4 <EnclosedIterator attr_cont="false">4 <EnclosedIterator attr_cont="false">
5 <FLWORIterator>5 <FLWORIterator>
6 <LetVariable name="$$opt_temp_0" materialize="true">6 <LetVariable name="$$opt_temp_0" materialize="true">
7 <HoistIterator>7 <HoistIterator>
8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">8 <DescendantAxisIterator test kind="match_name_test" qname="xs:QName(,,book)" typename="*" nill allowed="0">
9 <FnDocIterator>9 <FnDocIterator>
10 <SingletonIterator value="xs:string(books.xml)"/>10 <SingletonIterator value="xs:string(books.xml)"/>
11 </FnDocIterator>11 </FnDocIterator>
12 </DescendantAxisIterator>12 </DescendantAxisIterator>
13 </HoistIterator>13 </HoistIterator>
14 </LetVariable>14 </LetVariable>
15 <LetVariable name="$$opt_temp_3" materialize="true">15 <LetVariable name="$$opt_temp_3" materialize="true">
16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">16 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
17 <FLWORIterator>
18 <ForVariable name="$$opt_temp_1">
19 <UnhoistIterator>
20 <LetVarIterator varname="$$opt_temp_0"/>
21 </UnhoistIterator>
22 </ForVariable>
23 <ReturnClause>
24 <ValueIndexEntryBuilderIterator>
25 <ForVarIterator varname="$$opt_temp_1"/>
26 <FnCountIterator>
27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
28 <ForVarIterator varname="$$opt_temp_1"/>
29 </ChildAxisIterator>
30 </FnCountIterator>
31 </ValueIndexEntryBuilderIterator>
32 </ReturnClause>
33 </FLWORIterator>
34 </CreateInternalIndexIterator>
35 </LetVariable>
36 <ForVariable name="anzahl">
37 <OpToIterator>
38 <SingletonIterator value="xs:integer(1)"/>
39 <SingletonIterator value="xs:integer(2)"/>
40 </OpToIterator>
41 </ForVariable>
42 <ReturnClause>
43 <ElementIterator>
44 <SingletonIterator value="xs:QName(,,gruppe)"/>
45 <AttributeIterator qname="xs:QName(,,anzahl)">
46 <EmptyIterator/>
47 </AttributeIterator>
48 <EnclosedIterator attr_cont="false">
49 <FLWORIterator>17 <FLWORIterator>
50 <ForVariable name="a">18 <ForVariable name="$$opt_temp_1">
51 <ProbeIndexPointValueIterator>19 <UnhoistIterator>
52 <SingletonIterator value="xs:QName(,,tempIndex0)"/>20 <LetVarIterator varname="$$opt_temp_0"/>
53 <ForVarIterator varname="anzahl"/>21 </UnhoistIterator>
54 </ProbeIndexPointValueIterator>
55 </ForVariable>22 </ForVariable>
56 <ReturnClause>23 <ReturnClause>
57 <ForVarIterator varname="a"/>24 <ValueIndexEntryBuilderIterator>
25 <ForVarIterator varname="$$opt_temp_1"/>
26 <FnCountIterator>
27 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,author)" typename="*" nill allowed="0">
28 <ForVarIterator varname="$$opt_temp_1"/>
29 </ChildAxisIterator>
30 </FnCountIterator>
31 </ValueIndexEntryBuilderIterator>
58 </ReturnClause>32 </ReturnClause>
59 </FLWORIterator>33 </FLWORIterator>
60 </EnclosedIterator>34 </CreateInternalIndexIterator>
61 </ElementIterator>35 </LetVariable>
62 </ReturnClause>36 <ForVariable name="anzahl">
63 </FLWORIterator>37 <OpToIterator>
64 </EnclosedIterator>38 <SingletonIterator value="xs:integer(1)"/>
65</ElementIterator>39 <SingletonIterator value="xs:integer(2)"/>
6640 </OpToIterator>
41 </ForVariable>
42 <ReturnClause>
43 <ElementIterator>
44 <SingletonIterator value="xs:QName(,,gruppe)"/>
45 <AttributeIterator qname="xs:QName(,,anzahl)">
46 <EmptyIterator/>
47 </AttributeIterator>
48 <EnclosedIterator attr_cont="false">
49 <FLWORIterator>
50 <ForVariable name="a">
51 <ProbeIndexPointValueIterator>
52 <SingletonIterator value="xs:QName(,,tempIndex0)"/>
53 <ForVarIterator varname="anzahl"/>
54 </ProbeIndexPointValueIterator>
55 </ForVariable>
56 <ReturnClause>
57 <ForVarIterator varname="a"/>
58 </ReturnClause>
59 </FLWORIterator>
60 </EnclosedIterator>
61 </ElementIterator>
62 </ReturnClause>
63 </FLWORIterator>
64 </EnclosedIterator>
65 </ElementIterator>
66</iterator-tree>
6767
=== modified file 'test/iterplans/zorba/hashjoins/gary1.iter'
--- test/iterplans/zorba/hashjoins/gary1.iter 2014-02-19 01:28:17 +0000
+++ test/iterplans/zorba/hashjoins/gary1.iter 2014-02-24 20:09:23 +0000
@@ -1,217 +1,217 @@
1Iterator tree for const-folded expr:1<iterator-tree description="const-folded expr">
2<OrIterator>2 <OrIterator>
3 <SingletonIterator value="xs:boolean(false)"/>3 <SingletonIterator value="xs:boolean(false)"/>
4 <SingletonIterator value="xs:boolean(false)"/>4 <SingletonIterator value="xs:boolean(false)"/>
5 <SingletonIterator value="xs:boolean(false)"/>5 <SingletonIterator value="xs:boolean(false)"/>
6</OrIterator>6 </OrIterator>
77</iterator-tree>
8Iterator tree for const-folded expr:8<iterator-tree description="const-folded expr">
9<OrIterator>9 <OrIterator>
10 <SingletonIterator value="xs:boolean(false)"/>10 <SingletonIterator value="xs:boolean(false)"/>
11 <SingletonIterator value="xs:boolean(false)"/>11 <SingletonIterator value="xs:boolean(false)"/>
12 <SingletonIterator value="xs:boolean(false)"/>12 <SingletonIterator value="xs:boolean(false)"/>
13</OrIterator>13 </OrIterator>
1414</iterator-tree>
15Iterator tree for const-folded expr:15<iterator-tree description="const-folded expr">
16<OrIterator>16 <OrIterator>
17 <SingletonIterator value="xs:boolean(false)"/>17 <SingletonIterator value="xs:boolean(false)"/>
18 <SingletonIterator value="xs:boolean(false)"/>18 <SingletonIterator value="xs:boolean(false)"/>
19 <SingletonIterator value="xs:boolean(false)"/>19 <SingletonIterator value="xs:boolean(false)"/>
20</OrIterator>20 </OrIterator>
2121</iterator-tree>
22Iterator tree for main query:22<iterator-tree description="main query">
23<ElementIterator>23 <ElementIterator>
24 <SingletonIterator value="xs:QName(,,institutions)"/>24 <SingletonIterator value="xs:QName(,,institutions)"/>
25 <EnclosedIterator attr_cont="false">25 <EnclosedIterator attr_cont="false">
26 <FLWORIterator>26 <FLWORIterator>
27 <LetVariable name="y" materialize="true">27 <LetVariable name="y" materialize="true">
28 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,data)" typename="*" nill allowed="0">28 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,data)" typename="*" nill allowed="0">
29 <TupleStreamIterator>29 <TupleStreamIterator>
30 <WhereIterator>
31 <WhereIterator>30 <WhereIterator>
32 <ForIterator>31 <WhereIterator>
33 <ForVariable name="$$context-item"/>
34 <ForIterator>32 <ForIterator>
35 <ForVariable name="$$context-item"/>33 <ForVariable name="$$context-item"/>
36 <TupleSourceIterator/>34 <ForIterator>
37 <FnDocIterator>35 <ForVariable name="$$context-item"/>
38 <SingletonIterator value="xs:string(min_ic1980.xml)"/>36 <TupleSourceIterator/>
39 </FnDocIterator>37 <FnDocIterator>
38 <SingletonIterator value="xs:string(min_ic1980.xml)"/>
39 </FnDocIterator>
40 </ForIterator>
41 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,ipeds)" typename="*" nill allowed="0">
42 <ForVarIterator varname="$$context-item"/>
43 </ChildAxisIterator>
40 </ForIterator>44 </ForIterator>
41 <ChildAxisIterator test kind="match_name_test" qname="xs:QName(,,ipeds)" typename="*" nill allowed="0">45 <CompareIterator>
42 <ForVarIterator varname="$$context-item"/>46 <FnDataIterator>
43 </ChildAxisIterator>47 <AttributeAxisIterator test kind="match_name_test" qname="xs:QName(,,year)" typename="*" nill allowed="0">
44 </ForIterator>48 <ForVarIterator varname="$$context-item"/>
49 </AttributeAxisIterator>
50 </FnDataIterator>
51 <SingletonIterator value="xs:integer(1980)"/>
52 </CompareIterator>
53 </WhereIterator>
45 <CompareIterator>54 <CompareIterator>
46 <FnDataIterator>55 <FnDataIterator>
47 <AttributeAxisIterator test kind="match_name_test" qname="xs:QName(,,year)" typename="*" nill allowed="0">56 <AttributeAxisIterator test kind="match_name_test" qname="xs:QName(,,file)" typename="*" nill allowed="0">
48 <ForVarIterator varname="$$context-item"/>57 <ForVarIterator varname="$$context-item"/>
49 </AttributeAxisIterator>58 </AttributeAxisIterator>
50 </FnDataIterator>59 </FnDataIterator>
51 <SingletonIterator value="xs:integer(1980)"/>60 <SingletonIterator value="xs:string(ic1980)"/>
52 </CompareIterator>61 </CompareIterator>
53 </WhereIterator>62 </WhereIterator>
54 <CompareIterator>
55 <FnDataIterator>
56 <AttributeAxisIterator test kind="match_name_test" qname="xs:QName(,,file)" typename="*" nill allowed="0">
57 <ForVarIterator varname="$$context-item"/>
58 </AttributeAxisIterator>
59 </FnDataIterator>
60 <SingletonIterator value="xs:string(ic1980)"/>
61 </CompareIterator>
62 </WhereIterator>
63 <ForVarIterator varname="$$context-item"/>
64 </TupleStreamIterator>
65 </ChildAxisIterator>
66 </LetVariable>
67 <LetVariable name="$$opt_temp_4" materialize="true">
68 <CreateInternalIndexIterator name="xs:QName(,,tempIndex0)">
69 <FLWORIterator>
70 <ForVariable name="$$opt_temp_2">
71 <LetVarIterator varname="y"/>
72 </ForVariable>
73 <ReturnClause>
74 <GeneralIndexEntryBuilderIterator>
75 <ForVarIterator varname="$$opt_temp_2"/>
76 <FnDataIterator>
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches