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