Changeset: daa492dc565b for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=daa492dc565b Modified Files: monetdb5/extras/jaql/Tests/func01.mal monetdb5/extras/jaql/Tests/func01.stable.out monetdb5/extras/jaql/jaqlfunc.mal Branch: jacqueline Log Message:
funcs: implemented avg() diffs (57 lines): diff --git a/monetdb5/extras/jaql/Tests/func01.mal b/monetdb5/extras/jaql/Tests/func01.mal --- a/monetdb5/extras/jaql/Tests/func01.mal +++ b/monetdb5/extras/jaql/Tests/func01.mal @@ -1,6 +1,8 @@ # test of groupable functions jaql.x("[1,2,3] -> sum();"); +jaql.x("[1,2,3] -> avg();"); jaql.x("sum([1.2,2.4,3.6]);"); +jaql.x("avg([1.2,2.4,3.6]);"); jaql.x("count([1.2,5,3.6,8,\"bla\"]);"); # groupable, but with singleton arguments diff --git a/monetdb5/extras/jaql/Tests/func01.stable.out b/monetdb5/extras/jaql/Tests/func01.stable.out --- a/monetdb5/extras/jaql/Tests/func01.stable.out +++ b/monetdb5/extras/jaql/Tests/func01.stable.out @@ -18,7 +18,9 @@ stdout of test 'func01` in directory 'ex function user.main():void; # test of groupable functions jaql.x("[1,2,3] -> sum();"); + jaql.x("[1,2,3] -> avg();"); jaql.x("sum([1.2,2.4,3.6]);"); + jaql.x("avg([1.2,2.4,3.6]);"); jaql.x("count([1.2,5,3.6,8,\"bla\"]);"); # groupable, but with singleton arguments jaql.x("range(6);"); @@ -26,7 +28,9 @@ function user.main():void; jaql.x("range(3,11,3);"); end main; [ 6 ] +[ 2.000000 ] [ 7.200000 ] +[ 2.400000 ] [ 5 ] [ 0, 1, 2, 3, 4, 5 ] [ 4, 5, 6, 7, 8 ] diff --git a/monetdb5/extras/jaql/jaqlfunc.mal b/monetdb5/extras/jaql/jaqlfunc.mal --- a/monetdb5/extras/jaql/jaqlfunc.mal +++ b/monetdb5/extras/jaql/jaqlfunc.mal @@ -93,6 +93,18 @@ function sum(v:bat[:oid,:dbl]):bat[:oid, return r; end sum; +# perform average over the input array +function avg(v:bat[:oid,:lng]):bat[:oid,:dbl]; + k := algebra.kunique(v); + r := aggr.avg(v, k); + return r; +end avg; +function avg(v:bat[:oid,:dbl]):bat[:oid,:dbl]; + k := algebra.kunique(v); + r := aggr.avg(v, k); + return r; +end avg; + # perform count over the input array function count(v:bat[:oid,:any]):bat[:oid,:lng]; k := algebra.kunique(v); _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list