Changeset: 96fef98cfc39 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=96fef98cfc39 Modified Files: monetdb5/optimizer/opt_mosaic.c Branch: mosaic Log Message:
Mosaic optimizer may only touche operators with operands of allowed type. diffs (30 lines): diff --git a/monetdb5/optimizer/opt_mosaic.c b/monetdb5/optimizer/opt_mosaic.c --- a/monetdb5/optimizer/opt_mosaic.c +++ b/monetdb5/optimizer/opt_mosaic.c @@ -33,7 +33,6 @@ static int OPTmosaicType(MalBlkPtr mb, I case TYPE_oid: case TYPE_flt: case TYPE_dbl: - case TYPE_str: return 1; default: if( type == TYPE_date) @@ -107,15 +106,15 @@ OPTmosaicImplementationInternal(Client c // actual conversion for( i=0; i < limit; i++){ p = old[i]; - if ( getModuleId(p) == algebraRef && (getFunctionId(p) == selectRef || getFunctionId(p) == thetaselectRef)){ + if ( getModuleId(p) == algebraRef && (getFunctionId(p) == selectRef || getFunctionId(p) == thetaselectRef) && OPTmosaicType(mb,p,1)){ setModuleId(p, mosaicRef); actions++; } else - if ( getModuleId(p) == algebraRef && getFunctionId(p) == projectionRef){ + if ( getModuleId(p) == algebraRef && getFunctionId(p) == projectionRef && OPTmosaicType(mb,p,2)){ setModuleId(p, mosaicRef); actions++; } else - if ( getModuleId(p) == algebraRef && getFunctionId(p) == joinRef && p->argc ==8){ + if ( getModuleId(p) == algebraRef && getFunctionId(p) == joinRef && p->argc ==8 && OPTmosaicType(mb,p,2)){ setModuleId(p, mosaicRef); if (coui) { /*This will push and set the COUI flag true.*/ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list