Update of /cvsroot/monetdb/sql/src/backends/monet5
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv26024/src/backends/monet5

Modified Files:
        sql.mx 
Log Message:
propagated changes of Sunday Nov 15 2009
from the Nov2009 branch to the development trunk

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2009/11/15 - mlkersten: src/backends/monet5/sql.mx,1.358.2.11
  Move the validation of the optimizer pipeline to the assignment itself,
  rather then checking them on the first call.
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2009/11/15 - mlkersten: src/backends/monet5/sql.mx,1.358.2.12
  Avoid double error messages.
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2009/11/15 - nielsnes: src/backends/monet5/sql.mx,1.358.2.13
  fixed order by on grp_rank
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Index: sql.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet5/sql.mx,v
retrieving revision 1.368
retrieving revision 1.369
diff -u -d -r1.368 -r1.369
--- sql.mx      8 Nov 2009 23:56:56 -0000       1.368
+++ sql.mx      15 Nov 2009 22:54:34 -0000      1.369
@@ -719,8 +719,17 @@
 address ALGexist;
 
 function batcalc.mark_grp{inline}( b:bat[:oid,:any_1], a:bat[:any_2,:any_3], 
g:bat[:oid,:oid]) :bat[:oid,:int]; 
-       x := algebra.mark_grp(a,g,1:oid);
-       return mark_grp:= batcalc.int(x);
+       # order based on b
+       bm := algebra.markT(b,0:oid);
+       mb := bat.reverse(bm);
+       ma := algebra.leftfetchjoin(mb, a);
+       aa := bat.mirror(a);
+       maa := algebra.leftfetchjoin(mb, aa);
+       x := algebra.mark_grp(ma,g,1:oid);
+       mg := batcalc.int(x);
+       # restore the order based on a 
+       aam := bat.reverse(maa);
+       return mark_grp := algebra.leftfetchjoin(aam, mg);
 end batcalc.mark_grp;
 
 function batcalc.mark_grp{inline}( b:bat[:oid,:any_1] ) :bat[:oid,:int]; 
@@ -1163,6 +1172,7 @@
 #include <sql_storage.h>
 #include <sql_scenario.h>
 #include <store_sequence.h>
+#include <sql_optimizer.h>
 #include <sql_datetime.h>
 #include <rel_optimizer.h>
 #include <rel_select.h>
@@ -1398,6 +1408,16 @@
 
        if (mtype < 0 || mtype >= 255)
                throw(SQL, "sql.setVariable", "failed");
+       if ( strcmp("optimizer",  varname)== 0) {
+               msg = setOptimizers(*(str *) getArgReference(stk,pci,2));
+               if ( msg != NULL &&  strcmp(msg,"default_pipe") == 0 && 
strcmp(msg,varname))
+                       return MAL_SUCCEED;
+               msg = SQLvalidatePipeline();
+               if ( msg ){
+                       setOptimizers("default_pipe");
+                       return msg;
+               }
+       }
        src = &stk->stk[getArg(pci, 2)];
        if (stack_find_var(m, varname)) {
                stack_set_var(m, varname, src);


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins

Reply via email to