Changeset: 5f676fda7bc6 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5f676fda7bc6 Modified Files: clients/Tests/exports.stable.out monetdb5/modules/kernel/microbenchmark.c monetdb5/modules/kernel/microbenchmark.h monetdb5/modules/kernel/microbenchmark.mal monetdb5/optimizer/Tests/dataflow.mal monetdb5/optimizer/Tests/dataflow.stable.out monetdb5/tests/BugTracker/Tests/merge-join_properties.SF-2952191.malC Branch: default Log Message:
Change signatures of microbenchmark functions. diffs (296 lines): diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -1557,11 +1557,11 @@ str MATproject(Client cntxt, MalBlkPtr m str MATsortReverseTail(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str MATsortTail(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str MBMmix(int *ret, int *batid); -str MBMnormal(int *ret, oid *base, int *size, int *domain, int *stddev, int *mean); -str MBMrandom(int *ret, oid *base, int *size, int *domain); -str MBMrandom_seed(int *ret, oid *base, int *size, int *domain, const int *seed); -str MBMskewed(int *ret, oid *base, int *size, int *domain, int *skew); -str MBMuniform(int *ret, oid *base, int *size, int *domain); +str MBMnormal(int *ret, oid *base, wrd *size, int *domain, int *stddev, int *mean); +str MBMrandom(int *ret, oid *base, wrd *size, int *domain); +str MBMrandom_seed(int *ret, oid *base, wrd *size, int *domain, const int *seed); +str MBMskewed(int *ret, oid *base, wrd *size, int *domain, int *skew); +str MBMuniform(int *ret, oid *base, wrd *size, int *domain); str MCawakeClient(int id); void MCcleanupClients(void); void MCcloseClient(Client c); diff --git a/monetdb5/modules/kernel/microbenchmark.c b/monetdb5/modules/kernel/microbenchmark.c --- a/monetdb5/modules/kernel/microbenchmark.c +++ b/monetdb5/modules/kernel/microbenchmark.c @@ -33,12 +33,17 @@ #include "microbenchmark.h" static int -BATrandom(BAT **bn, oid *base, int *size, int *domain, int seed) +BATrandom(BAT **bn, oid *base, wrd *size, int *domain, int seed) { BUN n = (BUN) * size; BAT *b = NULL; BUN p, q; + if (*size > (wrd)BUN_MAX) { + GDKerror("BATrandom: size must not exceed BUN_MAX"); + return GDK_FAIL; + } + if (*size < 0) { GDKerror("BATrandom: size must not be negative"); return GDK_FAIL; @@ -89,13 +94,18 @@ BATrandom(BAT **bn, oid *base, int *size } static int -BATuniform(BAT **bn, oid *base, int *size, int *domain) +BATuniform(BAT **bn, oid *base, wrd *size, int *domain) { BUN n = (BUN) * size, i, r; BAT *b = NULL; BUN firstbun, p, q; int j = 0; + if (*size > (wrd)BUN_MAX) { + GDKerror("BATuniform: size must not exceed BUN_MAX"); + return GDK_FAIL; + } + if (*size < 0) { GDKerror("BATuniform: size must not be negative"); return GDK_FAIL; @@ -152,17 +162,27 @@ BATuniform(BAT **bn, oid *base, int *siz } static int -BATskewed(BAT **bn, oid *base, int *size, int *domain, int *skew) +BATskewed(BAT **bn, oid *base, wrd *size, int *domain, int *skew) { BUN n = (BUN) * size, i, r; BAT *b = NULL; BUN firstbun, lastbun, p, q; - int skewedSize; + BUN skewedSize; int skewedDomain; + if (*size > (wrd)BUN_MAX) { + GDKerror("BATskewed: size must not exceed BUN_MAX = " BUNFMT, BUN_MAX); + return GDK_FAIL; + } + if (*size < 0) { - GDKerror("BATuniform: size must not be negative"); + GDKerror("BATskewed: size must not be negative"); + return GDK_FAIL; + } + + if (*skew > 100 || *skew < 0) { + GDKerror("BATskewed: skew must be between 0 and 100"); return GDK_FAIL; } @@ -186,7 +206,7 @@ BATskewed(BAT **bn, oid *base, int *size firstbun = BUNfirst(b); BATsetcount(b, n); /* create BUNs with skewed distribution */ - skewedSize = ((*skew) * (*size))/100; + skewedSize = ((*skew) * n)/100; skewedDomain = ((100-(*skew)) * (*domain))/100; lastbun = firstbun + skewedSize; @@ -232,7 +252,7 @@ BATskewed(BAT **bn, oid *base, int *size #endif static int -BATnormal(BAT **bn, oid *base, int *size, int *domain, int *stddev, int *mean) +BATnormal(BAT **bn, oid *base, wrd *size, int *domain, int *stddev, int *mean) { BUN n = (BUN) * size, i; unsigned int r = (unsigned int) n; @@ -243,6 +263,11 @@ BATnormal(BAT **bn, oid *base, int *size int *itab; flt *ftab, tot = 0.0; + if (*size > (wrd)BUN_MAX) { + GDKerror("BATnormal: size must not exceed BUN_MAX"); + return GDK_FAIL; + } + if (*size < 0) { GDKerror("BATnormal: size must not be negative"); return GDK_FAIL; @@ -324,12 +349,12 @@ BATnormal(BAT **bn, oid *base, int *size */ str -MBMrandom(int *ret, oid *base, int *size, int *domain){ +MBMrandom(int *ret, oid *base, wrd *size, int *domain){ return MBMrandom_seed ( ret, base, size, domain, &int_nil ); } str -MBMrandom_seed(int *ret, oid *base, int *size, int *domain, const int *seed){ +MBMrandom_seed(int *ret, oid *base, wrd *size, int *domain, const int *seed){ BAT *bn = NULL; BATrandom(&bn, base, size, domain, *seed); @@ -340,8 +365,9 @@ MBMrandom_seed(int *ret, oid *base, int return MAL_SUCCEED; } + str -MBMuniform(int *ret, oid *base, int *size, int *domain){ +MBMuniform(int *ret, oid *base, wrd *size, int *domain){ BAT *bn = NULL; BATuniform(&bn, base, size, domain); @@ -353,7 +379,7 @@ MBMuniform(int *ret, oid *base, int *siz } str -MBMnormal(int *ret, oid *base, int *size, int *domain, int *stddev, int *mean){ +MBMnormal(int *ret, oid *base, wrd *size, int *domain, int *stddev, int *mean){ BAT *bn = NULL; BATnormal(&bn, base, size, domain, stddev, mean); if( bn ){ @@ -395,7 +421,7 @@ MBMmix(int *bn, int *batid) } str -MBMskewed(int *ret, oid *base, int *size, int *domain, int *skew){ +MBMskewed(int *ret, oid *base, wrd *size, int *domain, int *skew){ BAT *bn = NULL; BATskewed(&bn, base, size, domain, skew); diff --git a/monetdb5/modules/kernel/microbenchmark.h b/monetdb5/modules/kernel/microbenchmark.h --- a/monetdb5/modules/kernel/microbenchmark.h +++ b/monetdb5/modules/kernel/microbenchmark.h @@ -35,11 +35,11 @@ #define mb_export extern #endif -mb_export str MBMrandom(int *ret, oid *base, int *size, int *domain); -mb_export str MBMrandom_seed(int *ret, oid *base, int *size, int *domain, const int *seed); -mb_export str MBMuniform(int *ret, oid *base, int *size, int *domain); -mb_export str MBMnormal(int *ret, oid *base, int *size, int *domain, int *stddev, int *mean); +mb_export str MBMrandom(int *ret, oid *base, wrd *size, int *domain); +mb_export str MBMrandom_seed(int *ret, oid *base, wrd *size, int *domain, const int *seed); +mb_export str MBMuniform(int *ret, oid *base, wrd *size, int *domain); +mb_export str MBMnormal(int *ret, oid *base, wrd *size, int *domain, int *stddev, int *mean); mb_export str MBMmix(int *ret, int *batid); -mb_export str MBMskewed(int *ret, oid *base, int *size, int *domain, int *skew); +mb_export str MBMskewed(int *ret, oid *base, wrd *size, int *domain, int *skew); #endif /* _MBM_H_ */ diff --git a/monetdb5/modules/kernel/microbenchmark.mal b/monetdb5/modules/kernel/microbenchmark.mal --- a/monetdb5/modules/kernel/microbenchmark.mal +++ b/monetdb5/modules/kernel/microbenchmark.mal @@ -17,21 +17,21 @@ module microbenchmark; -command random(base:oid, size:int, domain:int):bat[:oid,:int] +command random(base:oid, size:wrd, domain:int):bat[:oid,:int] address MBMrandom comment "Create a BAT with random integer distribution; domain == nil:int ? [0:RAND_MAX] : [0,domain)"; -command random(base:oid, size:int, domain:int, seed:int):bat[:oid,:int] +command random(base:oid, size:wrd, domain:int, seed:int):bat[:oid,:int] address MBMrandom_seed comment "Create a BAT with random integer distribution, using given seed (seed == nil:int -> no seed used); domain == nil:int ? [0:RAND_MAX] : [0,domain)"; -command uniform(base:oid, size:int, domain:int):bat[:oid,:int] +command uniform(base:oid, size:wrd, domain:int):bat[:oid,:int] address MBMuniform comment "Create a BAT with uniform integer distribution"; -command normal(base:oid, size:int, domain:int, stddev:int, mean:int):bat[:oid,:int] +command normal(base:oid, size:wrd, domain:int, stddev:int, mean:int):bat[:oid,:int] address MBMnormal comment "Create a BAT with a normal integer distribution"; @@ -39,7 +39,7 @@ command mix(b1:bat[:oid,:int]):bat[:oid, address MBMmix comment "Mix the BUNs of this BAT"; -command skewed(base:oid, size:int, domain:int, skew:int):bat[:oid,:int] +command skewed(base:oid, size:wrd, domain:int, skew:int):bat[:oid,:int] address MBMskewed comment "Create a BAT with skewed integer distribution"; diff --git a/monetdb5/optimizer/Tests/dataflow.mal b/monetdb5/optimizer/Tests/dataflow.mal --- a/monetdb5/optimizer/Tests/dataflow.mal +++ b/monetdb5/optimizer/Tests/dataflow.mal @@ -3,7 +3,7 @@ include microbenchmark; function tst(); -s:= microbenchmark.uniform(0:oid, 10000000, 10000000); +s:= microbenchmark.uniform(0:oid, 10000000:wrd, 10000000); l:= aggr.min(s); h:= l; #mdb.setTimer(true); diff --git a/monetdb5/optimizer/Tests/dataflow.stable.out b/monetdb5/optimizer/Tests/dataflow.stable.out --- a/monetdb5/optimizer/Tests/dataflow.stable.out +++ b/monetdb5/optimizer/Tests/dataflow.stable.out @@ -19,7 +19,7 @@ stdout of test 'dataflow` in directory ' # MonetDB/DataCell module not loaded # SQLException:mvc:SQL module not initialized function user.tst():void; - s := microbenchmark.uniform(0@0:oid,10000000,10000000); + s := microbenchmark.uniform(0@0:oid,10000000:wrd,10000000); l := aggr.min(s); h := l; #mdb.setTimer(true); @@ -47,12 +47,12 @@ function user.main():void; user.tst(); end main; function user.tst():void; # 0 tst:void := user.tst() {G} - s:bat[:oid,:int] := microbenchmark.uniform(0@0:oid,10000000,10000000);# 1 s:bat[:oid,:int] := MBMuniform(_2:oid, _3:int, _3:int) {G} + s:bat[:oid,:int] := microbenchmark.uniform(0@0:oid,10000000:wrd,10000000);# 1 s:bat[:oid,:int] := MBMuniform(_2:oid, _3:wrd, _4:int) {G} l := aggr.min(s); # 2 l:int := ALGminany(s:bat[:oid,:int]) {G} h := l; # 3 h:int := l:int #mdb.setTimer(true); #mdb.setThread(true); - z := nil:bat[:oid,:int]; # 6 z:bat[:oid,:int] := _9:bat[:oid,:int] {G} + z := nil:bat[:oid,:int]; # 6 z:bat[:oid,:int] := _10:bat[:oid,:int] {G} barrier go := language.dataflow(); # 7 go:bit := MALstartDataflow() {J17} t1 := algebra.select(s,l,h); # 8 t1:bat[:oid,:int] := ALGselect(s:bat[:oid,:int], l:int, h:int) {G} t2 := algebra.select(s,l,h); # 9 t2:bat[:oid,:int] := ALGselect(s:bat[:oid,:int], l:int, h:int) {G} @@ -64,11 +64,11 @@ barrier go := language.dataflow(); t8 := algebra.select(s,l,h); # 15 t8:bat[:oid,:int] := ALGselect(s:bat[:oid,:int], l:int, h:int) {G} z := mat.pack(t1,t2,t3,t4,t5,t6,t7,t8);# 16 z:bat[:oid,:int] := MATpack(t1:bat[:oid,:int], t2:bat[:oid,:int], t3:bat[:oid,:int], t4:bat[:oid,:int], t5:bat[:oid,:int], t6:bat[:oid,:int], t7:bat[:oid,:int], t8:bat[:oid,:int]) {G} exit go; # 17 go:bit - s:bat[:oid,:int] := nil:bat[:oid,:int];# 18 s:bat[:oid,:int] := _25:bat[:oid,:int] {G} - mdb.var(); # 19 _19:void := MDBvar() + s:bat[:oid,:int] := nil:bat[:oid,:int];# 18 s:bat[:oid,:int] := _26:bat[:oid,:int] {G} + mdb.var(); # 19 _20:void := MDBvar() c := aggr.count(z); # 20 c:wrd := ALGcount_bat(z:bat[:oid,:int]) {G} - io.print(c); # 21 _21:void := IOprint_val(c:wrd) - io.print("done"); # 22 _22:void := IOprint_val(_23:str) {G} + io.print(c); # 21 _22:void := IOprint_val(c:wrd) + io.print("done"); # 22 _23:void := IOprint_val(_24:str) {G} end tst; # 23 diff --git a/monetdb5/tests/BugTracker/Tests/merge-join_properties.SF-2952191.malC b/monetdb5/tests/BugTracker/Tests/merge-join_properties.SF-2952191.malC --- a/monetdb5/tests/BugTracker/Tests/merge-join_properties.SF-2952191.malC +++ b/monetdb5/tests/BugTracker/Tests/merge-join_properties.SF-2952191.malC @@ -1,10 +1,9 @@ include microbenchmark; - -l0 := microbenchmark.uniform(0:oid, 1000, 10); +l0 := microbenchmark.uniform(0:oid, 1000:wrd, 10); l1 := algebra.sortTail(l0); l2 := algebra.markH(l1); -r0 := microbenchmark.uniform(0:oid, 10, 10); +r0 := microbenchmark.uniform(0:oid, 10:wrd, 10); r1 := bat.reverse(r0); j := algebra.join(l2,r1); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list