Bug #91955 | 8.0 broke plugin API for C | ||
---|---|---|---|
Submitted: | 9 Aug 2018 19:06 | Modified: | 9 Nov 2018 3:44 |
Reporter: | Laurynas Biveinis (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Documentation | Severity: | S3 (Non-critical) |
Version: | 8.0 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[9 Aug 2018 19:06]
Laurynas Biveinis
[10 Aug 2018 5:15]
Laurynas Biveinis
Then In file included from /Users/laurynas/percona/mysql-server/include/mysql/plugin.h:76: In file included from /Users/laurynas/percona/mysql-server/include/mysql/services.h:28: In file included from /Users/laurynas/percona/mysql-server/include/mysql/service_command.h:32: /Users/laurynas/percona/mysql-server/include/mysql/com_data.h:64:3: error: must use 'struct' tag to refer to type 'PS_PARAM' PS_PARAM *parameters; ^ struct ... and many more errors in that header
[10 Aug 2018 5:40]
Laurynas Biveinis
In file included from /Users/laurynas/percona/mysql-server/include/mysql/plugin.h:76: In file included from /Users/laurynas/percona/mysql-server/include/mysql/services.h:28: In file included from /Users/laurynas/percona/mysql-server/include/mysql/service_command.h:33: /Users/laurynas/percona/mysql-server/include/mysql/service_srv_session.h:47:8: error: expected identifier or '(' extern "C" struct srv_session_service_st { ^
[10 Aug 2018 5:42]
Laurynas Biveinis
In file included from /Users/laurynas/percona/mysql-server/include/mysql/plugin.h:76: In file included from /Users/laurynas/percona/mysql-server/include/mysql/services.h:28: In file included from /Users/laurynas/percona/mysql-server/include/mysql/service_command.h:35: /Users/laurynas/percona/mysql-server/include/decimal.h:58:38: error: must use 'struct' tag to refer to type 'decimal_t' int string2decimal(const char *from, decimal_t *to, char **end); ^ struct
[10 Aug 2018 8:55]
Laurynas Biveinis
After some mechanical fixes we bump into service_rules_table.h, which is a completely C++ header.
[15 Aug 2018 14:37]
Steinar Gunderson
Writing plugins in C is not supported. Reassigning to documentation so this can be made clear.
[16 Aug 2018 5:30]
MySQL Verification Team
Hello Laurynas, Thank you for the report and feedback! Verifying this as a doc issue per Steinar's last note. regards, Umesh
[9 Nov 2018 3:44]
Paul DuBois
Posted by developer: Correct, plugins now must be compiled as C++ code, as of MySQL 8.0.13. I added a changelog entry for Bug#26781567: Previously, MySQL plugins could be written in C or C++. MySQL header files used by plugins now contain C++ code, which means that plugins must be written in C++, not C. Also updated https://dev.mysql.com/doc/refman/8.0/en/writing-plugins-overview.html to list conditions for plugin writing.