From 10bec20ee3d4490d0041d0ed83d5239ffd853f0a Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 21 Sep 2006 15:19:20 +0200 Subject: [PATCH] Windows 64bit fixes Fixed udf_example, so tests now can also run udf on win. sql/udf_example.def: BitKeeper file /home/georg/work/mysql/prod/mysql-5.1-win/sql/udf_example.def include/config-win.h: removed USE_32_BIT_TIME include/my_time.h: Fixed size of my_time for Win64 (should be 64bit) mysql-test/mysql-test-run.pl: Added windows paths for udf_example sql/CMakeLists.txt: Added udf_example.dll sql/udf_example.c: Windows doesn't know about socket.h and friends. Use winsock.h instead --- include/config-win.h | 1 - include/my_time.h | 5 +++++ mysql-test/mysql-test-run.pl | 4 +++- sql/CMakeLists.txt | 4 ++++ sql/udf_example.c | 4 ++++ sql/udf_example.def | 24 ++++++++++++++++++++++++ 6 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 sql/udf_example.def diff --git a/include/config-win.h b/include/config-win.h index 00d2fa0dea6..5290cf83896 100644 --- a/include/config-win.h +++ b/include/config-win.h @@ -25,7 +25,6 @@ functions */ #if defined(_MSC_VER) && _MSC_VER >= 1400 /* Avoid endless warnings about sprintf() etc. being unsafe. */ #define _CRT_SECURE_NO_DEPRECATE 1 -#define _USE_32BIT_TIME_T 1 /* force time_t to be 32 bit */ #endif #include diff --git a/include/my_time.h b/include/my_time.h index 3025b98a9c4..d0f2fc323d8 100644 --- a/include/my_time.h +++ b/include/my_time.h @@ -33,7 +33,12 @@ extern uchar days_in_month[]; Portable time_t replacement. Should be signed and hold seconds for 1902-2038 range. */ +#if defined(_WIN64) || defined(WIN64) +/* on Win64 long is still 4 bytes (not 8!) */ +typedef LONG64 my_time_t; +#else typedef long my_time_t; +#endif #define MY_TIME_T_MAX LONG_MAX #define MY_TIME_T_MIN LONG_MIN diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 4595bf8fb69..13aa81dcc12 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -1240,7 +1240,9 @@ sub executable_setup () { $exe_ndbd= "$glob_basedir/storage/ndb/src/kernel/ndbd"; $exe_ndb_mgmd= "$glob_basedir/storage/ndb/src/mgmsrv/ndb_mgmd"; $lib_udf_example= - mtr_file_exists("$glob_basedir/sql/.libs/udf_example.so"); + mtr_file_exists("$glob_basedir/sql/.libs/udf_example.so", + "$glob_basedir/sql/release/udf_example.dll", + "$glob_basedir/sql/debug/udf_example.dll"); } else { diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index 8d97edd4652..d9031e0982f 100644 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -117,3 +117,7 @@ ADD_CUSTOM_COMMAND( ) ADD_DEPENDENCIES(mysqld gen_lex_hash) + +ADD_LIBRARY(udf_example MODULE udf_example.c udf_example.def) +ADD_DEPENDENCIES(udf_example strings) +TARGET_LINK_LIBRARIES(udf_example wsock32) diff --git a/sql/udf_example.c b/sql/udf_example.c index a80fce81278..b2e0ad923d5 100644 --- a/sql/udf_example.c +++ b/sql/udf_example.c @@ -674,10 +674,14 @@ longlong sequence(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args, ** ****************************************************************************/ +#ifdef __WIN__ +#include +#else #include #include #include #include +#endif my_bool lookup_init(UDF_INIT *initid, UDF_ARGS *args, char *message); void lookup_deinit(UDF_INIT *initid); diff --git a/sql/udf_example.def b/sql/udf_example.def new file mode 100644 index 00000000000..d3081ca7768 --- /dev/null +++ b/sql/udf_example.def @@ -0,0 +1,24 @@ +LIBRARY udf_example +DESCRIPTION 'MySQL Sample for UDF' +VERSION 1.0 +EXPORTS + lookup + lookup_init + reverse_lookup + reverse_lookup_init + metaphon_init + metaphon_deinit + metaphon + myfunc_double_init + myfunc_double + myfunc_int_init + myfunc_int + sequence_init + sequence_deinit + sequence + avgcost_init + avgcost_deinit + avgcost_reset + avgcost_add + avgcost_clear + avgcost