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

Reply via email to