Changeset: b49c4150fd9a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b49c4150fd9a
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        gdk/gdk_value.c
        monetdb5/extras/rapi/rapi.c
        monetdb5/modules/atoms/json.c
        monetdb5/modules/mal/Tests/inspect00.stable.out
        monetdb5/modules/mal/batcalc.c
        monetdb5/modules/mal/mdb.mal
Branch: default
Log Message:

Fixes to make sure actual results of calls match expected results.


diffs (truncated from 303 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -39090,7 +39090,7 @@ pattern mdb.getDefinition():bat[:oid,:st
 address MDBgetDefinition;
 comment Returns a string representation of the current function        with 
typing information attached
 
-pattern mdb.getStackTrace() (X_1:bat[:oid,:str],X_2:bat[:oid,:str]) 
+pattern mdb.getStackTrace() (X_1:bat[:oid,:int],X_2:bat[:oid,:str]) 
 address MDBStkTrace;
 pattern mdb.getStackFrame() (X_1:bat[:oid,:str],X_2:bat[:oid,:str]) 
 address MDBgetStackFrame;
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -50021,7 +50021,7 @@ pattern mdb.getDefinition():bat[:oid,:st
 address MDBgetDefinition;
 comment Returns a string representation of the current function        with 
typing information attached
 
-pattern mdb.getStackTrace() (X_1:bat[:oid,:str],X_2:bat[:oid,:str]) 
+pattern mdb.getStackTrace() (X_1:bat[:oid,:int],X_2:bat[:oid,:str]) 
 address MDBStkTrace;
 pattern mdb.getStackFrame() (X_1:bat[:oid,:str],X_2:bat[:oid,:str]) 
 address MDBgetStackFrame;
diff --git a/gdk/gdk_value.c b/gdk/gdk_value.c
--- a/gdk/gdk_value.c
+++ b/gdk/gdk_value.c
@@ -175,7 +175,7 @@ VALinit(ValPtr d, int tpe, const void *s
                GDKerror("VALinit:unsupported init\n");
                d->vtype = TYPE_int;
        } else if (tpe >= TYPE_str && ATOMstorage(tpe) == TYPE_str) {
-               d->vtype = TYPE_str;
+               d->vtype = tpe;
                d->val.sval = GDKstrdup(s);
                d->len = strLen(s);
        } else {
diff --git a/monetdb5/extras/rapi/rapi.c b/monetdb5/extras/rapi/rapi.c
--- a/monetdb5/extras/rapi/rapi.c
+++ b/monetdb5/extras/rapi/rapi.c
@@ -645,7 +645,7 @@ str RAPIeval(Client cntxt, MalBlkPtr mb,
                                                                        i, 
rtypename(TYPEOF(ret_col)));
                                goto wrapup;
                        }
-                       SXP_TO_BAT(bte, LOGICAL_POINTER, *p==NA_LOGICAL);
+                       SXP_TO_BAT(bit, LOGICAL_POINTER, *p==NA_LOGICAL);
                        break;
                }
                case TYPE_dbl: {
diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c
--- a/monetdb5/modules/atoms/json.c
+++ b/monetdb5/modules/atoms/json.c
@@ -115,8 +115,15 @@ JSONtoString(str *s, int *len, json src)
        char *c, *dst;
 
        if (GDK_STRNIL(src)) {
-               *s = GDKstrdup("null");
-               return 0;
+               if (*s == NULL || *len < 4) {
+                       GDKfree(*s);
+                       *len = 4;
+                       *s = GDKmalloc(4);
+                       if (*s == NULL)
+                               return -1;
+               }
+               strncpy(*s, "nil", 4);
+               return 3;
        }
        /* count how much space we need for the output string */
        cnt = 3;                /* two times " plus \0 */
@@ -1287,7 +1294,7 @@ JSONvalueTable(bat *ret, json *js)
        JSON *jt;
 
        jt = JSONparse(*js, TRUE);      // already validated
-       bn = BATnew(TYPE_void, TYPE_str, 64, TRANSIENT);
+       bn = BATnew(TYPE_void, TYPE_json, 64, TRANSIENT);
        if (bn == NULL)
                throw(MAL, "json.values", MAL_MALLOC_FAIL);
        BATseqbase(bn, 0);
diff --git a/monetdb5/modules/mal/Tests/inspect00.stable.out 
b/monetdb5/modules/mal/Tests/inspect00.stable.out
--- a/monetdb5/modules/mal/Tests/inspect00.stable.out
+++ b/monetdb5/modules/mal/Tests/inspect00.stable.out
@@ -33,7 +33,7 @@ stack depth 2
 # view stk     stk                                                       # name
 # void int     str                                                       # type
 #--------------------------#
-[ 0@0, 0,      "    (h=nil:bat[:oid,:str],t=nil:bat[:oid,:str]) := 
mdb.getStackTrace(); at user.tst[3]"  ]
+[ 0@0, 0,      "    (h=nil:bat[:oid,:int],t=nil:bat[:oid,:str]) := 
mdb.getStackTrace(); at user.tst[3]"  ]
 [ 1@0,   1,      "    user.tst(); at user.main[2]"                       ]
 #-------------------------------------------------#
 # view stk     stk                               # name
diff --git a/monetdb5/modules/mal/batcalc.c b/monetdb5/modules/mal/batcalc.c
--- a/monetdb5/modules/mal/batcalc.c
+++ b/monetdb5/modules/mal/batcalc.c
@@ -303,7 +303,7 @@ calcmodtype(int tp1, int tp2)
 }
 
 static str
-CMDbatBINARY2(MalStkPtr stk, InstrPtr pci,
+CMDbatBINARY2(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci,
                          BAT *(*batfunc)(BAT *, BAT *, BAT *, int, int),
                          BAT *(batfunc1)(BAT *, const ValRecord *, BAT *, int, 
int),
                          BAT *(batfunc2)(const ValRecord *, BAT *, BAT *, int, 
int),
@@ -312,10 +312,13 @@ CMDbatBINARY2(MalStkPtr stk, InstrPtr pc
 {
        bat *bid;
        BAT *bn, *b, *s = NULL;
-       int tp1, tp2;
+       int tp1, tp2, tp3;
 
        tp1 = stk->stk[getArg(pci, 1)].vtype;
        tp2 = stk->stk[getArg(pci, 2)].vtype;
+       tp3 = getArgType(mb, pci, 0);
+       assert(isaBatType(tp3));
+       tp3 = getColumnType(tp3);
        if (pci->argc == 4) {
                bat *sid = getArgReference_bat(stk, pci, 3);
                if (*sid && (s = BATdescriptor(*sid)) == NULL)
@@ -344,12 +347,15 @@ CMDbatBINARY2(MalStkPtr stk, InstrPtr pc
                        assert(BAThdense(b2));
                }
                if (b2) {
-                       bn = (*batfunc)(b, b2, s, (*typefunc)(b->T->type, 
b2->T->type),
-                                                       abort_on_error);
+                       if (tp3 == TYPE_any)
+                               tp3 = (*typefunc)(b->ttype, b2->ttype);
+                       bn = (*batfunc)(b, b2, s, tp3, abort_on_error);
                        BBPunfix(b2->batCacheid);
                } else {
+                       if (tp3 == TYPE_any)
+                               tp3 = (*typefunc)(b->T->type, tp2);
                        bn = (*batfunc1)(b, &stk->stk[getArg(pci, 2)], s,
-                                                        
(*typefunc)(b->T->type, tp2), abort_on_error);
+                                                        tp3, abort_on_error);
                }
        } else {
                assert(tp1 != TYPE_bat && !isaBatType(tp1));
@@ -362,8 +368,9 @@ CMDbatBINARY2(MalStkPtr stk, InstrPtr pc
                        throw(MAL, malfunc, RUNTIME_OBJECT_MISSING);
                }
                assert(BAThdense(b));
-               bn = (*batfunc2)(&stk->stk[getArg(pci, 1)], b, s,
-                                                (*typefunc)(tp1, b->T->type), 
abort_on_error);
+               if (tp3 == TYPE_any)
+                       tp3 = (*typefunc)(tp1, b->T->type);
+               bn = (*batfunc2)(&stk->stk[getArg(pci, 1)], b, s, tp3, 
abort_on_error);
        }
        BBPunfix(b->batCacheid);
        if (bn == NULL) {
@@ -572,9 +579,8 @@ str
 CMDbatADD(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcadd, BATcalcaddcst, BATcalccstadd,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcadd, BATcalcaddcst, 
BATcalccstadd,
                                                 calctype, 0, 
"batcalc.add_noerror");
 }
 
@@ -584,9 +590,8 @@ str
 CMDbatADDsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcadd, BATcalcaddcst, BATcalccstadd,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcadd, BATcalcaddcst, 
BATcalccstadd,
                                                 calctype, 1, "batcalc.+");
 }
 
@@ -596,9 +601,8 @@ str
 CMDbatADDenlarge(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcadd, BATcalcaddcst, BATcalccstadd,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcadd, BATcalcaddcst, 
BATcalccstadd,
                                                 calctypeenlarge, 1, 
"batcalc.add_enlarge");
 }
 
@@ -608,9 +612,8 @@ str
 CMDbatSUB(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcsub, BATcalcsubcst, BATcalccstsub,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcsub, BATcalcsubcst, 
BATcalccstsub,
                                                 calctype, 0, 
"batcalc.sub_noerror");
 }
 
@@ -620,9 +623,8 @@ str
 CMDbatSUBsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcsub, BATcalcsubcst, BATcalccstsub,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcsub, BATcalcsubcst, 
BATcalccstsub,
                                                 calctype, 1, "batcalc.-");
 }
 
@@ -632,9 +634,8 @@ str
 CMDbatSUBenlarge(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcsub, BATcalcsubcst, BATcalccstsub,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcsub, BATcalcsubcst, 
BATcalccstsub,
                                                 calctypeenlarge, 1, 
"batcalc.sub_enlarge");
 }
 
@@ -644,9 +645,8 @@ str
 CMDbatMUL(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcmul, BATcalcmulcst, BATcalccstmul,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcmul, BATcalcmulcst, 
BATcalccstmul,
                                                 calctype, 0, 
"batcalc.mul_noerror");
 }
 
@@ -656,9 +656,8 @@ str
 CMDbatMULsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcmul, BATcalcmulcst, BATcalccstmul,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcmul, BATcalcmulcst, 
BATcalccstmul,
                                                 calctype, 1, "batcalc.*");
 }
 
@@ -668,9 +667,8 @@ str
 CMDbatMULenlarge(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcmul, BATcalcmulcst, BATcalccstmul,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcmul, BATcalcmulcst, 
BATcalccstmul,
                                                 calctypeenlarge, 1, 
"batcalc.mul_enlarge");
 }
 
@@ -680,9 +678,8 @@ str
 CMDbatDIV(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcdiv, BATcalcdivcst, BATcalccstdiv,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcdiv, BATcalcdivcst, 
BATcalccstdiv,
                                                 calcdivtype, 0, 
"batcalc.div_noerror");
 }
 
@@ -692,9 +689,8 @@ str
 CMDbatDIVsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcdiv, BATcalcdivcst, BATcalccstdiv,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcdiv, BATcalcdivcst, 
BATcalccstdiv,
                                                 calcdivtype, 1, "batcalc./");
 }
 
@@ -704,9 +700,8 @@ str
 CMDbatMOD(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcmod, BATcalcmodcst, BATcalccstmod,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcmod, BATcalcmodcst, 
BATcalccstmod,
                                                 calcmodtype, 0, 
"batcalc.mod_noerror");
 }
 
@@ -716,9 +711,8 @@ str
 CMDbatMODsignal(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        (void) cntxt;
-       (void) mb;
 
-       return CMDbatBINARY2(stk, pci, BATcalcmod, BATcalcmodcst, BATcalccstmod,
+       return CMDbatBINARY2(mb, stk, pci, BATcalcmod, BATcalcmodcst, 
BATcalccstmod,
                                                 calcmodtype, 1, "batcalc.%");
 }
 
diff --git a/monetdb5/modules/mal/mdb.mal b/monetdb5/modules/mal/mdb.mal
--- a/monetdb5/modules/mal/mdb.mal
+++ b/monetdb5/modules/mal/mdb.mal
@@ -123,7 +123,7 @@ address MDBgetStackFrameN;
 pattern getStackFrame()(:bat[:oid,:str] ,:bat[:oid,:str])
 address MDBgetStackFrame
 comment "Collect variable binding of current (n-th) stack frame.";
-pattern getStackTrace()(:bat[:oid,:str], :bat[:oid,:str])
+pattern getStackTrace()(:bat[:oid,:int], :bat[:oid,:str])
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to