Changeset: e00d257dcdad for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e00d257dcdad
Modified Files:
monetdb5/modules/mal/mosaic.c
monetdb5/modules/mal/mosaic_delta.c
monetdb5/modules/mal/mosaic_dict.c
monetdb5/modules/mal/mosaic_linear.c
monetdb5/modules/mal/mosaic_none.c
monetdb5/modules/mal/mosaic_rle.c
monetdb5/modules/mal/mosaic_zone.c
Branch: mosaic
Log Message:
Adding the 128-bit to mosaic
diffs (truncated from 574 to 300 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
@@ -42,6 +42,7 @@ MOSinit(MOStask task, BAT *b){
b= BATdescriptor(VIEWtparent(b));
assert(b);
base = Tloc(b,BUNfirst(b));
+ assert(base);
task->type = b->ttype;
task->hdr = (MosaicHdr) base;
base += MosaicHdrSize;
@@ -199,6 +200,9 @@ MOScompressInternal(Client cntxt, int *r
case TYPE_sht:
case TYPE_int:
case TYPE_lng:
+#ifdef HAVE_HGE
+ case TYPE_hge:
+#endif
case TYPE_oid:
case TYPE_wrd:
case TYPE_flt:
@@ -1148,6 +1152,9 @@ MOSanalyseInternal(Client cntxt, BUN thr
case TYPE_sht:
case TYPE_int:
case TYPE_lng:
+#ifdef HAVE_HGE
+ case TYPE_hge:
+#endif
case TYPE_wrd:
case TYPE_oid:
case TYPE_flt:
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
@@ -39,6 +39,9 @@ MOSadvance_delta(Client cntxt, MOStask t
case TYPE_oid: task->blk = (MosaicBlk)( ((char*) blk) + MosaicBlkSize +
wordaligned(sizeof(oid) + MOScnt(blk)-1,oid)); break ;
case TYPE_wrd: task->blk = (MosaicBlk)( ((char*) blk) + MosaicBlkSize +
wordaligned(sizeof(wrd) + MOScnt(blk)-1,wrd)); break ;
case TYPE_lng: task->blk = (MosaicBlk)( ((char*) blk) + MosaicBlkSize +
wordaligned(sizeof(lng) + MOScnt(blk)-1,lng)); break ;
+#ifdef HAVE_HGE
+ case TYPE_hge: task->blk = (MosaicBlk)( ((char*) blk) + MosaicBlkSize +
wordaligned(sizeof(hge) + MOScnt(blk)-1,hge)); break ;
+#endif
default:
if( task->type == TYPE_timestamp)
task->blk = (MosaicBlk)( ((char*) blk) + MosaicBlkSize
+ wordaligned(sizeof(timestamp) + MOScnt(blk)-1,timestamp));
@@ -98,6 +101,9 @@ MOSestimate_delta(Client cntxt, MOStask
}
case TYPE_wrd: Estimate_delta(wrd); break;
case TYPE_lng: Estimate_delta(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: Estimate_delta(hge); break;
+#endif
case TYPE_int:
{ int *w = (int*)task->src, val= *w, delta;
for(w++,i =1; i<task->elm; i++,w++){
@@ -145,6 +151,9 @@ MOScompress_delta(Client cntxt, MOStask
case TYPE_sht: DELTAcompress(sht); break;
case TYPE_wrd: DELTAcompress(wrd); break;
case TYPE_lng: DELTAcompress(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: DELTAcompress(hge); break;
+#endif
case TYPE_oid:
{ oid *w = (oid*)task->src, val= *w, delta;
task->dst = ((char*) task->blk) + MosaicBlkSize;
@@ -208,6 +217,9 @@ MOSdecompress_delta(Client cntxt, MOStas
case TYPE_oid: DELTAdecompress(oid); break;
case TYPE_wrd: DELTAdecompress(wrd); break;
case TYPE_lng: DELTAdecompress(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: DELTAdecompress(hge); break;
+#endif
case TYPE_int:
{ int val;
BUN lim = MOScnt(blk);
@@ -317,6 +329,9 @@ MOSsubselect_delta(Client cntxt, MOStas
case TYPE_oid: subselect_delta(oid); break;
case TYPE_wrd: subselect_delta(wrd); break;
case TYPE_lng: subselect_delta(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: subselect_delta(hge); break;
+#endif
case TYPE_flt: subselect_delta(flt); break;
case TYPE_dbl: subselect_delta(dbl); break;
case TYPE_int:
@@ -527,6 +542,9 @@ MOSthetasubselect_delta(Client cntxt, M
case TYPE_sht: thetasubselect_delta(sht); break;
case TYPE_oid: thetasubselect_delta(oid); break;
case TYPE_lng: thetasubselect_delta(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: thetasubselect_delta(hge); break;
+#endif
case TYPE_wrd: thetasubselect_delta(wrd); break;
case TYPE_flt: thetasubselect_delta(flt); break;
case TYPE_dbl: thetasubselect_delta(dbl); break;
@@ -611,6 +629,9 @@ MOSleftfetchjoin_delta(Client cntxt, MO
case TYPE_sht: leftfetchjoin_delta(sht); break;
case TYPE_oid: leftfetchjoin_delta(oid); break;
case TYPE_lng: leftfetchjoin_delta(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: leftfetchjoin_delta(hge); break;
+#endif
case TYPE_wrd: leftfetchjoin_delta(wrd); break;
case TYPE_flt: leftfetchjoin_delta(flt); break;
case TYPE_dbl: leftfetchjoin_delta(dbl); break;
@@ -668,6 +689,9 @@ MOSjoin_delta(Client cntxt, MOStask tas
case TYPE_sht: join_delta(sht); break;
case TYPE_oid: join_delta(oid); break;
case TYPE_lng: join_delta(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: join_delta(hge); break;
+#endif
case TYPE_wrd: join_delta(wrd); break;
case TYPE_flt: join_delta(flt); break;
case TYPE_dbl: join_delta(dbl); break;
diff --git a/monetdb5/modules/mal/mosaic_dict.c
b/monetdb5/modules/mal/mosaic_dict.c
--- a/monetdb5/modules/mal/mosaic_dict.c
+++ b/monetdb5/modules/mal/mosaic_dict.c
@@ -44,6 +44,9 @@ MOSadvance_dict(Client cntxt, MOStask ta
case TYPE_int: task->blk = (MosaicBlk)( ((char*)task->blk) + 2*
MosaicBlkSize + dictsize * sizeof(int)+ wordaligned(sizeof(bte) *
MOScnt(task->blk),int)); break;
case TYPE_oid: task->blk = (MosaicBlk)( ((char*)task->blk) + 2*
MosaicBlkSize + dictsize * sizeof(oid)+ wordaligned(sizeof(bte) *
MOScnt(task->blk),oid)); break;
case TYPE_lng: task->blk = (MosaicBlk)( ((char*)task->blk) + 2*
MosaicBlkSize + dictsize * sizeof(lng)+ wordaligned(sizeof(bte) *
MOScnt(task->blk),lng)); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: task->blk = (MosaicBlk)( ((char*)task->blk) + 2*
MosaicBlkSize + dictsize * sizeof(hge)+ wordaligned(sizeof(bte) *
MOScnt(task->blk),hge)); break;
+#endif
case TYPE_wrd: task->blk = (MosaicBlk)( ((char*)task->blk) + 2*
MosaicBlkSize + dictsize * sizeof(wrd)+ wordaligned(sizeof(bte) *
MOScnt(task->blk),wrd)); break;
default:
if( task->type == TYPE_timestamp)
@@ -79,6 +82,11 @@ MOSdump_dict(Client cntxt, MOStask task)
case TYPE_lng:
for(i=0; i< *size; i++)
mnstr_printf(cntxt->fdout,"lng [%d] "LLFMT, i, ((lng*)
val)[i]); break;
+#ifdef HAVE_HGE
+ case TYPE_hge:
+ for(i=0; i< *size; i++)
+ mnstr_printf(cntxt->fdout,"hge [%d] %.40g", i, ((dbl*)
val)[i]); break;
+#endif
case TYPE_wrd:
for(i=0; i< *size; i++)
mnstr_printf(cntxt->fdout,"wrd [%d] "SZFMT, i, ((wrd*)
val)[i]); break;
@@ -134,6 +142,9 @@ MOSestimate_dict(Client cntxt, MOStask t
case TYPE_sht: estimateDict(sht); break;
case TYPE_oid: estimateDict(oid); break;
case TYPE_lng: estimateDict(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: estimateDict(hge); break;
+#endif
case TYPE_wrd: estimateDict(wrd); break;
case TYPE_int:
{ int val = *(int*)task->src;
@@ -202,6 +213,9 @@ MOScompress_dict(Client cntxt, MOStask t
case TYPE_int: DICTcompress(int); break;
case TYPE_oid: DICTcompress(oid); break;
case TYPE_wrd: DICTcompress(wrd); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: DICTcompress(hge); break;
+#endif
case TYPE_lng:
{ lng *val = (lng*)task->src;
lng *dict = (lng*)((char*)task->blk+ 2 * MosaicBlkSize);
@@ -256,7 +270,9 @@ MOSdecompress_dict(Client cntxt, MOStask
switch(task->type){
case TYPE_sht: DICTdecompress(sht); break;
case TYPE_oid: DICTdecompress(oid); break;
- case TYPE_lng: DICTdecompress(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: DICTdecompress(hge); break;
+#endif
case TYPE_wrd: DICTdecompress(wrd); break;
case TYPE_int:
{ bte *idx = (bte*)(compressed + dictsize * sizeof(int));
@@ -365,6 +381,9 @@ MOSsubselect_dict(Client cntxt, MOStask
case TYPE_sht: subselect_dict(sht); break;
case TYPE_oid: subselect_dict(oid); break;
case TYPE_lng: subselect_dict(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: subselect_dict(hge); break;
+#endif
case TYPE_wrd: subselect_dict(wrd); break;
case TYPE_int:
// Expanded MOSselect_dict for debugging
@@ -572,6 +591,9 @@ MOSthetasubselect_dict(Client cntxt, MO
case TYPE_sht: thetasubselect_dict(sht); break;
case TYPE_oid: thetasubselect_dict(oid); break;
case TYPE_lng: thetasubselect_dict(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: thetasubselect_dict(hge); break;
+#endif
case TYPE_wrd: thetasubselect_dict(wrd); break;
case TYPE_int:
{ int low,hgh;
@@ -685,6 +707,9 @@ MOSleftfetchjoin_dict(Client cntxt, MOS
case TYPE_sht: leftfetchjoin_dict(sht); break;
case TYPE_oid: leftfetchjoin_dict(oid); break;
case TYPE_lng: leftfetchjoin_dict(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: leftfetchjoin_dict(hge); break;
+#endif
case TYPE_wrd: leftfetchjoin_dict(wrd); break;
case TYPE_int:
{ int *v;
@@ -737,6 +762,9 @@ MOSjoin_dict(Client cntxt, MOStask task
case TYPE_sht: join_dict(sht); break;
case TYPE_oid: join_dict(oid); break;
case TYPE_lng: join_dict(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: join_dict(hge); break;
+#endif
case TYPE_wrd: join_dict(wrd); break;
case TYPE_int:
{ int *w;
diff --git a/monetdb5/modules/mal/mosaic_linear.c
b/monetdb5/modules/mal/mosaic_linear.c
--- a/monetdb5/modules/mal/mosaic_linear.c
+++ b/monetdb5/modules/mal/mosaic_linear.c
@@ -36,6 +36,9 @@ linear_step(MOStask task, MosaicBlk blk)
case TYPE_sht : return (void*) ( ((char*)blk)+ MosaicBlkSize+
sizeof(sht));
case TYPE_int : return (void*) ( ((char*)blk)+ MosaicBlkSize+
sizeof(int));
case TYPE_lng : return (void*) ( ((char*)blk)+ MosaicBlkSize+
sizeof(lng));
+#ifdef HAVE_HGE
+ case TYPE_hge : return (void*) ( ((char*)blk)+ MosaicBlkSize+
sizeof(hge));
+#endif
case TYPE_wrd : return (void*) ( ((char*)blk)+ MosaicBlkSize+
sizeof(wrd));
case TYPE_oid : return (void*) ( ((char*)blk)+ MosaicBlkSize+
sizeof(oid));
case TYPE_flt : return (void*) ( ((char*)blk)+ MosaicBlkSize+
sizeof(flt));
@@ -60,6 +63,10 @@ MOSdump_linear(Client cntxt, MOStask tas
mnstr_printf(cntxt->fdout,"int %d %d", *(int*)
linear_base(blk), *(int*) linear_step(task,blk)); break;
case TYPE_lng:
mnstr_printf(cntxt->fdout,"int "LLFMT" " LLFMT, *(lng*)
linear_base(blk), *(lng*) linear_step(task,blk)); break;
+#ifdef HAVE_HGE
+ case TYPE_hge:
+ mnstr_printf(cntxt->fdout,"int %.40g %.40g ", *(dbl*)
linear_base(blk), *(dbl*) linear_step(task,blk)); break;
+#endif
case TYPE_wrd:
mnstr_printf(cntxt->fdout,"int "SZFMT" " SZFMT, *(wrd*)
linear_base(blk), *(wrd*) linear_step(task,blk)); break;
case TYPE_flt:
@@ -89,6 +96,9 @@ MOSadvance_linear(Client cntxt, MOStask
case TYPE_int: task->blk = (MosaicBlk)( ((char*)task->blk) +
MosaicBlkSize + wordaligned(2 * sizeof(int),int)); break;
case TYPE_oid: task->blk = (MosaicBlk)( ((char*)task->blk) +
MosaicBlkSize + wordaligned(2 * sizeof(oid),oid)); break;
case TYPE_lng: task->blk = (MosaicBlk)( ((char*)task->blk) +
MosaicBlkSize + wordaligned(2 * sizeof(lng),lng)); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: task->blk = (MosaicBlk)( ((char*)task->blk) +
MosaicBlkSize + wordaligned(2 * sizeof(hge),hge)); break;
+#endif
case TYPE_wrd: task->blk = (MosaicBlk)( ((char*)task->blk) +
MosaicBlkSize + wordaligned(2 * sizeof(wrd),wrd)); break;
case TYPE_flt: task->blk = (MosaicBlk)( ((char*)task->blk) +
MosaicBlkSize + wordaligned(2 * sizeof(flt),flt)); break;
case TYPE_dbl: task->blk = (MosaicBlk)( ((char*)task->blk) +
MosaicBlkSize + wordaligned(2 * sizeof(dbl),dbl)); break;
@@ -132,6 +142,9 @@ MOSestimate_linear(Client cntxt, MOStask
case TYPE_sht: Estimate(sht); break;
case TYPE_oid: Estimate(oid); break;
case TYPE_lng: Estimate(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: Estimate(hge); break;
+#endif
case TYPE_wrd: Estimate(wrd); break;
case TYPE_flt: Estimate(flt); break;
case TYPE_dbl: Estimate(dbl); break;
@@ -179,6 +192,9 @@ MOScompress_linear(Client cntxt, MOStask
case TYPE_sht: LINEARcompress(sht); break;
case TYPE_oid: LINEARcompress(oid); break;
case TYPE_lng: LINEARcompress(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: LINEARcompress(hge); break;
+#endif
case TYPE_wrd: LINEARcompress(wrd); break;
case TYPE_flt: LINEARcompress(flt); break;
case TYPE_dbl: LINEARcompress(dbl); break;
@@ -224,6 +240,9 @@ MOSdecompress_linear(Client cntxt, MOSta
case TYPE_sht: LINEARdecompress(sht); break;
case TYPE_oid: LINEARdecompress(oid); break;
case TYPE_lng: LINEARdecompress(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: LINEARdecompress(hge); break;
+#endif
case TYPE_wrd: LINEARdecompress(wrd); break;
case TYPE_flt: LINEARdecompress(flt); break;
case TYPE_dbl: LINEARdecompress(dbl); break;
@@ -330,6 +349,9 @@ MOSsubselect_linear(Client cntxt, MOSta
case TYPE_sht: subselect_linear(sht); break;
case TYPE_oid: subselect_linear(oid); break;
case TYPE_lng: subselect_linear(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: subselect_linear(hge); break;
+#endif
case TYPE_wrd: subselect_linear(wrd); break;
case TYPE_flt: subselect_linear(flt); break;
case TYPE_dbl: subselect_linear(dbl); break;
@@ -479,6 +501,9 @@ MOSthetasubselect_linear(Client cntxt,
case TYPE_sht: thetasubselect_linear(sht); break;
case TYPE_oid: thetasubselect_linear(oid); break;
case TYPE_lng: thetasubselect_linear(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: thetasubselect_linear(hge); break;
+#endif
case TYPE_wrd: thetasubselect_linear(wrd); break;
case TYPE_flt: thetasubselect_linear(flt); break;
case TYPE_dbl: thetasubselect_linear(dbl); break;
@@ -566,6 +591,9 @@ MOSleftfetchjoin_linear(Client cntxt, M
case TYPE_sht: leftfetchjoin_linear(sht); break;
case TYPE_oid: leftfetchjoin_linear(oid); break;
case TYPE_lng: leftfetchjoin_linear(lng); break;
+#ifdef HAVE_HGE
+ case TYPE_hge: leftfetchjoin_linear(hge); break;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list