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

Reply via email to