Changeset: da0fb863ad36 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/da0fb863ad36
Modified Files:
        monetdb5/mal/mal_prelude.c
Branch: default
Log Message:

Merge with Jun2023 branch.


diffs (truncated from 650 to 300 lines):

diff --git a/monetdb5/extras/mal_optimizer_template/opt_sql_append.c 
b/monetdb5/extras/mal_optimizer_template/opt_sql_append.c
--- a/monetdb5/extras/mal_optimizer_template/opt_sql_append.c
+++ b/monetdb5/extras/mal_optimizer_template/opt_sql_append.c
@@ -192,13 +192,12 @@ OPTsql_appendImplementation(Client cntxt
                                /* use mal_builder.h primitives
                                 * q1 = newStmt(mb, algebraRef,sliceRef); */
                                q2 = newInstruction(mb,algebraRef, sliceRef);
-                               if (q1 == NULL || q2 == NULL) {
+                               if (q1 == NULL || q2 == NULL || (getArg(q2,0) = 
newTmpVariable(mb, TYPE_any)) < 0) {
                                        freeInstruction(q1);
                                        freeInstruction(q2);
                                        i--;
                                        break;
                                }
-                               getArg(q2,0) = newTmpVariable(mb, TYPE_any);
                                q2 = pushArgument(mb, q2, getArg(p, 5));
                                q2 = pushLng(mb, q2, 0);
                                q2 = pushArgument(mb, q2, getArg(q1, 0));
diff --git a/monetdb5/mal/mal_builder.c b/monetdb5/mal/mal_builder.c
--- a/monetdb5/mal/mal_builder.c
+++ b/monetdb5/mal/mal_builder.c
@@ -36,10 +36,10 @@ newAssignmentArgs(MalBlkPtr mb, int args
                str msg = createException(MAL, "newAssignment", "Can not 
allocate variable");
                addMalException(mb, msg);
                freeException(msg);
-               GDKfree(q);
+               freeInstruction(q);
                return NULL;
-       } else
-               getArg(q,0) =  k;
+       }
+       getArg(q, 0) = k;
        return q;
 }
 
@@ -61,16 +61,19 @@ newStmtArgs(MalBlkPtr mb, const char *mo
        InstrPtr q;
        const char *mName = putName(module), *nName = putName(name);
 
+       if (mName == NULL || nName == NULL)
+               return NULL;
+
        q = newInstructionArgs(mb, mName, nName, args);
        if (q == NULL)
                return NULL;
 
        setDestVar(q, newTmpVariable(mb, TYPE_any));
-       if (getDestVar(q) < 0 || mb->errors != MAL_SUCCEED) {
+       if (getDestVar(q) < 0) {
                str msg = createException(MAL, "newStmtArgs", "Can not allocate 
variable");
                addMalException(mb, msg);
                freeException(msg);
-               GDKfree(q);
+               freeInstruction(q);
                return NULL;
        }
        return q;
@@ -79,33 +82,25 @@ newStmtArgs(MalBlkPtr mb, const char *mo
 InstrPtr
 newReturnStmt(MalBlkPtr mb)
 {
-       InstrPtr q = newInstruction(mb, NULL, NULL);
-       int k;
+       InstrPtr q = newAssignment(mb);
 
-       if (q == NULL)
-               return NULL;
-       k = newTmpVariable(mb,TYPE_any);
-       if (k < 0 ){
-               str msg = createException(MAL, "newReturnStmt", "Can not 
allocate return variable");
-               addMalException(mb, msg);
-               freeException(msg);
-               GDKfree(q);
-               return NULL;
-       } else
-               getArg(q,0) = k;
-       q->barrier= RETURNsymbol;
+       if (q != NULL)
+               q->barrier = RETURNsymbol;
        return q;
 }
 
 InstrPtr
 newFcnCallArgs(MalBlkPtr mb, const char *mod, const char *fcn, int args)
 {
+       const char *fcnName, *modName;
+       modName = putName(mod);
+       fcnName = putName(fcn);
+       if (modName == NULL || fcnName == NULL)
+               return NULL;
+
        InstrPtr q = newAssignmentArgs(mb, args);
-       const char *fcnName, *modName;
 
        if (q != NULL) {
-               modName = putName(mod);
-               fcnName = putName(fcn);
                setModuleId(q, modName);
                setFunctionId(q, fcnName);
        }
@@ -133,18 +128,17 @@ newComment(MalBlkPtr mb, const char *val
                str msg = createException(MAL, "newComment", "Can not allocate 
comment");
                addMalException(mb, msg);
                freeException(msg);
-               GDKfree(q);
+               freeInstruction(q);
                return NULL;
-       } else {
-               k = defConstant(mb, TYPE_str, &cst);
-               if (k < 0) {
-                       GDKfree(q);
-                       return NULL;
-               }
-               getArg(q,0) = k;
-               clrVarConstant(mb,getArg(q,0));
-               setVarDisabled(mb,getArg(q,0));
        }
+       k = defConstant(mb, TYPE_str, &cst);
+       if (k < 0) {
+               freeInstruction(q);
+               return NULL;
+       }
+       getArg(q, 0) = k;
+       clrVarConstant(mb, getArg(q, 0));
+       setVarDisabled(mb, getArg(q, 0));
        return q;
 }
 
@@ -152,24 +146,22 @@ InstrPtr
 newCatchStmt(MalBlkPtr mb, const char *nme)
 {
        InstrPtr q = newAssignment(mb);
-       int i= findVariable(mb,nme);
-       int k;
+       int i = findVariable(mb, nme);
 
        if (q == NULL)
                return NULL;
        q->barrier = CATCHsymbol;
-       if ( i< 0) {
-               k = newVariable(mb, nme, strlen(nme),TYPE_str);
-               if (k<0){
+       if (i < 0) {
+               i = newVariable(mb, nme, strlen(nme), TYPE_str);
+               if (i < 0) {
                        str msg = createException(MAL, "newCatchStmt", "Can not 
allocate variable");
                        addMalException(mb, msg);
                        freeException(msg);
-                       GDKfree(q);
+                       freeInstruction(q);
                        return NULL;
-               }else{
-                       getArg(q,0) = k;
                }
-       } else getArg(q,0) = i;
+       }
+       getArg(q, 0) = i;
        return q;
 }
 
@@ -177,24 +169,22 @@ InstrPtr
 newRaiseStmt(MalBlkPtr mb, const char *nme)
 {
        InstrPtr q = newAssignment(mb);
-       int i= findVariable(mb,nme);
-       int k;
+       int i = findVariable(mb, nme);
 
        if (q == NULL)
                return NULL;
        q->barrier = RAISEsymbol;
-       if ( i< 0) {
-               k = newVariable(mb, nme, strlen(nme),TYPE_str);
-               if (k< 0 || mb->errors != MAL_SUCCEED) {
+       if (i < 0) {
+               i = newVariable(mb, nme, strlen(nme), TYPE_str);
+               if (i < 0) {
                        str msg = createException(MAL, "newRaiseStmt", "Can not 
allocate variable");
                        addMalException(mb, msg);
                        freeException(msg);
-                       GDKfree(q);
+                       freeInstruction(q);
                        return NULL;
-               } else
-                       getArg(q,0) = k;
-       } else
-               getArg(q,0) = i;
+               }
+       }
+       getArg(q, 0) = i;
        return q;
 }
 
@@ -202,24 +192,22 @@ InstrPtr
 newExitStmt(MalBlkPtr mb, const char *nme)
 {
        InstrPtr q = newAssignment(mb);
-       int i= findVariable(mb,nme);
-       int k;
+       int i = findVariable(mb, nme);
 
        if (q == NULL)
                return NULL;
        q->barrier = EXITsymbol;
-       if ( i< 0) {
-               k= newVariable(mb, nme,strlen(nme),TYPE_str);
-               if (k < 0 ){
+       if (i < 0) {
+               i = newVariable(mb, nme, strlen(nme), TYPE_str);
+               if (i < 0) {
                        str msg = createException(MAL, "newExitStmt", "Can not 
allocate variable");
                        addMalException(mb, msg);
                        freeException(msg);
-                       GDKfree(q);
+                       freeInstruction(q);
                        return NULL;
-               }else
-                       getArg(q,0) = k;
-       } else
-               getArg(q,0) = i;
+               }
+       }
+       getArg(q, 0) = i;
        return q;
 }
 
@@ -283,7 +271,6 @@ getBteConstant(MalBlkPtr mb, bte val)
        _t= fndConstant(mb, &cst, MAL_VAR_WINDOW);
        if( _t < 0)
                _t = defConstant(mb, TYPE_bte, &cst);
-       assert(_t >= 0);
        return _t;
 }
 
@@ -316,7 +303,6 @@ getOidConstant(MalBlkPtr mb, oid val)
        _t= fndConstant(mb, &cst, MAL_VAR_WINDOW);
        if( _t < 0)
                _t = defConstant(mb, TYPE_oid, &cst);
-       assert(_t >= 0);
        return _t;
 }
 
@@ -366,7 +352,6 @@ getLngConstant(MalBlkPtr mb, lng val)
        _t= fndConstant(mb, &cst, MAL_VAR_WINDOW);
        if( _t < 0)
                _t = defConstant(mb, TYPE_lng, &cst);
-       assert(_t >= 0);
        return _t;
 }
 
@@ -399,7 +384,6 @@ getShtConstant(MalBlkPtr mb, sht val)
        _t= fndConstant(mb, &cst, MAL_VAR_WINDOW);
        if( _t < 0)
                _t = defConstant(mb, TYPE_sht, &cst);
-       assert(_t >=0);
        return _t;
 }
 
@@ -433,7 +417,6 @@ getHgeConstant(MalBlkPtr mb, hge val)
        _t= fndConstant(mb, &cst, MAL_VAR_WINDOW);
        if( _t < 0)
                _t = defConstant(mb, TYPE_hge, &cst);
-       assert(_t >= 0);
        return _t;
 }
 
@@ -467,7 +450,6 @@ getDblConstant(MalBlkPtr mb, dbl val)
        _t= fndConstant(mb, &cst, MAL_VAR_WINDOW);
        if( _t < 0)
                _t = defConstant(mb, TYPE_dbl, &cst);
-       assert(_t >= 0);
        return _t;
 }
 
@@ -500,7 +482,6 @@ getFltConstant(MalBlkPtr mb, flt val)
        _t= fndConstant(mb, &cst, MAL_VAR_WINDOW);
        if( _t < 0)
                _t = defConstant(mb, TYPE_flt, &cst);
-       assert(_t >= 0);
        return _t;
 }
 
@@ -570,7 +551,6 @@ getBitConstant(MalBlkPtr mb, bit val)
        _t= fndConstant(mb, &cst, MAL_VAR_WINDOW);
        if( _t < 0)
                _t = defConstant(mb, TYPE_bit, &cst);
-       assert(_t >= 0);
        return _t;
 }
 
diff --git a/monetdb5/mal/mal_exception.c b/monetdb5/mal/mal_exception.c
--- a/monetdb5/mal/mal_exception.c
+++ b/monetdb5/mal/mal_exception.c
@@ -59,11 +59,13 @@ dupError(const char *err)
 char *
 concatErrors(char *err1, const char *err2)
 {
-       size_t len = strlen(err1) + strlen(err2) + 1;
+       size_t len = strlen(err1);
+       bool addnl = err1[len - 1] != '\n';
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to