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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list