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

Modified Files:
        batmtime.mx 
Log Message:
fixed problem batmtime.* functions where the arguments can be correctly
aligned but the head column types can still be oid and void


Index: batmtime.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/modules/kernel/batmtime.mx,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- batmtime.mx 27 May 2007 13:17:50 -0000      1.15
+++ batmtime.mx 27 May 2007 15:17:17 -0000      1.16
@@ -113,53 +113,67 @@
 str [EMAIL PROTECTED]@3(int *ret, int *l, int *r)
 {   BAT *bn, *left, *right;
        BUN o,p,q;
-       bit *a;
        size_t xx,yy;
 
        prepareOperand2(left,l,right,r,"[EMAIL PROTECTED]");
        @:chkSize(left,right,[EMAIL PROTECTED])@
        prepareResult2(bn,left,right,TYPE_bit,"[EMAIL PROTECTED]");
 
-       o = BUNtail(left,BUNfirst(left));
-       p = BUNtail(right,BUNfirst(right));
-       q = BUNtail(right,BUNlast(right));
-       a = (bit*)BUNtail(bn, BUNfirst(bn));
+       o = BUNfirst(left);
+       p = BUNfirst(right);
+       q = BUNlast(right);
        xx= BUNsize(left);
        yy= BUNsize(right);
 
        while(p<q) {
-               [EMAIL PROTECTED]@3(a++, (@1*)o, (@1*)p);
+               bit y = TRUE;
+               ptr h = BUNhead(left, o);
+               ptr tl = BUNtail(left, o);
+               ptr tr = BUNtail(right, p);
+
+               [EMAIL PROTECTED]@3(&y, (@1*)tl, (@1*)tr);
+               bunfastins(bn, h, &y);
                o+= xx;
                p+= yy;
        }
-       BATsetcount(bn, BATcount(left));
-       bn->batBuns->free = ((char *)a) - bn->batBuns->base;
        BBPreleaseref(right->batCacheid);
        finalizeResult(ret,bn,left);
        return MAL_SUCCEED;
+
+bunins_failed:
+       BBPreleaseref(left->batCacheid);
+       BBPreleaseref(right->batCacheid);
+       BBPunfix(*ret);
+       throw(MAL, "[EMAIL PROTECTED]", "bunins failed");
 }
 
 str [EMAIL PROTECTED]@3cst(int *ret, int *l, @1 *cst)
 {   BAT *bn, *left;
        BUN p,q;
-       bit *a;
        size_t xx;
 
        prepareOperand(left,l,"[EMAIL PROTECTED]");
        prepareResult(bn,left,TYPE_bit,"[EMAIL PROTECTED]");
 
-       p = BUNtail(left,BUNfirst(left));
-       q = BUNtail(left,BUNlast(left));
-       a = (bit*)BUNtail(bn, BUNfirst(bn));
+       p = BUNfirst(left);
+       q = BUNlast(left);
        xx= BUNsize(left);
        while(p<q) {
-               [EMAIL PROTECTED]@3(a++, (@1*)p, cst);
+               bit y = TRUE;
+               ptr h = BUNhead(left, p);
+               ptr tl = BUNtail(left, p);
+
+               [EMAIL PROTECTED]@3(&y, (@1*)tl, cst);
+               bunfastins(bn, h, &y);
                p+= xx;
        }
-       BATsetcount(bn, BATcount(left));
-       bn->batBuns->free = ((char *)a) - bn->batBuns->base;
        finalizeResult(ret,bn,left);
        return MAL_SUCCEED;
+
+bunins_failed:
+       BBPreleaseref(left->batCacheid);
+       BBPunfix(*ret);
+       throw(MAL, "[EMAIL PROTECTED]", "bunins failed");
 }
 @-
 The implementation section.


-------------------------------------------------------------------------
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