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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list