summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <holyfoot@deer.(none)>2006-04-28 09:07:25 +0500
committerunknown <holyfoot@deer.(none)>2006-04-28 09:07:25 +0500
commit82c45de638c4a3ae9c52019eb7c658a171b5eef2 (patch)
treec0e0a652c3357f1581b8835382508b5adf547d01
parent66b56724ffb0a8265445b91f50724076cfdeebf2 (diff)
downloadmariadb-git-82c45de638c4a3ae9c52019eb7c658a171b5eef2.tar.gz
bug #18115 (mysql_upgrade on Windows)
pushed in 5.0 VC++Files/mysql.dsw: mysql_upgrade tool added VC++Files/mysql.sln: mysql_upgrade tool added VC++Files/mysql_ia64.dsw: mysql_upgrade tool added client/Makefile.am: mysql_upgrade tool added
-rw-r--r--VC++Files/client/mysql_upgrade.dsp124
-rw-r--r--VC++Files/client/mysql_upgrade.vcproj232
-rw-r--r--VC++Files/client/mysql_upgrade_ia64.dsp124
-rw-r--r--VC++Files/mysql.dsw21
-rw-r--r--VC++Files/mysql.sln8
-rw-r--r--VC++Files/mysql_ia64.dsw18
-rw-r--r--client/Makefile.am6
-rw-r--r--client/mysql_upgrade.c400
8 files changed, 932 insertions, 1 deletions
diff --git a/VC++Files/client/mysql_upgrade.dsp b/VC++Files/client/mysql_upgrade.dsp
new file mode 100644
index 00000000000..28eb2a58f39
--- /dev/null
+++ b/VC++Files/client/mysql_upgrade.dsp
@@ -0,0 +1,124 @@
+# Microsoft Developer Studio Project File - Name="mysql_upgrade" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=mysql_upgrade - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "mysql_upgrade.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "mysql_upgrade.mak" CFG="mysql_upgrade - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "mysql_upgrade - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "mysql_upgrade - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE "mysql_upgrade - Win32 classic" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=xicl6.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "mysql_upgrade - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "release"
+# PROP Intermediate_Dir "release"
+# 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 "../" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "NDEBUG" /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
+# 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 mysqlclient.lib mysys.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib zlib.lib ..\extra\yassl\Release\yassl.lib /nologo /subsystem:console /machine:I386 /out:"../client_release/mysql_upgrade.exe" /libpath:"..\lib_release\\"
+# SUBTRACT LINK32 /incremental:yes
+
+!ELSEIF "$(CFG)" == "mysql_upgrade - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "mysqlimp"
+# PROP BASE Intermediate_Dir "mysqlimp"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "debug"
+# PROP Intermediate_Dir "debug"
+# 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 /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=xilink6.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 mysqlclient.lib mysys.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib zlib.lib setargv.obj ..\extra\yassl\Debug\yassl.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysql_upgrade.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
+
+!ELSEIF "$(CFG)" == "mysql_upgrade - Win32 classic"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "mysql_upgrade___Win32_classic"
+# PROP BASE Intermediate_Dir "mysql_upgrade___Win32_classic"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "classic"
+# PROP Intermediate_Dir "classic"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "NDEBUG" /FD /c
+# SUBTRACT BASE CPP /YX
+# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../" /D "_CONSOLE" /D "_WINDOWS" /D LICENSE=Commercial /D "DBUG_OFF" /D "_MBCS" /D "NDEBUG" /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
+# ADD BASE LINK32 mysqlclient.lib mysys.lib wsock32.lib 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 /out:"../client_release/mysql_upgrade.exe" /libpath:"..\lib_release\\"
+# SUBTRACT BASE LINK32 /incremental:yes
+# ADD LINK32 mysqlclient.lib mysys.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib zlib.lib ..\extra\yassl\Release\yassl.lib /nologo /subsystem:console /machine:I386 /out:"../client_classic/mysql_upgrade.exe" /libpath:"..\lib_release\\"
+# SUBTRACT LINK32 /incremental:yes
+
+!ENDIF
+
+# Begin Target
+
+# Name "mysql_upgrade - Win32 Release"
+# Name "mysql_upgrade - Win32 Debug"
+# Name "mysql_upgrade - Win32 classic"
+# Begin Source File
+
+SOURCE=.\mysql_upgrade.c
+# End Source File
+# End Target
+# End Project
diff --git a/VC++Files/client/mysql_upgrade.vcproj b/VC++Files/client/mysql_upgrade.vcproj
new file mode 100644
index 00000000000..38cae600a75
--- /dev/null
+++ b/VC++Files/client/mysql_upgrade.vcproj
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="mysql_upgrade"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\debug"
+ IntermediateDirectory=".\debug"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ OptimizeForProcessor="2"
+ AdditionalIncludeDirectories="../include,../"
+ PreprocessorDefinitions="_DEBUG;SAFEMALLOC;SAFE_MUTEX;_CONSOLE;_WINDOWS"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile=".\debug/mysql_upgrade.pch"
+ AssemblerListingLocation=".\debug/"
+ ObjectFile=".\debug/"
+ ProgramDataBaseFileName=".\debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="1"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="wsock32.lib odbc32.lib odbccp32.lib setargv.obj"
+ OutputFile="../client_debug/mysql_upgrade.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\debug/mysql_upgrade.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\debug/mysql_upgrade.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\release"
+ IntermediateDirectory=".\release"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OptimizeForProcessor="2"
+ AdditionalIncludeDirectories="../include,../"
+ PreprocessorDefinitions="DBUG_OFF;_CONSOLE;_WINDOWS;NDEBUG"
+ StringPooling="TRUE"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="TRUE"
+ PrecompiledHeaderFile=".\release/mysql_upgrade.pch"
+ AssemblerListingLocation=".\release/"
+ ObjectFile=".\release/"
+ ProgramDataBaseFileName=".\release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="wsock32.lib odbc32.lib odbccp32.lib"
+ OutputFile="../client_release/mysql_upgrade.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories=""
+ ProgramDatabaseFile=".\release/mysql_upgrade.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\release/mysql_upgrade.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="classic|Win32"
+ OutputDirectory=".\classic"
+ IntermediateDirectory=".\classic"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OptimizeForProcessor="2"
+ AdditionalIncludeDirectories="../include,../"
+ PreprocessorDefinitions="_CONSOLE;_WINDOWS;LICENSE=Commercial;DBUG_OFF;NDEBUG"
+ StringPooling="TRUE"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="TRUE"
+ PrecompiledHeaderFile=".\classic/mysql_upgrade.pch"
+ AssemblerListingLocation=".\classic/"
+ ObjectFile=".\classic/"
+ ProgramDataBaseFileName=".\classic/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="wsock32.lib odbc32.lib odbccp32.lib"
+ OutputFile="../client_classic/mysql_upgrade.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories=""
+ ProgramDatabaseFile=".\classic/mysql_upgrade.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\classic/mysql_upgrade.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath="mysql_upgrade.c">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="classic|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/VC++Files/client/mysql_upgrade_ia64.dsp b/VC++Files/client/mysql_upgrade_ia64.dsp
new file mode 100644
index 00000000000..5cb42ba0224
--- /dev/null
+++ b/VC++Files/client/mysql_upgrade_ia64.dsp
@@ -0,0 +1,124 @@
+# Microsoft Developer Studio Project File - Name="mysql_upgrade" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=mysql_upgrade - WinIA64 classic
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "mysql_upgrade_ia64.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "mysql_upgrade_ia64.mak" CFG="mysql_upgrade - WinIA64 classic"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "mysql_upgrade - WinIA64 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "mysql_upgrade - WinIA64 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE "mysql_upgrade - WinIA64 classic" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "mysql_upgrade - WinIA64 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "release"
+# PROP Intermediate_Dir "release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+MTL=midl.exe
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /Zi /O2 /I "../include" /I "../" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "NDEBUG" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /G2 /EHsc /Wp64 /Zm600 /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=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:IA64
+# ADD LINK32 ..\lib_release\zlib.lib mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib bufferoverflowU.lib zlib.lib /nologo /subsystem:console /out:"../client_release/mysql_upgrade.exe" /libpath:"..\lib_release\\" /machine:IA64
+
+!ELSEIF "$(CFG)" == "mysql_upgrade - WinIA64 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "mysqlimp"
+# PROP BASE Intermediate_Dir "mysqlimp"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "debug"
+# PROP Intermediate_Dir "debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+MTL=midl.exe
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN64" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MTd /W3 /Zi /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /G2 /EHsc /Wp64 /Zm600 /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+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:IA64
+# ADD LINK32 setargv.obj ..\lib_debug\zlib.lib ..\lib_debug\dbug.lib mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib bufferoverflowU.lib zlib.lib /nologo /subsystem:console /incremental:no /debug /out:"../client_debug/mysql_upgrade.exe" /libpath:"..\lib_debug\\" /machine:IA64
+
+!ELSEIF "$(CFG)" == "mysql_upgrade - WinIA64 classic"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "mysql_upgrade___WinIA64_classic"
+# PROP BASE Intermediate_Dir "mysql_upgrade___WinIA64_classic"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "classic"
+# PROP Intermediate_Dir "classic"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+MTL=midl.exe
+# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "NDEBUG" /FD /c
+# SUBTRACT BASE CPP /YX
+# ADD CPP /nologo /MT /W3 /Zi /O2 /I "../include" /I "../" /D "_CONSOLE" /D "_WINDOWS" /D LICENSE=Commercial /D "DBUG_OFF" /D "_MBCS" /D "NDEBUG" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /G2 /EHsc /Wp64 /Zm600 /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=link.exe
+# ADD BASE LINK32 mysqlclient.lib wsock32.lib 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 /out:"../client_release/mysql_upgrade.exe" /libpath:"..\lib_release\\" /machine:IA64
+# ADD LINK32 ..\lib_release\zlib.lib mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib bufferoverflowU.lib zlib.lib /nologo /subsystem:console /out:"../client_classic/mysql_upgrade.exe" /libpath:"..\lib_release\\" /machine:IA64
+
+!ENDIF
+
+# Begin Target
+
+# Name "mysql_upgrade - WinIA64 Release"
+# Name "mysql_upgrade - WinIA64 Debug"
+# Name "mysql_upgrade - WinIA64 classic"
+# Begin Source File
+
+SOURCE=.\mysql_upgrade.c
+# End Source File
+# End Target
+# End Project
diff --git a/VC++Files/mysql.dsw b/VC++Files/mysql.dsw
index b1d09552705..911b895c1ad 100644
--- a/VC++Files/mysql.dsw
+++ b/VC++Files/mysql.dsw
@@ -423,6 +423,9 @@ Package=<4>
Project_Dep_Name mysqlimport
End Project Dependency
Begin Project Dependency
+ Project_Dep_Name mysql_upgrade
+ End Project Dependency
+ Begin Project Dependency
Project_Dep_Name mysqlshow
End Project Dependency
Begin Project Dependency
@@ -507,6 +510,24 @@ Package=<4>
###############################################################################
+Project: "mysql_upgrade"=".\client\mysql_upgade.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name mysqlclient
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name mysys
+ End Project Dependency
+}}}
+
+###############################################################################
+
Project: "mysqlserver"=".\mysqlserver\mysqlserver.dsp" - Package Owner=<4>
Package=<5>
diff --git a/VC++Files/mysql.sln b/VC++Files/mysql.sln
index 083ddef96ed..14f16f8fd8d 100644
--- a/VC++Files/mysql.sln
+++ b/VC++Files/mysql.sln
@@ -174,6 +174,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysqlimport", "client\mysql
{44D9C7DC-6636-4B82-BD01-6876C64017DF} = {44D9C7DC-6636-4B82-BD01-6876C64017DF}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysql_upgrade", "client\mysql_upgrade.vcproj", "{AD95DAD3-6DB9-4F8B-A345-7A39A83AAD3D}"
+ ProjectSection(ProjectDependencies) = postProject
+ {BA86AE72-0CF5-423D-BBA2-E12B0D72EBFB} = {BA86AE72-0CF5-423D-BBA2-E12B0D72EBFB}
+ {26383276-4843-494B-8BE0-8936ED3EBAAB} = {26383276-4843-494B-8BE0-8936ED3EBAAB}
+ {8762A9B8-72A9-462E-A9A2-F3265081F8AF} = {8762A9B8-72A9-462E-A9A2-F3265081F8AF}
+ {44D9C7DC-6636-4B82-BD01-6876C64017DF} = {44D9C7DC-6636-4B82-BD01-6876C64017DF}
+ EndProjectSection
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysqlserver", "mysqlserver\mysqlserver.vcproj", "{94B86159-C581-42CD-825D-C69CBC237E5C}"
ProjectSection(ProjectDependencies) = postProject
{EEC1300B-85A5-497C-B3E1-F708021DF859} = {EEC1300B-85A5-497C-B3E1-F708021DF859}
diff --git a/VC++Files/mysql_ia64.dsw b/VC++Files/mysql_ia64.dsw
index 3b588deee61..add59f8b471 100644
--- a/VC++Files/mysql_ia64.dsw
+++ b/VC++Files/mysql_ia64.dsw
@@ -508,6 +508,9 @@ Package=<4>
Project_Dep_Name mysqlimport
End Project Dependency
Begin Project Dependency
+ Project_Dep_Name mysql_upgrade
+ End Project Dependency
+ Begin Project Dependency
Project_Dep_Name mysqlshow
End Project Dependency
Begin Project Dependency
@@ -580,6 +583,21 @@ Package=<4>
###############################################################################
+Project: "mysql_upgrade"=".\client\mysql_upgrade_ia64.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name mysqlclient
+ End Project Dependency
+}}}
+
+###############################################################################
+
Project: "mysqlserver"=".\mysqlserver\mysqlserver_ia64.dsp" - Package Owner=<4>
Package=<5>
diff --git a/client/Makefile.am b/client/Makefile.am
index 2c513d3d7c7..9d133125a0d 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -31,6 +31,7 @@ LDADD= @CLIENT_EXTRA_LDFLAGS@ \
$(top_builddir)/libmysql/libmysqlclient.la
bin_PROGRAMS = mysql mysqladmin mysqlcheck mysqlshow \
mysqldump mysqlimport mysqltest mysqlbinlog \
+ mysql_upgrade \
mysqltestmanagerc mysqltestmanager-pwgen
noinst_HEADERS = sql_string.h completion_hash.h my_readline.h \
client_priv.h
@@ -48,11 +49,14 @@ mysqlcheck_SOURCES= mysqlcheck.c $(yassl_dummy_link_fix)
mysqlshow_SOURCES= mysqlshow.c $(yassl_dummy_link_fix)
mysqldump_SOURCES= mysqldump.c my_user.c $(yassl_dummy_link_fix)
mysqlimport_SOURCES= mysqlimport.c $(yassl_dummy_link_fix)
+mysql_upgrade_SOURCES= mysql_upgrade.c $(yassl_dummy_link_fix)
sql_src=log_event.h mysql_priv.h log_event.cc my_decimal.h my_decimal.cc
strings_src=decimal.c
# Fix for mit-threads
-DEFS = -DUNDEF_THREADS_HACK
+DEFS = -DUNDEF_THREADS_HACK \
+ -DDEFAULT_MYSQL_HOME="\"$(prefix)\"" \
+ -DDATADIR="\"$(localstatedir)\""
link_sources:
for f in $(sql_src) ; do \
diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c
new file mode 100644
index 00000000000..78e4acd4c1d
--- /dev/null
+++ b/client/mysql_upgrade.c
@@ -0,0 +1,400 @@
+/* Copyright (C) 2000 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#include "client_priv.h"
+#include <my_dir.h>
+
+static my_bool opt_force= 0, opt_verbose= 0, tty_password= 0;
+static char *user= (char*) "root", *basedir= 0, *datadir= 0, *opt_password= 0;
+static my_bool upgrade_defaults_created= 0;
+static my_string opt_mysql_port, opt_mysql_unix_port= 0;
+static char *default_dbug_option= (char*) "d:t:O,/tmp/comp_err.trace";
+static my_bool info_flag= 0;
+
+static struct my_option my_long_options[]=
+{
+ {"help", '?', "Display this help message and exit.", 0, 0, 0, GET_NO_ARG,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"basedir", 'b', "Specifies the directory where MySQL is installed",
+ (gptr*) &basedir,
+ (gptr*) &basedir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"datadir", 'd', "Specifies the data directory", (gptr*) &datadir,
+ (gptr*) &datadir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+#ifdef DBUG_OFF
+ {"debug", '#', "This is a non-debug version. Catch this and exit",
+ 0, 0, 0, GET_DISABLED, OPT_ARG, 0, 0, 0, 0, 0, 0},
+#else
+ {"debug", '#', "Output debug log", (gptr *) & default_dbug_option,
+ (gptr *) & default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+#endif
+ {"debug-info", 'T', "Print some debug info at exit.", (gptr *) & info_flag,
+ (gptr *) & info_flag, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"force", 'f', "Continue even if we get an sql-error.",
+ (gptr*) &opt_force, (gptr*) &opt_force, 0, GET_BOOL, NO_ARG, 0, 0,
+ 0, 0, 0, 0},
+ {"password", 'p',
+ "Password to use when connecting to server. If password is not given it's solicited on the tty.",
+ 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
+ (gptr*) &opt_mysql_port, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0,
+ 0},
+ {"protocol", OPT_MYSQL_PROTOCOL,
+ "The protocol of connection (tcp,socket,pipe,memory).",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"socket", 'S', "Socket file to use for connection.",
+ (gptr*) &opt_mysql_unix_port, (gptr*) &opt_mysql_unix_port, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"user", 'u', "User for login if not current user.", (gptr*) &user,
+ (gptr*) &user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"verbose", 'v', "Display more output about the process", (gptr*) &opt_verbose,
+ (gptr *) &opt_verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
+};
+static const char *load_default_groups[]=
+{
+ "mysql_upgrade", "client", 0
+};
+
+#include <help_end.h>
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__ ((unused)),
+ char *argument)
+{
+ switch (optid) {
+ case '?':
+ puts
+ ("MySQL utility script to upgrade database to the current server version");
+ puts("");
+ my_print_help(my_long_options);
+ exit(0);
+ case '#':
+ DBUG_PUSH(argument ? argument : default_dbug_option);
+ break;
+ case 'f':
+ opt_force= TRUE;
+ break;
+ case 'p':
+ tty_password= 1;
+ if (argument)
+ {
+ char *start= argument;
+ my_free(opt_password, MYF(MY_ALLOW_ZERO_PTR));
+ opt_password= my_strdup(argument, MYF(MY_FAE));
+ while (*argument)
+ *argument++= 'x'; /* Destroy argument */
+ if (*start)
+ start[1]= 0; /* Cut length of argument */
+ tty_password= 0;
+ }
+ break;
+ default:;
+ };
+ return 0;
+}
+
+
+/* buffer should be not smaller than FN_REFLEN */
+static my_bool test_file_exists_res(const char *dir, const char *fname,
+ char *buffer, char **buf_end)
+{
+ MY_STAT stat_info;
+
+ *buf_end= strxnmov(buffer, FN_REFLEN-1, dir, "/", fname, NullS);
+ unpack_filename(buffer, buffer);
+ return my_stat(buffer, &stat_info, MYF(0)) != 0;
+}
+
+
+static my_bool test_file_exists(const char *dir, const char *fname)
+{
+ char path[FN_REFLEN];
+ char *path_end;
+ return test_file_exists_res(dir, fname, path, &path_end);
+}
+
+
+static int create_check_file(const char *path)
+{
+ File check_file= my_open(path, O_CREAT | O_WRONLY, MYF(MY_FAE | MY_WME));
+ int error;
+
+ if (check_file < 0)
+ return 1;
+
+ error= my_write(check_file, VERSION, strlen(VERSION), MYF(MY_WME | MY_FNABP));
+ error= my_close(check_file, MYF(MY_FAE | MY_WME)) || error;
+ return error;
+}
+
+
+static int create_defaults_file(const char *path, const char *our_defaults_path)
+{
+ uint b_read;
+ File our_defaults_file, defaults_file;
+ char buffer[512];
+ char *buffer_end;
+ int error;
+
+ /* check if the defaults file is needed at all */
+ if (!opt_password)
+ return 0;
+
+ defaults_file= my_open(path, O_BINARY | O_CREAT | O_WRONLY,
+ MYF(MY_FAE | MY_WME));
+
+ if (defaults_file < 0)
+ return 1;
+ upgrade_defaults_created= 1;
+ if (our_defaults_path)
+ {
+ our_defaults_file= my_open(our_defaults_path, O_RDONLY,
+ MYF(MY_FAE | MY_WME));
+ if (our_defaults_file < 0)
+ return 1;
+ do
+ {
+ if (((b_read= my_read(our_defaults_file, buffer,
+ sizeof(buffer), MYF(MY_WME))) == MY_FILE_ERROR) ||
+ my_write(defaults_file, buffer, b_read, MYF(MY_FNABP | MY_WME)))
+ {
+ error= 1;
+ goto close_return;
+ }
+ } while (b_read == sizeof(buffer));
+ }
+ buffer_end= strnmov(buffer, "\n[client]", sizeof(buffer));
+ if (opt_password)
+ buffer_end= strxnmov(buffer, sizeof(buffer),
+ "\npassword=", opt_password, NullS);
+ error= my_write(defaults_file, buffer, (int) (buffer_end - buffer),
+ MYF(MY_WME | MY_FNABP));
+close_return:
+ return my_close(defaults_file, MYF(MY_WME)) || error;
+}
+
+
+int main(int argc, char **argv)
+{
+ char bindir[FN_REFLEN];
+ char *bindir_end, *buf_end;
+ char datadir_buf[FN_REFLEN];
+ char mysqlcheck_line[FN_REFLEN], *mysqlcheck_end;
+ char check_file_name[FN_REFLEN];
+ int check_file;
+ char fix_priv_tables_cmd[FN_REFLEN], *fix_cmd_end;
+ char script_line[FN_REFLEN];
+ int error;
+ char *forced_defaults_file;
+ char *forced_extra_defaults;
+ char *defaults_group_suffix;
+ char upgrade_defaults_path[FN_REFLEN], *defaults_to_use= 0;
+ char port_socket[100], *port_socket_end;
+
+ MY_INIT(argv[0]);
+#ifdef __NETWARE__
+ setscreenmode(SCR_AUTOCLOSE_ON_EXIT);
+#endif
+
+ load_defaults("my", load_default_groups, &argc, &argv);
+
+ if ((error= handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(error);
+
+ if (tty_password)
+ opt_password= get_tty_password(NullS);
+
+ /* Check if we want to force the use a specific default file */
+ get_defaults_options(argc, argv,
+ &forced_defaults_file, &forced_extra_defaults,
+ &defaults_group_suffix);
+
+ port_socket_end= port_socket;
+ if (opt_mysql_port)
+ port_socket_end= strxnmov(port_socket, sizeof(port_socket) - 1, " --port=",
+ opt_mysql_port, NullS);
+ if (opt_mysql_unix_port)
+ port_socket_end= strxnmov(port_socket_end,
+ sizeof(port_socket) -
+ (int)(port_socket_end - port_socket) - 1,
+ " --socket=", opt_mysql_unix_port, NullS);
+ *port_socket_end= 0;
+
+ if (basedir)
+ {
+ bindir_end= strmake(bindir, basedir, sizeof(bindir)-1);
+ }
+ else
+ {
+ if (test_file_exists("./share/mysql/english", "errmsg.sys")
+ && (test_file_exists("./bin", "mysqld") ||
+ test_file_exists("./libexec", "mysqld")))
+ {
+ getcwd(bindir, sizeof(bindir));
+ bindir_end= bindir + strlen(bindir);
+ }
+ else
+ {
+ bindir_end= strmake(bindir, DEFAULT_MYSQL_HOME, sizeof(bindir)-1);
+ }
+ }
+
+ if (!datadir)
+ {
+ datadir= datadir_buf;
+ if (test_file_exists(bindir, "data/mysql"))
+ {
+ *strxnmov(datadir_buf, sizeof(datadir_buf)-1, bindir, "/data", NullS)= 0;
+ }
+ else if (test_file_exists(bindir, "var/mysql"))
+ {
+ *strxnmov(datadir_buf, sizeof(datadir_buf)-1, bindir, "/var", NullS)= 0;
+ }
+ else
+ datadir= (char*) DATADIR;
+ }
+
+ strmake(bindir_end, "/bin", sizeof(bindir) - (int) (bindir_end - bindir)-1);
+
+ if (!test_file_exists_res
+ (bindir, "mysqlcheck", mysqlcheck_line, &mysqlcheck_end))
+ {
+ printf("Can't find program '%s'\n", mysqlcheck_line);
+ puts("Please restart with --basedir=mysql-install-directory");
+ exit(1);
+ }
+
+ if (!test_file_exists(datadir, "mysql/user.frm"))
+ {
+ puts
+ ("Can't find data directory. Please restart with --datadir=path-to-data-dir");
+ exit(1);
+ }
+
+ /* create the modified defaults file to be used by mysqlcheck */
+ /* and mysql tools */
+ *strxnmov(upgrade_defaults_path, sizeof(upgrade_defaults_path)-1,
+ datadir, "/upgrade_defaults", NullS)= 0;
+ unpack_filename(upgrade_defaults_path, upgrade_defaults_path);
+ if ((error=
+ create_defaults_file(upgrade_defaults_path, forced_extra_defaults)))
+ goto err_exit;
+
+ defaults_to_use= upgrade_defaults_created ?
+ upgrade_defaults_path : forced_extra_defaults;
+
+ if (test_file_exists_res(datadir, "mysql_upgrade_info", check_file_name,
+ &buf_end) && !opt_force)
+ {
+ char chf_buffer[50];
+ int b_read;
+ check_file= my_open(check_file_name, O_RDONLY, MYF(0));
+ b_read= my_read(check_file, chf_buffer, sizeof(chf_buffer)-1, MYF(0));
+ chf_buffer[b_read]= 0;
+ my_close(check_file, MYF(0));
+ if (!strcmp(chf_buffer, VERSION))
+ {
+ if (opt_verbose)
+ puts("mysql_upgrade already done for this version");
+ goto fix_priv_tables;
+ }
+ }
+
+ if (defaults_to_use)
+ {
+ mysqlcheck_end= strxnmov(mysqlcheck_end,
+ sizeof(mysqlcheck_line) - (int) (mysqlcheck_end -
+ mysqlcheck_line),
+ " --defaults-extra-file=", defaults_to_use,NullS);
+ }
+
+ mysqlcheck_end= strxnmov(mysqlcheck_end,
+ sizeof(mysqlcheck_line) -
+ (int) (mysqlcheck_end - mysqlcheck_line - 1),
+ " --check-upgrade --all-databases --auto-repair --user=",
+ user, port_socket, NullS);
+ *mysqlcheck_end= 0;
+
+ if (opt_verbose)
+ printf("Running %s\n", mysqlcheck_line);
+ if ((error= system(mysqlcheck_line)))
+ {
+ printf("Error executing '%s'\n", mysqlcheck_line);
+ goto err_exit;
+ }
+
+ if ((error= create_check_file(check_file_name)))
+ goto err_exit;
+
+fix_priv_tables:
+ if (!test_file_exists_res(bindir, "mysql", fix_priv_tables_cmd, &fix_cmd_end))
+ {
+ puts("Could not find MySQL command-line client (mysql).");
+ puts
+ ("Please use --basedir to specify the directory where MySQL is installed.");
+ error= 1;
+ goto err_exit;
+ }
+
+ if (!test_file_exists_res(basedir,
+ "support_files/mysql_fix_privilege_tables.sql",
+ script_line, &buf_end)
+ && !test_file_exists_res(basedir, "share/mysql_fix_privilege_tables.sql",
+ script_line, &buf_end)
+ && !test_file_exists_res(basedir,
+ "share/mysql/mysql_fix_privilege_tables.sql",
+ script_line, &buf_end)
+ && !test_file_exists_res(basedir,
+ "scripts/mysql_fix_privilege_tables.sql",
+ script_line, &buf_end)
+ && !test_file_exists_res("/usr/local/mysql/share/mysql",
+ "mysql_fix_privilege_tables.sql", script_line,
+ &buf_end))
+ {
+ puts("Could not find file mysql_fix_privilege_tables.sql");
+ puts
+ ("Please use --basedir to specify the directory where MySQL is installed");
+ error= 1;
+ goto err_exit;
+ }
+
+ if (defaults_to_use)
+ {
+ fix_cmd_end= strxnmov(fix_cmd_end,
+ sizeof(fix_priv_tables_cmd) -
+ (int) (fix_cmd_end - fix_priv_tables_cmd - 1),
+ " --defaults-extra-file=", defaults_to_use, NullS);
+ }
+ fix_cmd_end= strxnmov(fix_cmd_end,
+ sizeof(fix_priv_tables_cmd) - (int) (fix_cmd_end -
+ fix_priv_tables_cmd),
+ " --user=", user, port_socket, " mysql < ", script_line, NullS);
+ *fix_cmd_end= 0;
+
+ if ((error= system(fix_priv_tables_cmd)))
+ {
+ /* Problem is that the 'Duplicate column' error */
+ /* which is not a bug for the script makes 'mysql' return */
+ /* an error */
+ /* printf("Error executing '%s'\n", fix_priv_tables_cmd); */
+ }
+
+err_exit:
+ if (upgrade_defaults_created)
+ my_delete(upgrade_defaults_path, MYF(0));
+ my_end(info_flag ? MY_CHECK_ERROR | MY_GIVE_INFO : 0);
+ return error;
+} /* main */