A simple static text output UDF
Returning text in a MySQL UDF can be slightly more complex than dealing with numbers. MySQL gives us a memory buffer to use when returning a string but it is only 766 bytes long. This is fine for some tasks, but not big enough to hold a long string or a blob, so what we do is allocate our own buffer for this purpose. Either way, we need to tell MySQL how long the resulting string is.
The next piece of example code has two UDFs inside it, the first showing how to use the memory buffer that MySQL has given us and the second allocating its own memory. Both are simple UDFs which will just return the MySQL version number that UDF was compiled against:
#include <stdlib.h> #include <string.h> #include <mysql.h> my_bool udf_textexample_init(UDF_INIT *initid, UDF_ARGS *args, char *message) { initid->const_item = 1; return 0; }
As with previous examples we create the initialization function. We set initid->const_item
to 1 here because the return...