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

Reply via email to