Changeset: 617918c5409b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=617918c5409b
Added Files:
monetdb5/extras/rapi/Tests/rapi08.mal
monetdb5/extras/rapi/Tests/rapi08.stable.err
monetdb5/extras/rapi/Tests/rapi08.stable.out
Modified Files:
monetdb5/extras/rapi/Tests/All
monetdb5/extras/rapi/rapi.mal
Branch: RIntegration
Log Message:
R API: rapi.subeval function for grouped aggregates from R, MAL test and output
diffs (149 lines):
diff --git a/monetdb5/extras/rapi/Tests/All b/monetdb5/extras/rapi/Tests/All
--- a/monetdb5/extras/rapi/Tests/All
+++ b/monetdb5/extras/rapi/Tests/All
@@ -6,3 +6,4 @@ HAVE_LIBR?rapi04
HAVE_LIBR?rapi05
HAVE_LIBR?rapi06
HAVE_LIBR?rapi07
+HAVE_LIBR?rapi08
diff --git a/monetdb5/extras/rapi/Tests/rapi08.mal
b/monetdb5/extras/rapi/Tests/rapi08.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/rapi/Tests/rapi08.mal
@@ -0,0 +1,27 @@
+gv:= bat.new(:oid,:int);
+bat.append(gv,1);
+bat.append(gv,1);
+bat.append(gv,2);
+bat.append(gv,2);
+
+dv:= bat.new(:oid,:int);
+bat.append(dv,42);
+bat.append(dv,84);
+bat.append(dv,42);
+bat.append(dv,21);
+
+# tuple identifiers
+ti:= bat.new(:oid,:oid);
+bat.append(ti,0:oid);
+bat.append(ti,1:oid);
+bat.append(ti,2:oid);
+bat.append(ti,3:oid);
+
+X_8 := algebra.leftfetchjoin(ti,gv);
+(X_9,r1_9,r2_9) := group.subgroupdone(X_8);
+X_12 := algebra.leftfetchjoin(r1_9,X_8);
+X_15 := algebra.leftfetchjoin(ti,dv);
+X_16:bat[:any,:dbl] := rapi.subeval("res <- aggregate(arg1, by=list(arg2),
FUN=median); return(res$x)",X_15,X_9,r1_9,true);
+
+io.print(X_16);
+
diff --git a/monetdb5/extras/rapi/Tests/rapi08.stable.err
b/monetdb5/extras/rapi/Tests/rapi08.stable.err
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/rapi/Tests/rapi08.stable.err
@@ -0,0 +1,29 @@
+stderr of test 'rapi08` in directory 'monetdb5/extras/rapi` itself:
+
+
+# 12:50:57 >
+# 12:50:57 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=33963" "--set"
"mapi_usock=/var/tmp/mtest-14670/.s.monetdb.33963" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/export/scratch1/hannes/fakefs/var/MonetDB/mTests_monetdb5_extras_rapi"
"rapi08.mal"
+# 12:50:57 >
+
+# builtin opt gdk_dbpath =
/export/scratch2/hannes/monetdb-rint-install/var/monetdb5/dbfarm/demo
+# builtin opt gdk_debug = 0
+# builtin opt gdk_vmtrim = yes
+# builtin opt monet_prompt = >
+# builtin opt monet_daemon = no
+# builtin opt mapi_port = 50000
+# builtin opt mapi_open = false
+# builtin opt mapi_autosense = false
+# builtin opt sql_optimizer = default_pipe
+# builtin opt sql_debug = 0
+# cmdline opt gdk_nr_threads = 0
+# cmdline opt mapi_open = true
+# cmdline opt mapi_port = 33963
+# cmdline opt mapi_usock = /var/tmp/mtest-14670/.s.monetdb.33963
+# cmdline opt monet_prompt =
+# cmdline opt mal_listing = 2
+# cmdline opt gdk_dbpath =
/export/scratch1/hannes/fakefs/var/MonetDB/mTests_monetdb5_extras_rapi
+
+# 12:50:58 >
+# 12:50:58 > "Done."
+# 12:50:58 >
+
diff --git a/monetdb5/extras/rapi/Tests/rapi08.stable.out
b/monetdb5/extras/rapi/Tests/rapi08.stable.out
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/rapi/Tests/rapi08.stable.out
@@ -0,0 +1,55 @@
+stdout of test 'rapi08` in directory 'monetdb5/extras/rapi` itself:
+
+
+# 12:50:57 >
+# 12:50:57 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=33963" "--set"
"mapi_usock=/var/tmp/mtest-14670/.s.monetdb.33963" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/export/scratch1/hannes/fakefs/var/MonetDB/mTests_monetdb5_extras_rapi"
"rapi08.mal"
+# 12:50:57 >
+
+# MonetDB 5 server v11.17.2
+# This is an unreleased version
+# Serving database 'mTests_monetdb5_extras_rapi', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically
linked
+# Found 15.592 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2014 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://bristol.ins.cwi.nl:33963/
+# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-14670/.s.monetdb.33963
+# MonetDB/GIS module loaded
+# MonetDB/JAQL module loaded
+# MonetDB/SQL module loaded
+function user.main():void;
+ gv := bat.new(:oid,:int);
+ bat.append(gv,1);
+ bat.append(gv,1);
+ bat.append(gv,2);
+ bat.append(gv,2);
+ dv := bat.new(:oid,:int);
+ bat.append(dv,42);
+ bat.append(dv,84);
+ bat.append(dv,42);
+ bat.append(dv,21);
+# tuple identifiers
+ ti := bat.new(:oid,:oid);
+ bat.append(ti,0@0:oid);
+ bat.append(ti,1@0:oid);
+ bat.append(ti,2@0:oid);
+ bat.append(ti,3@0:oid);
+ X_8 := algebra.leftfetchjoin(ti,gv);
+ (X_9,r1_9,r2_9) := group.subgroupdone(X_8);
+ X_12 := algebra.leftfetchjoin(r1_9,X_8);
+ X_15 := algebra.leftfetchjoin(ti,dv);
+ X_16:bat[:any,:dbl] := rapi.subeval("res <- aggregate(arg1,
by=list(arg2), FUN=median); return(res$x)",X_15,X_9,r1_9,true);
+ io.print(X_16);
+end main;
+#--------------------------#
+# h t # name
+# void dbl # type
+#--------------------------#
+[ 0@0, 63 ]
+[ 1@0, 31.5 ]
+
+# 12:50:58 >
+# 12:50:58 > "Done."
+# 12:50:58 >
+
diff --git a/monetdb5/extras/rapi/rapi.mal b/monetdb5/extras/rapi/rapi.mal
--- a/monetdb5/extras/rapi/rapi.mal
+++ b/monetdb5/extras/rapi/rapi.mal
@@ -29,6 +29,11 @@ pattern eval(expr:str,arg:any...):any...
address RAPIeval
comment "Execute a simple R script value";
+#grouped things
+pattern subeval(expr:str,arg:any...):any...
+address RAPIeval
+comment "grouped aggregates through R";
+
# sql compiler needs this function for bat-wise operations
module batrapi;
pattern eval(expr:str,arg:any...):any...
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list