Update of /cvsroot/monetdb/MonetDB5/src/modules/kernel
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv6883/src/modules/kernel

Modified Files:
        batcalc.mx batcast.mx 
Log Message:
propagated changes of Monday Jun 04 2007 - Wednesday Jun 06 2007
from the MonetDB_5-0 branch to the development trunk



Index: batcalc.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/modules/kernel/batcalc.mx,v
retrieving revision 1.140
retrieving revision 1.141
diff -u -d -r1.140 -r1.141
--- batcalc.mx  1 Apr 2007 20:42:56 -0000       1.140
+++ batcalc.mx  6 Jun 2007 12:01:51 -0000       1.141
@@ -1179,7 +1179,7 @@
                                *o++ = *(@3*)p @2 *(@3*)t;
                        p += xx; t += yy; 
                }
-               (bn)->batBuns->free += BATcount(b)*sizeof(bit);
+               (bn)->batBuns->free = BATcount(b)*sizeof(bit);
                BATsetcount(bn, BATcount(b));
        } else {
                BUN p,q,t,h;
@@ -1236,7 +1236,7 @@
                                *o++ = (bit)( *(@3*) p @2 *(@3*)t);
                        p += xx; t += yy; 
                }
-               (bn)->batBuns->free += BATcount(b)*sizeof(bit);
+               (bn)->batBuns->free = BATcount(b)*sizeof(bit);
                BATsetcount(bn, BATcount(b));
        } else {
                BUN o,p,q,t;
@@ -1286,7 +1286,7 @@
                                *o++ = *(@3*) p @2 *cst;
                        p += xx;
                }
-               (bn)->batBuns->free += BATcount(b)*sizeof(bit);
+               (bn)->batBuns->free = BATcount(b)*sizeof(bit);
                BATsetcount(bn, BATcount(b));
        } else {
                BUN p,q,h;
@@ -1444,7 +1444,7 @@
                                *o++ = ! *(bit*)p;
                        p += xx;  
                }
-               (bn)->batBuns->free += BATcount(b)*sizeof(bit);
+               (bn)->batBuns->free = BATcount(b)*sizeof(bit);
                BATsetcount(bn, BATcount(b));
        } else {
                BUN p,q;

Index: batcast.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/modules/kernel/batcast.mx,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- batcast.mx  5 Jan 2007 17:51:09 -0000       1.14
+++ batcast.mx  6 Jun 2007 12:01:52 -0000       1.15
@@ -32,9 +32,6 @@
        command [EMAIL PROTECTED](b:bat[:any_1,:@1]):bat[:any_1,:@2] 
        address [EMAIL PROTECTED]@2
        comment "Coerce an @1 tail to a bat with @2 tail.";
-       command [EMAIL PROTECTED](b:bat[:void,:@1]):bat[:void,:@2] 
-       address [EMAIL PROTECTED]@2
-       comment "Coerce an @1 tail to a bat with @2 tail.";
 @mal
        @:idempotent(bit)@
        @:idempotent(chr)@
@@ -138,50 +135,39 @@
        BBPreleaseref(b->batCacheid);
        return MAL_SUCCEED;
 @-
-The void case is geared at speed.
-Test against overflow in a reduce situation.
[EMAIL PROTECTED] Mapping
-batcast_export str [EMAIL PROTECTED]@2(int *ret, int *bid);
-str [EMAIL PROTECTED]@2(int *ret, int *bid){
-       BAT *b,*bn;
-       @1 *p,*q;
-       @2 *o;
-       size_t xx;
-
-       @:getBATdescriptor(bid, b, "[EMAIL PROTECTED]")@
-       @:resultBAT(@2,"[EMAIL PROTECTED]")@
-       o= (@2*)BUNtail(bn,BUNfirst(bn));
-       p= (@1*)BUNtail(b,BUNfirst(b));
-       q= (@1*)BUNtail(b,BUNlast(b));
-       xx= BUNsize(b);
-       while(p<q){
-               *o = *p== @1_nil ?  @2_nil: (@2) *p;
-               p= (@1 *) ((char*)p+xx); o++;
-       }
-       (bn)->batBuns->free += BATcount(b)*sizeof(@2);
-       BATsetcount(bn, BATcount(b));
-       @:wrapup@
-}
 @= GeneralFixed
 batcast_export str [EMAIL PROTECTED]@2(int *ret, int *bid);
 str [EMAIL PROTECTED]@2(int *ret, int *bid){
        BAT *b,*bn;
        size_t xx;
-       @2 y;
-       char *p, *q, *h;
+       char *p, *q;
 
        @:getBATdescriptor(bid, b, "[EMAIL PROTECTED]")@
        @:resultBAT(@2,"[EMAIL PROTECTED]")@
-       h= (char*) BUNhead(b,BUNfirst(b));
        p= (char*) BUNfirst(b);
        q= (char*) BUNlast(b);
        xx= BUNsize(b);
 
-       while(p<q){
-               @1 *r = (@1*)BUNtail(b,p);
-               y= (*r == @1_nil) ? @2_nil: (@2)(*r);
-               bunfastins(bn, h, &y);
-               p+= xx; h+=xx;
+       if( b->htype == TYPE_void){
+               @2 *o = (@2*)BUNtail(bn,BUNfirst(bn));
+               @1 *p= (@1*) BUNtail(b, BUNfirst(b));
+               @1 *q= (@1*) BUNtail(b, BUNlast(b));
+
+               while(p<q) {
+                       *o = *p== @1_nil ?  @2_nil: (@2) *p;
+                       p= (@1 *) (((char*)p)+xx); o++;
+               }
+               (bn)->batBuns->free += BATcount(b)*sizeof(@2);
+               BATsetcount(bn, BATcount(b));
+       } else {
+               char *h= (char*) BUNhead(b,BUNfirst(b));
+               while(p<q){
+                       @1 *r = (@1*)BUNtail(b,p);
+                       @2 y = (*r == @1_nil) ? @2_nil: (@2)(*r);
+
+                       bunfastins(bn, h, &y);
+                       p+= xx; h+=xx;
+               }
        }
 bunins_failed:
        @:wrapup@
@@ -223,10 +209,6 @@
 bunins_failed:
        @:wrapup@
 }
-batcast_export str [EMAIL PROTECTED](int *ret, int *bid);
-str [EMAIL PROTECTED](int *ret, int *bid){
-       return [EMAIL PROTECTED](ret,bid);
-}
 
 batcast_export str [EMAIL PROTECTED](int *ret, int *bid);
 str [EMAIL PROTECTED](int *ret, int *bid){
@@ -250,10 +232,6 @@
 bunins_failed:
        @:wrapup@
 }
-batcast_export str [EMAIL PROTECTED](int *ret, int *bid);
-str [EMAIL PROTECTED](int *ret, int *bid){
-       return [EMAIL PROTECTED](ret,bid);
-}
 @-
 The lengthly list of coercions options could have been generated.
 @c
@@ -285,10 +263,8 @@
 The reduction coding is still to be provided.
 @= CoercionEnlarge
        @:GeneralFixed(@1,@2)@
-       @:Mapping(@1,@2)@
 @= CoercionReduce
        @:GeneralFixed(@1,@2)@
-       @:Mapping(@1,@2)@
 @-
 Write out all combinations to ease subsequent
 code fine tuning


-------------------------------------------------------------------------
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-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins

Reply via email to