Changeset: f3e634f5e585 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f3e634f5e585
Modified Files:
        monetdb5/modules/kernel/arrays.c
        sql/backends/monet5/UDF/80_udf.sql
        sql/backends/monet5/UDF/udf.c
        sql/backends/monet5/UDF/udf.h
        sql/backends/monet5/UDF/udf.mal
Branch: arrays
Log Message:

trying to create a udf that gets a table and returns a table


diffs (76 lines):

diff --git a/monetdb5/modules/kernel/arrays.c b/monetdb5/modules/kernel/arrays.c
--- a/monetdb5/modules/kernel/arrays.c
+++ b/monetdb5/modules/kernel/arrays.c
@@ -1111,5 +1111,3 @@ str ALGnonDimensionQRDecomposition(bat *
     return MAL_SUCCEED;
 }
 
-
-
diff --git a/sql/backends/monet5/UDF/80_udf.sql 
b/sql/backends/monet5/UDF/80_udf.sql
--- a/sql/backends/monet5/UDF/80_udf.sql
+++ b/sql/backends/monet5/UDF/80_udf.sql
@@ -28,3 +28,9 @@ returns bigint external name udf.fuse;
 CREATE FUNCTION qrq(c double, s double)
 RETURNS double external name udf.qrq;
 
+CREATE FUNCTION fotini1(c double, s double)
+RETURNS double external name udf.fotini1;
+
+CREATE FUNCTION fotini2(c double, s double)
+RETURNS TABLE(c1 double, c2 double) 
+external name udf.fotini2;
diff --git a/sql/backends/monet5/UDF/udf.c b/sql/backends/monet5/UDF/udf.c
--- a/sql/backends/monet5/UDF/udf.c
+++ b/sql/backends/monet5/UDF/udf.c
@@ -409,3 +409,25 @@ char* UDFqrq(bat *q, const bat *c, const
 
        return MAL_SUCCEED;
 }
+
+char* fotini1UDF(double *ret1, double *in1, double *in2) {
+       if(*in1 > *in2) {
+               *ret1 = *in1;
+       } else {
+               *ret1=*in2;
+       }
+
+       return MAL_SUCCEED;
+}
+
+char* fotini2UDF(double *ret1, double *ret2, double *in1, double *in2) {
+       if(*in1 > *in2) {
+               *ret1 = *in1;
+               *ret2 = *in2;
+       } else {
+               *ret1=*in2;
+               *ret2 = *in1;
+       }
+
+       return MAL_SUCCEED;
+}
diff --git a/sql/backends/monet5/UDF/udf.h b/sql/backends/monet5/UDF/udf.h
--- a/sql/backends/monet5/UDF/udf.h
+++ b/sql/backends/monet5/UDF/udf.h
@@ -45,4 +45,7 @@ UDFfuse_scalar_decl(lng, hge);
 udf_export char * UDFBATfuse(bat *ret, const bat *one, const bat *two);
 
 udf_export char* UDFqrq(bat *q, const bat *c, const double *s);
+
+udf_export char* fotini1UDF(double *ret1, double *in1, double *in2);
+udf_export char* fotini2UDF(double *ret1, double *ret2, double *in1, double 
*in2);
 #endif /* _SQL_UDF_H_ */
diff --git a/sql/backends/monet5/UDF/udf.mal b/sql/backends/monet5/UDF/udf.mal
--- a/sql/backends/monet5/UDF/udf.mal
+++ b/sql/backends/monet5/UDF/udf.mal
@@ -54,3 +54,10 @@ comment "fuse two (4-byte) int values in
 
 command batudf.qrq(c:bat[:oid,:dbl], s:dbl) :bat[:oid,:dbl]
 address UDFqrq;
+
+
+command udf.fotini1(c1:dbl, c2:dbl) :dbl
+address fotini1UDF;
+
+command udf.fotinii2(c1:dbl, c2:dbl) (:dbl,:dbl)
+address fotini2UDF;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to