mariadb/win
unknown 212ecf348c Removed not used define YY_MAGIC_BELOW
Made year 2000 handling more uniform
Removed year 2000 handling out from calc_days()
The above removes some bugs in date/datetimes with year between 0 and 200
Now we get a note when we insert a datetime value into a date column
For default values to CREATE, don't give errors for warning level NOTE
Fixed some compiler failures
Added library ws2_32 for windows compilation (needed if we want to compile with IOCP support)
Removed duplicate typedef TIME and replaced it with MYSQL_TIME

Better (more complete) fix for: Bug#21103 "DATE column not compared as DATE"
Fixed properly Bug#18997 "DATE_ADD and DATE_SUB perform year2K autoconversion magic on 4-digit year value"
Fixed Bug#23093 "Implicit conversion of 9912101 to date does not match cast(9912101 as date)"


include/my_time.h:
  Removed not used define YY_MAGIC_BELOW
  Added prototype for year_2000_handling()
mysql-test/r/date_formats.result:
  Updated results (fixed bug in date_format() with year < 99)
mysql-test/r/func_sapdb.result:
  Added more testing of make_date()
mysql-test/r/func_time.result:
  Fixed bug in date_sub() with years < 200
mysql-test/r/ps_2myisam.result:
  Now we get a note when we insert a datetime value into a date column
mysql-test/r/ps_3innodb.result:
  Now we get a note when we insert a datetime value into a date column
mysql-test/r/ps_4heap.result:
  Now we get a note when we insert a datetime value into a date column
mysql-test/r/ps_5merge.result:
  Now we get a note when we insert a datetime value into a date column
mysql-test/r/ps_7ndb.result:
  Now we get a note when we insert a datetime value into a date column
mysql-test/r/type_date.result:
  Added test for date conversions
mysql-test/r/type_datetime.result:
  Added testcase for datetime to date conversion.
mysql-test/t/date_formats.test:
  Added testing of dates < 200
mysql-test/t/func_sapdb.test:
  More testing of makedate()
mysql-test/t/type_date.test:
  Added test for date conversions
mysql-test/t/type_datetime.test:
  Added testcase for datetime to date conversion.
sql/CMakeLists.txt:
  Added library ws2_32 (needed if we want to compile with IOCP support)
sql/event_data_objects.cc:
  TIME -> MYSQL_TIME
sql/event_db_repository.cc:
  TIME -> MYSQL_TIME
sql/event_queue.cc:
  TIME -> MYSQL_TIME
sql/field.cc:
  Give note if we insert a datetime value in a date field
  Don't give notes if we are doing internal test conversions (like from convert_constant_item())
  More documentation (store functions can now return '3' to inform that the function did return a NOTE (not warning or error))
  Revert some changes in Field_newdate::store() to get more optimal code
  Field::set_warning() will now ignore notes if CHECK_FIELD_IGNORE is set.
  New parameters to make_truncated_value_warning()
sql/field.h:
  TIME -> MYSQL_TIME
sql/item.cc:
  New parameters to make_truncated_value_warning()
  Fixed get_date() to call number_to_datetime() if argument is not a string.
  Fixes Bug#23093 Implicit conversion of 9912101 to date does not match cast(9912101 as date)
sql/item.h:
  TIME -> MYSQL_TIME
sql/item_cmpfunc.cc:
  Don't print notes in convert_constant_item()
sql/item_func.h:
  TIME -> MYSQL_TIME
sql/item_timefunc.cc:
  New parameters to make_truncated_value_warning()
  Moved year 2000 handling out from calc_days()
  Don't return NULL for years < 200 in date_add/date_sub
sql/item_timefunc.h:
  TIME -> MYSQL_TIME
sql/my_decimal.cc:
  TIME -> MYSQL_TIME
sql/my_decimal.h:
  TIME -> MYSQL_TIME
sql/mysql_priv.h:
  Added error level to make_truncated_value_warning()
sql/protocol.cc:
  TIME -> MYSQL_TIME
sql/protocol.h:
  TIME -> MYSQL_TIME
sql/sp.cc:
  TIME -> MYSQL_TIME
sql/sql_base.cc:
  Make testing of result value of save_in_field() uniform
sql-common/my_time.c:
  Added year_2000_handling()
  Removed year 2000 handling from calc_daynr()
sql/sql_class.h:
  TIME -> MYSQL_TIME
sql/sql_show.cc:
  TIME -> MYSQL_TIME
sql/structs.h:
  TIME -> MYSQL_TIME
sql/time.cc:
  Added error level to make_truncated_value_warning()
sql/tztime.cc:
  TIME -> MYSQL_TIME
sql/tztime.h:
  TIME -> MYSQL_TIME
sql/unireg.cc:
  For default values to CREATE, don't give errors for warning level NOTE
  (Fixed failed CREATE when we give a datetime value to a date field)
strings/ctype-utf8.c:
  Fixed compiler failures
win/README:
  More comments
2007-03-23 22:08:31 +02:00
..
build-vs8.bat chmod u+x win/build-vs*.bat 2007-03-20 15:42:34 +01:00
build-vs8_x64.bat my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
build-vs71.bat chmod u+x win/build-vs*.bat 2007-03-20 15:42:34 +01:00
configure.js Many files: 2006-12-31 02:29:11 +01:00
Makefile.am Many files: 2006-12-31 02:29:11 +01:00
README Removed not used define YY_MAGIC_BELOW 2007-03-23 22:08:31 +02:00

Windows building readme
======================================

----------------IMPORTANT----------------------------
This readme outlines the instructions for building 
MySQL for Windows staring from version 5.1.
This readme does not apply to MySQL versions 5.0 
or ealier.
-----------------------------------------------------

The Windows build system uses a tool named CMake to generate build files for
a variety of project systems.  This tool is combined with a set of jscript
files to enable building of MySQL for Windows directly out of a bk clone.
The steps required are below.

Step 1:
-------

Install a Windows C++ compiler.  If you don't have one, you can use
the free compiler "Visual C++ 2005 express edition", which from Cmake
point of view is same as Visual studio 8:
http://msdn.microsoft.com/vstudio/express/

Step 2
------
Download and install CMake.  It can be downloaded from http://www.cmake.org. 
Once it is installed, modify your path to make sure you can execute
the cmake binary.

Step 3
------
Download and install bison for Windows.  It can be downloaded from
http://gnuwin32.sourceforge.net/packages/bison.htm.  Please download using
the link named "Complete package, excluding sources".  This includes an
installer that will install bison.  After the installer finishes, modify
your path so that you can execute bison.

(Alternative you, can take the sql_yacc.yy and sql_yacc.h files from a
matching mysql tar distribution and drop them into the sql directory just
before you start the build)

Step 4
------
Clone your bk tree to any location you like.

Step 5
------
From the root of your bk clone, execute the command:  win\configure <options>.  
The options right now are

    WITH_INNOBASE_STORAGE_ENGINE         Enable particular storage engines
    WITH_PARTITION_STORAGE_ENGINE
    WITH_ARCHIVE_STORAGE_ENGINE
    WITH_BLACKHOLE_STORAGE_ENGINE
    WITH_EXAMPLE_STORAGE_ENGINE
    WITH_FEDERATED_STORAGE_ENGINE
    __NT__                               Enable named pipe support
    MYSQL_SERVER_SUFFIX=<suffix>         Server suffix, default none
    COMPILATION_COMMENT=<comment>        Server comment, default "Source distribution"
    MYSQL_TCP_PORT=<port>                Server port, default 3306
    CYBOZU				 Default character set is UTF8

So the command line could look like:

win\configure WITH_INNOBASE_STORAGE_ENGINE WITH_PARTITION_STORAGE_ENGINE MYSQL_SERVER_SUFFIX=-pro

Step 6
------
From the root of your bk clone, execute one of the batch files to generate the type
of project files you desire.

For Visual Studio 8 (or Visual C++ 2005 express edition), do win\build-vs8.
For Visual Studio 7.1, do win\build-vs71.

We will support building with nmake in the near future.

Step 7
------
From the root of your bk clone, start your build.

For Visual Studio, simply execute mysql.sln.  This will start the IDE and you can
click the build solution menu option.

Current issues
--------------
1. After changing configuration (eg. adding or removing a storage engine), it
may be necessary to clean the build tree to remove any stale objects.

2. To use Visual C++ Express Edition you also need to install the Platform SDK.
Please see this link: http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
At step 5 you only need to add the libraries advapi32.lib and user32.lib to
the file "corewin_express.vsprops" in order to avoid link errors.