Update of /cvsroot/monetdb/MonetDB5/src/mal
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv17201/mal

Modified Files:
        mal_instruction.mx mal_parser.mx 
Log Message:
The code has been tested for robustness. The minimal size of the
instruction argument list was downgraded from 9 to 4. It uncovered
sloppyness in taking care of a possibly enlarged instruction.
The code in SQL code generation was properly done.

The look back for constants has been reduced a little (36->32 instructions)
without a major loss of opportunities.

The BMP, partitions and mergetable optimizer are still the focus
of further improvements. Mergetable optimizer first run indicates
about 60 test problems.



Index: mal_parser.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_parser.mx,v
retrieving revision 1.200
retrieving revision 1.201
diff -u -d -r1.200 -r1.201
--- mal_parser.mx       25 Jul 2007 10:49:13 -0000      1.200
+++ mal_parser.mx       17 Aug 2007 13:56:23 -0000      1.201
@@ -1445,7 +1445,7 @@
                advance(cntxt,1); /* skip ')' */
                if( curInstr->retc == 0){
                                /* add dummy variable */
-                               pushArgument(curBlk,curInstr, 
newTmpVariable(curBlk,TYPE_any));
+                               curInstr= pushArgument(curBlk,curInstr, 
newTmpVariable(curBlk,TYPE_any));
                                curInstr->retc++;
                }
        } else { 

Index: mal_instruction.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_instruction.mx,v
retrieving revision 1.282
retrieving revision 1.283
diff -u -d -r1.282 -r1.283
--- mal_instruction.mx  10 Jul 2007 11:14:11 -0000      1.282
+++ mal_instruction.mx  17 Aug 2007 13:56:23 -0000      1.283
@@ -302,7 +302,7 @@
 #endif
 
 #define DEBUG_MAL_INSTR
-#define MAXARG 9
+#define MAXARG 4
 #define STMT_INCREMENT 32
 #define STMT_MAXIMUM  1<<16
 #define MAXVARS 32
@@ -1752,7 +1752,7 @@
        return vr->vtype != type;
 }
 
-#define MAL_VAR_WINDOW  4*MAXARG
+#define MAL_VAR_WINDOW  32
 int
 fndConstant(MalBlkPtr mb, ValPtr cst)
 {
@@ -1834,10 +1834,12 @@
                pn = GDKmalloc(space + MAXARG * sizeof(int));
                memcpy((char *) pn, (char *) p, space);
                pn->maxarg = p->maxarg + MAXARG;
-               pc = getPC(mb, p);
-               if (pc >= 0)
+               /* most likely the last instruction is affected */
+               for(pc= mb->stop-1; pc >= 0; pc--)
+               if( mb->stmt[pc]== p){
                        mb->stmt[pc] = pn;
-
+                       break;
+               }
                GDKfree(p);
                p = pn;
        }


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins

Reply via email to