Details
-
Type:
Task
-
Status: Open
-
Priority:
Critical
-
Resolution: Unresolved
-
Fix Version/s: None
-
Component/s: Admin statements, Embedded Server
-
Labels:None
Description
The CONNECT storage engine comes with additional UDF's used to generate JSON items.
All is right when the plugin is not embedded. It can be installed using:
INSTALL PLUGIN CONNECT SONAME 'ha_connect';
To create the functions, one can use statements such as:
CREATE FUNCTION function_name RETURNS STRING SONAME 'ha_connect.{so|dll'};
However, when the server was compiled with:
WITH STORAGE ENGIE CONNECT=ON
there is no more ha_connect library and apparently it is impossible to create the UDF's.
There should be a syntax to indicate they are located in the MariaDB server.
Additional question:
The 'INSTALL PLUGIN' command accepts the library file type to be omited and resolved to 'so' on Linux and to 'dll' on Windows. However, the 'CREATE FUNCTION' does not. This makes complicated to make tests that should run on on both operating systems.
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
To write tests you can use the following (copied from udf.test):
This works both on Windows and on Linux/etc.
As for UDFs inside the main binary… UDF interface is at least 15 years old, it was created long before plugins. I've wanted to replace it with UDF plugins for, like, 10 years (see MYSQL_UDF_PLUGIN in plugin.h), but it always kinda worked. May be it's time to do it, finally. I would rather not add new features to old UDFs.