Changeset: af71070945b1 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=af71070945b1
Modified Files:
        monetdb5/extras/jaql/jaqlgencode.c
Branch: Oct2012
Log Message:

dumpvariabletransformation: simplify j_func case now we can give a startoid


diffs (155 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
@@ -3928,46 +3928,23 @@ dumpvariabletransformation(jc *j, Client
                                                                q->argc = 
q->retc = 1;
                                                                q->barrier = 
EXITsymbol;
 
-                                                               q = 
newInstruction(mb, ASSIGNsymbol);
-                                                               setModuleId(q, 
batRef);
-                                                               
setFunctionId(q, newRef);
-                                                               q = 
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
-                                                               q = 
pushType(mb, q, TYPE_oid);
-                                                               q = 
pushType(mb, q, TYPE_bte);
-                                                               c = getArg(q, 
0);
-                                                               
pushInstruction(mb, q);
+                                                               a = 
dumpnextid(mb, j->j1);
+                                                               
dumpbatwritable(j, mb, 1);
                                                                q = 
newInstruction(mb, ASSIGNsymbol);
                                                                setModuleId(q, 
batRef);
                                                                
setFunctionId(q, insertRef);
                                                                q = 
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
-                                                               q = 
pushArgument(mb, q, c);
-                                                               q = pushOid(mb, 
q, (oid)0);
+                                                               q = 
pushArgument(mb, q, j->j1);
+                                                               q = 
pushArgument(mb, q, a);
                                                                q = pushBte(mb, 
q, 'a');
-                                                               c = getArg(q, 
0);
+                                                               j->j1 = 
getArg(q, 0);
                                                                
pushInstruction(mb, q);
                                                                q = 
newInstruction(mb, ASSIGNsymbol);
                                                                setModuleId(q, 
algebraRef);
-                                                               
setFunctionId(q, putName("kdifference", 11));
-                                                               q = 
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
-                                                               q = 
pushArgument(mb, q, j->j1);
-                                                               q = 
pushArgument(mb, q, c);
-                                                               a = getArg(q, 
0);
-                                                               
pushInstruction(mb, q);
-                                                               q = 
newInstruction(mb, ASSIGNsymbol);
-                                                               setModuleId(q, 
batRef);
-                                                               
setFunctionId(q, insertRef);
-                                                               q = 
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
-                                                               q = 
pushArgument(mb, q, c);
-                                                               q = 
pushArgument(mb, q, a);
-                                                               a = getArg(q, 
0);
-                                                               
pushInstruction(mb, q);
-
-                                                               q = 
newInstruction(mb, ASSIGNsymbol);
-                                                               setModuleId(q, 
algebraRef);
                                                                
setFunctionId(q, projectRef);
                                                                q = 
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
                                                                q = 
pushArgument(mb, q, b);
-                                                               q = pushOid(mb, 
q, (oid)0);
+                                                               q = 
pushArgument(mb, q, a);
                                                                h = getArg(q, 
0);
                                                                
pushInstruction(mb, q);
                                                                q = 
newInstruction(mb, ASSIGNsymbol);
@@ -3977,37 +3954,30 @@ dumpvariabletransformation(jc *j, Client
                                                                q = 
pushArgument(mb, q, h);
                                                                h = getArg(q, 
0);
                                                                
pushInstruction(mb, q);
-                                                               q = 
newInstruction(mb, ASSIGNsymbol);
-                                                               setModuleId(q, 
algebraRef);
-                                                               
setFunctionId(q, putName("kdifference", 11));
-                                                               q = 
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
-                                                               q = 
pushArgument(mb, q, j->j5);
-                                                               q = 
pushArgument(mb, q, h);
-                                                               c = getArg(q, 
0);
-                                                               
pushInstruction(mb, q);
+                                                               
dumpbatwritable(j, mb, 5);
                                                                q = 
newInstruction(mb, ASSIGNsymbol);
                                                                setModuleId(q, 
batRef);
                                                                
setFunctionId(q, insertRef);
                                                                q = 
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
+                                                               q = 
pushArgument(mb, q, j->j5);
                                                                q = 
pushArgument(mb, q, h);
-                                                               q = 
pushArgument(mb, q, c);
-                                                               h = getArg(q, 
0);
+                                                               j->j5 = 
getArg(q, 0);
                                                                
pushInstruction(mb, q);
-                                                               /* a = j1, h = 
j5 */
+                                                               j->startoid = a;
 
                                                                if (coltypes[i] 
== j_sort_arg) {
                                                                        q = 
newInstruction(mb, ASSIGNsymbol);
                                                                        
setModuleId(q, putName("json", 4));
                                                                        
setFunctionId(q, putName("unwraptype", 10));
                                                                        q = 
pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
-                                                                       q = 
pushArgument(mb, q, a);
+                                                                       q = 
pushArgument(mb, q, j->j1);
                                                                        q = 
pushArgument(mb, q, j->j2);
                                                                        q = 
pushArgument(mb, q, j->j3);
                                                                        q = 
pushArgument(mb, q, j->j4);
-                                                                       q = 
pushArgument(mb, q, h);
+                                                                       q = 
pushArgument(mb, q, j->j5);
                                                                        q = 
pushArgument(mb, q, j->j6);
                                                                        q = 
pushArgument(mb, q, j->j7);
-                                                                       q = 
pushOid(mb, q, (oid)0);
+                                                                       q = 
pushArgument(mb, q, j->startoid);
                                                                        
dynaarg[i][0] = getArg(q, 0);
                                                                        
pushInstruction(mb, q);
                                                                } else {
@@ -4044,14 +4014,14 @@ dumpvariabletransformation(jc *j, Client
                                                                        
setModuleId(q, putName("json", 4));
                                                                        
setFunctionId(q, putName("unwrap", 6));
                                                                        q = 
pushReturn(mb, q, c);
-                                                                       q = 
pushArgument(mb, q, a);
+                                                                       q = 
pushArgument(mb, q, j->j1);
                                                                        q = 
pushArgument(mb, q, j->j2);
                                                                        q = 
pushArgument(mb, q, j->j3);
                                                                        q = 
pushArgument(mb, q, j->j4);
-                                                                       q = 
pushArgument(mb, q, h);
+                                                                       q = 
pushArgument(mb, q, j->j5);
                                                                        q = 
pushArgument(mb, q, j->j6);
                                                                        q = 
pushArgument(mb, q, j->j7);
-                                                                       q = 
pushOid(mb, q, (oid)0);
+                                                                       q = 
pushArgument(mb, q, j->startoid);
                                                                        q = 
pushStr(mb, q, "");
                                                                        
dynaarg[i][1] = getArg(q, 0);
                                                                        
pushInstruction(mb, q);
@@ -4085,14 +4055,14 @@ dumpvariabletransformation(jc *j, Client
                                                                        
setModuleId(q, putName("json", 4));
                                                                        
setFunctionId(q, putName("unwrap", 6));
                                                                        q = 
pushReturn(mb, q, d);
-                                                                       q = 
pushArgument(mb, q, a);
+                                                                       q = 
pushArgument(mb, q, j->j1);
                                                                        q = 
pushArgument(mb, q, j->j2);
                                                                        q = 
pushArgument(mb, q, j->j3);
                                                                        q = 
pushArgument(mb, q, j->j4);
-                                                                       q = 
pushArgument(mb, q, h);
+                                                                       q = 
pushArgument(mb, q, j->j5);
                                                                        q = 
pushArgument(mb, q, j->j6);
                                                                        q = 
pushArgument(mb, q, j->j7);
-                                                                       q = 
pushOid(mb, q, (oid)0);
+                                                                       q = 
pushArgument(mb, q, j->startoid);
                                                                        q = 
pushDbl(mb, q, 0.0);
                                                                        
dynaarg[i][2] = getArg(q, 0);
                                                                        
pushInstruction(mb, q);
@@ -4126,14 +4096,14 @@ dumpvariabletransformation(jc *j, Client
                                                                        
setModuleId(q, putName("json", 4));
                                                                        
setFunctionId(q, putName("unwrap", 6));
                                                                        q = 
pushReturn(mb, q, d);
-                                                                       q = 
pushArgument(mb, q, a);
+                                                                       q = 
pushArgument(mb, q, j->j1);
                                                                        q = 
pushArgument(mb, q, j->j2);
                                                                        q = 
pushArgument(mb, q, j->j3);
                                                                        q = 
pushArgument(mb, q, j->j4);
-                                                                       q = 
pushArgument(mb, q, h);
+                                                                       q = 
pushArgument(mb, q, j->j5);
                                                                        q = 
pushArgument(mb, q, j->j6);
                                                                        q = 
pushArgument(mb, q, j->j7);
-                                                                       q = 
pushOid(mb, q, (oid)0);
+                                                                       q = 
pushArgument(mb, q, j->startoid);
                                                                        q = 
pushLng(mb, q, 0);
                                                                        
dynaarg[i][3] = getArg(q, 0);
                                                                        
pushInstruction(mb, q);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to