Bug #4445 Erroneous version information
Submitted: 8 Jul 2004 0:13 Modified: 17 Feb 2005 0:13
Reporter: John McGrath Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Command-line Clients Severity:S3 (Non-critical)
Version:4.0.20d OS:Windows (Windows)
Assigned to: Antony Curtis CPU Architecture:Any

[8 Jul 2004 0:13] John McGrath
Description:
When running the "mysql" command line client, included in the package advertised as being for "Windows 95/98/NT/2000/XP/2003 (x86)", the --version option reports:

   Ver 12.22 Distrib 4.0.18, for Win95/Win98 (i32)

How to repeat:
mysql --version

Suggested fix:
Change the "Win95/Win98" to specify the other Windows versions, or leave out the Windows versions - i.e. shorten it to "Windows" or "Windows x86".
[17 Jul 2004 14:39] MySQL Verification Team
Thank you for the bug report.
[12 Aug 2004 1:38] Antony Curtis
(using following resource for reference 
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_predir_prede... ) 
 
Suggest perhaps the following patch: 
 
===== include/config-win.h 1.35 vs edited ===== 
--- 1.35/include/config-win.h   2004-02-19 17:36:52 +00:00 
+++ edited/include/config-win.h 2004-08-12 00:35:30 +01:00 
@@ -23,18 +23,25 @@ 
 #include <io.h> 
 #include <malloc.h> 
 
-#if defined(__NT__) 
-#define SYSTEM_TYPE    "NT" 
-#elif defined(__WIN2000__) 
-#define SYSTEM_TYPE    "WIN2000" 
+#if defined(_WIN64) || defined(WIN64) 
+#define SYSTEM_TYPE    "Win64" 
+#elif defined(_WIN32) || defined(WIN32) 
+#define SYSTEM_TYPE    "Win32" 
 #else 
-#define SYSTEM_TYPE    "Win95/Win98" 
+#define SYSTEM_TYPE    "Windows" 
 #endif 
 
-#if defined(_WIN64) || defined(WIN64) 
-#define MACHINE_TYPE   "ia64"          /* Define to machine type name */ 
+#if defined(_M_IA64) 
+#define MACHINE_TYPE   "ia64" 
+#elif defined(_M_IX86) 
+#define MACHINE_TYPE   "ia32" 
+#elif defined(_M_ALPHA) 
+#define MACHINE_TYPE   "axp" 
 #else 
-#define MACHINE_TYPE   "i32"           /* Define to machine type name */ 
+#define MACHINE_TYPE   "unknown" 
+#endif 
+ 
+#if !(defined(_WIN64) || defined(WIN64)) 
 #ifndef _WIN32 
 #define _WIN32                         /* Compatible with old source */ 
 #endif 
@@ -42,6 +49,7 @@ 
 #define __WIN32__ 
 #endif 
 #endif /* _WIN64 */ 
+ 
 #ifndef __WIN__ 
 #define __WIN__                              /* To make it easier in VC++ */ 
 #endif
[16 Feb 2005 11:28] Alexander Barkov
Antony,

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_predir_prede...

states that _WIN32 is always defined. That means this definition
will never happen:

#else 
#define SYSTEM_TYPE    "Windows" 
#endif 

Please check once again if you really meant this,
and push if everything is ok.
[16 Feb 2005 17:28] Antony Curtis
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html
[16 Feb 2005 17:31] Antony Curtis
Changes may need to be made to documentation regarding the alteration in platform information in version string.

32bit Windows will use "Win32" for platform.
64bit Windows will use "Win64" for platform.

Architecture, "ia32" for x86, "ia64" for Itanic, "axp" for Alpha.
(may need to amend again once x86-64 is mainstream)
[16 Feb 2005 22:22] Antony Curtis
Fix merged to repositories,

4.0 - ChangeSet@1.2063, 2005-02-16 16:07:53+00:00
4.1 - ChangeSet@1.2176, 2005-02-16 16:33:57+00:00
5.0 - ChangeSet@1.1862, 2005-02-16 16:54:09+00:00
[17 Feb 2005 0:13] Paul DuBois
Mentioned in 4.0.24, 4.1.11, 5.0.3 change notes.