Changeset: 707fc416d7bf for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=707fc416d7bf Modified Files: monetdb5/optimizer/opt_datavaults.c Branch: data-vaults Log Message:
Make the optimizer generic and handle the readerID diffs (74 lines): diff --git a/monetdb5/optimizer/opt_datavaults.c b/monetdb5/optimizer/opt_datavaults.c --- a/monetdb5/optimizer/opt_datavaults.c +++ b/monetdb5/optimizer/opt_datavaults.c @@ -45,7 +45,7 @@ checkTable(int *res, int *action, MalBlk for(i = 0; i < num_tabs; i++) { if ( tabs[i]->sname && (strcmp(tabs[i]->sname, sname) == 0) && (strcmp(tabs[i]->tname, tname) == 0)) { r = newInstruction(mb,ASSIGNsymbol); - setModuleId(r, datavaultsRef); + setModuleId(r, vaultRef); setFunctionId(r, getFunctionId(p)); getArg(r,0) = getArg(p,0); for (j = 1; j < p->retc; j++) { @@ -64,26 +64,29 @@ checkTable(int *res, int *action, MalBlk } c = newInstruction(mb,ASSIGNsymbol); - setModuleId(c, datavaultsRef); + setModuleId(c, vaultRef); setFunctionId(c, checktableRef); getArg(c,0) = newTmpVariable(mb, TYPE_int); + setVarFixed(mb,getArg(c,0)); + c = pushArgument(mb, c, newTmpVariable(mb, TYPE_int)); c = pushArgument(mb, c, getArg(p,1+upd)); c = pushArgument(mb, c, getArg(p,3+upd)); - c->retc = 1; + c->retc = 2; + c->argc = 4; pushInstruction(mb,c); a = newInstruction(mb,ASSIGNsymbol); - setModuleId(a, datavaultsRef); + setModuleId(a, vaultRef); setFunctionId(a, analyzetableRef); getArg(a,0) = newTmpVariable(mb, TYPE_int); - a = pushArgument(mb, a, getArg(p,1+upd)); a = pushArgument(mb, a, getArg(c,0)); + a = pushArgument(mb, a, getArg(c,1)); a = pushArgument(mb, a, getArg(p,3+upd)); a->retc = 1; pushInstruction(mb,a); r = newInstruction(mb,ASSIGNsymbol); - setModuleId(r, datavaultsRef); + setModuleId(r, vaultRef); setFunctionId(r, getFunctionId(p)); getArg(r,0) = getArg(p,0); for (j = 1; j < p->retc; j++) { @@ -94,7 +97,7 @@ checkTable(int *res, int *action, MalBlk r = pushArgument(mb, r, getArg(p,j)); } //r->retc = p->retc; - printf("R argc %d p argx %d \n", r->argc, p->argc); + printf("R argc %d p argc %d \n", r->argc, p->argc); pushInstruction(mb,r); /*Add info about the table*/ @@ -153,12 +156,16 @@ OPTdatavaultsImplementation(Client cntxt if (tabs) { for (i = 0; i < num_tabs; i++) { - if (tabs[i]) + if (tabs[i]) { + GDKfree(tabs[i]->sname); + GDKfree(tabs[i]->tname); GDKfree(tabs[i]); + } } GDKfree(tabs); } + #ifdef DEBUG_OPT_DATAVAULTS if (0 && action) { mnstr_printf(cntxt->fdout, "datavaults %d\n", action); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list