Bug #4445 Erroneous version information
Submitted: 8 Jul 2004 2:13 Modified: 17 Feb 2005 1:13
Reporter: John McGrath
Status: Closed
Category:Client Severity:S3 (Non-critical)
Version:4.0.20d OS:Microsoft Windows (Windows)
Assigned to: Bugs System Target Version:

[8 Jul 2004 2: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 16:39] Miguel Solorzano
Thank you for the bug report.
[12 Aug 2004 3:38] Antony Curtis
(using following resource for reference 
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_predir_prede
fined_macros.asp ) 
 
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 12:28] Alexander Barkov
Antony,

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

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 18: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 18: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 23: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 1:13] Paul DuBois
Mentioned in 4.0.24, 4.1.11, 5.0.3 change notes.