Update of /cvsroot/monetdb/pathfinder/runtime
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv29175/runtime

Modified Files:
      Tag: XQuery_0-16
        pathfinder.mx 
Log Message:
- fn:collection() and pf:collection() are not considered information 
  functions anymore (less locking)
- pf:collection() had forgotten to pin the opened collection
- fn:collections() and pf:documents() do not return names of cached documents,
  only of explicitly shredded docuyments
- let updating functions be more lenient with target nodes 
  (embed exactly-one to do runtime checking) 



Index: pathfinder.mx
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/runtime/pathfinder.mx,v
retrieving revision 1.288.2.8
retrieving revision 1.288.2.9
diff -u -d -r1.288.2.8 -r1.288.2.9
--- pathfinder.mx       8 Feb 2007 18:15:24 -0000       1.288.2.8
+++ pathfinder.mx       9 Feb 2007 15:21:39 -0000       1.288.2.9
@@ -2622,9 +2622,9 @@
 # pf:collection(), get 'collection root' as a single startpoint to query an 
entire collection
 PROC ws_collection_root(BAT[void,BAT] ws, BAT[void,str] colnames) : 
BAT[oid,oid]
 {
-    pflock_meta(ws_id(ws)); # stop all concurrent shred_doc/del_doc activities
     lock_set(pf_short);
-    var colname_coll, err := CATCH(colname_coll := 
reverse(colnames).mirror().leftjoin(reverse(collection_name)));
+    var colname_coll, err := CATCH({ colname_coll := 
reverse(colnames).mirror().leftjoin(reverse(collection_name));
+                                     
colname_pins.insert(colname_coll.kunique().project(ws_id(ws))); });
     lock_unset(pf_short);
     var notfound := colname_coll.kdiff(reverse(colnames));
     if (count(notfound) > 0) ERROR("pf:collection() %s not found (%d such 
errors).\n", notfound.fetch(0), count(notfound));
@@ -2642,7 +2642,6 @@
     var err, idx_coll, idx_doc, idx_colname, idx_names;
     nms := nms.fetch(nms.tmark([EMAIL 
PROTECTED]).[startsWith]("::").ord_uselect(false));
 
-    pflock_meta(ws_id(ws)); # stop all concurrent shred_doc/del_doc activities
     lock_set(pf_short);
     err := CATCH({ var doc := 
nms.leftjoin(reverse(collection_name)).leftjoin(reverse(doc_collection)).tsort();
                    idx_names := doc.leftjoin(doc_name);
@@ -2661,7 +2660,7 @@
 {
     pflock_meta(ws_id(ws)); # stop all concurrent shred_doc/del_doc activities
     lock_set(pf_short);
-    var res, err := CATCH(res := 
reverse(reverse(collection_name).project([EMAIL PROTECTED])));
+    var res, err := CATCH(res := 
reverse(collection_name.[startsWith]("::").uselect(false).project([EMAIL 
PROTECTED])).leftjoin(collection_name));
     lock_unset(pf_short);
     if (not(isnil(err))) ERROR(err);
     return res;
@@ -2678,12 +2677,12 @@
     return res;
 }
 
-# fn:documents(), get all document *names* in a collection
+# fn:documents(), get all document *names* 
 PROC ws_documents(BAT[void,BAT] ws) : BAT[void,str]
 {
     pflock_meta(ws_id(ws)); # stop all concurrent shred_doc/del_doc activities
     lock_set(pf_short);
-    var res, err := CATCH(res := doc_name.tmark([EMAIL PROTECTED]));
+    var res, err := CATCH(res := 
reverse(doc_name.[startsWith]("::").uselect(false).project([EMAIL 
PROTECTED])).leftjoin(doc_name));
     lock_unset(pf_short);
     if (not(isnil(err))) ERROR(err);
     return res;


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to