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

Reply via email to