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 -- [email protected]
To unsubscribe send an email to [email protected]