Changeset: 6fdeb827d502 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6fdeb827d502
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: holindex
Log Message:
Change signatures of microbenchmark functions.
(grafted from 5f676fda7bc6ba2cedc8b40bcc8df64ad7119854)
diffs (295 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
@@ -1561,10 +1561,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 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 :=
ALGmin_int(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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list