Martin Kersten wrote:
> Update of /cvsroot/monetdb/MonetDB5/src/optimizer
> In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv32362
> 
> Modified Files:
>       opt_history.mx 
> Log Message:
> Added the missing information.
> 
> 
> U opt_history.mx
> Index: opt_history.mx
> ===================================================================
> RCS file: /cvsroot/monetdb/MonetDB5/src/optimizer/opt_history.mx,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -d -r1.1 -r1.2
> --- opt_history.mx    3 Nov 2008 06:35:34 -0000       1.1
> +++ opt_history.mx    3 Nov 2008 12:36:44 -0000       1.2
> @@ -32,7 +32,7 @@
>  time you use the history without initialization.
>  The keepcall can be used to check for initialization of the cache.
>  @mal
> -module user;
> +module sql;
>  function keepquery{unsafe}(qid:int,qry:str,parse:lng,optimize:lng):void;
>       raise SQLexception:= "SQL history script should be run first";
>  end keepquery;
> @@ -44,6 +44,10 @@
>  function queryId{unsafe}(qid:int):void;
>  end queryId;
>  
> +pattern forgetPrevious():void
> +address OPTforgetPrevious
> +comment "invalidate the previous instruction from future execution";
> +
>  pattern optimizer.history():str
>  address OPThistory;
>  pattern optimizer.history(mod:str, fcn:str):str
> @@ -61,6 +65,7 @@
>  #include "mal_instruction.h"
>  #include "mal_function.h"
>  
> +opt_export str OPTforgetPrevious(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
> InstrPtr pci);
>  /* #define _DEBUG_OPT_QUERYHISTORY_      trace its behavior */
>  
>  @-
> @@ -79,12 +84,23 @@
>  @c
>  #include "opt_history.h"
>  
> +str 
> +OPTforgetPrevious(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci){
> +     int pc;
> +     (void) cntxt;
> +     (void) stk;
> +     pc= getPC(mb,pci);
> +     assert ( pc > 0 && pc < mb->stop);
> +     mb->stmt[pc-1]->token = REMsymbol;
> +     return MAL_SUCCEED;
> +}
> +
>  static int 
>  OPThistoryImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
> pci)
>  {
>       int i, limit,slimit;
>       InstrPtr p=0, *old= mb->stmt, q,r;
> -     int qid, argc, elaps, inblock, oublock, arg, ctime;
> +     int qid=0, argc, elaps, inblock, oublock, arg, ctime;
>       int returnseen=0;
>  
>  
> @@ -97,6 +113,17 @@
>  #else
>       (void) cntxt;
>  #endif
> +     if ( findSymbol(userRef,"keepQuery") == 0){
> +             /* initialization script has not been ran */
> +             return 0;
> +     }
> +     /* gather information  and recast the call handel*/
> +     for (i = 1; i < limit; i++) {
Using limit here and...

> +             p= getInstrPtr(mb,i);
> +             if ( getModuleId(p)== sqlRef && 
> idcmp(getFunctionId(p),"queryId")==0){
> +                     qid= getArg(p,1);
> +             }
> +     }
>  
>       limit= mb->stop;

You initialize it here :S

Romulo
>       slimit= mb->ssize;
> @@ -109,6 +136,11 @@
>       for (i = 1; i < limit; i++) {
>               p= old[i];
>               
> +             if ( getModuleId(p)== sqlRef && 
> idcmp(getFunctionId(p),"keepQuery")==0){
> +                     getModuleId(p) = userRef;
> +                     pushInstruction(mb,p);
> +                     q= newStmt(mb,sqlRef,"forgetPrevious");
> +             }
>               if ( p->token== ENDsymbol || p->barrier == RETURNsymbol || 
> p->barrier == YIELDsymbol){
>                       if (returnseen && p->token == ENDsymbol) {
>                               pushInstruction(mb,p);
> 
> 
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Monetdb-checkins mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/monetdb-checkins


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Monetdb-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-developers

Reply via email to