summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--VC++Files/client/mysql.dsp10
-rw-r--r--VC++Files/client/mysqlclient.dsp26
-rw-r--r--VC++Files/libmysqld/examples/test_libmysqld.dsp24
-rw-r--r--VC++Files/libmysqld/libmysqld.def183
-rw-r--r--VC++Files/libmysqld/libmysqld.dsp50
-rw-r--r--VC++Files/myisam/myisam.dsp4
-rw-r--r--VC++Files/mysql.dsw9
-rw-r--r--VC++Files/sql/mysqld.dsp26
-rw-r--r--include/mysql.h1
-rw-r--r--libmysql/libmysql.def147
-rw-r--r--libmysqld/libmysqld.c102
-rw-r--r--libmysqld/libmysqld.def183
-rw-r--r--myisam/mi_preload.c22
-rwxr-xr-xscripts/make_win_src_distribution.sh5
-rw-r--r--scripts/mysql_create_system_tables.sh11
-rw-r--r--scripts/mysql_fix_privilege_tables.sh3
-rw-r--r--sql-common/client.c15
-rw-r--r--sql/item_sum.cc3
-rw-r--r--sql/slave.cc9
-rw-r--r--sql/sql_client.cc2
-rw-r--r--sql/sql_help.cc25
21 files changed, 564 insertions, 296 deletions
diff --git a/VC++Files/client/mysql.dsp b/VC++Files/client/mysql.dsp
index 1cd03ee2fcc..c0fd1e785d5 100644
--- a/VC++Files/client/mysql.dsp
+++ b/VC++Files/client/mysql.dsp
@@ -87,7 +87,7 @@ LINK32=link.exe
# Name "mysql - Win32 Debug"
# Begin Source File
-SOURCE=..\mysys\my_gethostbyname.c
+SOURCE=.\completion_hash.cpp
# End Source File
# Begin Source File
@@ -102,5 +102,13 @@ SOURCE=.\mysql.cpp
!ENDIF
# End Source File
+# Begin Source File
+
+SOURCE=.\readline.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\sql_string.cpp
+# End Source File
# End Target
# End Project
diff --git a/VC++Files/client/mysqlclient.dsp b/VC++Files/client/mysqlclient.dsp
index 2f66d99b33c..0f4c46acd2a 100644
--- a/VC++Files/client/mysqlclient.dsp
+++ b/VC++Files/client/mysqlclient.dsp
@@ -25,7 +25,7 @@ CFG=mysqlclient - Win32 Debug
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
-CPP=xicl6.exe
+CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "mysqlclient - Win32 Release"
@@ -48,7 +48,7 @@ RSC=rc.exe
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LIB32=xilink6.exe -lib
+LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"..\lib_release\mysqlclient.lib"
@@ -72,7 +72,7 @@ LIB32=xilink6.exe -lib
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LIB32=xilink6.exe -lib
+LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"..\lib_debug\mysqlclient.lib"
@@ -108,14 +108,6 @@ SOURCE=..\libmysql\client.c
# End Source File
# Begin Source File
-SOURCE=.\completion_hash.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\completion_hash.h
-# End Source File
-# Begin Source File
-
SOURCE="..\strings\ctype-big5.c"
# End Source File
# Begin Source File
@@ -426,10 +418,6 @@ SOURCE=..\libmysql\password.c
# End Source File
# Begin Source File
-SOURCE=.\readline.cpp
-# End Source File
-# Begin Source File
-
SOURCE=..\mysys\safemalloc.c
# End Source File
# Begin Source File
@@ -438,14 +426,6 @@ SOURCE=..\mysys\sha1.c
# End Source File
# Begin Source File
-SOURCE=.\sql_string.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\sql_string.h
-# End Source File
-# Begin Source File
-
SOURCE=..\strings\str2int.c
# End Source File
# Begin Source File
diff --git a/VC++Files/libmysqld/examples/test_libmysqld.dsp b/VC++Files/libmysqld/examples/test_libmysqld.dsp
index d5fd0a0982d..0f4b09d963e 100644
--- a/VC++Files/libmysqld/examples/test_libmysqld.dsp
+++ b/VC++Files/libmysqld/examples/test_libmysqld.dsp
@@ -7,18 +7,18 @@
CFG=test_libmysqld - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
-!MESSAGE
+!MESSAGE
!MESSAGE NMAKE /f "test_libmysqld.mak".
-!MESSAGE
+!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
+!MESSAGE
!MESSAGE NMAKE /f "test_libmysqld.mak" CFG="test_libmysqld - Win32 Release"
-!MESSAGE
+!MESSAGE
!MESSAGE Possible choices for configuration are:
-!MESSAGE
+!MESSAGE
!MESSAGE "test_libmysqld - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE
+!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
@@ -55,7 +55,19 @@ LINK32=link.exe
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
+SOURCE=..\..\client\completion_hash.cpp
+# End Source File
+# Begin Source File
+
SOURCE=..\..\client\mysql.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\client\readline.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\client\sql_string.cpp
# End Source File
# End Group
# Begin Source File
diff --git a/VC++Files/libmysqld/libmysqld.def b/VC++Files/libmysqld/libmysqld.def
index c6615ee971c..c3f757b5f1a 100644
--- a/VC++Files/libmysqld/libmysqld.def
+++ b/VC++Files/libmysqld/libmysqld.def
@@ -1,65 +1,130 @@
LIBRARY LIBMYSQLD
-DESCRIPTION 'MySQL 4.0 Embedded Server Library'
-VERSION 4.0
+DESCRIPTION 'MySQL 4.1 Embedded Server Library'
+VERSION 4.1
EXPORTS
- mysql_server_end
- mysql_server_init
- mysql_use_result
- mysql_thread_safe
- mysql_thread_id
- mysql_store_result
- mysql_stat
- mysql_shutdown
- mysql_select_db
- mysql_row_tell
- mysql_row_seek
- mysql_real_query
- mysql_real_connect
- mysql_query
- mysql_ping
- mysql_options
- mysql_num_rows
- mysql_num_fields
- mysql_list_tables
- mysql_list_processes
- mysql_list_fields
- mysql_list_dbs
- mysql_kill
- mysql_insert_id
- mysql_init
- mysql_info
- mysql_get_server_info
- mysql_get_proto_info
- mysql_get_host_info
- mysql_get_client_info
- mysql_free_result
- mysql_field_tell
- mysql_field_count
- mysql_field_seek
- mysql_fetch_row
- mysql_fetch_lengths
- mysql_fetch_fields
- mysql_fetch_field_direct
- mysql_fetch_field
- mysql_escape_string
- mysql_real_escape_string
- mysql_error
- mysql_errno
- mysql_eof
- mysql_dump_debug_info
- mysql_drop_db
- mysql_debug
- mysql_data_seek
- mysql_create_db
- mysql_character_set_name
+ _dig_vec
+ bmove_upp
+ delete_dynamic
+ free_defaults
+ getopt_compare_strings
+ getopt_ull_limit_value
+ handle_options
+ init_dynamic_array
+ insert_dynamic
+ int2str
+ is_prefix
+ list_add
+ list_delete
+ load_defaults
+ max_allowed_packet
+ my_end
+ my_getopt_print_errors
+ my_init
+ my_malloc
+ my_memdup
+ my_no_flags_free
+ my_path
+ my_print_help
+ my_print_variables
+ my_realloc
+ my_strdup
+ my_thread_end
+ my_thread_init
+ myodbc_remove_escape
+ mysql_affected_rows
+ mysql_autocommit
mysql_change_user
- mysql_connect
+ mysql_character_set_name
mysql_close
- mysql_affected_rows
- mysql_thread_init
- mysql_thread_end
- mysql_send_query
+ mysql_commit
+ mysql_data_seek
+ mysql_debug
+ mysql_dump_debug_info
+ mysql_eof
+ mysql_errno
+ mysql_error
+ mysql_escape_string
+ mysql_fetch_field
+ mysql_fetch_field_direct
+ mysql_fetch_fields
+ mysql_fetch_lengths
+ mysql_fetch_row
+ mysql_field_count
+ mysql_field_seek
+ mysql_field_tell
+ mysql_free_result
+ mysql_get_client_info
+ mysql_get_host_info
+ mysql_get_proto_info
+ mysql_get_server_info
+ mysql_info
+ mysql_init
+ mysql_insert_id
+ mysql_kill
+ mysql_list_dbs
+ mysql_list_fields
+ mysql_list_processes
+ mysql_list_tables
+ mysql_more_results
+ mysql_next_result
+ mysql_num_fields
+ mysql_num_rows
+ mysql_odbc_escape_string
+ mysql_options
+ mysql_ping
+ mysql_query
mysql_read_query_result
+ mysql_real_connect
+ mysql_real_escape_string
+ mysql_real_query
mysql_refresh
- mysql_odbc_escape_string
- myodbc_remove_escape
+ mysql_rollback
+ mysql_row_seek
+ mysql_row_tell
+ mysql_select_db
+ mysql_send_query
+ mysql_shutdown
+ mysql_ssl_set
+ mysql_stat
+ mysql_store_result
+ mysql_sqlstate
+ mysql_thread_id
+ mysql_thread_safe
+ mysql_use_result
+ mysql_warning_count
+ net_buffer_length
+ set_dynamic
+ strcend
+ strcont
+ strdup_root
+ strfill
+ strinstr
+ strmake
+ strmov
+ strxmov
+ mysql_server_end
+ mysql_server_init
+ get_tty_password
+ sql_protocol_typelib
+ mysql_get_server_version
+ mysql_sqlstate
+ charsets_dir
+ disabled_my_option
+ my_charset_latin1
+ init_alloc_root
+ my_progname
+ get_charset_by_csname
+ print_defaults
+ find_type
+ strxnmov
+ strend
+ my_fopen
+ my_fclose
+ unpack_filename
+ str2int
+ int10_to_str
+ longlong10_to_str
+ my_snprintf_8bit
+ alloc_root
+ free_root
+ my_read
diff --git a/VC++Files/libmysqld/libmysqld.dsp b/VC++Files/libmysqld/libmysqld.dsp
index 4db155e6ee6..691c66a074d 100644
--- a/VC++Files/libmysqld/libmysqld.dsp
+++ b/VC++Files/libmysqld/libmysqld.dsp
@@ -43,7 +43,8 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBMYSQLD_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../sql" /I "../bdb/build_win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "HAVE_INNOBASE_DB" /D "DBUG_OFF" /D "USE_TLS" /D "__WIN__" /FR /FD /mktyplib203 /win32 # ADD BASE MTL /c
+# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../sql" /I "../regex" /I "../bdb/build_win32" /I "../zlib" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "HAVE_INNOBASE_DB" /D "DBUG_OFF" /D "USE_TLS" /D "__WIN__" /FR /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x416 /d "NDEBUG"
# ADD RSC /l 0x416 /d "NDEBUG"
@@ -68,7 +69,8 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBMYSQLD_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MT /W3 /Gm /Zi /Od /I "../include" /I "../sql" /I "../regex" /I "../bdb/build_win32" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "HAVE_BERKELEY_DB" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "HAVE_INNOBASE_DB" /D "USE_TLS" /D "__WIN__" /FD /GZ /mktyplib203 /win32 # ADD BASE MTL /c
+# ADD CPP /nologo /MT /W3 /Gm /Zi /Od /I "../include" /I "../sql" /I "../regex" /I "../bdb/build_win32" /I "../zlib" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "HAVE_BERKELEY_DB" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "HAVE_INNOBASE_DB" /D "USE_TLS" /D "__WIN__" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x416 /d "_DEBUG"
# ADD RSC /l 0x416 /d "_DEBUG"
@@ -87,7 +89,11 @@ LINK32=link.exe
# Name "libmysqld - Win32 Debug"
# Begin Source File
-SOURCE=.\client.c
+SOURCE="..\strings\ctype-latin1.c"
+# End Source File
+# Begin Source File
+
+SOURCE=..\mysys\default.c
# End Source File
# Begin Source File
@@ -111,7 +117,7 @@ SOURCE=..\sql\filesort.cpp
# End Source File
# Begin Source File
-SOURCE=..\libmysql\get_password.c
+SOURCE=..\client\get_password.c
# End Source File
# Begin Source File
@@ -159,6 +165,10 @@ SOURCE=..\sql\init.cpp
# End Source File
# Begin Source File
+SOURCE=..\strings\int2str.c
+# End Source File
+# Begin Source File
+
SOURCE=..\sql\item.cpp
# End Source File
# Begin Source File
@@ -240,6 +250,14 @@ SOURCE=..\sql\mf_iocache.cpp
# End Source File
# Begin Source File
+SOURCE=..\mysys\my_alloc.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\mysys\my_getopt.c
+# End Source File
+# Begin Source File
+
SOURCE=..\sql\net_serv.cpp
# End Source File
# Begin Source File
@@ -384,6 +402,10 @@ SOURCE=..\sql\sql_show.cpp
# End Source File
# Begin Source File
+SOURCE=..\sql\sql_state.c
+# End Source File
+# Begin Source File
+
SOURCE=..\sql\sql_string.cpp
# End Source File
# Begin Source File
@@ -412,6 +434,26 @@ SOURCE=..\sql\sql_yacc.cpp
# End Source File
# Begin Source File
+SOURCE=..\strings\str2int.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\strings\strcend.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\strings\strcont.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\strings\strinstr.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\strings\strxnmov.c
+# End Source File
+# Begin Source File
+
SOURCE=..\sql\table.cpp
# End Source File
# Begin Source File
diff --git a/VC++Files/myisam/myisam.dsp b/VC++Files/myisam/myisam.dsp
index 40d157a1c75..38cac3a0aba 100644
--- a/VC++Files/myisam/myisam.dsp
+++ b/VC++Files/myisam/myisam.dsp
@@ -193,6 +193,10 @@ SOURCE=.\mi_panic.c
# End Source File
# Begin Source File
+SOURCE=.\mi_preload.c
+# End Source File
+# Begin Source File
+
SOURCE=.\mi_range.c
# End Source File
# Begin Source File
diff --git a/VC++Files/mysql.dsw b/VC++Files/mysql.dsw
index 9903c91ba1b..d6903f4dbc7 100644
--- a/VC++Files/mysql.dsw
+++ b/VC++Files/mysql.dsw
@@ -726,18 +726,9 @@ Package=<5>
Package=<4>
{{{
Begin Project Dependency
- Project_Dep_Name strings
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name mysys
- End Project Dependency
- Begin Project Dependency
Project_Dep_Name libmysqld
End Project Dependency
Begin Project Dependency
- Project_Dep_Name vio
- End Project Dependency
- Begin Project Dependency
Project_Dep_Name zlib
End Project Dependency
}}}
diff --git a/VC++Files/sql/mysqld.dsp b/VC++Files/sql/mysqld.dsp
index 6aab591120a..8192623f957 100644
--- a/VC++Files/sql/mysqld.dsp
+++ b/VC++Files/sql/mysqld.dsp
@@ -28,7 +28,7 @@ CFG=mysqld - Win32 Release
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
-CPP=xicl6.exe
+CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "mysqld - Win32 Release"
@@ -45,14 +45,14 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "NDEBUG" /D "DBUG_OFF" /D "HAVE_INNOBASE_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /FD /c
+# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../zlib" /I "../include" /I "../regex" /D "NDEBUG" /D "DBUG_OFF" /D "HAVE_INNOBASE_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x410 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LINK32=xilink6.exe
+LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_release\vio.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../client_release/mysqld-opt.exe"
# SUBTRACT LINK32 /debug
@@ -71,14 +71,14 @@ LINK32=xilink6.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../include" /I "../regex" /I "../bdb/build_win32" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /FD /c
+# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../bdb/build_win32" /I "../include" /I "../regex" /I "../zlib" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /FD /c
# SUBTRACT CPP /Fr /YX
# ADD BASE RSC /l 0x410 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LINK32=xilink6.exe
+LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_debug\dbug.lib ..\lib_debug\vio.lib ..\lib_debug\isam.lib ..\lib_debug\merge.lib ..\lib_debug\mysys.lib ..\lib_debug\strings.lib ..\lib_debug\regex.lib ..\lib_debug\heap.lib ..\lib_debug\bdb.lib ..\lib_debug\innodb.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqld.exe" /pdbtype:sept
@@ -98,14 +98,14 @@ LINK32=xilink6.exe
# PROP Target_Dir ""
# ADD BASE CPP /nologo /G5 /MT /W3 /O2 /I "../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "__WIN32__" /D "DBUG_OFF" /FD /c
# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /D "NDEBUG" /D "__NT__" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "HAVE_INNOBASE_DB" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /FD /c
+# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "NDEBUG" /D "__NT__" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "HAVE_INNOBASE_DB" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x410 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LINK32=xilink6.exe
+LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_release\dbug.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib /nologo /subsystem:console /debug /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_release\vio.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\myisam.lib ..\lib_release\myisammrg.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib ..\lib_release\innodb.lib ..\lib_release\zlib.lib /nologo /subsystem:console /map /machine:I386 /out:"../client_release/mysqld-nt.exe"
# SUBTRACT LINK32 /pdb:none /debug
@@ -126,14 +126,14 @@ LINK32=xilink6.exe
# PROP Target_Dir ""
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /D "NDEBUG" /D "__NT__" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c
# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../bdb/build_win32" /D "NDEBUG" /D "__NT__" /D "DBUG_OFF" /D "USE_SYMDIR" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /FD /c
+# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../bdb/build_win32" /I "../include" /I "../regex" /I "../zlib" /D "NDEBUG" /D "__NT__" /D "DBUG_OFF" /D "USE_SYMDIR" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LINK32=xilink6.exe
+LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\myisam.lib ..\lib_release\myisammrg.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib ..\lib_release\zlib.lib /nologo /subsystem:console /map /machine:I386 /out:"../client_release/mysqld-nt.exe"
# SUBTRACT BASE LINK32 /pdb:none /debug
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_release\vio.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\myisam.lib ..\lib_release\myisammrg.lib ..\lib_release\mysys-max.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib ..\lib_release\zlib.lib ..\lib_release\innodb.lib ..\lib_release\bdb.lib /nologo /subsystem:console /map /machine:I386 /out:"../client_release/mysqld-max-nt.exe"
@@ -155,14 +155,14 @@ LINK32=xilink6.exe
# PROP Target_Dir ""
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /D "NDEBUG" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c
# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../bdb/build_win32" /D "NDEBUG" /D "DBUG_OFF" /D "USE_SYMDIR" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /FD /c
+# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../bdb/build_win32" /I "../include" /I "../regex" /I "../zlib" /D "NDEBUG" /D "DBUG_OFF" /D "USE_SYMDIR" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
-LINK32=xilink6.exe
+LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /out:"../client_release/mysqld-opt.exe"
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_release\vio.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\myisam.lib ..\lib_release\myisammrg.lib ..\lib_release\mysys-max.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib ..\lib_release\innodb.lib ..\lib_release\bdb.lib ..\lib_release\zlib.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../client_release/mysqld-max.exe"
# SUBTRACT LINK32 /debug
@@ -893,6 +893,10 @@ SOURCE=.\sql_class.cpp
# End Source File
# Begin Source File
+SOURCE=.\sql_client.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\sql_crypt.cpp
# End Source File
# Begin Source File
diff --git a/include/mysql.h b/include/mysql.h
index 337e080e4cc..bd63a10ba45 100644
--- a/include/mysql.h
+++ b/include/mysql.h
@@ -266,6 +266,7 @@ typedef struct st_mysql
my_bool free_me; /* If free in mysql_close */
my_ulonglong insert_id; /* id if insert on table with NEXTNR */
unsigned int last_errno;
+ unsigned int server_status;
char *last_error; /* Used by embedded server */
char sqlstate[SQLSTATE_LENGTH+1]; /* Used by embedded server */
} MYSQL;
diff --git a/libmysql/libmysql.def b/libmysql/libmysql.def
index 8c97ef45aa3..d641ca57274 100644
--- a/libmysql/libmysql.def
+++ b/libmysql/libmysql.def
@@ -2,8 +2,43 @@ LIBRARY LIBMYSQL
DESCRIPTION 'MySQL 4.1 Client Library'
VERSION 6.0
EXPORTS
+ _dig_vec
+ bmove_upp
+ delete_dynamic
+ free_defaults
+ getopt_compare_strings
+ getopt_ull_limit_value
+ handle_options
+ init_dynamic_array
+ insert_dynamic
+ int2str
+ is_prefix
+ list_add
+ list_delete
+ load_defaults
+ max_allowed_packet
+ my_end
+ my_getopt_print_errors
+ my_init
+ my_malloc
+ my_memdup
+ my_no_flags_free
+ my_path
+ my_print_help
+ my_print_variables
+ my_realloc
+ my_strdup
+ my_thread_end
+ my_thread_init
+ myodbc_remove_escape
mysql_affected_rows
+ mysql_autocommit
+ mysql_bind_param
+ mysql_bind_result
+ mysql_change_user
+ mysql_character_set_name
mysql_close
+ mysql_commit
mysql_data_seek
mysql_debug
mysql_dump_debug_info
@@ -11,6 +46,9 @@ EXPORTS
mysql_errno
mysql_error
mysql_escape_string
+ mysql_execute
+ mysql_fetch
+ mysql_fetch_column
mysql_fetch_field
mysql_fetch_field_direct
mysql_fetch_fields
@@ -32,113 +70,54 @@ EXPORTS
mysql_list_fields
mysql_list_processes
mysql_list_tables
+ mysql_more_results
+ mysql_next_result
mysql_num_fields
mysql_num_rows
mysql_odbc_escape_string
mysql_options
+ mysql_param_count
+ mysql_param_result
mysql_ping
+ mysql_prepare
+ mysql_prepare_result
mysql_query
+ mysql_read_query_result
mysql_real_connect
+ mysql_real_escape_string
mysql_real_query
mysql_refresh
+ mysql_rollback
mysql_row_seek
mysql_row_tell
mysql_select_db
+ mysql_send_long_data
+ mysql_send_query
mysql_shutdown
+ mysql_ssl_set
mysql_stat
+ mysql_stmt_affected_rows
+ mysql_stmt_close
+ mysql_stmt_data_seek
+ mysql_stmt_errno
+ mysql_stmt_error
+ mysql_stmt_free_result
+ mysql_stmt_num_rows
+ mysql_stmt_row_seek
+ mysql_stmt_row_tell
+ mysql_stmt_store_result
mysql_store_result
mysql_thread_id
+ mysql_thread_safe
mysql_use_result
- bmove_upp
- delete_dynamic
- _dig_vec
- init_dynamic_array
- insert_dynamic
- int2str
- is_prefix
- list_add
- list_delete
- max_allowed_packet
- my_init
- my_end
- my_strdup
- my_malloc
- my_memdup
- my_no_flags_free
- my_realloc
- my_thread_end
- my_thread_init
+ mysql_warning_count
net_buffer_length
set_dynamic
strcend
+ strcont
strdup_root
strfill
strinstr
strmake
strmov
strxmov
- myodbc_remove_escape
- mysql_thread_safe
- mysql_character_set_name
- mysql_change_user
- mysql_send_query
- mysql_read_query_result
- mysql_real_escape_string
- mysql_ssl_set
- mysql_real_connect
- mysql_master_query
- mysql_master_send_query
- mysql_slave_query
- mysql_slave_send_query
- mysql_enable_rpl_parse
- mysql_disable_rpl_parse
- mysql_rpl_parse_enabled
- mysql_enable_reads_from_master
- mysql_disable_reads_from_master
- mysql_reads_from_master_enabled
- mysql_rpl_query_type
- mysql_rpl_probe
- mysql_set_master
- mysql_add_slave
- my_getopt_print_errors
- handle_options
- my_print_help
- my_print_variables
- getopt_ull_limit_value
- getopt_compare_strings
- mysql_warning_count
- mysql_prepare
- mysql_execute
- mysql_param_count
- mysql_bind_param
- mysql_bind_result
- mysql_param_result
- mysql_prepare_result
- mysql_stmt_close
- mysql_stmt_free_result
- mysql_stmt_error
- mysql_stmt_errno
- mysql_fetch
- mysql_fetch_column
- mysql_send_long_data
- mysql_next_result
- mysql_stmt_affected_rows
- mysql_stmt_store_result
- mysql_stmt_data_seek
- mysql_stmt_row_seek
- mysql_stmt_row_tell
- mysql_stmt_num_rows
- mysql_more_results
- mysql_commit
- mysql_rollback
- mysql_autocommit
- load_defaults
- free_defaults
- my_path
-
-
-
-
-
-
-
diff --git a/libmysqld/libmysqld.c b/libmysqld/libmysqld.c
index a2d69b30c0d..ba2dfd68c00 100644
--- a/libmysqld/libmysqld.c
+++ b/libmysqld/libmysqld.c
@@ -49,6 +49,8 @@
static my_bool mysql_client_init=0;
uint mysql_port=0;
my_string mysql_unix_port=0;
+const char *not_error_sqlstate= "00000";
+
const char *sql_protocol_names_lib[] =
{ "TCP", "SOCKET", "PIPE", "MEMORY",NullS };
TYPELIB sql_protocol_typelib = {array_elements(sql_protocol_names_lib)-1,"",
@@ -516,6 +518,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
client_flag&= ~CLIENT_COMPRESS;
if (db)
client_flag|=CLIENT_CONNECT_WITH_DB;
+ mysql->server_status= SERVER_STATUS_AUTOCOMMIT;
if (mysql->options.init_commands)
{
@@ -1040,9 +1043,9 @@ mysql_list_fields(MYSQL *mysql __attribute__((unused)), const char *table __attr
/* List all running processes (threads) in server */
MYSQL_RES * STDCALL
-mysql_list_processes(MYSQL *mysql)
+mysql_list_processes(MYSQL *mysql __attribute__((unused)))
{
-#ifdef DUMMY
+#ifdef FOR_THE_FUTURE
MYSQL_DATA *fields;
uint field_count;
uchar *pos;
@@ -1063,7 +1066,7 @@ mysql_list_processes(MYSQL *mysql)
mysql->status=MYSQL_STATUS_GET_RESULT;
mysql->field_count=field_count;
DBUG_RETURN(mysql_store_result(mysql));
-#endif /*DUMMY*/
+#endif /* FOR_THE_FUTURE */
return 0;
}
@@ -1535,3 +1538,96 @@ myodbc_remove_escape(MYSQL *mysql,char *name)
}
*to=0;
}
+
+
+/********************************************************************
+ Transactional APIs
+*********************************************************************/
+
+/*
+ Commit the current transaction
+*/
+
+my_bool STDCALL mysql_commit(MYSQL * mysql)
+{
+ DBUG_ENTER("mysql_commit");
+ DBUG_RETURN((my_bool) mysql_real_query(mysql, "commit", 6));
+}
+
+/*
+ Rollback the current transaction
+*/
+
+my_bool STDCALL mysql_rollback(MYSQL * mysql)
+{
+ DBUG_ENTER("mysql_rollback");
+ DBUG_RETURN((my_bool) mysql_real_query(mysql, "rollback", 8));
+}
+
+
+/*
+ Set autocommit to either true or false
+*/
+
+my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode)
+{
+ DBUG_ENTER("mysql_autocommit");
+ DBUG_PRINT("enter", ("mode : %d", auto_mode));
+
+ if (auto_mode) /* set to true */
+ DBUG_RETURN((my_bool) mysql_real_query(mysql, "set autocommit=1", 16));
+ DBUG_RETURN((my_bool) mysql_real_query(mysql, "set autocommit=0", 16));
+}
+
+
+/********************************************************************
+ Multi query execution + SPs APIs
+*********************************************************************/
+
+/*
+ Returns if there are any more query results exists to be read using
+ mysql_next_result()
+*/
+
+my_bool STDCALL mysql_more_results(MYSQL *mysql)
+{
+ my_bool res;
+ DBUG_ENTER("mysql_more_results");
+
+ res= ((mysql->server_status & SERVER_MORE_RESULTS_EXISTS) ?
+ 1: 0);
+ DBUG_PRINT("exit",("More results exists ? %d", res));
+ DBUG_RETURN(res);
+}
+
+
+/*
+ Reads and returns the next query results
+*/
+
+my_bool STDCALL mysql_next_result(MYSQL *mysql)
+{
+ DBUG_ENTER("mysql_next_result");
+
+ mysql->last_error[0]= 0;
+ mysql->last_errno= 0;
+ strmov(mysql->sqlstate, not_error_sqlstate);
+ mysql->affected_rows= ~(my_ulonglong) 0;
+
+ if (mysql->server_status & SERVER_MORE_RESULTS_EXISTS)
+ DBUG_RETURN(mysql_read_query_result(mysql));
+
+ DBUG_RETURN(0);
+}
+
+
+my_bool STDCALL
+mysql_ssl_set(MYSQL *mysql __attribute__((unused)) ,
+ const char *key __attribute__((unused)),
+ const char *cert __attribute__((unused)),
+ const char *ca __attribute__((unused)),
+ const char *capath __attribute__((unused)),
+ const char *cipher __attribute__((unused)))
+{
+ return 0;
+}
diff --git a/libmysqld/libmysqld.def b/libmysqld/libmysqld.def
index c6615ee971c..c3f757b5f1a 100644
--- a/libmysqld/libmysqld.def
+++ b/libmysqld/libmysqld.def
@@ -1,65 +1,130 @@
LIBRARY LIBMYSQLD
-DESCRIPTION 'MySQL 4.0 Embedded Server Library'
-VERSION 4.0
+DESCRIPTION 'MySQL 4.1 Embedded Server Library'
+VERSION 4.1
EXPORTS
- mysql_server_end
- mysql_server_init
- mysql_use_result
- mysql_thread_safe
- mysql_thread_id
- mysql_store_result
- mysql_stat
- mysql_shutdown
- mysql_select_db
- mysql_row_tell
- mysql_row_seek
- mysql_real_query
- mysql_real_connect
- mysql_query
- mysql_ping
- mysql_options
- mysql_num_rows
- mysql_num_fields
- mysql_list_tables
- mysql_list_processes
- mysql_list_fields
- mysql_list_dbs
- mysql_kill
- mysql_insert_id
- mysql_init
- mysql_info
- mysql_get_server_info
- mysql_get_proto_info
- mysql_get_host_info
- mysql_get_client_info
- mysql_free_result
- mysql_field_tell
- mysql_field_count
- mysql_field_seek
- mysql_fetch_row
- mysql_fetch_lengths
- mysql_fetch_fields
- mysql_fetch_field_direct
- mysql_fetch_field
- mysql_escape_string
- mysql_real_escape_string
- mysql_error
- mysql_errno
- mysql_eof
- mysql_dump_debug_info
- mysql_drop_db
- mysql_debug
- mysql_data_seek
- mysql_create_db
- mysql_character_set_name
+ _dig_vec
+ bmove_upp
+ delete_dynamic
+ free_defaults
+ getopt_compare_strings
+ getopt_ull_limit_value
+ handle_options
+ init_dynamic_array
+ insert_dynamic
+ int2str
+ is_prefix
+ list_add
+ list_delete
+ load_defaults
+ max_allowed_packet
+ my_end
+ my_getopt_print_errors
+ my_init
+ my_malloc
+ my_memdup
+ my_no_flags_free
+ my_path
+ my_print_help
+ my_print_variables
+ my_realloc
+ my_strdup
+ my_thread_end
+ my_thread_init
+ myodbc_remove_escape
+ mysql_affected_rows
+ mysql_autocommit
mysql_change_user
- mysql_connect
+ mysql_character_set_name
mysql_close
- mysql_affected_rows
- mysql_thread_init
- mysql_thread_end
- mysql_send_query
+ mysql_commit
+ mysql_data_seek
+ mysql_debug
+ mysql_dump_debug_info
+ mysql_eof
+ mysql_errno
+ mysql_error
+ mysql_escape_string
+ mysql_fetch_field
+ mysql_fetch_field_direct
+ mysql_fetch_fields
+ mysql_fetch_lengths
+ mysql_fetch_row
+ mysql_field_count
+ mysql_field_seek
+ mysql_field_tell
+ mysql_free_result
+ mysql_get_client_info
+ mysql_get_host_info
+ mysql_get_proto_info
+ mysql_get_server_info
+ mysql_info
+ mysql_init
+ mysql_insert_id
+ mysql_kill
+ mysql_list_dbs
+ mysql_list_fields
+ mysql_list_processes
+ mysql_list_tables
+ mysql_more_results
+ mysql_next_result
+ mysql_num_fields
+ mysql_num_rows
+ mysql_odbc_escape_string
+ mysql_options
+ mysql_ping
+ mysql_query
mysql_read_query_result
+ mysql_real_connect
+ mysql_real_escape_string
+ mysql_real_query
mysql_refresh
- mysql_odbc_escape_string
- myodbc_remove_escape
+ mysql_rollback
+ mysql_row_seek
+ mysql_row_tell
+ mysql_select_db
+ mysql_send_query
+ mysql_shutdown
+ mysql_ssl_set
+ mysql_stat
+ mysql_store_result
+ mysql_sqlstate
+ mysql_thread_id
+ mysql_thread_safe
+ mysql_use_result
+ mysql_warning_count
+ net_buffer_length
+ set_dynamic
+ strcend
+ strcont
+ strdup_root
+ strfill
+ strinstr
+ strmake
+ strmov
+ strxmov
+ mysql_server_end
+ mysql_server_init
+ get_tty_password
+ sql_protocol_typelib
+ mysql_get_server_version
+ mysql_sqlstate
+ charsets_dir
+ disabled_my_option
+ my_charset_latin1
+ init_alloc_root
+ my_progname
+ get_charset_by_csname
+ print_defaults
+ find_type
+ strxnmov
+ strend
+ my_fopen
+ my_fclose
+ unpack_filename
+ str2int
+ int10_to_str
+ longlong10_to_str
+ my_snprintf_8bit
+ alloc_root
+ free_root
+ my_read
diff --git a/myisam/mi_preload.c b/myisam/mi_preload.c
index be45be66ecf..a5d9bec160e 100644
--- a/myisam/mi_preload.c
+++ b/myisam/mi_preload.c
@@ -42,35 +42,32 @@
int mi_preload(MI_INFO *info, ulonglong key_map, my_bool ignore_leaves)
{
uint i;
- uint length;
- uint block_length= 0;
+ ulong length, block_length= 0;
uchar *buff= NULL;
MYISAM_SHARE* share= info->s;
uint keys= share->state.header.keys;
MI_KEYDEF *keyinfo= share->keyinfo;
my_off_t key_file_length= share->state.state.key_file_length;
my_off_t pos= share->base.keystart;
+ DBUG_ENTER("mi_preload");
if (!keys || !key_map || key_file_length == pos)
- return 0;
+ DBUG_RETURN(0);
block_length= keyinfo[0].block_length;
- if (!key_map)
- return 0;
-
/* Check whether all indexes use the same block size */
for (i= 1 ; i < keys ; i++)
{
if (keyinfo[i].block_length != block_length)
- return (my_errno= HA_ERR_NON_UNIQUE_BLOCK_SIZE);
+ DBUG_RETURN(my_errno= HA_ERR_NON_UNIQUE_BLOCK_SIZE);
}
length= info->preload_buff_size/block_length * block_length;
set_if_bigger(length, block_length);
if (!(buff= (uchar *) my_malloc(length, MYF(MY_WME))))
- return (my_errno= HA_ERR_OUT_OF_MEM);
+ DBUG_RETURN(my_errno= HA_ERR_OUT_OF_MEM);
if (flush_key_blocks(share->kfile, FLUSH_RELEASE))
goto err;
@@ -78,7 +75,8 @@ int mi_preload(MI_INFO *info, ulonglong key_map, my_bool ignore_leaves)
do
{
/* Read the next block of index file into the preload buffer */
- set_if_smaller(length, key_file_length-pos);
+ if ((my_off_t) length > (key_file_length-pos))
+ length= (ulong) (key_file_length-pos);
if (my_pread(share->kfile, (byte*) buff, length, pos, MYF(MY_FAE)))
goto err;
@@ -103,16 +101,14 @@ int mi_preload(MI_INFO *info, ulonglong key_map, my_bool ignore_leaves)
goto err;
pos+= length;
}
-
}
while (pos != key_file_length);
my_free(buff, MYF(0));
-
- return 0;
+ DBUG_RETURN(0);
err:
my_free(buff, MYF(MY_ALLOW_ZERO_PTR));
- return (my_errno= errno);
+ DBUG_RETURN(my_errno= errno);
}
diff --git a/scripts/make_win_src_distribution.sh b/scripts/make_win_src_distribution.sh
index 1be301ee92a..df7ac29ee0d 100755
--- a/scripts/make_win_src_distribution.sh
+++ b/scripts/make_win_src_distribution.sh
@@ -251,7 +251,7 @@ touch $BASE/innobase/ib_config.h
cd $SOURCE
for i in COPYING ChangeLog README \
INSTALL-SOURCE INSTALL-WIN \
- INSTALL-WIN-SOURCE
+ INSTALL-WIN-SOURCE \
Docs/manual_toc.html Docs/manual.html \
Docs/mysqld_error.txt Docs/INSTALL-BINARY
@@ -350,7 +350,7 @@ set_tarzip_options()
else
ZIPFILE1=zip
ZIPFILE2=""
- OPT="-vr"
+ OPT="-r"
EXT=".zip"
NEED_COMPRESS=0
if [ "$SILENT" = "1" ] ; then
@@ -382,6 +382,7 @@ print_debug "Using $tar to create archive"
cd $TMP
+rm -f $SOURCE/$NEW_NAME$EXT
$tar $OPT $SOURCE/$NEW_NAME$EXT $NEW_DIR_NAME
cd $SOURCE
diff --git a/scripts/mysql_create_system_tables.sh b/scripts/mysql_create_system_tables.sh
index 51fbb8a8097..1f0579f87c2 100644
--- a/scripts/mysql_create_system_tables.sh
+++ b/scripts/mysql_create_system_tables.sh
@@ -145,20 +145,19 @@ then
then
i_u="INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
INSERT INTO user VALUES ('$hostname','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
- REPLACE INTO user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
INSERT INTO user (host,user) values ('localhost','');
INSERT INTO user (host,user) values ('$hostname','');"
else
- i_u="INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
- REPLACE INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
- INSERT INTO user (host,user) values ('localhost','');"
+ i_u="INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);"
if test "$windows" -eq 0
then
i_u="$i_u
INSERT INTO user VALUES ('$hostname','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
- REPLACE INTO user VALUES ('$hostname','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
INSERT INTO user (host,user) values ('$hostname','');"
- fi
+ INSERT INTO user (host,user) values ('localhost','');
+ else
+ i_u="INSERT INTO user VALUES ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);"
+ fi
fi
fi
diff --git a/scripts/mysql_fix_privilege_tables.sh b/scripts/mysql_fix_privilege_tables.sh
index 5d392f719f0..4b6f74eae06 100644
--- a/scripts/mysql_fix_privilege_tables.sh
+++ b/scripts/mysql_fix_privilege_tables.sh
@@ -57,6 +57,9 @@ then
elif test -x @bindir@/mysql_print_defaults
then
print_defaults="@bindir@/mysql_print_defaults"
+elif test -x extra/my_print_defaults
+then
+ print_defaults="extra/my_print_defaults"
else
print_defaults="my_print_defaults"
fi
diff --git a/sql-common/client.c b/sql-common/client.c
index 33f2b996971..721164c8301 100644
--- a/sql-common/client.c
+++ b/sql-common/client.c
@@ -2022,7 +2022,6 @@ my_bool mysql_reconnect(MYSQL *mysql)
}
mysql_init(&tmp_mysql);
tmp_mysql.options=mysql->options;
- bzero((char*) &mysql->options,sizeof(mysql->options));
tmp_mysql.rpl_pivot = mysql->rpl_pivot;
if (!mysql_real_connect(&tmp_mysql,mysql->host,mysql->user,mysql->passwd,
mysql->db, mysql->port, mysql->unix_socket,
@@ -2033,7 +2032,9 @@ my_bool mysql_reconnect(MYSQL *mysql)
strmov(mysql->net.sqlstate, tmp_mysql.net.sqlstate);
DBUG_RETURN(1);
}
- tmp_mysql.free_me=mysql->free_me;
+ tmp_mysql.free_me= mysql->free_me;
+ /* Don't free options as these are now used in tmp_mysql */
+ bzero((char*) &mysql->options,sizeof(mysql->options));
mysql->free_me=0;
mysql_close(mysql);
*mysql=tmp_mysql;
@@ -2070,9 +2071,6 @@ mysql_select_db(MYSQL *mysql, const char *db)
static void mysql_close_free_options(MYSQL *mysql)
{
- my_free(mysql->user,MYF(MY_ALLOW_ZERO_PTR));
- my_free(mysql->passwd,MYF(MY_ALLOW_ZERO_PTR));
- my_free(mysql->db,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.user,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.host,MYF(MY_ALLOW_ZERO_PTR));
my_free(mysql->options.password,MYF(MY_ALLOW_ZERO_PTR));
@@ -2099,14 +2097,17 @@ static void mysql_close_free_options(MYSQL *mysql)
if (mysql->options.shared_memory_base_name != def_shared_memory_base_name)
my_free(mysql->options.shared_memory_base_name,MYF(MY_ALLOW_ZERO_PTR));
#endif /* HAVE_SMEM */
- bzero((char*) &mysql->options,sizeof(mysql->options));
+ bzero((char*) &mysql->options,sizeof(mysql->options));
}
static void mysql_close_free(MYSQL *mysql)
{
- /* Clear pointers for better safety */
my_free((gptr) mysql->host_info,MYF(MY_ALLOW_ZERO_PTR));
+ my_free(mysql->user,MYF(MY_ALLOW_ZERO_PTR));
+ my_free(mysql->passwd,MYF(MY_ALLOW_ZERO_PTR));
+ my_free(mysql->db,MYF(MY_ALLOW_ZERO_PTR));
+ /* Clear pointers for better safety */
mysql->host_info=mysql->user=mysql->passwd=mysql->db=0;
}
diff --git a/sql/item_sum.cc b/sql/item_sum.cc
index 34de672dbdb..6e606d53207 100644
--- a/sql/item_sum.cc
+++ b/sql/item_sum.cc
@@ -57,7 +57,8 @@ Item_sum::Item_sum(THD *thd, Item_sum &item):
void Item_sum::mark_as_sum_func()
{
- current_thd->lex.current_select->with_sum_func= with_sum_func= 1;
+ current_thd->lex.current_select->with_sum_func= 1;
+ with_sum_func= 1;
}
diff --git a/sql/slave.cc b/sql/slave.cc
index ccce8077cb8..c45c11f8bef 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -2177,7 +2177,7 @@ extern "C" pthread_handler_decl(handle_slave_io,arg)
DBUG_ENTER("handle_slave_io");
#ifndef DBUG_OFF
-slave_begin:
+slave_begin:
#endif
DBUG_ASSERT(mi->inited);
mysql= NULL ;
@@ -2218,7 +2218,7 @@ slave_begin:
if (!(mi->mysql = mysql = mysql_init(NULL)))
{
- sql_print_error("Slave I/O thread: error in mc_mysql_init()");
+ sql_print_error("Slave I/O thread: error in mysql_init()");
goto err;
}
@@ -2270,7 +2270,7 @@ dump");
goto err;
}
- thd->proc_info = "Waiiting to reconnect after a failed dump request";
+ thd->proc_info = "Waiting to reconnect after a failed dump request";
end_server(mysql);
/*
First time retry immediately, assuming that we can recover
@@ -3075,7 +3075,8 @@ replication resumed in log '%s' at position %s", mi->user,
static int safe_reconnect(THD* thd, MYSQL* mysql, MASTER_INFO* mi,
bool suppress_warnings)
{
- return connect_to_master(thd, mysql, mi, 1, suppress_warnings);
+ DBUG_ENTER("safe_reconnect");
+ DBUG_RETURN(connect_to_master(thd, mysql, mi, 1, suppress_warnings));
}
diff --git a/sql/sql_client.cc b/sql/sql_client.cc
index 464596f0734..1ae9a23a924 100644
--- a/sql/sql_client.cc
+++ b/sql/sql_client.cc
@@ -18,7 +18,7 @@
This files defines some MySQL C API functions that are server specific
*/
-#include <mysql_priv.h>
+#include "mysql_priv.h"
/*
Function called by my_net_init() to set some check variables
diff --git a/sql/sql_help.cc b/sql/sql_help.cc
index ba7c08ff15f..02fc8591370 100644
--- a/sql/sql_help.cc
+++ b/sql/sql_help.cc
@@ -22,6 +22,8 @@ struct st_find_field
Field *field;
};
+static void free_select(SQL_SELECT *sel);
+
/* Used fields */
static struct st_find_field init_used_fields[]=
@@ -62,6 +64,7 @@ enum enum_used_fields
help_relation_help_keyword_id
};
+
/*
Fill st_find_field structure with pointers to fields
@@ -94,8 +97,8 @@ static bool init_fields(THD *thd, TABLE_LIST *tables,
DBUG_RETURN(0);
}
-/*
+/*
Returns variants of found topic for help (if it is just single topic,
returns description and example, or else returns only names..)
@@ -135,7 +138,7 @@ void memorize_variant_topic(THD *thd, TABLE *topics, int count,
}
else
{
- if (count==1)
+ if (count == 1)
names->push_back(name);
String *new_name= new String;
get_field(mem_root,find_fields[help_topic_name].field,new_name);
@@ -557,7 +560,7 @@ int send_variant_2_list(MEM_ROOT *mem_root, Protocol *protocol,
String **end= pointers + names->elements;
List_iterator<String> it(*names);
- for ( pos= pointers; pos!=end; (*pos++= it++));
+ for (pos= pointers; pos!=end; (*pos++= it++));
qsort(pointers,names->elements,sizeof(String*),string_ptr_cmp);
@@ -627,6 +630,7 @@ SQL_SELECT *prepare_select_for_name(THD *thd, const char *mask, uint mlen,
return prepare_simple_select(thd,cond,tables,table,error);
}
+
/*
Server-side function 'help'
@@ -783,6 +787,21 @@ int mysqld_help(THD *thd, const char *mask)
res= 0;
send_eof(thd);
+
end:
+ free_select(select_topics_by_name);
+ free_select(select_keyword_by_name);
+ free_select(select_cat_by_name);
+ free_select(select_topics_by_cat);
+ free_select(select_cat_by_cat);
+ free_select(select_root_cats);
+
DBUG_RETURN(res);
}
+
+
+static void free_select(SQL_SELECT *sel)
+{
+ if (sel)
+ delete sel->quick;
+}