Changeset: 621f76f4c576 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=621f76f4c576
Modified Files:
        sql/backends/monet5/sql_execute.c
Branch: Jul2017
Log Message:

Don't assume that bat.append modifies its first argument.
Patch by Roberto Cornacchia.


diffs (88 lines):

diff --git a/sql/backends/monet5/sql_execute.c 
b/sql/backends/monet5/sql_execute.c
--- a/sql/backends/monet5/sql_execute.c
+++ b/sql/backends/monet5/sql_execute.c
@@ -84,6 +84,7 @@ SQLsetTrace(Client cntxt, MalBlkPtr mb)
 
        q= newStmt(mb, profilerRef, stoptraceRef);
        q= pushStr(mb,q,"sql_traces");
+
        /* cook a new resultSet instruction */
        resultset = newInstruction(mb,sqlRef, resultSetRef);
        getArg(resultset,0) = newTmpVariable(mb, TYPE_int);
@@ -92,7 +93,6 @@ SQLsetTrace(Client cntxt, MalBlkPtr mb)
        tbls = newStmt(mb,batRef, newRef);
        setVarType(mb, getArg(tbls,0), newBatType(TYPE_str));
        tbls = pushType(mb, tbls, TYPE_str);
-       resultset= pushArgument(mb,resultset, getArg(tbls,0));
 
        q= newStmt(mb,batRef,appendRef);
        q= pushArgument(mb,q,getArg(tbls,0));
@@ -103,11 +103,12 @@ SQLsetTrace(Client cntxt, MalBlkPtr mb)
        q= pushArgument(mb,q,k);
        q= pushStr(mb,q,".trace");
 
+       resultset= pushArgument(mb,resultset, getArg(q,0));
+
        /* build colum defs */
        cols = newStmt(mb,batRef, newRef);
        setVarType(mb, getArg(cols,0), newBatType(TYPE_str));
        cols = pushType(mb, cols, TYPE_str);
-       resultset= pushArgument(mb,resultset, getArg(cols,0));
 
        q= newStmt(mb,batRef,appendRef);
        q= pushArgument(mb,q,getArg(cols,0));
@@ -115,14 +116,15 @@ SQLsetTrace(Client cntxt, MalBlkPtr mb)
        k= getArg(q,0);
 
        q= newStmt(mb,batRef,appendRef);
-       q= pushArgument(mb,q, getArg(cols,0));
+       q= pushArgument(mb,q, k);
        q= pushStr(mb,q,"statement");
 
+       resultset= pushArgument(mb,resultset, getArg(q,0));
+
        /* build type defs */
        types = newStmt(mb,batRef, newRef);
        setVarType(mb, getArg(types,0), newBatType(TYPE_str));
        types = pushType(mb, types, TYPE_str);
-       resultset= pushArgument(mb,resultset, getArg(types,0));
 
        q= newStmt(mb,batRef,appendRef);
        q= pushArgument(mb,q, getArg(types,0));
@@ -133,11 +135,12 @@ SQLsetTrace(Client cntxt, MalBlkPtr mb)
        q= pushArgument(mb,q, k);
        q= pushStr(mb,q,"clob");
 
+       resultset= pushArgument(mb,resultset, getArg(q,0));
+
        /* build scale defs */
        clen = newStmt(mb,batRef, newRef);
        setVarType(mb, getArg(clen,0), newBatType(TYPE_int));
        clen = pushType(mb, clen, TYPE_int);
-       resultset= pushArgument(mb,resultset, getArg(clen,0));
 
        q= newStmt(mb,batRef,appendRef);
        q= pushArgument(mb,q, getArg(clen,0));
@@ -148,11 +151,12 @@ SQLsetTrace(Client cntxt, MalBlkPtr mb)
        q= pushArgument(mb,q, k);
        q= pushInt(mb,q,0);
 
+       resultset= pushArgument(mb,resultset, getArg(q,0));
+
        /* build scale defs */
        scale = newStmt(mb,batRef, newRef);
        setVarType(mb, getArg(scale,0), newBatType(TYPE_int));
        scale = pushType(mb, scale, TYPE_int);
-       resultset= pushArgument(mb,resultset, getArg(scale,0));
 
        q= newStmt(mb,batRef,appendRef);
        q= pushArgument(mb,q, getArg(scale,0));
@@ -163,6 +167,8 @@ SQLsetTrace(Client cntxt, MalBlkPtr mb)
        q= pushArgument(mb, q, k);
        q= pushInt(mb,q,0);
 
+       resultset= pushArgument(mb,resultset, getArg(q,0));
+
        /* add the ticks column */
 
        q = newStmt(mb, profilerRef, "getTrace");
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to