diff options
author | unknown <holyfoot@deer.(none)> | 2006-04-28 09:07:25 +0500 |
---|---|---|
committer | unknown <holyfoot@deer.(none)> | 2006-04-28 09:07:25 +0500 |
commit | 82c45de638c4a3ae9c52019eb7c658a171b5eef2 (patch) | |
tree | c0e0a652c3357f1581b8835382508b5adf547d01 | |
parent | 66b56724ffb0a8265445b91f50724076cfdeebf2 (diff) | |
download | mariadb-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.dsp | 124 | ||||
-rw-r--r-- | VC++Files/client/mysql_upgrade.vcproj | 232 | ||||
-rw-r--r-- | VC++Files/client/mysql_upgrade_ia64.dsp | 124 | ||||
-rw-r--r-- | VC++Files/mysql.dsw | 21 | ||||
-rw-r--r-- | VC++Files/mysql.sln | 8 | ||||
-rw-r--r-- | VC++Files/mysql_ia64.dsw | 18 | ||||
-rw-r--r-- | client/Makefile.am | 6 | ||||
-rw-r--r-- | client/mysql_upgrade.c | 400 |
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 */ |