Update of /cvsroot/monetdb/pathfinder/runtime
In directory sc8-pr-cvs16:/tmp/cvs-serv5774/runtime
Modified Files:
pathfinder.mx
Log Message:
fixing bugs that have sneaked in with the intorduction of valu indexing about
two weeks ago:
- in PROC __runtime_index():
avoid some (apparently) non-necessary access(BAT_APPEND) & access(BAT_WRITE)
that forces heads of [void,void] BATs to be materialized,
which then did not fit the signature of PROC vx_reduce() any more.
- in PROC vx_reduce():
in case of [void,void] BATs, access(BAT_WRITE) materializes the head,
which the inplace() later on does not like;
adding a copy() that materializes the tail seems to help ...
these changes fix the follwoing tests:
benchmarks/XMark/XRpc/q01.xq
runtime/load_db_1.milS
runtime/descendant.milS
runtime/descendant-or-self.milS
runtime/ancestor.milS
runtime/ancestor-or-self.milS
runtime/child.milS
runtime/parent.milS
runtime/following.milS
runtime/preceding.milS
runtime/following-sibling.milS
runtime/preceding-sibling.milS
runtime/serialization.milS
runtime/escaped-string.milS
tests/BugTracker/conflict_normal_xrpc_queries_nx.SF-1644610.xq
tests/BugTracker/conflict_normal_xrpc_queries_xn.SF-1644610.xq
tests/XQuery/import_doc.milS
tests/XQuery/element3.xq
tests/XQuery/element4.xq
tests/XQuery/element5.xq
tests/XQuery/element6.xq
tests/XQuery/element9.xq
tests/XQuery/attr_err.xq
tests/XQuery/attr_err2.xq
tests/XQuery/attr_err3.xq
tests/XQuery/if1.xq
tests/XQuery/if5.xq
tests/XQuery/if6.xq
tests/XQuery/if7.xq
tests/XQuery/is-before1.xq
tests/XQuery/is-before2.xq
tests/XQuery/is-before3.xq
tests/XQuery/is-before4.xq
tests/XQuery/is.xq
tests/XQuery/is-after.xq
tests/XQuery/last1.xq
tests/XQuery/last2.xq
tests/XQuery/doc.xq
tests/XQuery/union.xq
tests/XQuery/union2.xq
tests/XQuery/intersect.xq
tests/XQuery/intersect2.xq
tests/XQuery/except.xq
tests/XQuery/except2.xq
tests/XQuery/ID.1490847.xq
Index: pathfinder.mx
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/runtime/pathfinder.mx,v
retrieving revision 1.341
retrieving revision 1.342
diff -u -d -r1.341 -r1.342
--- pathfinder.mx 18 Apr 2007 14:49:50 -0000 1.341
+++ pathfinder.mx 18 Apr 2007 17:41:37 -0000 1.342
@@ -1938,7 +1938,15 @@
{
# sort on hash code, to make next stap bearable
vxt := vxt.tsort();
- vxp := vxt.hmark([EMAIL
PROTECTED]).leftfetchjoin(vxp).access(BAT_WRITE);
+ vxp := vxt.hmark([EMAIL PROTECTED]).leftfetchjoin(vxp);
+ if ( ( vxp.head() = "void" ) and ( vxp.tail() = "void" ) ) {
+ # in case of [void,void] BATs, access(BAT_WRITE) materializes the
head,
+ # which the inplace() later on does not like;
+ # adding a copy() that materializes the tail seems to help ...
+ vxp := vxp.copy().access(BAT_WRITE);
+ } else {
+ vxp := vxp.access(BAT_WRITE);
+ }
vxt := vxt.tmark([EMAIL PROTECTED]);
# eliminate too frequent values from the index
@@ -1988,11 +1996,11 @@
# compute the text/attr index, starting with text values
var vxm :=
knd.reverse().ord_select(pre,oid_nil).reverse().ord_uselect(TEXT).hmark([EMAIL
PROTECTED]);
- var vxp := vxm.leftfetchjoin(nid).access(BAT_APPEND);
+ var vxp := vxm.leftfetchjoin(nid);
var vxt := vxm.leftfetchjoin(prp); vxm := nil;
vxt := vxt.leftfetchjoin(prp_txt);
- vxt := [hash](vxt).access(BAT_APPEND);
- vxm := vx_reduce(vxt, vxp).access(BAT_WRITE); vxp := nil; vxt := nil;
+ vxt := [hash](vxt);
+ vxm := vx_reduce(vxt, vxp); vxp := nil; vxt := nil;
# add the newly shredded attributes. The new attributes are >att and have
an attr_own > pre
tmp := attr_own.reverse().ord_select(att,oid_nil).reverse();
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins