Changeset: ca0fb2b54376 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ca0fb2b54376
Modified Files:
        monetdb5/modules/mosaic/mosaic_frame.c
Branch: mosaic
Log Message:

Fix block layout bug in the frame algorithm.


diffs (57 lines):

diff --git a/monetdb5/modules/mosaic/mosaic_frame.c 
b/monetdb5/modules/mosaic/mosaic_frame.c
--- a/monetdb5/modules/mosaic/mosaic_frame.c
+++ b/monetdb5/modules/mosaic/mosaic_frame.c
@@ -372,7 +372,7 @@ MOSdecompress_frame(Client cntxt, MOStas
 
 #define select_frame(TPE) {\
     TPE frame = *(TPE*)MOScodevector(task);\
-       base = (BitVector) (((char*) task->blk) +  2 * MosaicBlkSize);\
+       base = (BitVector) (((char*) task->blk) + MosaicBlkSize + 
wordaligned(sizeof(TPE),lng));\
        if( !*anti){\
                if( is_nil(TPE, *(TPE*) low) && is_nil(TPE, *(TPE*) hgh)){\
                        for( ; first < last; first++){\
@@ -447,7 +447,7 @@ MOSselect_frame(Client cntxt,  MOStask t
        oid *o;
        BUN i, first,last;
        MosaicHdr hdr = task->hdr;
-       int cmp;
+       bool cmp;
        bte j;
        BitVector base;
        (void) cntxt;
@@ -482,7 +482,7 @@ MOSselect_frame(Client cntxt,  MOStask t
 #define thetaselect_frame(TPE)\
 {      TPE low,hgh;\
        TPE frame = *(TPE*) MOScodevector(task);\
-       base = (BitVector) (((char*) task->blk) +  2 * MosaicBlkSize);\
+       base = (BitVector) (((char*) task->blk) + MosaicBlkSize + 
wordaligned(sizeof(TPE),lng));\
        low= hgh = TPE##_nil;\
        if ( strcmp(oper,"<") == 0){\
                hgh= *(TPE*) val;\
@@ -560,15 +560,15 @@ MOSthetaselect_frame(Client cntxt,  MOSt
 #define projection_frame(TPE)\
 {      TPE *v;\
        TPE frame = *(TPE*) MOScodevector(task);\
-       base = (BitVector) (((char*) task->blk) +  2 * MosaicBlkSize);\
+       base = (BitVector) (((char*) task->blk) + MosaicBlkSize + 
wordaligned(sizeof(TPE),lng));\
        v= (TPE*) task->src;\
        for(i=0; first < last; first++,i++){\
                MOSskipit();\
                framedecompress(i);\
                *v++ = frame + task->hdr->frame.val##TPE[j];\
                task->n--;\
+               task->cnt++;\
        }\
-       task->src = (char*) v;\
 }
 
 str
@@ -602,7 +602,7 @@ MOSprojection_frame(Client cntxt,  MOSta
 #define join_frame(TPE)\
 {      TPE *w;\
        TPE frame = *(TPE*) MOScodevector(task);\
-       base = (BitVector) (((char*) task->blk) +  2 * MosaicBlkSize);\
+       base = (BitVector) (((char*) task->blk) + MosaicBlkSize + 
wordaligned(sizeof(TPE),lng));\
        w = (TPE*) task->src;\
        limit= MOSgetCnt(task->blk);\
        for( o=0, n= task->elm; n-- > 0; o++,w++ ){\
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to