Changeset: a13b2b280255 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/a13b2b280255 Modified Files: monetdb5/mal/mal_instruction.c monetdb5/optimizer/opt_dict.c monetdb5/optimizer/opt_generator.c monetdb5/optimizer/opt_multiplex.c monetdb5/optimizer/opt_pushselect.c sql/backends/monet5/sql_statement.c Branch: Jan2022 Log Message:
Fix some MAL instructions. diffs (151 lines): diff --git a/monetdb5/mal/mal_instruction.c b/monetdb5/mal/mal_instruction.c --- a/monetdb5/mal/mal_instruction.c +++ b/monetdb5/mal/mal_instruction.c @@ -1265,10 +1265,10 @@ addArgument(MalBlkPtr mb, InstrPtr p, in if (p->argc == p->maxarg) { pn = extendInstruction(mb, p); #ifndef NDEBUG - if (p != pn) { - for (int i = mb->stop - 1; i >= 0; i--) - assert(mb->stmt[i] != p); - } + if (p != pn) { + for (int i = mb->stop - 1; i >= 0; i--) + assert(mb->stmt[i] != p); + } #endif p = pn; if (mb->errors) diff --git a/monetdb5/optimizer/opt_dict.c b/monetdb5/optimizer/opt_dict.c --- a/monetdb5/optimizer/opt_dict.c +++ b/monetdb5/optimizer/opt_dict.c @@ -126,26 +126,26 @@ OPTdictImplementation(Client cntxt, MalB InstrPtr r = newInstructionArgs(mb, dictRef, thetaselectRef, 6); getArg(r, 0) = getArg(p, 0); - addArgument(mb, r, varisdict[k]); - addArgument(mb, r, getArg(p, 2)); /* cand */ - addArgument(mb, r, vardictvalue[k]); - addArgument(mb, r, getArg(p, 3)); /* val */ - addArgument(mb, r, getArg(p, 4)); /* op */ + r = addArgument(mb, r, varisdict[k]); + r = addArgument(mb, r, getArg(p, 2)); /* cand */ + r = addArgument(mb, r, vardictvalue[k]); + r = addArgument(mb, r, getArg(p, 3)); /* val */ + r = addArgument(mb, r, getArg(p, 4)); /* op */ pushInstruction(mb,r); } else if (getFunctionId(p) == selectRef && p->argc == 9) { /* select (c, s, l, h, li, hi, anti, unknown ) */ InstrPtr r = newInstructionArgs(mb, dictRef, selectRef, 10); getArg(r, 0) = getArg(p, 0); - addArgument(mb, r, varisdict[k]); - addArgument(mb, r, getArg(p, 2)); /* cand */ - addArgument(mb, r, vardictvalue[k]); - addArgument(mb, r, getArg(p, 3)); /* l */ - addArgument(mb, r, getArg(p, 4)); /* h */ - addArgument(mb, r, getArg(p, 5)); /* li */ - addArgument(mb, r, getArg(p, 6)); /* hi */ - addArgument(mb, r, getArg(p, 7)); /* anti */ - addArgument(mb, r, getArg(p, 8)); /* unknown */ + r = addArgument(mb, r, varisdict[k]); + r = addArgument(mb, r, getArg(p, 2)); /* cand */ + r = addArgument(mb, r, vardictvalue[k]); + r = addArgument(mb, r, getArg(p, 3)); /* l */ + r = addArgument(mb, r, getArg(p, 4)); /* h */ + r = addArgument(mb, r, getArg(p, 5)); /* li */ + r = addArgument(mb, r, getArg(p, 6)); /* hi */ + r = addArgument(mb, r, getArg(p, 7)); /* anti */ + r = addArgument(mb, r, getArg(p, 8)); /* unknown */ pushInstruction(mb,r); } else { /* pos = select(col, cand, l, h, ...) with col = dict.decompress(o,u) @@ -164,13 +164,13 @@ OPTdictImplementation(Client cntxt, MalB int tpe = getVarType(mb, varisdict[k]); InstrPtr s = newInstructionArgs(mb, dictRef, putName("convert"), 3); getArg(s, 0) = newTmpVariable(mb, tpe); - addArgument(mb, s, getArg(r, 0)); + s = addArgument(mb, s, getArg(r, 0)); pushInstruction(mb,s); InstrPtr t = newInstructionArgs(mb, algebraRef, intersectRef, 9); getArg(t, 0) = getArg(p, 0); - addArgument(mb, t, varisdict[k]); - addArgument(mb, t, getArg(s, 0)); + t = addArgument(mb, t, varisdict[k]); + t = addArgument(mb, t, getArg(s, 0)); if (has_cand) t = addArgument(mb, t, getArg(p, 2)); else diff --git a/monetdb5/optimizer/opt_generator.c b/monetdb5/optimizer/opt_generator.c --- a/monetdb5/optimizer/opt_generator.c +++ b/monetdb5/optimizer/opt_generator.c @@ -32,20 +32,20 @@ pushInstruction(mb,P); p->argc = p->retc;\ q= newInstruction(0,calcRef, TPE##Ref);\ setDestVar(q, newTmpVariable(mb, TYPE_##TPE));\ - addArgument(mb,q,getArg(series[k],1));\ + q = addArgument(mb,q,getArg(series[k],1));\ typeChecker(cntxt->usermodule, mb, q, 0, TRUE);\ p = addArgument(mb,p, getArg(q,0));\ pushInstruction(mb,q);\ q= newInstruction(0,calcRef,TPE##Ref);\ setDestVar(q, newTmpVariable(mb, TYPE_##TPE));\ - addArgument(mb,q,getArg(series[k],2));\ + q = addArgument(mb,q,getArg(series[k],2));\ pushInstruction(mb,q);\ typeChecker(cntxt->usermodule, mb, q, 0, TRUE);\ p = addArgument(mb,p, getArg(q,0));\ if( p->argc == 4){\ q= newInstruction(0,calcRef,TPE##Ref);\ setDestVar(q, newTmpVariable(mb, TYPE_##TPE));\ - addArgument(mb,q,getArg(series[k],3));\ + q = addArgument(mb,q,getArg(series[k],3));\ typeChecker(cntxt->usermodule, mb, q, 0, TRUE);\ p = addArgument(mb,p, getArg(q,0));\ pushInstruction(mb,q);\ diff --git a/monetdb5/optimizer/opt_multiplex.c b/monetdb5/optimizer/opt_multiplex.c --- a/monetdb5/optimizer/opt_multiplex.c +++ b/monetdb5/optimizer/opt_multiplex.c @@ -96,7 +96,7 @@ OPTexpandMultiplex(Client cntxt, MalBlkP /* resB := new(refBat) */ for (i = 0; i < pci->retc; i++) { - q = newFcnCallArgs(mb, batRef, newRef, 2); + q = newFcnCallArgs(mb, batRef, newRef, 3); resB[i] = getArg(q, 0); tt = getBatType(getArgType(mb, pci, i)); diff --git a/monetdb5/optimizer/opt_pushselect.c b/monetdb5/optimizer/opt_pushselect.c --- a/monetdb5/optimizer/opt_pushselect.c +++ b/monetdb5/optimizer/opt_pushselect.c @@ -646,7 +646,7 @@ OPTpushselectImplementation(Client cntxt } q = newAssignment(mb); getArg(q, 0) = getArg(p, 0); - (void) addArgument(mb, q, getArg(p, 2)); + q = addArgument(mb, q, getArg(p, 2)); if (nvars[getArg(p, 2)] > 0) getArg(q, 1) = nvars[getArg(p, 2)]; oclean[i] = 1; diff --git a/sql/backends/monet5/sql_statement.c b/sql/backends/monet5/sql_statement.c --- a/sql/backends/monet5/sql_statement.c +++ b/sql/backends/monet5/sql_statement.c @@ -3009,7 +3009,7 @@ stmt_dependency_change(backend *be, sql_ if (!t || cnt->nr < 0) return NULL; - q = newStmtArgs(mb, sqlRef, putName("depend"), 3); + q = newStmtArgs(mb, sqlRef, putName("depend"), 4); q = pushSchema(mb, q, t); q = pushStr(mb, q, t->base.name); q = pushArgument(mb, q, cnt->nr); @@ -3036,7 +3036,7 @@ stmt_column_predicate(backend *be, sql_c if (!c) return NULL; - q = newStmtArgs(mb, sqlRef, putName("predicate"), 3); + q = newStmtArgs(mb, sqlRef, putName("predicate"), 4); q = pushSchema(mb, q, c->t); q = pushStr(mb, q, c->t->base.name); q = pushStr(mb, q, c->base.name); _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org