Update of /cvsroot/monetdb/pathfinder/runtime
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv7167
Modified Files:
Tag: xquery-decomposition
xrpc_client.mx xrpc_server.mx
Log Message:
xrpc_client.mx: corrected MIL code according to Stefan's comments
(thanks!)
xrpc_server.mx: enable APPENDing to frag_root
Index: xrpc_client.mx
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/runtime/xrpc_client.mx,v
retrieving revision 1.41.2.9
retrieving revision 1.41.2.10
diff -u -d -r1.41.2.9 -r1.41.2.10
--- xrpc_client.mx 10 Mar 2008 02:01:13 -0000 1.41.2.9
+++ xrpc_client.mx 10 Mar 2008 11:03:04 -0000 1.41.2.10
@@ -94,44 +94,34 @@
BAT[void, dbl] dbl_values,
BAT[void, dbl] dec_values,
BAT[void, str] str_values) : oid {
- var maxnconts := ws.fetch(0).count();
# split used_<item|kind> into multiple BATs according to their container
IDs
- var uitems := bat(oid, bat, maxnconts); # container ID in head
- var ukinds := bat(oid, bat, maxnconts);
var conts := get_container([int](used_kind)); # [oid,int]: container IDs
in tail
- var unq_conts := tunique(conts).hmark([EMAIL PROTECTED]);
- var nconts := count(unq_conts);
- var rs := rangesplit(conts, nconts).tmark([EMAIL
PROTECTED]).reverse().join(unq_conts).reverse();
- uitems := rs.[mirror]().[leftfetchjoin](const used_item);
- uitems := [tmark](uitems, const [EMAIL PROTECTED]);
- ukinds := rs.[mirror]().[leftfetchjoin](const used_kind);
- ukinds := [tmark](ukinds, const [EMAIL PROTECTED]);
+ var nconts := count(tunique(conts));
+ # contIDs are grouped in tail BATs per container, contIDs in head
+ var rs := rangesplit(conts,
nconts).reverse().mirror().[fetch](0).reverse();
+ var uitems := rs.[hmark](oid(nil)).[leftfetchjoin](const
used_item).[tmark](const [EMAIL PROTECTED]);
+ var ukinds := rs.[hmark](oid(nil)).[leftfetchjoin](const
used_kind).[tmark](const [EMAIL PROTECTED]);
# split returned_<item|kind> into multiple BATs according to their
container IDs
- var ritems := bat(oid, bat, maxnconts); # container ID in head
- var rkinds := bat(oid, bat, maxnconts);
conts := get_container([int](returned_kind)); # [oid,int]: container IDs
in tail
- unq_conts := tunique(conts).hmark([EMAIL PROTECTED]);
- nconts := count(unq_conts);
- rs := rangesplit(conts, nconts).tmark([EMAIL
PROTECTED]).reverse().join(unq_conts).reverse();
- ritems := rs.[mirror]().[leftfetchjoin](const returned_item);
- ritems := [tmark](ritems, const [EMAIL PROTECTED]);
- rkinds := rs.[mirror]().[leftfetchjoin](const returned_kind);
- rkinds := [tmark](rkinds, const [EMAIL PROTECTED]);
+ nconts := count(tunique(conts));
+ rs := rangesplit(conts, nconts).reverse().mirror().[fetch](0).reverse(); #
get contID in head
+ var ritems := rs.[hmark](oid(nil)).[leftfetchjoin](const
returned_item).[tmark](const [EMAIL PROTECTED]);
+ var rkinds := rs.[hmark](oid(nil)).[leftfetchjoin](const
returned_kind).[tmark](const [EMAIL PROTECTED]);
# align uitems|kinds and ritems|kinds,
# fill missing container with emtpybat
var emptybat := bat(void,void,0);
var usedonly := kdiff(uitems,ritems).project(emptybat);
- ritems.access(BAT_WRITE).insert(usedonly);
- rkinds.access(BAT_WRITE).insert(usedonly);
+ ritems :=
ritems.access(BAT_WRITE).insert(usedonly).sort().access(BAT_READ);
+ rkinds :=
rkinds.access(BAT_WRITE).insert(usedonly).sort().access(BAT_READ);
var returnedonly := kdiff(ritems,uitems).project(emptybat);
- uitems.access(BAT_WRITE).insert(returnedonly);
- ukinds.access(BAT_WRITE).insert(returnedonly);
+ uitems :=
uitems.access(BAT_WRITE).insert(returnedonly).sort().access(BAT_READ);
+ ukinds :=
ukinds.access(BAT_WRITE).insert(returnedonly).sort().access(BAT_READ);
var rpcres := http_post(options, dst, moduleNS, location, method,
updCall, arity, iterc, ws,
- uitems.sort(), ukinds.sort(), ritems.sort(), rkinds.sort(),
+ uitems, ukinds, ritems, rkinds,
upath_item, rpath_item,
fun_vid, fun_iter, fun_item, fun_kind,
int_values, dbl_values, dec_values, str_values);
Index: xrpc_server.mx
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/runtime/xrpc_server.mx,v
retrieving revision 1.58.2.6
retrieving revision 1.58.2.7
diff -u -d -r1.58.2.6 -r1.58.2.7
--- xrpc_server.mx 10 Mar 2008 02:04:19 -0000 1.58.2.6
+++ xrpc_server.mx 10 Mar 2008 11:03:09 -0000 1.58.2.7
@@ -1287,6 +1287,7 @@
frag_node_pre = pre;
start_invalidate = 0;
+ frag_root = BATsetaccess(frag_root, BAT_APPEND);
while((frag_node_pre = get_elem_pre_by_name("xrpc", XRPC_NS,
"fragment",
frag_node_pre+1, frag_node_pre+pre_sizeT[pre], ELEMENT,
pre_propT,
pre_kindT, qn_prefix_uri_loc)) > 0) {
@@ -1307,6 +1308,7 @@
}
start_invalidate = frag_node_pre + 1;
}
+ frag_root = BATsetaccess(frag_root, BAT_READ);
}
*_isSimpleParam = isSimpleParam;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins