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

Reply via email to