The problem was that on Windows the access method indicates that access to file
such as "com1" and "lpt1" is allowed (since they are device names) and
this causes mysql to attempt to open them as databases or tables.
The fix was to write our own my_access method that uses other Win32 functions
to determine if the given argument is indeed a file and has to requested
mode.
VC++Files/mysys/mysys.dsp:
added my_access
VC++Files/mysys/mysys_ia64.dsp:
added my_access.c
include/my_sys.h:
if on windows, we use my_access.
if not on windows, then my_access points to the native access method
mysys/Makefile.am:
added my_access to mysys build file
mysys/mf_pack.c:
changed call to access to my_access
sql/sql_db.cc:
changed call to access to my_access
Some notes about building MySQL with VC++
- After bulding all projects, you get the files in the following directories:
Directory Content
lib_debug Debug libraries
lib_release Release libraries
lib_classic Embedded server libraries for classic
lib_pro Embedded server libraries for pro
client_debug Debug executables
client_release Client release
client_classic Commerical binaries (classic)
client_pro Commerical binaries (unique for pro version)
include Include files
The copy_mysql_files.bat script can be used to copy the generated
files to c:\mysql