Changeset: b97ae29247d2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b97ae29247d2
Modified Files:
monetdb5/extras/jaql/Tests/transform00.mal
monetdb5/extras/jaql/Tests/transform00.stable.out
monetdb5/extras/jaql/jaqlgencode.c
Branch: jacqueline
Log Message:
transform: make arithmetic on variables work
With some fresh morning insights, fix some loose references, and missing
appends to the administration.
diffs (63 lines):
diff --git a/monetdb5/extras/jaql/Tests/transform00.mal
b/monetdb5/extras/jaql/Tests/transform00.mal
--- a/monetdb5/extras/jaql/Tests/transform00.mal
+++ b/monetdb5/extras/jaql/Tests/transform00.mal
@@ -1,2 +1,4 @@
jaql.x("[1,2,3] -> transform 2 * 2;");
jaql.x("[{\"a\": 1}, {\"a\": 2}] -> transform $.a;");
+jaql.x("[1,2,3] -> transform 2 * $;");
+jaql.x("[{\"a\": 1}, {\"a\": 2}] -> transform $.a + $.a;");
diff --git a/monetdb5/extras/jaql/Tests/transform00.stable.out
b/monetdb5/extras/jaql/Tests/transform00.stable.out
--- a/monetdb5/extras/jaql/Tests/transform00.stable.out
+++ b/monetdb5/extras/jaql/Tests/transform00.stable.out
@@ -19,9 +19,13 @@ stdout of test 'transform00` in director
function user.main():void;
jaql.x("[1,2,3] -> transform 2 * 2;");
jaql.x("[{\"a\": 1}, {\"a\": 2}] -> transform $.a;");
+ jaql.x("[1,2,3] -> transform 2 * $;");
+ jaql.x("[{\"a\": 1}, {\"a\": 2}] -> transform $.a + $.a;");
end main;
[ 4, 4, 4 ]
[ 1, 2 ]
+[ 2, 4, 6 ]
+[ 2, 4 ]
# 21:27:13 >
# 21:27:13 > "Done."
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
@@ -1145,9 +1145,9 @@ dumpvariabletransformation(MalBlkPtr mb,
}
q = p;
- c = getArg(q, 0) = newTmpVariable(mb, TYPE_any);
getArg(q, 1) = s;
getArg(q, 2) = v;
+ s = getArg(q, 0) = newTmpVariable(mb, TYPE_any);
pushInstruction(mb, q);
q = newInstruction(mb, ASSIGNsymbol);
@@ -1189,7 +1189,7 @@ dumpvariabletransformation(MalBlkPtr mb,
q = pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
q = pushArgument(mb, q, i);
q = pushChr(mb, q, 'd');
- h = getArg(q, 0);
+ i = getArg(q, 0);
pushInstruction(mb, q);
q = newInstruction(mb, ASSIGNsymbol);
@@ -1216,6 +1216,14 @@ dumpvariabletransformation(MalBlkPtr mb,
q = pushArgument(mb, q, h);
a = getArg(q, 0);
pushInstruction(mb, q);
+ q = newInstruction(mb, ASSIGNsymbol);
+ setModuleId(q, algebraRef);
+ setFunctionId(q, putName("kunion", 6));
+ q = pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
+ q = pushArgument(mb, q, *j1);
+ q = pushArgument(mb, q, a);
+ *j1 = getArg(q, 0);
+ pushInstruction(mb, q);
return a;
}
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list