Update of /cvsroot/monetdb/pathfinder/compiler/mil
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv9564/compiler/mil
Modified Files:
milprint_summer.c
Log Message:
fixing part 2 of
[ 1771532 ] MIL-optimizer fails sometimes for big queries
http://sourceforge.net/tracker/index.php?func=detail&aid=1771532&group_id=56967&atid=482468
With MIL code optimization (mil_opt.[hc]) disabled (`pf -O0`)
not only the query attached to BUG report #1771532,
but also 9 more tests
tests/BugTracker/Tests/complex-XQuery-batbat_lng_add_inplace-error-OK.SF-1562868.xq
tests/BugTracker/Tests/complex-XQuery-batbat_lng_add_inplace-error-KO.SF-1562868.xq
tests/BugTracker/Tests/complex-XQuery-batbat_lng_add_inplace-error-KO2.SF-1562868.xq
tests/BugTracker/Tests/posjoin_null_BAT_2nd_run.SF-1678948.xq
tests/BugsViaSourgeforce/Tests/ID.1652527.xq
tests/W3C_use_cases/XQ/R/Tests/Q12.xq
tests/W3C_use_cases/XQ/R/Tests/Q12x.xq
tests/W3C_use_cases/XQ/STRING/Tests/Q2.xq
tests/XQuery/Tests/orderby2.xq
failed with the reported "append" error message.
The reason was (IMHO) that used-defined functions did not return the "pos";
making used-defined functions return the "pos" seems to solve the problem
without causing any other harm.
Test will follow, once I manage to create one that does not require probxml.
Index: milprint_summer.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint_summer.c,v
retrieving revision 1.402
retrieving revision 1.403
diff -u -d -r1.402 -r1.403
--- milprint_summer.c 3 Aug 2007 22:56:45 -0000 1.402
+++ milprint_summer.c 10 Aug 2007 15:27:55 -0000 1.403
@@ -9255,7 +9255,7 @@
/* we could have multiple different calls */
translate2MIL (f, NORMAL, 0, counter, R(c));
milprintf(f,
- "return
bat(void,bat,4).append(iter).append(item).append(kind).access(BAT_READ);\n"
+ "return
bat(void,bat,4).append(iter).append(item).append(kind).append(pos).access(BAT_READ);\n"
"} # end of PROC %s\n",
c->sem.fun->sig);
opt_flush(f, 0);
@@ -11638,6 +11638,7 @@
" iter := proc_res.fetch(0);\n"
" item := proc_res.fetch(1);\n"
" kind := proc_res.fetch(2);\n"
+ " pos := proc_res.fetch(3);\n"
" if (type(iter) = bat) {\n"
" ipik := iter;\n"
" } else {\n"
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins