Changeset: e80ab2763b90 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e80ab2763b90 Modified Files: monetdb5/extras/jaql/jaqlgencode.c Branch: default Log Message:
Merge with Oct2012 branch.
diffs (144 lines):
diff --git a/monetdb5/extras/jaql/jaqlgencode.c
b/monetdb5/extras/jaql/jaqlgencode.c
--- a/monetdb5/extras/jaql/jaqlgencode.c
+++ b/monetdb5/extras/jaql/jaqlgencode.c
@@ -3971,8 +3971,8 @@ dumpvariabletransformation(jc *j, Client
return a;
}
- b = -1;
for (i = 0, w = t->tval1; w != NULL; w = w->next, i++) {
+ b = -1;
assert(w->type == j_func_arg);
assert(w->tval1 != NULL);
@@ -4157,7 +4157,7 @@ dumpvariabletransformation(jc *j, Client
q =
newInstruction(mb, ASSIGNsymbol);
setModuleId(q, putName("json", 4));
setFunctionId(q, putName("unwrap", 6));
- q =
pushReturn(mb, q, c);
+ q =
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
q =
pushArgument(mb, q, j->j1);
q =
pushArgument(mb, q, j->j2);
q =
pushArgument(mb, q, j->j3);
@@ -4171,8 +4171,25 @@ dumpvariabletransformation(jc *j, Client
q = pushArgument(mb, q, j->startoid);
}
q =
pushStr(mb, q, "");
+ c =
getArg(q, 0);
+
pushInstruction(mb, q);
+
+ q =
newInstruction(mb, ASSIGNsymbol);
+
setModuleId(q, batRef);
+
setFunctionId(q, reverseRef);
+ q =
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
+ q =
pushArgument(mb, q, b);
dynaarg[i][1] = getArg(q, 0);
pushInstruction(mb, q);
+ q =
newInstruction(mb, ASSIGNsymbol);
+
setModuleId(q, algebraRef);
+
setFunctionId(q, joinRef);
+ q =
pushReturn(mb, q, d);
+ q =
pushArgument(mb, q, dynaarg[i][1]);
+ q =
pushArgument(mb, q, c);
+
dynaarg[i][1] = getArg(q, 0);
+
pushInstruction(mb, q);
+
q =
newAssignment(mb);
getArg(q, 0) = e;
q->argc
= q->retc = 1;
@@ -4202,7 +4219,7 @@ dumpvariabletransformation(jc *j, Client
q =
newInstruction(mb, ASSIGNsymbol);
setModuleId(q, putName("json", 4));
setFunctionId(q, putName("unwrap", 6));
- q =
pushReturn(mb, q, d);
+ q =
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
q =
pushArgument(mb, q, j->j1);
q =
pushArgument(mb, q, j->j2);
q =
pushArgument(mb, q, j->j3);
@@ -4216,8 +4233,25 @@ dumpvariabletransformation(jc *j, Client
q = pushArgument(mb, q, j->startoid);
}
q =
pushDbl(mb, q, 0.0);
+ c =
getArg(q, 0);
+
pushInstruction(mb, q);
+
+ q =
newInstruction(mb, ASSIGNsymbol);
+
setModuleId(q, batRef);
+
setFunctionId(q, reverseRef);
+ q =
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
+ q =
pushArgument(mb, q, b);
dynaarg[i][2] = getArg(q, 0);
pushInstruction(mb, q);
+ q =
newInstruction(mb, ASSIGNsymbol);
+
setModuleId(q, algebraRef);
+
setFunctionId(q, joinRef);
+ q =
pushReturn(mb, q, d);
+ q =
pushArgument(mb, q, dynaarg[i][2]);
+ q =
pushArgument(mb, q, c);
+
dynaarg[i][2] = getArg(q, 0);
+
pushInstruction(mb, q);
+
q =
newAssignment(mb);
getArg(q, 0) = f;
q->argc
= q->retc = 1;
@@ -4247,7 +4281,7 @@ dumpvariabletransformation(jc *j, Client
q =
newInstruction(mb, ASSIGNsymbol);
setModuleId(q, putName("json", 4));
setFunctionId(q, putName("unwrap", 6));
- q =
pushReturn(mb, q, d);
+ q =
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
q =
pushArgument(mb, q, j->j1);
q =
pushArgument(mb, q, j->j2);
q =
pushArgument(mb, q, j->j3);
@@ -4261,8 +4295,25 @@ dumpvariabletransformation(jc *j, Client
q = pushArgument(mb, q, j->startoid);
}
q =
pushLng(mb, q, 0);
+ c =
getArg(q, 0);
+
pushInstruction(mb, q);
+
+ q =
newInstruction(mb, ASSIGNsymbol);
+
setModuleId(q, batRef);
+
setFunctionId(q, reverseRef);
+ q =
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
+ q =
pushArgument(mb, q, b);
dynaarg[i][3] = getArg(q, 0);
pushInstruction(mb, q);
+ q =
newInstruction(mb, ASSIGNsymbol);
+
setModuleId(q, algebraRef);
+
setFunctionId(q, joinRef);
+ q =
pushReturn(mb, q, d);
+ q =
pushArgument(mb, q, dynaarg[i][3]);
+ q =
pushArgument(mb, q, c);
+
dynaarg[i][3] = getArg(q, 0);
+
pushInstruction(mb, q);
+
q =
newAssignment(mb);
getArg(q, 0) = g;
q->argc
= q->retc = 1;
@@ -4571,8 +4622,8 @@ dumpvariabletransformation(jc *j, Client
q = pushArgument(mb, q, a7);
j->j7 = getArg(q, 0);
- /* return bat has b in head, 0 in tail (this is
an
- * aggregate (can it be anything else?) */
+ /* prepare return bat, with single element */
+ /* TODO: do we always return an aggregate here?
*/
q = newInstruction(mb, ASSIGNsymbol);
setModuleId(q, batRef);
setFunctionId(q, newRef);
@@ -4762,14 +4813,6 @@ dumpvariabletransformation(jc *j, Client
q = pushArgument(mb, q, h);
a = getArg(q, 0);
pushInstruction(mb, q);
- q = newInstruction(mb, ASSIGNsymbol);
- setModuleId(q, algebraRef);
- setFunctionId(q, joinRef);
- q = pushReturn(mb, q, newTmpVariable(mb,
TYPE_any));
- q = pushArgument(mb, q, a);
- q = pushArgument(mb, q, b);
- a = getArg(q, 0);
- pushInstruction(mb, q);
MALCOMMENT(mb, "}
dumpvariabletransformation(X_%d)", elems);
return a;
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list
