Changeset: 8c33c6dfc29b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8c33c6dfc29b
Added Files:
        sql/backends/monet5/Tests/inlineR.sql
        sql/backends/monet5/Tests/inlineUDF.sql
Branch: RIntegration
Log Message:

Examples of inline UDFs in C and R


diffs (31 lines):

diff --git a/sql/backends/monet5/Tests/inlineR.sql 
b/sql/backends/monet5/Tests/inlineR.sql
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/Tests/inlineR.sql
@@ -0,0 +1,9 @@
+-- Simple MonetDB inline R interface
+
+create function one() returns integer language R { return(1); }
+create function addtwo(i integer, j integer) returns integer language R { ret 
<- i + j; return(ret);}
+create function adderror(i integer, j integer) returns integer language R { if 
( i == int_nil || j == int_nil) throw(SQL,"udf","Nil not allowed"); ret <- i + 
j; return(nil);}
+
+select one();
+select addtwo(one(),one());
+select adderror(one(),null);
diff --git a/sql/backends/monet5/Tests/inlineUDF.sql 
b/sql/backends/monet5/Tests/inlineUDF.sql
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/Tests/inlineUDF.sql
@@ -0,0 +1,12 @@
+-- Simple MonetDB C UDF interface
+
+-- The arguments are named after the signature
+-- The return variable is called 'ret'
+
+create function one() returns integer language C { *ret = 1; return NULL; }
+create function addtwo(i integer, j integer) returns integer language C { *ret 
= *i + *j; return NULL;}
+create function adderror(i integer, j integer) returns integer language C { if 
( *i == int_nil || *j == int_nil) throw(SQL,"udf","Nil not allowed"); *ret = *i 
+ *j; return NULL;}
+
+select one();
+select addtwo(one(),one());
+select adderror(one(),null);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to