Changeset: bd7bcdd865f7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bd7bcdd865f7
Modified Files:
        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: default
Log Message:

Merge with Apr2012 branch.


diffs (117 lines):

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
@@ -17,6 +17,10 @@ Copyright August 2008-2012 MonetDB B.V.
 All Rights Reserved.
 */
 
+
+-- add function signatures to SQL catalog
+
+
 -- Reverse a string
 create function reverse(src string)
 returns string external name udf.reverse;
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
@@ -17,12 +17,14 @@
  * All Rights Reserved.
  */
 
+/* monetdb_config.h must be the first include in each .c file */
 #include "monetdb_config.h"
 #include "udf.h"
 
 /* Reverse a string */
 
 /* actual implementation */
+/* all non-exported functions must be declared static */
 static str
 UDFreverse_(str *ret, str src)
 {
@@ -176,6 +178,7 @@ UDFBATreverse(bat *ret, bat *bid)
 
 /* scalar fuse */
 
+/* using C macro for convenient type-expansion */
 #define UDFfuse_scalar_impl(in,uin,out,shift)                          \
 /* fuse two (shift-byte) in values into one (2*shift-byte) out value */        
\
 /* actual implementation */                                            \
@@ -247,6 +250,7 @@ UDFBATfuse_(BAT **ret, BAT *bone, BAT *b
        BATaccessBegin(bone, USE_TAIL, MMAP_SEQUENTIAL);
        BATaccessBegin(btwo, USE_TAIL, MMAP_SEQUENTIAL);
 
+/* using C macro for convenient type-expansion */
 #define UDFBATfuse_TYPE(in,uin,out,shift)                              \
 do {   /* type-specific core algorithm */                              \
        in *one = NULL, *two = NULL;                                    \
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
@@ -17,11 +17,17 @@
  * All Rights Reserved.
 */
 
+/* In your own module, replace "UDF" & "udf" by your module's name */
+
 #ifndef _SQL_UDF_H_
 #define _SQL_UDF_H_
 #include "sql.h"
 #include <string.h>
 
+/* This is required as-is (except from renaming "UDF" & "udf" as suggested
+ * above) for all modules for correctly exporting function on Unix-like and
+ * Windows systems. */
+
 #ifdef WIN32
 #ifndef LIBUDF
 #define udf_export extern __declspec(dllimport)
@@ -32,9 +38,12 @@
 #define udf_export extern
 #endif
 
+/* export MAL wrapper functions */
+
 udf_export str UDFreverse(str *ret, str *src);
 udf_export str UDFBATreverse(int *ret, int *bid);
 
+/* using C macro for convenient type-expansion */
 #define UDFfuse_scalar_decl(in,out) \
         udf_export str UDFfuse_##in##_##out(out *ret, in *one, in *two)
 UDFfuse_scalar_decl(bte, sht);
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
@@ -15,6 +15,7 @@
 # Copyright August 2008-2012 MonetDB B.V.
 # All Rights Reserved.
 
+# scalar MAL signatures
 module udf;
 
 command reverse(ra1:str):str
@@ -22,6 +23,7 @@ address UDFreverse
 comment "Reverse a string";
 
 
+# BAT MAL signatures
 module batudf;
 
 command reverse(b:bat[:oid,:str]):bat[:oid,:str]
@@ -30,6 +32,7 @@ comment "Reverse a BAT of strings";
 
 
 
+# scalar MAL signatures
 module udf;
 
 command fuse(one:bte,two:bte):sht
@@ -45,6 +48,7 @@ address UDFfuse_int_lng
 comment "fuse two (4-byte) int values into one (8-byte) lng value";
 
 
+# BAT MAL signatures
 module batudf;
 
 command fuse(one:bat[:oid,:bte],two:bat[:oid,:bte]):bat[:oid,:sht]
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to