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

Reply via email to