Changeset: 9d67371551f3 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9d67371551f3
Modified Files:
monetdb5/optimizer/opt_mergetable.c
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/multiple_servers.SF-914113.MIL.bat
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/monet_daemon.SF-623743.bat
monetdb5/tests/BugsViaSourgeforce/Tests/ID.905495s.bat
Branch: default
Log Message:
merged with feb2013
diffs (75 lines):
diff --git a/monetdb5/optimizer/opt_mergetable.c
b/monetdb5/optimizer/opt_mergetable.c
--- a/monetdb5/optimizer/opt_mergetable.c
+++ b/monetdb5/optimizer/opt_mergetable.c
@@ -255,14 +255,18 @@ mat_delta(MalBlkPtr mb, InstrPtr p, mat_
static InstrPtr
-mat_apply1(MalBlkPtr mb, InstrPtr p, mat_t *mat, int m, int var)
+mat_apply1(MalBlkPtr mb, InstrPtr p, mat_t *mat, int mtop, int m, int var)
{
int tpe, k, is_select = isSubSelect(p), is_mirror = (getFunctionId(p)
== mirrorRef);
int is_identity = (getFunctionId(p) == identityRef && getModuleId(p) ==
batcalcRef);
- int ident_var = 0;
+ int ident_var = 0, is_assign = (getFunctionId(p) == NULL), n;
InstrPtr r = NULL, q;
- //printf("# %s.%s(%d)", getModuleId(p), getFunctionId(p), m);
+ /* Find the mat we overwrite */
+ if (is_assign) {
+ n = is_a_mat(getArg(p, 0), mat, mtop);
+ is_assign = (n >= 0);
+ }
r = newInstruction(mb, ASSIGNsymbol);
setModuleId(r,matRef);
@@ -282,7 +286,10 @@ mat_apply1(MalBlkPtr mb, InstrPtr p, mat
for(k=1; k < mat[m].mi->argc; k++) {
q = copyInstruction(p);
- getArg(q, 0) = newTmpVariable(mb, tpe);
+ if (is_assign)
+ getArg(q, 0) = getArg(mat[n].mi, k);
+ else
+ getArg(q, 0) = newTmpVariable(mb, tpe);
if (is_identity)
getArg(q, 1) = newTmpVariable(mb, TYPE_oid);
getArg(q, var+is_identity) = getArg(mat[m].mi, k);
@@ -1641,7 +1648,7 @@ OPTmergetableImplementation(Client cntxt
if (match == 1 && bats == 1 && (isFragmentGroup(p) ||
isMapOp(p) ||
(!getModuleId(p) && !getFunctionId(p) && p->barrier == 0 /*
simple assignment */)) && p->retc != 2 &&
(m=is_a_mat(getArg(p,fm), mat, mtop)) >= 0){
- if ((r = mat_apply1(mb, p, mat, m, fm)) != NULL)
+ if ((r = mat_apply1(mb, p, mat, mtop, m, fm)) != NULL)
mtop = mat_add(mat, mtop, r, mat_type(mat, m),
getFunctionId(p));
actions++;
continue;
diff --git
a/monetdb5/tests/BugDay_2005-10-06_4.8/Tests/multiple_servers.SF-914113.MIL.bat
b/monetdb5/tests/BugDay_2005-10-06_4.8/Tests/multiple_servers.SF-914113.MIL.bat
---
a/monetdb5/tests/BugDay_2005-10-06_4.8/Tests/multiple_servers.SF-914113.MIL.bat
+++
b/monetdb5/tests/BugDay_2005-10-06_4.8/Tests/multiple_servers.SF-914113.MIL.bat
@@ -1,1 +1,1 @@
-@call %MSERVER% --dbpath=%GDK_DBFARM%\%TSTDB%
+@call %MSERVER% "--dbpath=%GDK_DBFARM%\%TSTDB%"
diff --git
a/monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/monet_daemon.SF-623743.bat
b/monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/monet_daemon.SF-623743.bat
--- a/monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/monet_daemon.SF-623743.bat
+++ b/monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/monet_daemon.SF-623743.bat
@@ -4,5 +4,5 @@
@set NAME=%1
echo "%MSERVER% --dbpath=%GDK_DBFARM%\$TSTDB --set monet_daemon=yes"
-%MSERVER% --dbpath=%GDK_DBFARM%\%TSTDB% --set monet_daemon=yes"
+%MSERVER% "--dbpath=%GDK_DBFARM%\%TSTDB%" --set monet_daemon=yes"
diff --git a/monetdb5/tests/BugsViaSourgeforce/Tests/ID.905495s.bat
b/monetdb5/tests/BugsViaSourgeforce/Tests/ID.905495s.bat
--- a/monetdb5/tests/BugsViaSourgeforce/Tests/ID.905495s.bat
+++ b/monetdb5/tests/BugsViaSourgeforce/Tests/ID.905495s.bat
@@ -5,7 +5,7 @@ set NAME=%1
prompt # $t $g
echo on
-call %MSERVER% --dbpath=%GDK_DBFARM%\%TSTDB% %NAME%.mal
+call %MSERVER% "--dbpath=%GDK_DBFARM%\%TSTDB%" %NAME%.mal
-call %MSERVER% --dbpath=%GDK_DBFARM%\%TSTDB% < %NAME%.mal
+call %MSERVER% "--dbpath=%GDK_DBFARM%\%TSTDB%" < %NAME%.mal
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list