Update of /cvsroot/monetdb/pathfinder/runtime
In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv30013/runtime

Modified Files:
      Tag: XQFT
        xrpc_common.mx 
Log Message:
propagated changes of Monday Jan 04 2010
from the development trunk to the XQFT branch

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2010/01/04 - sjoerd: runtime/xrpc_common.mx,1.14
  Changed the implementation of the offset heap for type string.
  
  Before, the offset heap would contain values of type var_t (typically
  equal in size to oid), so if there are lots of entries but not that
  many different strings, a lot of space was wasted, since only the
  lower few bytes of the values in the offset heap would be used, the
  rest being zero.
  
  In this version, the offset heap has a dynamic width.  It starts off
  as a single byte value, and when the offsets become too large to fit
  in a single byte, the heap is upgraded to a short, then an int, and
  finally (if the system uses 64 bit oids) to lng.
  
  There are tags to mark this change:
  before_variable_string_offset and after_variable_string_offset.
  
  Only MonetDB* and pathfinder needed to be changes, so the tags are
  only added there.
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Index: xrpc_common.mx
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/runtime/xrpc_common.mx,v
retrieving revision 1.13
retrieving revision 1.13.8.1
diff -u -d -r1.13 -r1.13.8.1
--- xrpc_common.mx      22 Jul 2009 07:40:29 -0000      1.13
+++ xrpc_common.mx      4 Jan 2010 15:15:38 -0000       1.13.8.1
@@ -461,7 +461,7 @@
                         oid end_pre = hdr_node_pre + pre_sizeT[hdr_node_pre];
                         while(++hdr_node_pre <= end_pre) {
                             if (pre_kindT[hdr_node_pre] == TEXT) {
-                                s = text_base + 
(prop_textT[pre_propT[hdr_node_pre]] << GDK_VARSHIFT);
+                                s = text_base + VarHeapVal(prop_textT, 
pre_propT[hdr_node_pre], prop_text->T->width);
                                 BUNappend(participants, s, FALSE);
                             }
                         }
@@ -484,7 +484,7 @@
                         oid end_pre = hdr_node_pre + pre_sizeT[hdr_node_pre];
                         while(++hdr_node_pre <= end_pre) {
                             if (pre_kindT[hdr_node_pre] == TEXT) {
-                                s = text_base + 
(prop_textT[pre_propT[hdr_node_pre]] << GDK_VARSHIFT);
+                                s = text_base + VarHeapVal(prop_textT, 
pre_propT[hdr_node_pre], prop_text->T->width);
                                 if (isqid) {
                                     qid = GDKstrdup(s);
                                 } else {
@@ -638,7 +638,7 @@
                                 "is expected to have a simple value", 
msg+strlen(XRPC_NS)+1, i, j, k);
                         goto cleanup;
                     }
-                    req->argval[req->nr_args] = text_base + 
(prop_textT[pre_propT[val_node_pre]] << GDK_VARSHIFT);
+                    req->argval[req->nr_args] = text_base + 
VarHeapVal(prop_textT, pre_propT[val_node_pre], prop_text->T->width);
                 } else if (strcmp(pul, XRPC_NS"|attribute") == 0) {
                     while(ao_ptr < nattrs && attr_ownT[ao_ptr] < tpe_node_pre) 
ao_ptr++;
                     if (attr_ownT[ao_ptr] == tpe_node_pre) {


------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to