Changeset: e7a9ecdef821 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e7a9ecdef821 Modified Files: monetdb5/modules/mosaic/mosaic_frame.c Branch: mosaic Log Message:
Simplify logic: time-like type behave like primitive integer types. diffs (166 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 @@ -36,11 +36,10 @@ bool MOStypes_frame(BAT* b) { #ifdef HAVE_HGE case TYPE_hge: return true; #endif - default: { - if (b->ttype == TYPE_date) {return true;} - if (b->ttype == TYPE_daytime) {return true;} - if (b->ttype == TYPE_timestamp) {return true;} - } + default: + if (b->ttype == TYPE_date) {return true;} // Will be mapped to int + if (b->ttype == TYPE_daytime) {return true;} // Will be mapped to lng + if (b->ttype == TYPE_timestamp) {return true;} // Will be mapped to lng } return false; @@ -203,7 +202,7 @@ do {\ flt MOSestimate_frame(MOStask task) { - switch(task->type){ + switch(ATOMstorage(task->type)){ case TYPE_bte: estimateFrame(task, bte, ulng, GET_DELTA_FOR_SIGNED_TYPE); break; case TYPE_sht: estimateFrame(task, sht, ulng, GET_DELTA_FOR_SIGNED_TYPE); break; case TYPE_int: estimateFrame(task, int, ulng, GET_DELTA_FOR_SIGNED_TYPE); break; @@ -212,11 +211,6 @@ MOSestimate_frame(MOStask task) { #ifdef HAVE_HGE case TYPE_hge: estimateFrame(task, hge, uhge, GET_DELTA_FOR_SIGNED_TYPE); break; #endif - default: { - if (task->type == TYPE_date) {estimateFrame(task, int, ulng, GET_DELTA_FOR_SIGNED_TYPE); break;} - if (task->type == TYPE_daytime) {estimateFrame(task, lng, ulng, GET_DELTA_FOR_SIGNED_TYPE); break;} - if (task->type == TYPE_timestamp) {estimateFrame(task, lng, ulng, GET_DELTA_FOR_SIGNED_TYPE); break;} - } } return task->factor[MOSAIC_FRAME]; @@ -249,7 +243,7 @@ MOScompress_frame(MOStask task) MOSsetTag(blk,MOSAIC_FRAME); MOSsetCnt(blk, 0); - switch(task->type){ + switch(ATOMstorage(task->type)){ case TYPE_bte: FRAMEcompress(task, bte, ulng, GET_DELTA_FOR_SIGNED_TYPE); break; case TYPE_sht: FRAMEcompress(task, sht, ulng, GET_DELTA_FOR_SIGNED_TYPE); break; case TYPE_int: FRAMEcompress(task, int, ulng, GET_DELTA_FOR_SIGNED_TYPE); break; @@ -258,11 +252,6 @@ MOScompress_frame(MOStask task) #ifdef HAVE_HGE case TYPE_hge: FRAMEcompress(task, hge, uhge, GET_DELTA_FOR_SIGNED_TYPE); break; #endif - default: { - if (task->type == TYPE_date) {FRAMEcompress(task, int, ulng, GET_DELTA_FOR_SIGNED_TYPE); break;} - if (task->type == TYPE_daytime) {FRAMEcompress(task, lng, ulng, GET_DELTA_FOR_SIGNED_TYPE); break;} - if (task->type == TYPE_timestamp) {FRAMEcompress(task, lng, ulng, GET_DELTA_FOR_SIGNED_TYPE); break;} - } } } @@ -288,7 +277,7 @@ do {\ void MOSdecompress_frame(MOStask task) { - switch(task->type){ + switch(ATOMstorage(task->type)){ case TYPE_bte: FRAMEdecompress(task, bte); break; case TYPE_sht: FRAMEdecompress(task, sht); break; case TYPE_int: FRAMEdecompress(task, int); break; @@ -297,11 +286,6 @@ MOSdecompress_frame(MOStask task) #ifdef HAVE_HGE case TYPE_hge: FRAMEdecompress(task, hge); break; #endif - default: { - if (task->type == TYPE_date) {FRAMEdecompress(task, int); break;} - if (task->type == TYPE_daytime) {FRAMEdecompress(task, lng); break;} - if (task->type == TYPE_timestamp) {FRAMEdecompress(task, lng); break;} - } } } @@ -421,7 +405,7 @@ MOSselect_frame( MOStask task, void *low } o = task->lb; - switch(task->type){ + switch(ATOMstorage(task->type)){ case TYPE_bte: select_frame(task, bte, ulng); break; case TYPE_sht: select_frame(task, sht, ulng); break; case TYPE_int: select_frame(task, int, ulng); break; @@ -430,11 +414,6 @@ MOSselect_frame( MOStask task, void *low #ifdef HAVE_HGE case TYPE_hge: select_frame(task, hge, uhge); break; #endif - default: { - if (task->type == TYPE_date) {select_frame(task, int, ulng); break;} - if (task->type == TYPE_daytime) {select_frame(task, lng, ulng); break;} - if (task->type == TYPE_timestamp) {select_frame(task, lng, ulng); break;} - } } MOSskip_frame(task); task->lb = o; @@ -563,7 +542,7 @@ MOSthetaselect_frame( MOStask task, void } o = task->lb; - switch(task->type){ + switch(ATOMstorage(task->type)){ case TYPE_bte: thetaselect_frame(bte, ulng, GET_DELTA_FOR_SIGNED_TYPE); break; case TYPE_sht: thetaselect_frame(sht, ulng, GET_DELTA_FOR_SIGNED_TYPE); break; case TYPE_int: thetaselect_frame(int, ulng, GET_DELTA_FOR_SIGNED_TYPE); break; @@ -572,11 +551,6 @@ MOSthetaselect_frame( MOStask task, void #ifdef HAVE_HGE case TYPE_hge: thetaselect_frame(hge, uhge, GET_DELTA_FOR_SIGNED_TYPE); break; #endif - default: { - if (task->type == TYPE_date) {thetaselect_frame(int, ulng, GET_DELTA_FOR_SIGNED_TYPE); break;} - if (task->type == TYPE_daytime) {thetaselect_frame(lng, ulng, GET_DELTA_FOR_SIGNED_TYPE); break;} - if (task->type == TYPE_timestamp) {thetaselect_frame(lng, ulng, GET_DELTA_FOR_SIGNED_TYPE); break;} - } } MOSskip_frame(task); task->lb =o; @@ -604,7 +578,7 @@ MOSprojection_frame( MOStask task) first = task->start; last = first + MOSgetCnt(task->blk); - switch(task->type){ + switch(ATOMstorage(task->type)){ case TYPE_bte: projection_frame(bte); break; case TYPE_sht: projection_frame(sht); break; case TYPE_int: projection_frame(int); break; @@ -613,11 +587,6 @@ MOSprojection_frame( MOStask task) #ifdef HAVE_HGE case TYPE_hge: projection_frame(hge); break; #endif - default: { - if (task->type == TYPE_date) {projection_frame(int); break;} - if (task->type == TYPE_daytime) {projection_frame(lng); break;} - if (task->type == TYPE_timestamp) {projection_frame(lng); break;} - } } MOSskip_frame(task); return MAL_SUCCEED; @@ -648,7 +617,7 @@ MOSjoin_frame( MOStask task) oid o, oo; // set the oid range covered and advance scan range - switch(task->type){ + switch(ATOMstorage(task->type)){ case TYPE_bte: join_frame(bte); break; case TYPE_sht: join_frame(sht); break; case TYPE_int: join_frame(int); break; @@ -657,11 +626,6 @@ MOSjoin_frame( MOStask task) #ifdef HAVE_HGE case TYPE_hge: join_frame(hge); break; #endif - default: { - if (task->type == TYPE_date) {join_frame(int); break;} - if (task->type == TYPE_daytime) {join_frame(lng); break;} - if (task->type == TYPE_timestamp) {join_frame(lng); break;} - } } MOSskip_frame(task); return MAL_SUCCEED; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list