mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
MDEV-32862 MYSQL struct in C/C and server differs
move MYSQL::fields down, replacing MYSQL::unused5 this way only MYSQL::fields and MYSQL::field_alloc will still have different offset in C/C and the server, but all other MYSQL members will get back in sync. luckily, plugins shouldn't need MYSQL::fields or MYSQL::field_alloc added a check to ensure both MYSQL structures are always of the same size.
This commit is contained in:
parent
361a11decb
commit
c432c9ef19
2 changed files with 10 additions and 2 deletions
|
@ -274,7 +274,6 @@ typedef struct st_mysql
|
|||
char *host,*user,*passwd,*unix_socket,*server_version,*host_info;
|
||||
char *info, *db;
|
||||
const struct charset_info_st *charset;
|
||||
MYSQL_FIELD *fields;
|
||||
MEM_ROOT field_alloc;
|
||||
my_ulonglong affected_rows;
|
||||
my_ulonglong insert_id; /* id if insert on table with NEXTNR */
|
||||
|
@ -296,7 +295,8 @@ typedef struct st_mysql
|
|||
/* session-wide random string */
|
||||
char scramble[SCRAMBLE_LENGTH+1];
|
||||
my_bool auto_local_infile;
|
||||
void *unused2, *unused3, *unused4, *unused5;
|
||||
void *unused2, *unused3, *unused4;
|
||||
MYSQL_FIELD *fields;
|
||||
|
||||
LIST *stmts; /* list of all statements */
|
||||
const struct st_mysql_methods *methods;
|
||||
|
|
|
@ -1426,6 +1426,14 @@ int main(int argc, char **argv)
|
|||
tests_to_run[i]= NULL;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
/* must be the same in C/C and embedded, 1208 on 64bit, 968 on 32bit */
|
||||
compile_time_assert(sizeof(MYSQL) == 60*sizeof(void*)+728);
|
||||
#else
|
||||
/* must be the same in C/C and embedded, 1272 on 64bit, 964 on 32bit */
|
||||
compile_time_assert(sizeof(MYSQL) == 77*sizeof(void*)+656);
|
||||
#endif
|
||||
|
||||
if (mysql_server_init(embedded_server_arg_count,
|
||||
embedded_server_args,
|
||||
(char**) embedded_server_groups))
|
||||
|
|
Loading…
Reference in a new issue