Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:
Description
Compiling XtraDB with VS 2010 on 64-bit Windows fails with several errors all of the type:
Error 10 error C2440: 'initializing' : cannot convert from 'ulint *' to 'unsigned long *' C:\Users\hakan\work\monty_program\maria-5.2\storage\xtradb\handler\ha_innodb.cc 10410
The code in question is:
Error 10 error C2440: 'initializing' : cannot convert from 'ulint *' to 'unsigned long *' C:\Users\hakan\work\monty_program\maria-5.2\storage\xtradb\handler\ha_innodb.cc 10410
static MYSQL_SYSVAR_ULONG(use_purge_thread, srv_use_purge_thread,
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
"Number of purge devoted threads. #### over 1 is EXPERIMENTAL ####",
NULL, NULL, 1, 0, 64, 0);
And line 10410 is
NULL, NULL, 1, 0, 64, 0);
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
The problem is that xtradb tries to store a ulint using unsigned long. This works on all architecures except 64 bit Windows because ulint is defined as __int64 on that. There is currently no MYSQL_SYSVAR_xx that matches this, so I have added a MYSQL_SYSVAR_ULINT and changed the calls to this. See the attached patch.
fix-600744.patch
LPexportBug600744_fix-600744.patch