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