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