Changeset: a4ce669eb86e for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a4ce669eb86e Modified Files: monetdb5/modules/mal/mosaic_delta.c Branch: mosaic Log Message:
Fix the delta error. diffs (77 lines): diff --git a/monetdb5/modules/mal/mosaic_delta.c b/monetdb5/modules/mal/mosaic_delta.c --- a/monetdb5/modules/mal/mosaic_delta.c +++ b/monetdb5/modules/mal/mosaic_delta.c @@ -144,7 +144,7 @@ MOSestimate_delta(Client cntxt, MOStask task->dst += sizeof(TYPE);\ for(w++,i =1; i<limit; i++,w++){\ delta = *w -val;\ - if ( !(EXPR) )\ + if ( EXPR )\ break;\ *(bte*)task->dst++ = (bte) delta;\ val = *w;\ @@ -166,18 +166,18 @@ MOScompress_delta(Client cntxt, MOStask switch(ATOMstorage(task->type)){ //case TYPE_bte: case TYPE_bit: no compression achievable case TYPE_sht: DELTAcompress(sht,(delta < -127 || delta >127)); break; - case TYPE_lng: DELTAcompress(lng,(delta < -127 || delta >127)); break; - case TYPE_oid: DELTAcompress(oid,(delta < 256)); break; + case TYPE_int: DELTAcompress(int,(delta < -127 || delta >127)); break; + case TYPE_oid: DELTAcompress(oid,(delta > 255)); break; case TYPE_wrd: DELTAcompress(wrd,(delta < -127 || delta >127)); break; #ifdef HAVE_HGE case TYPE_hge: DELTAcompress(hge,(delta < -127 || delta >127)); break; #endif - case TYPE_int: - { int *w = (int*)task->src, val= *w, delta; + case TYPE_lng: + { lng *w = (lng*)task->src, val= *w, delta; BUN limit = task->elm > MOSlimit()? MOSlimit():task->elm; task->dst = ((char*) task->blk) + MosaicBlkSize; - *(int*)task->dst = val; - task->dst += sizeof(int); + *(lng*)task->dst = val; + task->dst += sizeof(lng); for(w++,i =1; i<limit; i++,w++){ delta = *w -val; if ( delta < -127 || delta >127) @@ -185,7 +185,7 @@ MOScompress_delta(Client cntxt, MOStask *(bte*)task->dst++ = (bte) delta; val = *w; } - task->src += i * sizeof(int); + task->src += i * sizeof(lng); MOSincCnt(blk,i); } break; @@ -228,23 +228,23 @@ MOSdecompress_delta(Client cntxt, MOStas switch(ATOMstorage(task->type)){ //case TYPE_bte: case TYPE_bit: no compression achievable case TYPE_sht: DELTAdecompress(sht); break; - case TYPE_lng: DELTAdecompress(lng); break; + case TYPE_int: DELTAdecompress(int); break; case TYPE_oid: DELTAdecompress(oid); break; case TYPE_wrd: DELTAdecompress(wrd); break; #ifdef HAVE_HGE case TYPE_hge: DELTAdecompress(hge); break; #endif - case TYPE_int: - { int val; + case TYPE_lng: + { lng val; BUN lim = MOSgetCnt(blk); task->dst = ((char*) task->blk) + MosaicBlkSize; - val = *(int*)task->dst ; - task->dst += sizeof(int); + val = *(lng*)task->dst ; + task->dst += sizeof(lng); for(i = 0; i < lim; i++) { - ((int*)task->src)[i] = val; + ((lng*)task->src)[i] = val; val += *(bte*) task->dst++; } - task->src += i * sizeof(int); + task->src += i * sizeof(lng); } break; case TYPE_str: _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list