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 checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list