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

Reply via email to