Changeset: bf5bd90da101 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bf5bd90da101
Modified Files:
        monetdb5/scheduler/Tests/queryJoin.mal
        monetdb5/scheduler/mut_transforms.c
Branch: mutation
Log Message:

language.pass added for join instructions too


diffs (158 lines):

diff --git a/monetdb5/scheduler/Tests/queryJoin.mal 
b/monetdb5/scheduler/Tests/queryJoin.mal
--- a/monetdb5/scheduler/Tests/queryJoin.mal
+++ b/monetdb5/scheduler/Tests/queryJoin.mal
@@ -4,21 +4,13 @@
 function initializeFirst{unsafe}():bat[:oid,:lng];
         b:= bat.new(:oid,:lng);
 
-        INT_MAX := 2147483647;
-        dbgmsk_restore := mdb.getDebug();
-        dbgmsk_unset := 8+8388608;
-        dbgmsk_keep := calc.xor(INT_MAX,dbgmsk_unset);
-        dbgmsk_set := calc.and(dbgmsk_restore,dbgmsk_keep);
-        mdb.setDebug(dbgmsk_set);
-
-        r:= mmath.srand(0);
+       r:= mmath.srand(0);
         barrier i:= 0:lng;
                 k:= mmath.rand();
                 l:= calc.lng(k);
                 bat.append(b,l);
                 redo i:= iterator.next(1:lng,1000000:lng);
         exit i;
-        mdb.setDebug(dbgmsk_set);
 
         return b;
 end initializeFirst;
@@ -26,21 +18,13 @@ end initializeFirst;
 function initializeNext{unsafe}():bat[:oid,:lng];
         b:= bat.new(:oid,:lng);
        
-       INT_MAX := 2147483647;
-        dbgmsk_restore := mdb.getDebug();
-        dbgmsk_unset := 8+8388608;
-        dbgmsk_keep := calc.xor(INT_MAX,dbgmsk_unset);
-        dbgmsk_set := calc.and(dbgmsk_restore,dbgmsk_keep);
-        mdb.setDebug(dbgmsk_set);
-
-        r:= mmath.srand(0);
+       r:= mmath.srand(0);
         barrier i:= 0:lng;
                 k:= mmath.rand();
                 l:= calc.lng(k);
                 bat.append(b,l);
                 redo i:= iterator.next(1:lng,1000000:lng);
         exit i;
-        mdb.setDebug(dbgmsk_set);
 
         return b;
 end initializeNext;
@@ -48,39 +32,53 @@ end initializeNext;
 
 function query(run:int, a:bat[:oid,:lng], b:bat[:oid,:lng]);
         t0:= alarm.usec();
+
+       profiler.activate("ticks");
+       profiler.activate("thread");
+       profiler.activate("stmt");
+       profiler.setAll();
+       profiler.start();
+
 barrier z:= language.dataflow();
        (s1,s2) := algebra.join(a,b);
 exit z;
         t1:= alarm.usec();
         t2 := t1-t0;
         io.printf("#run %d %d\n",run,t2);
+       stmt:= profiler.getTrace("stmt");
+       ticks:= profiler.getTrace("ticks");
+       thread:= profiler.getTrace("thread");
+       io.print(thread,ticks,stmt);
+
 end query;
 
 optimizer.multicore("user","query");
 function testrun();
         
        a:= initializeFirst();
+       bat.setReadMode(a);
        b:= initializeNext();
+       bat.setReadMode(b);
         user.query(0,a,b);
         user.query(1,a,b);
-#        user.query(2,a,b);
-#        user.query(3,a,b);
-#        user.query(4,a,b);
-#        user.query(5,a,b);
-#        user.query(6,a,b);
-#        user.query(7,a,b);
-#        user.query(8,a,b);
-#        user.query(9,a,b);
-#        user.query(10,a,b);
-#        user.query(11,a,b);
-#        user.query(12,a,b);
-#        user.query(13,a,b);
-#        user.query(14,a,b);
-#        user.query(15,a,b);
-#        user.query(16,a,b);
-#        user.query(17,a,b);
-#        user.query(18,a,b);
-#        user.query(19,a,b);
-#        user.query(20,a,b);
+        user.query(2,a,b);
+        user.query(3,a,b);
+        user.query(4,a,b);
+        user.query(5,a,b);
+        user.query(6,a,b);
+        user.query(7,a,b);
+        user.query(8,a,b);
+        user.query(9,a,b);
+        user.query(10,a,b);
+        user.query(11,a,b);
+        user.query(12,a,b);
+        user.query(13,a,b);
+        user.query(14,a,b);
+        user.query(15,a,b);
+        user.query(16,a,b);
+        user.query(17,a,b);
+        user.query(18,a,b);
+        user.query(19,a,b);
+        user.query(20,a,b);
 end testrun;
 testrun();
diff --git a/monetdb5/scheduler/mut_transforms.c 
b/monetdb5/scheduler/mut_transforms.c
--- a/monetdb5/scheduler/mut_transforms.c
+++ b/monetdb5/scheduler/mut_transforms.c
@@ -51,7 +51,7 @@ mutationJoin(Client cntxt, Mutant m){
                if ( i == pc){
                        /* replace the instruction, e.g. with a partioned one.
                           Dont use any partition intelligence, simple half 
split
-                          v := algebra.select(b,l,h) =>
+                          v := algebra.join(b,Y) =>
                                b1 := bat.partition(b,2,0);
                                b2 := bat.partition(b,2,1);
                                v1,z1:= algebra.join(b1,Y);
@@ -103,6 +103,11 @@ mutationJoin(Client cntxt, Mutant m){
                        // inherit profiling
                        m->src->profiler[m->src->stop-1].trace = profiler;
 
+                       q= newStmt(m->src, languageRef, passRef);
+                       q = pushArgument(m->src,q,b1);
+                       // inherit profiling
+                       m->src->profiler[m->src->stop-1].trace = profiler;
+
                        q= copyInstruction(p);
                        getArg(q,2)= b2;
                        v2 = getArg(q,0)= newTmpVariable(m->src,TYPE_any);
@@ -111,6 +116,11 @@ mutationJoin(Client cntxt, Mutant m){
                        // inherit profiling
                        m->src->profiler[m->src->stop-1].trace = profiler;
 
+                       q= newStmt(m->src, languageRef, passRef);
+                       q = pushArgument(m->src,q,b2);
+                       // inherit profiling
+                       m->src->profiler[m->src->stop-1].trace = profiler;
+
                        (void)z1;
                        (void)z2;
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to