Changeset: 6d8217537f14 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6d8217537f14
Modified Files:
monetdb5/mal/mal_listing.c
monetdb5/mal/mal_listing.h
monetdb5/mal/mal_parser.c
monetdb5/modules/mal/remote.c
Branch: default
Log Message:
Upgrade the rendering for remote executions
diffs (129 lines):
diff --git a/monetdb5/mal/mal_listing.c b/monetdb5/mal/mal_listing.c
--- a/monetdb5/mal/mal_listing.c
+++ b/monetdb5/mal/mal_listing.c
@@ -79,7 +79,8 @@ renderTerm(MalBlkPtr mb, MalStkPtr stk,
strcat(buf+len,cv);
len += strlen(buf+len);
if( cv) GDKfree(cv);
- showtype =getColumnType(getVarType(mb,varid)) >
TYPE_str || ((isVarUDFtype(mb,varid) || isVarTypedef(mb,varid)) &&
isVarConstant(mb,varid)) || isaBatType(getVarType(mb,varid));
+ showtype =getColumnType(getVarType(mb,varid)) >
TYPE_str ||
+ ((isVarUDFtype(mb,varid) ||
isVarTypedef(mb,varid)) && isVarConstant(mb,varid)) ||
isaBatType(getVarType(mb,varid));
} else{
if ( !isaBatType(getVarType(mb,varid)) &&
getColumnType(getVarType(mb,varid)) > TYPE_str ){
closequote = 1;
@@ -94,8 +95,8 @@ renderTerm(MalBlkPtr mb, MalStkPtr stk,
strcat(buf+len,"\"");
len++;
}
- showtype =getColumnType(getVarType(mb,varid)) >
TYPE_str || ((isVarUDFtype(mb,varid) ||
- isVarTypedef(mb,varid)) &&
isVarConstant(mb,varid)) || isaBatType(getVarType(mb,varid));
+ showtype =closequote > TYPE_str ||
((isVarUDFtype(mb,varid) || isVarTypedef(mb,varid)) && isVarConstant(mb,varid))
||
+ (isaBatType(getVarType(mb,varid) && idx <
p->retc));
if (stk && isaBatType(getVarType(mb,varid)) &&
abs(stk->stk[varid].val.ival) ){
BAT *d=
BBPquickdesc(abs(stk->stk[varid].val.ival),TRUE);
@@ -380,7 +381,7 @@ instruction2str(MalBlkPtr mb, MalStkPtr
}
str
-mal2str(MalBlkPtr mb, int flg, int first, int last)
+mal2str(MalBlkPtr mb, int first, int last)
{
str ps, *txt;
int i, *len, totlen = 0;
@@ -395,7 +396,10 @@ mal2str(MalBlkPtr mb, int flg, int first
return NULL;
}
for (i = first; i < last; i++) {
- txt[i] = instruction2str(mb, 0, getInstrPtr(mb, i), flg);
+ if( i == 0)
+ txt[i] = instruction2str(mb, 0, getInstrPtr(mb, i),
LIST_MAL_NAME | LIST_MAL_TYPE | LIST_MAL_PROPS);
+ else
+ txt[i] = instruction2str(mb, 0, getInstrPtr(mb, i),
LIST_MAL_CALL );
if ( txt[i])
totlen += len[i] = (int)strlen(txt[i]);
}
@@ -421,8 +425,8 @@ mal2str(MalBlkPtr mb, int flg, int first
}
str
-function2str(MalBlkPtr mb, int flg){
- return mal2str(mb,flg,0,mb->stop);
+function2str(MalBlkPtr mb){
+ return mal2str(mb, 0,mb->stop);
}
void
diff --git a/monetdb5/mal/mal_listing.h b/monetdb5/mal/mal_listing.h
--- a/monetdb5/mal/mal_listing.h
+++ b/monetdb5/mal/mal_listing.h
@@ -21,8 +21,8 @@ mal_export void printInstruction(stream
mal_export str instructionCall(MalBlkPtr mb, InstrPtr p, str s, str base,
size_t len);
mal_export void promptInstruction(stream *fd, MalBlkPtr mb, MalStkPtr stk,
InstrPtr p, int flg);
mal_export str instruction2str(MalBlkPtr mb, MalStkPtr stl, InstrPtr p, int
hidden);
-mal_export str mal2str(MalBlkPtr mb, int flg, int first, int last);
-mal_export str function2str(MalBlkPtr mb, int flg);
+mal_export str mal2str(MalBlkPtr mb, int first, int last);
+mal_export str function2str(MalBlkPtr mb);
mal_export void showMalBlkHistory(stream *out, MalBlkPtr mb);
#endif /* _MAL_LIST_H */
diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c
--- a/monetdb5/mal/mal_parser.c
+++ b/monetdb5/mal/mal_parser.c
@@ -446,6 +446,11 @@ cstToken(Client cntxt, ValPtr cst)
GDKfree(pval);
} else
cst->val.dval = 0;
+
+ if (cst->val.dval > FLT_MIN && cst->val.dval <=
FLT_MAX) {
+ cst->vtype = TYPE_flt;
+ cst->val.fval = (flt) cst->val.dval;
+ }
}
if (*s == '@') {
int len = (int) sizeof(lng);
@@ -913,13 +918,9 @@ term(Client cntxt, MalBlkPtr curBlk, Ins
malType tpe = TYPE_any;
if ((i = cstToken(cntxt, &cst))) {
- advance(cntxt, i);
- if (currChar(cntxt) != ':' && cst.vtype == TYPE_dbl &&
cst.val.dval > FLT_MIN && cst.val.dval <= FLT_MAX) {
- cst.vtype = TYPE_flt;
- cst.val.fval = (flt) cst.val.dval;
- }
cstidx = fndConstant(curBlk, &cst, MAL_VAR_WINDOW);
if (cstidx >= 0) {
+ advance(cntxt, i);
if (currChar(cntxt) == ':') {
tpe = typeElm(cntxt, getVarType(curBlk,
cstidx));
if (tpe < 0)
@@ -944,6 +945,7 @@ term(Client cntxt, MalBlkPtr curBlk, Ins
return ret;
} else {
/* add a new constant */
+ advance(cntxt, i);
flag = currChar(cntxt) == ':';
tpe = typeElm(cntxt, cst.vtype);
if (tpe < 0)
@@ -1210,7 +1212,7 @@ fcnHeader(Client cntxt, int kind)
cntxt->curprg = cntxt->backup;
cntxt->backup = 0;
}
- parseError(cntxt, "<module> not defined\n");
+ parseError(cntxt, "<module> name not defined\n");
return curBlk;
}
diff --git a/monetdb5/modules/mal/remote.c b/monetdb5/modules/mal/remote.c
--- a/monetdb5/modules/mal/remote.c
+++ b/monetdb5/modules/mal/remote.c
@@ -839,7 +839,7 @@ str RMTregisterInternal(Client cntxt, st
mod, fcn);
}
- qry = function2str(sym->def, LIST_MAL_CALL );
+ qry = function2str(sym->def);
#ifdef _DEBUG_REMOTE
mnstr_printf(cntxt->fdout, "#remote.register:%s:%s\n", c->name, qry);
#endif
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list