[MDEV-15520] Header mismatch on Windows distribution Created: 2018-03-09 Updated: 2018-03-09 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | 10.2.13 |
| Fix Version/s: | 10.2 |
| Type: | Bug | Priority: | Major |
| Reporter: | Ariel Silva | Assignee: | Georg Richter |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Windows 10.0.16299 x64 |
||
| Attachments: |
|
| Description |
|
Headers installed with MSI package (checked with errmsg.h, there could be more) don't match official sources (https://github.com/MariaDB/server) Attached diff of the affected file Most importantly the version installed does lack some CR_ defs |
| Comments |
| Comment by Ariel Silva [ 2018-03-09 ] |
|
Apparently it's pulling the headers from Connector-C (https://github.com/MariaDB/mariadb-connector-c/blob/master/include/errmsg.h) instead of MariaDB (https://github.com/MariaDB/server/blob/10.2/include/errmsg.h) EDIT: apparently the MariaDB servers are on include/server; still this doesn't match mysql distribution and projects that rely on this to be compatible with mysql will fail to compile |
| Comment by Vladislav Vaintroub [ 2018-03-09 ] |
|
I do not think it is an official API header file, or is it? Do you have links to (MariaDB or MySQL) documentation of the constants you miss? |
| Comment by Ariel Silva [ 2018-03-09 ] |
|
It's not a problem of the repos themselves, but rather distribution issue eg. with mysql.h: repo version is https://github.com/MariaDB/server/blob/10.2/include/mysql.h on the unzipped windows distribution is located at include/mysql/server/mysql.h instead of include/mysql.h. The one at include/mysql/mysql.h is actually Connector-C version of the header file |
| Comment by Vladislav Vaintroub [ 2018-03-09 ] |
|
No, there is no distribution issue. We build and distribute Connector/C since 10.2 . This is our client library. Client tools all are built with Connector/C. We also, unfortunately, still, maintain a "private" libmysqlclient, as part of the server. (Mostly) single user of that is replication, and replication uses a lot of internals that are different from C/C. https://github.com/MariaDB/server/blob/10.2/include/mysql.h is the internal header, the one that users should not see, the one that was not used for building client library. |
| Comment by Vladislav Vaintroub [ 2018-03-09 ] |
|
Can i ask again, what are the CR_xxx constants you miss, and could you point me to their documentation? |
| Comment by Ariel Silva [ 2018-03-09 ] |
|
Missing from errmsg.h: #define CR_EMBEDDED_CONNECTION 2021 Documentation: https://dev.mysql.com/doc/dev/mysql-server/8.0.0/errmsg_8h.html |
| Comment by Vladislav Vaintroub [ 2018-03-09 ] |
|
I do not think this is the official documentation, just Doxygen annotated source code. georg, can you check and fix Missing definitions ? |
| Comment by Georg Richter [ 2018-03-09 ] |
|
The missing error codes are not used by MariaDB Connector/C, but also several of them are not used (or not used anymore) by libmysql (Oracle). Oracle cleaned up server error messages in recent MySQL versions, but obviously not client error messages. I understand that some client applications will bot build correctly due to missing defines, so we will add the missing definitions (but not the error message itself). |