Changeset: d5f09d5db060 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d5f09d5db060
Modified Files:
        monetdb5/extras/mal_optimizer_template/opt_sql_append.c
        monetdb5/mal/mal.h
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_instruction.h
        monetdb5/mal/mal_listing.c
        monetdb5/optimizer/opt_wrapper.c
        monetdb5/optimizer/optimizer.c
        monetdb5/scheduler/run_isolate.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_optimizer.c
Branch: default
Log Message:

Simplify and cleanup
Remove history markers, just rely on the list.


diffs (235 lines):

diff --git a/monetdb5/extras/mal_optimizer_template/opt_sql_append.c 
b/monetdb5/extras/mal_optimizer_template/opt_sql_append.c
--- a/monetdb5/extras/mal_optimizer_template/opt_sql_append.c
+++ b/monetdb5/extras/mal_optimizer_template/opt_sql_append.c
@@ -288,7 +288,7 @@ str OPTsql_append(Client cntxt, MalBlkPt
        }
        if( mb->errors ){
                /* when we have errors, we still want to see them */
-               addtoMalBlkHistory(mb,"sql_append");
+               addtoMalBlkHistory(mb);
                return MAL_SUCCEED;
        }
        actions= OPTsql_appendImplementation(cntxt, mb,stk,p);
@@ -300,6 +300,6 @@ str OPTsql_append(Client cntxt, MalBlkPt
        DEBUGoptimizers
                mnstr_printf(cntxt->fdout,"#opt_reduce: " LLFMT " ms\n",t);
        QOTupdateStatistics("sql_append",actions,t);
-       addtoMalBlkHistory(mb,"sql_append");
+       addtoMalBlkHistory(mb);
        return msg;
 }
diff --git a/monetdb5/mal/mal.h b/monetdb5/mal/mal.h
--- a/monetdb5/mal/mal.h
+++ b/monetdb5/mal/mal.h
@@ -210,7 +210,6 @@ typedef struct MALBLK {
        struct MALBLK *history;         /* of optimizer actions */
        short keephistory;                      /* do we need the history at 
all */
        short dotfile;                          /* send dot file to 
stethoscope? */
-       str marker;                                     /* history points are 
marked for backtracking */
        int maxarg;                                     /* keep track on the 
maximal arguments used */
        ptr replica;                            /* for the replicator tests */
        sht recycle;                            /* execution subject to 
recycler control */
diff --git a/monetdb5/mal/mal_instruction.c b/monetdb5/mal/mal_instruction.c
--- a/monetdb5/mal/mal_instruction.c
+++ b/monetdb5/mal/mal_instruction.c
@@ -118,7 +118,6 @@ newMalBlk(int maxvars, int maxstmts)
        mb->history = NULL;
        mb->keephistory = 0;
        mb->dotfile = 0;
-       mb->marker = 0;
        mb->maxarg = MAXARG;            /* the minimum for each instruction */
        mb->typefixed = 0;
        mb->flowfixed = 0;
@@ -233,7 +232,6 @@ copyMalBlk(MalBlkPtr old)
        mb->history = NULL;
        mb->keephistory = old->keephistory;
        mb->dotfile = old->dotfile;
-       mb->marker = 0;
        mb->var = (VarPtr *) GDKzalloc(sizeof(VarPtr) * old->vsize);
        mb->activeClients = 1;
 
@@ -290,7 +288,7 @@ copyMalBlk(MalBlkPtr old)
 }
 
 void
-addtoMalBlkHistory(MalBlkPtr mb, str marker)
+addtoMalBlkHistory(MalBlkPtr mb)
 {
        MalBlkPtr cpy, h;
        if (mb->keephistory) {
@@ -298,7 +296,6 @@ addtoMalBlkHistory(MalBlkPtr mb, str mar
                if (cpy == NULL)
                        return;                         /* ignore history */
                cpy->history = NULL;
-               mb->marker = GDKstrdup(marker);
                if (mb->history == NULL)
                        mb->history = cpy;
                else {
@@ -318,34 +315,6 @@ getMalBlkHistory(MalBlkPtr mb, int idx)
        return h ? h : mb;
 }
 
-/* You can retrieve the history by its marker as well. */
-MalBlkPtr
-getMalBlkMarker(MalBlkPtr mb, str marker)
-{
-       MalBlkPtr h = mb;
-       while (h && h->marker && strcmp(h->marker, marker))
-               h = h->history;
-       return h ? h : mb;
-}
-
-/* You can roll back the history to a specific marker. A NULL is
- * returned when the marker can not be found. */
-MalBlkPtr
-gotoMalBlkMarker(MalBlkPtr mb, str marker)
-{
-       MalBlkPtr h = mb, g;
-       while (h && h->marker && strcmp(h->marker, marker))
-               h = h->history;
-       if (h == NULL)
-               return NULL;                    /* marker not found */
-       while (h && h->marker && strcmp(h->marker, marker)) {
-               g = h;
-               h = h->history;
-               g->history = 0;
-               freeMalBlk(g);
-       }
-       return h;
-}
 
 /* The MalBlk structures potentially consume a lot a of space, because
  * it is not possible to precisely estimate the default sizes of the
diff --git a/monetdb5/mal/mal_instruction.h b/monetdb5/mal/mal_instruction.h
--- a/monetdb5/mal/mal_instruction.h
+++ b/monetdb5/mal/mal_instruction.h
@@ -131,10 +131,8 @@ mal_export void resizeMalBlk(MalBlkPtr m
 mal_export void prepareMalBlk(MalBlkPtr mb, str s);
 mal_export void freeMalBlk(MalBlkPtr mb);
 mal_export MalBlkPtr copyMalBlk(MalBlkPtr mb);
-mal_export void addtoMalBlkHistory(MalBlkPtr mb, str marker);
+mal_export void addtoMalBlkHistory(MalBlkPtr mb);
 mal_export MalBlkPtr getMalBlkHistory(MalBlkPtr mb, int idx);
-mal_export MalBlkPtr gotoMalBlkMarker(MalBlkPtr mb, str marker);
-mal_export MalBlkPtr getMalBlkMarker(MalBlkPtr mb, str marker);
 mal_export void expandMalBlk(MalBlkPtr mb, int lines);
 mal_export void trimMalBlk(MalBlkPtr mb);
 mal_export void trimMalVariables(MalBlkPtr mb, MalStkPtr stk);
diff --git a/monetdb5/mal/mal_listing.c b/monetdb5/mal/mal_listing.c
--- a/monetdb5/mal/mal_listing.c
+++ b/monetdb5/mal/mal_listing.c
@@ -581,10 +581,6 @@ printSignature(stream *fd, Symbol s, int
        } else GDKerror("printSignature"MAL_MALLOC_FAIL);
 }
 
-/*
- * For clarity we show the last optimizer applied
- * also as the last of the list, although it is linked with mb.
-*/
 void showMalBlkHistory(stream *out, MalBlkPtr mb)
 {
        MalBlkPtr m=mb;
@@ -606,13 +602,4 @@ void showMalBlkHistory(stream *out, MalB
                } 
                m= m->history;
        }
-       p=getInstrPtr(mb,mb->stop-1);
-       if( p->token == REMsymbol){
-               msg= instruction2str(mb, 0, p, FALSE);
-               if (msg) {
-                       mnstr_printf(out,"%s.%s[%2d] %s\n", 
-                               getModuleId(sig), getFunctionId(sig),j++,msg+3);
-                               GDKfree(msg);
-               }
-       }
 }
diff --git a/monetdb5/optimizer/opt_wrapper.c b/monetdb5/optimizer/opt_wrapper.c
--- a/monetdb5/optimizer/opt_wrapper.c
+++ b/monetdb5/optimizer/opt_wrapper.c
@@ -97,13 +97,14 @@ opt_export str OPTwrapper(Client cntxt, 
 #define OPTIMIZERDEBUG if (0) 
 
 str OPTwrapper (Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p){
-       str modnme = "(NONE)", curmodnme= NULL;
+       str modnme = "(NONE)";
        str fcnnme = 0;
        str msg= MAL_SUCCEED;
        Symbol s= NULL;
        lng t,clk= GDKusec();
        int i, actions = 0;
        char optimizer[256];
+       str curmodnme=0;
 
        if( p == NULL)
                throw(MAL, "opt_wrapper", "missing optimizer statement");
@@ -138,7 +139,7 @@ str OPTwrapper (Client cntxt, MalBlkPtr 
                removeInstruction(mb, p);
        if( mb->errors ){
                /* when we have errors, we still want to see them */
-               addtoMalBlkHistory(mb, curmodnme);
+               addtoMalBlkHistory(mb);
                return MAL_SUCCEED;
        }
 
@@ -161,7 +162,7 @@ str OPTwrapper (Client cntxt, MalBlkPtr 
                ((sizeof( MalBlkRecord) +mb->ssize * offsetof(InstrRecord, 
argv)+ mb->vtop * sizeof(int) /* argv estimate */ +mb->vtop* sizeof(VarRecord) 
+ mb->vsize*sizeof(VarPtr)+1023)/1024),
                t);
        QOTupdateStatistics(curmodnme,actions,t);
-       addtoMalBlkHistory(mb,curmodnme);
+       addtoMalBlkHistory(mb);
        return msg;
 }
 
diff --git a/monetdb5/optimizer/optimizer.c b/monetdb5/optimizer/optimizer.c
--- a/monetdb5/optimizer/optimizer.c
+++ b/monetdb5/optimizer/optimizer.c
@@ -87,7 +87,7 @@ QOToptimize(Client cntxt, MalBlkPtr mb, 
        if (s == NULL)
                throw(MAL, "optimizer.optimize", SEMANTIC_OPERATION_MISSING);
        removeInstruction(mb, pci);
-       addtoMalBlkHistory(s->def,"start optimizer");
+       addtoMalBlkHistory(s->def);
        return optimizeMALBlock(cntxt, s->def);
 }
 
diff --git a/monetdb5/scheduler/run_isolate.c b/monetdb5/scheduler/run_isolate.c
--- a/monetdb5/scheduler/run_isolate.c
+++ b/monetdb5/scheduler/run_isolate.c
@@ -38,7 +38,7 @@ RUNisolation(Client cntxt, MalBlkPtr mb,
 {
        (void) cntxt;
        (void) stk;
-       addtoMalBlkHistory(mb,"isolation");
+       addtoMalBlkHistory(mb);
        removeInstruction(mb, p);
        return MAL_SUCCEED;
 }
diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -699,7 +699,7 @@ static int
        pushInstruction(curBlk, p);
        pushEndInstruction(curBlk);
 
-       /* SQL function definitions meant f r inlineing should not be optimized 
before */
+       /* SQL function definitions meant for inlineing should not be optimized 
before */
        curBlk->inlineProp = 1;
        addQueryToCache(c);
        if (backup)
diff --git a/sql/backends/monet5/sql_optimizer.c 
b/sql/backends/monet5/sql_optimizer.c
--- a/sql/backends/monet5/sql_optimizer.c
+++ b/sql/backends/monet5/sql_optimizer.c
@@ -124,8 +124,11 @@ addOptimizers(Client c, MalBlkPtr mb, ch
                                q->token = REMsymbol;   /* they are ignored */
                }
        }
-       if (be->mvc->emod & mod_debug)
-               addtoMalBlkHistory(mb, "getStatistics");
+       if (be->mvc->emod & mod_debug){
+               addtoMalBlkHistory(mb);
+               c->curprg->def->keephistory = TRUE;
+       } else
+               c->curprg->def->keephistory = FALSE;
 }
 
 static str
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to