Changeset: 274ac385b248 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=274ac385b248
Modified Files:
        gdk/gdk_atoms.c
        monetdb5/mal/mal_factory.c
        monetdb5/mal/mal_interpreter.c
        monetdb5/modules/mal/wlc.c
        sql/backends/monet5/sql_rank.mal.sh
Branch: gdk_tracer
Log Message:

Merge with default branch.


diffs (112 lines):

diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c
--- a/gdk/gdk_atoms.c
+++ b/gdk/gdk_atoms.c
@@ -933,7 +933,12 @@ ptrFromStr(const char *src, size_t *len,
        return (ssize_t) (p - src);
 }
 
+#ifdef _MSC_VER
+/* Windows doesn't put 0x in front whereas Linux does, so we do it ourselves */
+atomtostr(ptr, "0x%p", )
+#else
 atomtostr(ptr, "%p", )
+#endif
 
 #if SIZEOF_VOID_P == SIZEOF_INT
 atom_io(ptr, Int, int)
diff --git a/monetdb5/mal/mal_factory.c b/monetdb5/mal/mal_factory.c
--- a/monetdb5/mal/mal_factory.c
+++ b/monetdb5/mal/mal_factory.c
@@ -138,6 +138,7 @@ runFactory(Client cntxt, MalBlkPtr mb, M
                                lhs->len = 0;
                        }
                }
+               pl->stk->stktop = mb->vtop;
                pl->stk->stkbot= mb->vtop;      /* stack already initialized */
                msg = runMAL(cntxt, mb, 0, pl->stk);
         } else {
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -760,7 +760,7 @@ str runMALsequence(Client cntxt, MalBlkP
                                        } else if (lhs->vtype == TYPE_bat)
                                                BBPretain(lhs->val.bval);
                                }
-                               if(ret == MAL_SUCCEED) {
+                               if(ret == MAL_SUCCEED && ii == pci->argc) {
                                        ret = runMALsequence(cntxt, pci->blk, 
1, pci->blk->stop, nstk, stk, pci);
                                        for (ii = 0; ii < nstk->stktop; ii++)
                                                if 
(ATOMextern(nstk->stk[ii].vtype))
@@ -1227,7 +1227,7 @@ str runMALsequence(Client cntxt, MalBlkP
                                        freeException(n);
                                        freeException(ret);
                                        ret = new;
-                               }
+                               } else ret = n;
                        }
                } else {
                        ret = createException(MAL, nme, "Exception not caught");
diff --git a/monetdb5/modules/mal/wlc.c b/monetdb5/modules/mal/wlc.c
--- a/monetdb5/modules/mal/wlc.c
+++ b/monetdb5/modules/mal/wlc.c
@@ -701,7 +701,7 @@ str
 WLCgeneric(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        InstrPtr p;
-       int i, tpe, varid;
+       int i, k,  tpe, varid;
        str msg = MAL_SUCCEED;
 
        (void) stk;
@@ -709,20 +709,26 @@ WLCgeneric(Client cntxt, MalBlkPtr mb, M
        if(msg)
                return msg;
        cntxt->wlc_kind = WLC_IGNORE;
-       p = newStmt(cntxt->wlc, "wlr",getFunctionId(pci));
+       p = newInstruction(cntxt->wlc, "wlr",getFunctionId(pci));
+       k = newTmpVariable(mb,TYPE_any);
+       if( k >= 0)
+               getArg(p,0) =  k;
        for( i = pci->retc; i< pci->argc; i++){
                tpe =getArgType(mb, pci, i);
                switch(tpe){
                case TYPE_str:
-                       p = pushStr(cntxt->wlc, p, getVarConstant(mb, 
getArg(pci, i)).val.sval);
+                       k = defConstant(mb,TYPE_str,&getVarConstant(mb, 
getArg(pci, i)));
+                       if( k >= 0)
+                               p = addArgument(cntxt->wlc, p, k);
                        break;
                default:
                        varid = defConstant(cntxt->wlc, tpe, 
getArgReference(stk, pci, i));
                        if( varid >= 0)
-                               p = pushArgument(cntxt->wlc, p, varid);
+                               p = addArgument(cntxt->wlc, p, varid);
                }
        }
        p->ticks = GDKms();
+       pushInstruction(mb,p);
        cntxt->wlc_kind = WLC_CATALOG;
        return  msg;
 }
diff --git a/sql/backends/monet5/sql_rank.mal.sh 
b/sql/backends/monet5/sql_rank.mal.sh
--- a/sql/backends/monet5/sql_rank.mal.sh
+++ b/sql/backends/monet5/sql_rank.mal.sh
@@ -371,18 +371,3 @@ comment "return the average of groups";
 
 EOF
 done
-
-cat <<EOF
-command aggr.exist(b:bat[:any_2], h:any_1):bit
-address ALGexist;
-
-command aggr.exist(b:bat[:any_2]):bit
-address SQLexist;
-
-pattern aggr.exist(v:any_2):bit
-address SQLexist_val;
-
-command aggr.subexist(b:bat[:any_2], g:bat[:oid], e:bat[:oid], 
no_nil:bit):bat[:bit]
-address SQLsubexist;
-
-EOF
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to