Changeset: 9fb60a1c483a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9fb60a1c483a
Modified Files:
monetdb5/modules/mal/mosaic.c
monetdb5/modules/mal/mosaic_delta.c
Branch: mosaic
Log Message:
Move instruction to correct routine.
diffs (81 lines):
diff --git a/monetdb5/modules/mal/mosaic.c b/monetdb5/modules/mal/mosaic.c
--- a/monetdb5/modules/mal/mosaic.c
+++ b/monetdb5/modules/mal/mosaic.c
@@ -465,6 +465,7 @@ MOScompressInternal(Client cntxt, int *r
bn->hdense = 1;
bn->hkey = 1;
bn->batDirty = 1;
+ bn->T->heap.free = (lng) (task->dst- Tloc(bn,BUNfirst(bn)));
bn->T->heap.compressed= 1;
bn->T->heap.count = cnt;
bn->T->nonil = b->T->nonil;
@@ -579,7 +580,6 @@ MOSdecompressInternal(Client cntxt, int
BATseqbase(bn,b->hseqbase);
bn->hdense = 1;
bn->hkey = 1;
- bn->T->heap.free = (lng) (task->dst- Tloc(bn,BUNfirst(bn)));
bn->T->nonil = b->T->nonil;
bn->T->nil = b->T->nil;
bn->T->seq = b->T->seq;
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
@@ -69,10 +69,11 @@ MOSskip_delta(Client cntxt, MOStask task
}
// append a series of values into the non-compressed block
-#define Estimate_delta(TYPE)\
+#define Estimate_delta(TYPE, EXPR)\
{ TYPE *w = (TYPE*)task->src, val= *w, delta;\
for(w++,i =1; i<task->elm; i++,w++){\
delta = *w -val;\
+ if ( EXPR)\
if ( delta < -127 || delta >127)\
break;\
val = *w;\
@@ -89,23 +90,13 @@ MOSestimate_delta(Client cntxt, MOStask
(void) cntxt;
switch(ATOMstorage(task->type)){
- case TYPE_sht: Estimate_delta(sht); break;
- case TYPE_oid:
- { oid *w = (oid*)task->src, val= *w, delta;
- for(w++,i =1; i<task->elm; i++,w++){
- delta = *w -val;
- if ( delta < 256)
- break;
- val = *w;
- }
- if ( i > MOSlimit() ) i = MOSlimit();
- factor = ((float) i * sizeof(oid))/ (MosaicBlkSize +
sizeof(oid)+(bte)i-1);
- }
- break;
- case TYPE_wrd: Estimate_delta(wrd); break;
- case TYPE_lng: Estimate_delta(lng); break;
+ //case TYPE_bte: case TYPE_bit: no compression achievable
+ case TYPE_sht: Estimate_delta(sht, (delta < -127 || delta >127));
break;
+ case TYPE_oid: Estimate_delta(sht, (delta < 256)); break;
+ case TYPE_wrd: Estimate_delta(wrd, (delta < -127 || delta >127));
break;
+ case TYPE_lng: Estimate_delta(lng, (delta < -127 || delta >127));
break;
#ifdef HAVE_HGE
- case TYPE_hge: Estimate_delta(hge); break;
+ case TYPE_hge: Estimate_delta(hge, (delta < -127 || delta >127));
break;
#endif
case TYPE_int:
{ int *w = (int*)task->src, val= *w, delta;
@@ -152,6 +143,7 @@ MOScompress_delta(Client cntxt, MOStask
MOSsetTag(blk,MOSAIC_DELTA);
switch(ATOMstorage(task->type)){
+ //case TYPE_bte: case TYPE_bit: no compression achievable
case TYPE_sht: DELTAcompress(sht); break;
case TYPE_wrd: DELTAcompress(wrd); break;
case TYPE_int: DELTAcompress(int); break;
@@ -219,6 +211,7 @@ MOSdecompress_delta(Client cntxt, MOStas
(void) cntxt;
switch(ATOMstorage(task->type)){
+ //case TYPE_bte: case TYPE_bit: no compression achievable
case TYPE_sht: DELTAdecompress(sht); break;
case TYPE_oid: DELTAdecompress(oid); break;
case TYPE_wrd: DELTAdecompress(wrd); break;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list