Changeset: 5b2be530b215 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5b2be530b215
Modified Files:
MonetDB5/src/optimizer/opt_prelude.mx
Branch: default
Log Message:
Merge with Oct2010 branch.
diffs (97 lines):
diff -r 262dcfd586a9 -r 5b2be530b215 MonetDB5/src/optimizer/opt_mergetable.mx
--- a/MonetDB5/src/optimizer/opt_mergetable.mx Thu Oct 28 15:33:06 2010 +0200
+++ b/MonetDB5/src/optimizer/opt_mergetable.mx Thu Oct 28 17:01:27 2010 +0200
@@ -431,7 +431,7 @@
return r;
}
-static InstrPtr
+static int
MATpackAll2(MalBlkPtr mb, InstrPtr mi, mat_t *mat, int m, int *mtop)
{
InstrPtr r = NULL;
@@ -441,6 +441,9 @@
printInstruction(GDKout, mb, 0, mat[m].mi, LIST_MAL_ALL);
}
if (mat[m].type == mat_none || mat_is_topn(mat[m].type) ||
mat_is_orderby(mat[m].type)) {
+ if ((mat_is_topn(mat[m].type) || mat_is_orderby(mat[m].type)) &&
+ !mat[m].mm)
+ return -1;
r = mat_pack_mat(mb, mi, mat, m, mtop);
pushInstruction(mb,r);
MATshift(mat,m,mtop);
@@ -452,10 +455,9 @@
getArg(r, 0) = mat[m].mv;
getArg(r, 1) = mat[m].mv1;
}
- return r;
+ return 0;
}
-
static int
pack_all_mats(mat_t *mat, int mtop, MalBlkPtr mb )
{
@@ -2040,6 +2042,15 @@
mtop = mat_add(mat, mtop, p, NULL, mat_none);
continue;
}
+
+ if (getModuleId(p) == batcalcRef &&
+ (getFunctionId(p) == mark_grpRef ||
+ getFunctionId(p) == dense_rank_grpRef)) {
+ /* Mergetable cannot handle
+ order related batcalc operations */
+ error++;
+ goto fail;
+ }
@-
If the instruction does not contain MAT references it can simply be added.
Otherwise we have to decide on either packing them or replacement.
@@ -2355,7 +2366,6 @@
OPTDEBUGmergetable mnstr_printf(GDKout, "# %s.%s\n",
getModuleId(p), getFunctionId(p));
-
if (getFunctionId(p) == mirrorRef &&
mat[m].type == mat_grp/* && mat[m].mm */) {
assert(mat[m].mm != NULL);
@@ -2391,7 +2401,10 @@
for (k = p->retc; k<p->argc; k++) {
if((m=isMATalias(getArg(p,k), mat, mtop)) >= 0){
- MATpackAll2(mb, NULL, mat, m, &mtop);
+ if (MATpackAll2(mb, NULL, mat, m, &mtop) < 0){
+ error++;
+ goto fail;
+ }
actions++;
}
}
diff -r 262dcfd586a9 -r 5b2be530b215 MonetDB5/src/optimizer/opt_prelude.mx
--- a/MonetDB5/src/optimizer/opt_prelude.mx Thu Oct 28 15:33:06 2010 +0200
+++ b/MonetDB5/src/optimizer/opt_prelude.mx Thu Oct 28 17:01:27 2010 +0200
@@ -116,6 +116,7 @@
opt_export str markHRef;
opt_export str markTRef;
opt_export str mark_grpRef;
+opt_export str dense_rank_grpRef;
opt_export str materializeRef;
opt_export str matRef;
opt_export str max_no_nilRef;
@@ -325,6 +326,7 @@
str markHRef;
str markTRef;
str mark_grpRef;
+str dense_rank_grpRef;
str materializeRef;
str matRef;
str max_no_nilRef;
@@ -530,6 +532,7 @@
markHRef = putName("markH", 5);
markTRef = putName("markT", 5);
mark_grpRef = putName("mark_grp", 8);
+ dense_rank_grpRef = putName("dense_rank_grp", 14);
materializeRef = putName("materialize", 11);
matRef = putName("mat", 3);
max_no_nilRef = putName("max_no_nil", 10);
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list