Changeset: 17cb74ceff09 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=17cb74ceff09 Modified Files: monetdb5/optimizer/opt_generator.c Branch: default Log Message:
Improve using pre-scan This optimizer is hardly ever needed to rewrite the plan. A simple pre-test avoids lots of costs. diffs (32 lines): diff --git a/monetdb5/optimizer/opt_generator.c b/monetdb5/optimizer/opt_generator.c --- a/monetdb5/optimizer/opt_generator.c +++ b/monetdb5/optimizer/opt_generator.c @@ -67,12 +67,22 @@ OPTgeneratorImplementation(Client cntxt, (void) pci; series = (InstrPtr*) GDKzalloc(sizeof(InstrPtr) * mb->vtop); - old = mb->stmt; - limit = mb->stop; - slimit = mb->ssize; - if (newMalBlkStmt(mb, mb->ssize) < 0) { - GDKfree(series); - return 0; + old = mb->stmt; + limit = mb->stop; + slimit = mb->ssize; + + // check applicability first + for( i=0; i < limit; i++){ + p = old[i]; + if ( getModuleId(p) == generatorRef && getFunctionId(p) == seriesRef) + break; + } + if( i == limit) + return 0; + + if (newMalBlkStmt(mb, mb->ssize) < 0) { + GDKfree(series); + return 0; } for( i=0; i < limit; i++){ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list