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

Reply via email to