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