mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
Merge mleich@bk-internal.mysql.com:/home/bk/mysql-4.1
into three.local.lan:/home/matthias/Arbeit/mysql-4.1/src
This commit is contained in:
commit
83f247bb37
138 changed files with 25292 additions and 804 deletions
|
@ -940,3 +940,6 @@ ndbcluster-1186/ndb_3_out.log
|
|||
ndbcluster-1186/ndbcluster.pid
|
||||
ndb/tools/ndb_restore
|
||||
ac_available_languages_fragment
|
||||
libmysqld/ha_archive.cc
|
||||
libmysqld/ha_example.cc
|
||||
libmysqld/ha_tina.cc
|
||||
|
|
|
@ -43,6 +43,7 @@ cxx_warnings="$global_warnings -Woverloaded-virtual -Wsign-promo -Wreorder -Wcto
|
|||
|
||||
alpha_cflags="-mcpu=ev6 -Wa,-mev6" # Not used yet
|
||||
pentium_cflags="-mcpu=pentiumpro"
|
||||
ppc_cflags="-mpowerpc -mcpu=powerpc"
|
||||
sparc_cflags=""
|
||||
|
||||
# be as fast as we can be without losing our ability to backtrace
|
||||
|
|
10
BUILD/compile-ppc
Executable file
10
BUILD/compile-ppc
Executable file
|
@ -0,0 +1,10 @@
|
|||
#! /bin/sh
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/SETUP.sh"
|
||||
|
||||
extra_flags="$ppc_cflags $fast_cflags"
|
||||
extra_configs="$static_link"
|
||||
strip=yes
|
||||
|
||||
. "$path/FINISH.sh"
|
13
BUILD/compile-ppc-debug
Executable file
13
BUILD/compile-ppc-debug
Executable file
|
@ -0,0 +1,13 @@
|
|||
#! /bin/sh
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/SETUP.sh"
|
||||
|
||||
extra_flags="$ppc_cflags $debug_cflags"
|
||||
c_warnings="$c_warnings $debug_extra_warnings"
|
||||
cxx_warnings="$cxx_warnings $debug_extra_warnings"
|
||||
extra_configs="$debug_configs "
|
||||
|
||||
extra_configs="$extra_configs"
|
||||
|
||||
. "$path/FINISH.sh"
|
13
BUILD/compile-ppc-debug-max
Executable file
13
BUILD/compile-ppc-debug-max
Executable file
|
@ -0,0 +1,13 @@
|
|||
#! /bin/sh
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/SETUP.sh"
|
||||
|
||||
extra_flags="$ppc_cflags $debug_cflags"
|
||||
c_warnings="$c_warnings $debug_extra_warnings"
|
||||
cxx_warnings="$cxx_warnings $debug_extra_warnings"
|
||||
extra_configs="$debug_configs"
|
||||
|
||||
extra_configs="$extra_configs --with-berkeley-db --with-innodb --without-isam --with-embedded-server --with-openssl --with-raid --with-vio --with-ndbcluster"
|
||||
|
||||
. "$path/FINISH.sh"
|
13
BUILD/compile-ppc-max
Executable file
13
BUILD/compile-ppc-max
Executable file
|
@ -0,0 +1,13 @@
|
|||
#! /bin/sh
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/SETUP.sh"
|
||||
|
||||
extra_flags="$ppc_cflags $fast_cflags -g"
|
||||
#strip=yes
|
||||
|
||||
extra_configs="$extra_configs --with-innodb --with-berkeley-db \
|
||||
--with-embedded-server --enable-thread-safe-client \
|
||||
--with-openssl --with-vio --with-raid --with-ndbcluster"
|
||||
|
||||
. "$path/FINISH.sh"
|
|
@ -87,6 +87,7 @@ jcole@mugatu.jcole.us
|
|||
jcole@mugatu.spaceapes.com
|
||||
jcole@sarvik.tfr.cafe.ee
|
||||
jcole@tetra.spaceapes.com
|
||||
jimw@mysql.com
|
||||
joerg@mysql.com
|
||||
joreland@mysql.com
|
||||
jorge@linux.jorge.mysql.com
|
||||
|
@ -191,6 +192,7 @@ serg@sergbook.mylan
|
|||
serg@sergbook.mysql.com
|
||||
sergefp@mysql.com
|
||||
sinisa@rhols221.adsl.netsonic.fi
|
||||
stewart@mysql.com
|
||||
tfr@beta.frontier86.ee
|
||||
tfr@indrek.tfr.cafe.ee
|
||||
tfr@sarvik.tfr.cafe.ee
|
||||
|
|
|
@ -10,7 +10,7 @@ use Sys::Hostname;
|
|||
$opt_distribution=$opt_user=$opt_config_env=$opt_config_extra_env="";
|
||||
$opt_dbd_options=$opt_perl_options=$opt_config_options=$opt_make_options=$opt_suffix="";
|
||||
$opt_tmp=$opt_version_suffix="";
|
||||
$opt_bundled_zlib=$opt_help=$opt_delete=$opt_debug=$opt_stage=$opt_no_test=$opt_no_perl=$opt_one_error=$opt_with_low_memory=$opt_fast_benchmark=$opt_static_client=$opt_static_server=$opt_static_perl=$opt_sur=$opt_with_small_disk=$opt_local_perl=$opt_tcpip=$opt_build_thread=$opt_use_old_distribution=$opt_enable_shared=$opt_no_crash_me=$opt_no_strip=$opt_with_cluster=$opt_with_debug=$opt_no_benchmark=$opt_no_mysqltest=$opt_without_embedded=$opt_readline=0;
|
||||
$opt_bundled_zlib=$opt_help=$opt_delete=$opt_debug=$opt_stage=$opt_no_test=$opt_no_perl=$opt_one_error=$opt_with_low_memory=$opt_fast_benchmark=$opt_static_client=$opt_static_server=$opt_static_perl=$opt_sur=$opt_with_small_disk=$opt_local_perl=$opt_tcpip=$opt_build_thread=$opt_use_old_distribution=$opt_enable_shared=$opt_no_crash_me=$opt_no_strip=$opt_with_archive=$opt_with_cluster=$opt_with_debug=$opt_no_benchmark=$opt_no_mysqltest=$opt_without_embedded=$opt_readline=0;
|
||||
$opt_innodb=$opt_bdb=$opt_raid=$opt_libwrap=$opt_clearlogs=0;
|
||||
|
||||
GetOptions(
|
||||
|
@ -53,6 +53,7 @@ GetOptions(
|
|||
"use-old-distribution",
|
||||
"user=s",
|
||||
"version-suffix=s",
|
||||
"with-archive",
|
||||
"with-cluster",
|
||||
"with-debug",
|
||||
"with-low-memory",
|
||||
|
@ -273,6 +274,7 @@ if ($opt_stage <= 1)
|
|||
$opt_config_options.= " --with-libedit";
|
||||
}
|
||||
$opt_config_options.= " --with-embedded-server" unless ($opt_without_embedded);
|
||||
$opt_config_options.= " --with-archive-storage-engine" if ($opt_with_archive);
|
||||
$opt_config_options.= " --with-ndbcluster" if ($opt_with_cluster);
|
||||
|
||||
# Only enable InnoDB when requested (required to be able to
|
||||
|
@ -609,6 +611,9 @@ If user is empty then no mail is sent.
|
|||
--version-suffix=suffix
|
||||
Set name suffix (e.g. 'com' or '-max') for a distribution
|
||||
|
||||
--with archive
|
||||
Enable the Archive storage Engine
|
||||
|
||||
--with cluster
|
||||
Compile and test with NDB Cluster enabled
|
||||
|
||||
|
|
125
VC++Files/client/mysqltest.dsp
Normal file
125
VC++Files/client/mysqltest.dsp
Normal file
|
@ -0,0 +1,125 @@
|
|||
# Microsoft Developer Studio Project File - Name="mysqltest" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=mysqltest - 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 "mysqltest.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 "mysqltest.mak" CFG="mysqltest - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "mysqltest - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "mysqltest - Win32 classic" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "mysqltest - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysqltest - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir ".\debug"
|
||||
# PROP BASE Intermediate_Dir ".\debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir ".\debug"
|
||||
# PROP Intermediate_Dir ".\debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /I "../include" /I "../" /Z7 /W3 /Od /G6 /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_WINDOWS" /D "USE_TLS" /D "_MBCS" /Fp".\debug/mysqltest.pch" /Fo".\debug/" /Fd".\debug/" /GZ /c /GX
|
||||
# ADD CPP /nologo /MTd /I "../include" /I "../" /Z7 /W3 /Od /G6 /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_WINDOWS" /D "USE_TLS" /D "_MBCS" /Fp".\debug/mysqltest.pch" /Fo".\debug/" /Fd".\debug/" /GZ /c /GX
|
||||
# ADD BASE MTL /nologo /tlb".\debug\mysqltest.tlb" /win32
|
||||
# ADD MTL /nologo /tlb".\debug\mysqltest.tlb" /win32
|
||||
# ADD BASE RSC /l 1033 /d "_DEBUG"
|
||||
# ADD RSC /l 1033 /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 mysqlclient.lib wsock32.lib odbc32.lib odbccp32.lib mysys.lib /nologo /out:"..\client_debug\mysqltest.exe" /incremental:no /libpath:"..\lib_debug\" /debug /pdb:".\debug\mysqltest.pdb" /pdbtype:sept /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 mysqlclient.lib wsock32.lib odbc32.lib odbccp32.lib mysys.lib /nologo /out:"..\client_debug\mysqltest.exe" /incremental:no /libpath:"..\lib_debug\" /debug /pdb:".\debug\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqltest - Win32 classic"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir ".\classic"
|
||||
# PROP BASE Intermediate_Dir ".\classic"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir ".\classic"
|
||||
# PROP Intermediate_Dir ".\classic"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MT /I "../include" /I "../" /W3 /Ob1 /G6 /D "_CONSOLE" /D "_WINDOWS" /D "LICENSE=Commercial" /D "DBUG_OFF" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\classic/mysqltest.pch" /Fo".\classic/" /Fd".\classic/" /c /GX
|
||||
# ADD CPP /nologo /MT /I "../include" /I "../" /W3 /Ob1 /G6 /D "_CONSOLE" /D "_WINDOWS" /D "LICENSE=Commercial" /D "DBUG_OFF" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\classic/mysqltest.pch" /Fo".\classic/" /Fd".\classic/" /c /GX
|
||||
# ADD BASE MTL /nologo /tlb".\classic\mysqltest.tlb" /win32
|
||||
# ADD MTL /nologo /tlb".\classic\mysqltest.tlb" /win32
|
||||
# ADD BASE RSC /l 1033 /d "NDEBUG"
|
||||
# ADD RSC /l 1033 /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 mysqlclient.lib wsock32.lib odbc32.lib odbccp32.lib /nologo /out:"..\client_classic\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\classic\mysqltest.pdb" /pdbtype:sept /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 mysqlclient.lib wsock32.lib odbc32.lib odbccp32.lib /nologo /out:"..\client_classic\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\classic\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqltest - 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 Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MT /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_CONSOLE" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\release/mysqltest.pch" /Fo".\release/" /Fd".\release/" /c /GX
|
||||
# ADD CPP /nologo /MT /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_CONSOLE" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\release/mysqltest.pch" /Fo".\release/" /Fd".\release/" /c /GX
|
||||
# ADD BASE MTL /nologo /tlb".\release\mysqltest.tlb" /win32
|
||||
# ADD MTL /nologo /tlb".\release\mysqltest.tlb" /win32
|
||||
# ADD BASE RSC /l 1033 /d "NDEBUG"
|
||||
# ADD RSC /l 1033 /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 mysqlclient.lib wsock32.lib odbc32.lib odbccp32.lib /nologo /out:"..\client_release\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\release\mysqltest.pdb" /pdbtype:sept /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 mysqlclient.lib wsock32.lib odbc32.lib odbccp32.lib /nologo /out:"..\client_release\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\release\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "mysqltest - Win32 Debug"
|
||||
# Name "mysqltest - Win32 classic"
|
||||
# Name "mysqltest - Win32 Release"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\libmysql\manager.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\mysqltest.c
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
||||
|
106
VC++Files/mysql-test/mysql_test_run_new.dsp
Normal file
106
VC++Files/mysql-test/mysql_test_run_new.dsp
Normal file
|
@ -0,0 +1,106 @@
|
|||
# Microsoft Developer Studio Project File - Name="mysql_test_run_new" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Application" 0x0101
|
||||
|
||||
CFG=mysql_test_run_new - 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_test_run_new.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_test_run_new.mak" CFG="mysql_test_run_new - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "mysql_test_run_new - Win32 Debug" (based on "Win32 (x86) Application")
|
||||
!MESSAGE "mysql_test_run_new - Win32 Release" (based on "Win32 (x86) Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysql_test_run_new - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /I "../include" /I "../" /Z7 /W3 /Od /G6 /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /Fp".\debug/mysql_test_run.pch" /Fo".\debug/" /Fd".\debug/" /GZ /c /GX
|
||||
# ADD CPP /nologo /MTd /I "../include" /I "../" /Z7 /W3 /Od /G6 /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /Fp".\debug/mysql_test_run.pch" /Fo".\debug/" /Fd".\debug/" /GZ /c /GX
|
||||
# ADD BASE MTL /nologo /win32
|
||||
# ADD MTL /nologo /win32
|
||||
# ADD BASE RSC /l 1033
|
||||
# ADD RSC /l 1033
|
||||
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 Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /debug /pdb:".\debug\mysql_test_run_new.pdb" /pdbtype:sept /map /mapinfo:exports /subsystem:windows
|
||||
# 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 Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /debug /pdb:".\debug\mysql_test_run_new.pdb" /pdbtype:sept /map /mapinfo:exports /subsystem:windows
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysql_test_run_new - 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 Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /GF /Gy /Fo".\release/" /Fd".\release/" /c /GX
|
||||
# ADD CPP /nologo /MTd /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /GF /Gy /Fo".\release/" /Fd".\release/" /c /GX
|
||||
# ADD BASE MTL /nologo /win32
|
||||
# ADD MTL /nologo /win32
|
||||
# ADD BASE RSC /l 1033
|
||||
# ADD RSC /l 1033
|
||||
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 Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /pdbtype:sept /subsystem:windows
|
||||
# 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 Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /pdbtype:sept /subsystem:windows
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "mysql_test_run_new - Win32 Debug"
|
||||
# Name "mysql_test_run_new - Win32 Release"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=my_create_tables.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=my_manage.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=my_manage.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=mysql_test_run_new.c
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
||||
|
|
@ -816,6 +816,30 @@ Package=<4>
|
|||
|
||||
###############################################################################
|
||||
|
||||
Project: "mysqltest"=.\client\mysqltest.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "mysql_test_run_new"=.\mysql-test\mysql_test_run_new.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
|
|
|
@ -924,76 +924,139 @@ SOURCE=.\message.mc
|
|||
|
||||
!IF "$(CFG)" == "mysqld - Win32 Release"
|
||||
|
||||
# Begin Custom Build
|
||||
InputPath=.\message.mc
|
||||
|
||||
BuildCmds= \
|
||||
mc message.mc
|
||||
|
||||
"message.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
|
||||
"message.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
# End Custom Build
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqld - Win32 Debug"
|
||||
|
||||
# Begin Custom Build
|
||||
InputPath=.\message.mc
|
||||
|
||||
BuildCmds= \
|
||||
mc message.mc
|
||||
|
||||
"message.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
|
||||
"message.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
# End Custom Build
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqld - Win32 nt"
|
||||
|
||||
# Begin Custom Build - Compiling messages
|
||||
InputDir=.
|
||||
# Begin Custom Build
|
||||
InputPath=.\message.mc
|
||||
InputName=message
|
||||
|
||||
BuildCmds= \
|
||||
mc.exe "$(InputDir)\$(InputName).mc"
|
||||
mc message.mc
|
||||
|
||||
"$(InputDir)\$(InputName).rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
"message.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
|
||||
"$(InputDir)\$(InputName).h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
"message.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
# End Custom Build
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqld - Win32 Max nt"
|
||||
# Begin Custom Build - Compiling messages
|
||||
InputDir=.
|
||||
|
||||
# Begin Custom Build
|
||||
InputPath=.\message.mc
|
||||
InputName=message
|
||||
|
||||
BuildCmds= \
|
||||
mc.exe "$(InputDir)\$(InputName).mc"
|
||||
mc message.mc
|
||||
|
||||
"$(InputDir)\$(InputName).rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
"message.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
|
||||
"$(InputDir)\$(InputName).h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
"message.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
# End Custom Build
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqld - Win32 Max"
|
||||
|
||||
# Begin Custom Build
|
||||
InputPath=.\message.mc
|
||||
|
||||
BuildCmds= \
|
||||
mc message.mc
|
||||
|
||||
"message.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
|
||||
"message.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
# End Custom Build
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqld - Win32 classic"
|
||||
|
||||
# Begin Custom Build
|
||||
InputPath=.\message.mc
|
||||
|
||||
BuildCmds= \
|
||||
mc message.mc
|
||||
|
||||
"message.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
|
||||
"message.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
# End Custom Build
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqld - Win32 pro"
|
||||
|
||||
# Begin Custom Build
|
||||
InputPath=.\message.mc
|
||||
|
||||
BuildCmds= \
|
||||
mc message.mc
|
||||
|
||||
"message.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
|
||||
"message.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
# End Custom Build
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqld - Win32 classic nt"
|
||||
# Begin Custom Build - Compiling messages
|
||||
InputDir=.
|
||||
|
||||
# Begin Custom Build
|
||||
InputPath=.\message.mc
|
||||
InputName=message
|
||||
|
||||
BuildCmds= \
|
||||
mc.exe "$(InputDir)\$(InputName).mc"
|
||||
mc message.mc
|
||||
|
||||
"$(InputDir)\$(InputName).rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
"message.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
|
||||
"$(InputDir)\$(InputName).h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
"message.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
# End Custom Build
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqld - Win32 pro nt"
|
||||
# Begin Custom Build - Compiling messages
|
||||
InputDir=.
|
||||
|
||||
# Begin Custom Build
|
||||
InputPath=.\message.mc
|
||||
InputName=message
|
||||
|
||||
BuildCmds= \
|
||||
mc.exe "$(InputDir)\$(InputName).mc"
|
||||
mc message.mc
|
||||
|
||||
"$(InputDir)\$(InputName).rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
"message.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
|
||||
"$(InputDir)\$(InputName).h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
"message.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
|
||||
$(BuildCmds)
|
||||
# End Custom Build
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
|
|
23
acinclude.m4
23
acinclude.m4
|
@ -1624,6 +1624,11 @@ AC_DEFUN([MYSQL_CHECK_NDB_OPTIONS], [
|
|||
--with-ndb-port-base Base port for NDB Cluster transporters],
|
||||
[ndb_port_base="$withval"],
|
||||
[ndb_port_base="default"])
|
||||
AC_ARG_WITH([ndb-debug],
|
||||
[
|
||||
--without-ndb-debug Disable special ndb debug features],
|
||||
[ndb_debug="$withval"],
|
||||
[ndb_debug="default"])
|
||||
|
||||
AC_MSG_CHECKING([for NDB Cluster options])
|
||||
AC_MSG_RESULT([])
|
||||
|
@ -1663,6 +1668,24 @@ AC_DEFUN([MYSQL_CHECK_NDB_OPTIONS], [
|
|||
;;
|
||||
esac
|
||||
|
||||
case "$ndb_debug" in
|
||||
yes )
|
||||
AC_MSG_RESULT([-- including ndb extra debug options])
|
||||
have_ndb_debug="yes"
|
||||
;;
|
||||
full )
|
||||
AC_MSG_RESULT([-- including ndb extra extra debug options])
|
||||
have_ndb_debug="full"
|
||||
;;
|
||||
no )
|
||||
AC_MSG_RESULT([-- not including ndb extra debug options])
|
||||
have_ndb_debug="no"
|
||||
;;
|
||||
* )
|
||||
have_ndb_debug="default"
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_MSG_RESULT([done.])
|
||||
])
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ enum options_client
|
|||
OPT_COMPATIBLE, OPT_RECONNECT, OPT_DELIMITER, OPT_SECURE_AUTH,
|
||||
OPT_OPEN_FILES_LIMIT, OPT_SET_CHARSET, OPT_CREATE_OPTIONS,
|
||||
OPT_START_POSITION, OPT_STOP_POSITION, OPT_START_DATETIME, OPT_STOP_DATETIME,
|
||||
OPT_SIGINT_IGNORE, OPT_HEXBLOB
|
||||
OPT_SIGINT_IGNORE, OPT_HEXBLOB, OPT_ORDER_BY_PRIMARY
|
||||
#ifdef HAVE_NDBCLUSTER_DB
|
||||
,OPT_NDBCLUSTER,OPT_NDB_CONNECTSTRING
|
||||
#endif
|
||||
|
|
|
@ -75,20 +75,20 @@ static ulong find_set(TYPELIB *lib, const char *x, uint length,
|
|||
|
||||
static char *field_escape(char *to,const char *from,uint length);
|
||||
static my_bool verbose=0,tFlag=0,cFlag=0,dFlag=0,quick= 1, extended_insert= 1,
|
||||
lock_tables=1,ignore_errors=0,flush_logs=0,replace=0,
|
||||
ignore=0,opt_drop=1,opt_keywords=0,opt_lock=1,opt_compress=0,
|
||||
lock_tables=1,ignore_errors=0,flush_logs=0,
|
||||
opt_drop=1,opt_keywords=0,opt_lock=1,opt_compress=0,
|
||||
opt_delayed=0,create_options=1,opt_quoted=0,opt_databases=0,
|
||||
opt_alldbs=0,opt_create_db=0,opt_lock_all_tables=0,opt_set_charset,
|
||||
opt_autocommit=0,opt_disable_keys=1,opt_xml=0,
|
||||
opt_delete_master_logs=0, tty_password=0,
|
||||
opt_single_transaction=0, opt_comments= 0, opt_compact= 0,
|
||||
opt_hex_blob=0;
|
||||
opt_hex_blob=0, opt_order_by_primary=0;
|
||||
static ulong opt_max_allowed_packet, opt_net_buffer_length;
|
||||
static MYSQL mysql_connection,*sock=0;
|
||||
static char insert_pat[12 * 1024],*opt_password=0,*current_user=0,
|
||||
*current_host=0,*path=0,*fields_terminated=0,
|
||||
*lines_terminated=0, *enclosed=0, *opt_enclosed=0, *escaped=0,
|
||||
*where=0,
|
||||
*where=0, *order_by=0,
|
||||
*opt_compatible_mode_str= 0,
|
||||
*err_ptr= 0;
|
||||
static char compatible_mode_normal_str[255];
|
||||
|
@ -158,7 +158,7 @@ static struct my_option my_long_options[] =
|
|||
(gptr*) &opt_compatible_mode_str, (gptr*) &opt_compatible_mode_str, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"compact", OPT_COMPACT,
|
||||
"Give less verbose output (useful for debugging). Disables structure comments and header/footer constructs. Enables options --skip-add-drop-table --no-set-names --skip-disable-keys --skip-lock-tables",
|
||||
"Give less verbose output (useful for debugging). Disables structure comments and header/footer constructs. Enables options --skip-add-drop-table --no-set-names --skip-disable-keys --skip-add-locks",
|
||||
(gptr*) &opt_compact, (gptr*) &opt_compact, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
|
||||
0, 0},
|
||||
{"complete-insert", 'c', "Use complete insert statements.", (gptr*) &cFlag,
|
||||
|
@ -332,6 +332,9 @@ static struct my_option my_long_options[] =
|
|||
{"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},
|
||||
{"order-by-primary", OPT_ORDER_BY_PRIMARY,
|
||||
"Sorts each table's rows by primary key, or first unique key, if such a key exists. Useful when dumping a MyISAM table to be loaded into an InnoDB table, but will make the dump itself take considerably longer.",
|
||||
(gptr*) &opt_order_by_primary, (gptr*) &opt_order_by_primary, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#include <sslopt-longopts.h>
|
||||
{"tab",'T',
|
||||
"Creates tab separated textfile for each table to given path. (creates .sql and .txt files). NOTE: This only works if mysqldump is run on the same machine as the mysqld daemon.",
|
||||
|
@ -368,6 +371,7 @@ static int dump_databases(char **);
|
|||
static int dump_all_databases();
|
||||
static char *quote_name(const char *name, char *buff, my_bool force);
|
||||
static const char *check_if_ignore_table(const char *table_name);
|
||||
static char *primary_key_fields(const char *table_name);
|
||||
|
||||
#include <help_start.h>
|
||||
|
||||
|
@ -669,11 +673,6 @@ static int get_options(int *argc, char ***argv)
|
|||
fprintf(stderr, "%s: You can't use ..enclosed.. and ..optionally-enclosed.. at the same time.\n", my_progname);
|
||||
return(1);
|
||||
}
|
||||
if (replace && ignore)
|
||||
{
|
||||
fprintf(stderr, "%s: You can't use --ignore (-i) and --replace (-r) at the same time.\n",my_progname);
|
||||
return(1);
|
||||
}
|
||||
if ((opt_databases || opt_alldbs) && path)
|
||||
{
|
||||
fprintf(stderr,
|
||||
|
@ -754,7 +753,6 @@ static void safe_exit(int error)
|
|||
|
||||
/*
|
||||
** dbConnect -- connects to the host and selects DB.
|
||||
** Also checks whether the tablename is a valid table name.
|
||||
*/
|
||||
static int dbConnect(char *host, char *user,char *passwd)
|
||||
{
|
||||
|
@ -892,7 +890,7 @@ static char *quote_for_like(const char *name, char *buff)
|
|||
len - its length
|
||||
|
||||
DESCRIPTION
|
||||
Quote '<' '>' '&' '\"' singns and print a string to the xml_file.
|
||||
Quote '<' '>' '&' '\"' chars and print a string to the xml_file.
|
||||
*/
|
||||
|
||||
static void print_quoted_xml(FILE *xml_file, const char *str, ulong len)
|
||||
|
@ -1033,6 +1031,10 @@ static uint getTableStructure(char *table, char* db)
|
|||
|
||||
result_table= quote_name(table, table_buff, 1);
|
||||
opt_quoted_table= quote_name(table, table_buff2, 0);
|
||||
|
||||
if (opt_order_by_primary)
|
||||
order_by = primary_key_fields(opt_quoted_table);
|
||||
|
||||
if (!opt_xml && !mysql_query_with_error_report(sock, 0, insert_pat))
|
||||
{
|
||||
/* using SHOW CREATE statement */
|
||||
|
@ -1449,10 +1451,6 @@ static void dumpTable(uint numFields, char *table)
|
|||
sprintf(query, "SELECT /*!40001 SQL_NO_CACHE */ * INTO OUTFILE '%s'",
|
||||
filename);
|
||||
end= strend(query);
|
||||
if (replace)
|
||||
end= strmov(end, " REPLACE");
|
||||
if (ignore)
|
||||
end= strmov(end, " IGNORE");
|
||||
|
||||
if (fields_terminated || enclosed || opt_enclosed || escaped)
|
||||
end= strmov(end, " FIELDS");
|
||||
|
@ -1465,10 +1463,17 @@ static void dumpTable(uint numFields, char *table)
|
|||
|
||||
sprintf(buff," FROM %s", result_table);
|
||||
end= strmov(end,buff);
|
||||
if (where)
|
||||
if (where || order_by)
|
||||
{
|
||||
query= alloc_query_str((ulong) (strlen(where) + (end - query) + 10));
|
||||
end= strxmov(query, query_buf, " WHERE ", where, NullS);
|
||||
query = alloc_query_str((ulong) ((end - query) + 1 +
|
||||
(where ? strlen(where) + 7 : 0) +
|
||||
(order_by ? strlen(order_by) + 10 : 0)));
|
||||
end = strmov(query, query_buf);
|
||||
|
||||
if (where)
|
||||
end = strxmov(end, " WHERE ", where, NullS);
|
||||
if (order_by)
|
||||
end = strxmov(end, " ORDER BY ", order_by, NullS);
|
||||
}
|
||||
if (mysql_real_query(sock, query, (uint) (end - query)))
|
||||
{
|
||||
|
@ -1486,15 +1491,31 @@ static void dumpTable(uint numFields, char *table)
|
|||
}
|
||||
sprintf(query, "SELECT /*!40001 SQL_NO_CACHE */ * FROM %s",
|
||||
result_table);
|
||||
if (where)
|
||||
if (where || order_by)
|
||||
{
|
||||
if (!opt_xml && opt_comments)
|
||||
query = alloc_query_str((ulong) (strlen(query) + 1 +
|
||||
(where ? strlen(where) + 7 : 0) +
|
||||
(order_by ? strlen(order_by) + 10 : 0)));
|
||||
end = strmov(query, query_buf);
|
||||
|
||||
if (where)
|
||||
{
|
||||
fprintf(md_result_file,"-- WHERE: %s\n",where);
|
||||
check_io(md_result_file);
|
||||
if (!opt_xml && opt_comments)
|
||||
{
|
||||
fprintf(md_result_file, "-- WHERE: %s\n", where);
|
||||
check_io(md_result_file);
|
||||
}
|
||||
end = strxmov(end, " WHERE ", where, NullS);
|
||||
}
|
||||
if (order_by)
|
||||
{
|
||||
if (!opt_xml && opt_comments)
|
||||
{
|
||||
fprintf(md_result_file, "-- ORDER BY: %s\n", order_by);
|
||||
check_io(md_result_file);
|
||||
}
|
||||
end = strxmov(end, " ORDER BY ", order_by, NullS);
|
||||
}
|
||||
query= alloc_query_str((ulong) (strlen(where) + strlen(query) + 10));
|
||||
strxmov(query, query_buf, " WHERE ", where, NullS);
|
||||
}
|
||||
if (!opt_xml && !opt_compact)
|
||||
{
|
||||
|
@ -1804,6 +1825,8 @@ static void dumpTable(uint numFields, char *table)
|
|||
err:
|
||||
if (query != query_buf)
|
||||
my_free(query, MYF(MY_ALLOW_ZERO_PTR));
|
||||
if (order_by)
|
||||
my_free(order_by, MYF(0));
|
||||
safe_exit(error);
|
||||
return;
|
||||
} /* dumpTable */
|
||||
|
@ -2215,6 +2238,80 @@ static const char *check_if_ignore_table(const char *table_name)
|
|||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
Get string of comma-separated primary key field names
|
||||
|
||||
SYNOPSIS
|
||||
char *primary_key_fields(const char *table_name)
|
||||
RETURNS pointer to allocated buffer (must be freed by caller)
|
||||
table_name quoted table name
|
||||
|
||||
DESCRIPTION
|
||||
Use SHOW KEYS FROM table_name, allocate a buffer to hold the
|
||||
field names, and then build that string and return the pointer
|
||||
to that buffer.
|
||||
|
||||
Returns NULL if there is no PRIMARY or UNIQUE key on the table,
|
||||
or if there is some failure. It is better to continue to dump
|
||||
the table unsorted, rather than exit without dumping the data.
|
||||
*/
|
||||
static char *primary_key_fields(const char *table_name)
|
||||
{
|
||||
MYSQL_RES *res = NULL;
|
||||
MYSQL_ROW row;
|
||||
/* SHOW KEYS FROM + table name * 2 (escaped) + 2 quotes + \0 */
|
||||
char show_keys_buff[15 + 64 * 2 + 3];
|
||||
uint result_length = 0;
|
||||
char *result = 0;
|
||||
|
||||
sprintf(show_keys_buff, "SHOW KEYS FROM %s", table_name);
|
||||
if (mysql_query(sock, show_keys_buff) ||
|
||||
!(res = mysql_store_result(sock)))
|
||||
{
|
||||
fprintf(stderr, "Warning: Couldn't read keys from table %s;"
|
||||
" records are NOT sorted (%s)\n",
|
||||
table_name, mysql_error(sock));
|
||||
/* Don't exit, because it's better to print out unsorted records */
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
* Figure out the length of the ORDER BY clause result.
|
||||
* Note that SHOW KEYS is ordered: a PRIMARY key is always the first
|
||||
* row, and UNIQUE keys come before others. So we only need to check
|
||||
* the first key, not all keys.
|
||||
*/
|
||||
if ((row = mysql_fetch_row(res)) && atoi(row[1]) == 0)
|
||||
{
|
||||
/* Key is unique */
|
||||
do
|
||||
result_length += strlen(row[4]) + 1; /* + 1 for ',' or \0 */
|
||||
while ((row = mysql_fetch_row(res)) && atoi(row[3]) > 1);
|
||||
}
|
||||
|
||||
/* Build the ORDER BY clause result */
|
||||
if (result_length) {
|
||||
char *end;
|
||||
/* result (terminating \0 is already in result_length) */
|
||||
result = my_malloc(result_length + 10, MYF(MY_WME));
|
||||
if (!result) {
|
||||
fprintf(stderr, "Error: Not enough memory to store ORDER BY clause\n");
|
||||
goto cleanup;
|
||||
}
|
||||
mysql_data_seek(res, 0);
|
||||
row = mysql_fetch_row(res);
|
||||
end = strmov(result, row[4]);
|
||||
while ((row = mysql_fetch_row(res)) && atoi(row[3]) > 1)
|
||||
end = strxmov(end, ",", row[4], NullS);
|
||||
}
|
||||
|
||||
cleanup:
|
||||
if (res)
|
||||
mysql_free_result(res);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
|
|
21
configure.in
21
configure.in
|
@ -2714,7 +2714,7 @@ case $default_charset in
|
|||
;;
|
||||
latin1)
|
||||
default_charset_default_collation="latin1_swedish_ci"
|
||||
default_charset_collations="latin1_general_ci latin1_general_cs latin1_bin latin1_german1_ci latin1_german2_ci latin1_danish_ci latin1_swedish_ci"
|
||||
default_charset_collations="latin1_general_ci latin1_general_cs latin1_bin latin1_german1_ci latin1_german2_ci latin1_danish_ci latin1_spanish_ci latin1_swedish_ci"
|
||||
;;
|
||||
latin2)
|
||||
default_charset_default_collation="latin2_general_ci"
|
||||
|
@ -2830,7 +2830,7 @@ thread_dirs=
|
|||
|
||||
dnl This probably should be cleaned up more - for now the threaded
|
||||
dnl client is just using plain-old libs.
|
||||
sql_client_dirs="libmysql strings regex client"
|
||||
sql_client_dirs="libmysql client"
|
||||
linked_client_targets="linked_libmysql_sources"
|
||||
CLIENT_LIBS=$NON_THREADED_CLIENT_LIBS
|
||||
if test "$THREAD_SAFE_CLIENT" != "no"
|
||||
|
@ -3039,15 +3039,26 @@ then
|
|||
MAKE_BINARY_DISTRIBUTION_OPTIONS="$MAKE_BINARY_DISTRIBUTION_OPTIONS --with-ndbcluster"
|
||||
|
||||
CXXFLAGS="$CXXFLAGS \$(NDB_CXXFLAGS)"
|
||||
if test "$with_debug" = "yes"
|
||||
if test "$have_ndb_debug" = "default"
|
||||
then
|
||||
have_ndb_debug=$with_debug
|
||||
fi
|
||||
|
||||
if test "$have_ndb_debug" = "yes"
|
||||
then
|
||||
# Medium debug.
|
||||
NDB_DEFS="-DNDB_DEBUG -DVM_TRACE -DERROR_INSERT -DARRAY_GUARD"
|
||||
elif test "$with_debug" = "full"
|
||||
elif test "$have_ndb_debug" = "full"
|
||||
then
|
||||
NDB_DEFS="-DNDB_DEBUG_FULL -DVM_TRACE -DERROR_INSERT -DARRAY_GUARD"
|
||||
else
|
||||
NDB_DEFS="-DNDEBUG"
|
||||
# no extra ndb debug but still do asserts if debug version
|
||||
if test "$with_debug" = "yes" -o "$with_debug" = "full"
|
||||
then
|
||||
NDB_DEFS=""
|
||||
else
|
||||
NDB_DEFS="-DNDEBUG"
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST([NDB_DEFS])
|
||||
|
|
|
@ -26,7 +26,7 @@ DEFS = -DEMBEDDED_LIBRARY -DMYSQL_SERVER \
|
|||
-DDATADIR="\"$(MYSQLDATAdir)\"" \
|
||||
-DSHAREDIR="\"$(MYSQLSHAREdir)\""
|
||||
INCLUDES= @MT_INCLUDES@ @bdb_includes@ -I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/sql -I$(top_srcdir)/regex \
|
||||
-I$(top_srcdir)/sql -I$(top_srcdir)/sql/examples -I$(top_srcdir)/regex \
|
||||
$(openssl_includes) @ZLIB_INCLUDES@
|
||||
|
||||
noinst_LIBRARIES = libmysqld_int.a
|
||||
|
@ -35,6 +35,7 @@ SUBDIRS = . examples
|
|||
libmysqld_sources= libmysqld.c lib_sql.cc emb_qcache.cc
|
||||
libmysqlsources = errmsg.c get_password.c libmysql.c client.c pack.c \
|
||||
my_time.c
|
||||
sqlexamplessources = ha_example.cc ha_archive.cc ha_tina.cc
|
||||
|
||||
noinst_HEADERS = embedded_priv.h emb_qcache.h
|
||||
|
||||
|
@ -59,7 +60,7 @@ sqlsources = derror.cc field.cc field_conv.cc strfunc.cc filesort.cc \
|
|||
unireg.cc uniques.cc stacktrace.c sql_union.cc hash_filo.cc \
|
||||
spatial.cc gstream.cc sql_help.cc tztime.cc
|
||||
|
||||
libmysqld_int_a_SOURCES= $(libmysqld_sources) $(libmysqlsources) $(sqlsources)
|
||||
libmysqld_int_a_SOURCES= $(libmysqld_sources) $(libmysqlsources) $(sqlsources) $(sqlexamplessources)
|
||||
libmysqld_a_SOURCES=
|
||||
|
||||
# automake misses these
|
||||
|
@ -123,12 +124,16 @@ link_sources:
|
|||
rm -f $(srcdir)/$$f; \
|
||||
@LN_CP_F@ $(srcdir)/../libmysql/$$f $(srcdir)/$$f; \
|
||||
done; \
|
||||
for f in $(sqlexamplessources); do \
|
||||
rm -f $(srcdir)/$$f; \
|
||||
@LN_CP_F@ $(srcdir)/../sql/examples/$$f $(srcdir)/$$f; \
|
||||
done; \
|
||||
rm -f $(srcdir)/client_settings.h; \
|
||||
@LN_CP_F@ $(srcdir)/../libmysql/client_settings.h $(srcdir)/client_settings.h;
|
||||
|
||||
|
||||
clean-local:
|
||||
rm -f `echo $(sqlsources) $(libmysqlsources) | sed "s;\.lo;.c;g"` \
|
||||
rm -f `echo $(sqlsources) $(libmysqlsources) $(sqlexamplessources) | sed "s;\.lo;.c;g"` \
|
||||
$(top_srcdir)/linked_libmysqld_sources; \
|
||||
rm -f client_settings.h
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#ifdef HAVE_SYS_MMAN_H
|
||||
#include <sys/mman.h>
|
||||
#endif
|
||||
#include "rt_index.h"
|
||||
|
||||
#ifndef USE_RAID
|
||||
#define my_raid_create(A,B,C,D,E,F,G) my_create(A,B,C,G)
|
||||
|
@ -1465,6 +1466,12 @@ static int writekeys(MI_CHECK *param, register MI_INFO *info, byte *buff,
|
|||
if (_mi_ft_add(info,i,(char*) key,buff,filepos))
|
||||
goto err;
|
||||
}
|
||||
else if (info->s->keyinfo[i].flag & HA_SPATIAL)
|
||||
{
|
||||
uint key_length=_mi_make_key(info,i,key,buff,filepos);
|
||||
if (rtree_insert(info, i, key, key_length))
|
||||
goto err;
|
||||
}
|
||||
else
|
||||
{
|
||||
uint key_length=_mi_make_key(info,i,key,buff,filepos);
|
||||
|
@ -3987,7 +3994,8 @@ static my_bool mi_too_big_key_for_sort(MI_KEYDEF *key, ha_rows rows)
|
|||
key->seg->charset->mbmaxlen;
|
||||
key_maxlength+=ft_max_word_len_for_sort-HA_FT_MAXBYTELEN;
|
||||
}
|
||||
return (key->flag & (HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY | HA_FULLTEXT) &&
|
||||
return (key->flag & HA_SPATIAL) ||
|
||||
(key->flag & (HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY | HA_FULLTEXT) &&
|
||||
((ulonglong) rows * key_maxlength >
|
||||
(ulonglong) myisam_max_temp_length));
|
||||
}
|
||||
|
|
|
@ -42,8 +42,9 @@
|
|||
{ bits-=(bit+1); break; } \
|
||||
pos+= *pos
|
||||
|
||||
#define OFFSET_TABLE_SIZE 512
|
||||
|
||||
static void read_huff_table(MI_BIT_BUFF *bit_buff,MI_DECODE_TREE *decode_tree,
|
||||
static uint read_huff_table(MI_BIT_BUFF *bit_buff,MI_DECODE_TREE *decode_tree,
|
||||
uint16 **decode_table,byte **intervall_buff,
|
||||
uint16 *tmp_buff);
|
||||
static void make_quick_table(uint16 *to_table,uint16 *decode_table,
|
||||
|
@ -53,7 +54,7 @@ static void fill_quick_table(uint16 *table,uint bits, uint max_bits,
|
|||
uint value);
|
||||
static uint copy_decode_table(uint16 *to_pos,uint offset,
|
||||
uint16 *decode_table);
|
||||
static uint find_longest_bitstream(uint16 *table);
|
||||
static uint find_longest_bitstream(uint16 *table, uint16 *end);
|
||||
static void (*get_unpack_function(MI_COLUMNDEF *rec))(MI_COLUMNDEF *field,
|
||||
MI_BIT_BUFF *buff,
|
||||
uchar *to,
|
||||
|
@ -146,12 +147,12 @@ my_bool _mi_read_pack_info(MI_INFO *info, pbool fix_keys)
|
|||
{
|
||||
if (!my_errno)
|
||||
my_errno=HA_ERR_END_OF_FILE;
|
||||
DBUG_RETURN(1);
|
||||
goto err0;
|
||||
}
|
||||
if (memcmp((byte*) header,(byte*) myisam_pack_file_magic,4))
|
||||
{
|
||||
my_errno=HA_ERR_WRONG_IN_RECORD;
|
||||
DBUG_RETURN(1);
|
||||
goto err0;
|
||||
}
|
||||
share->pack.header_length= uint4korr(header+4);
|
||||
share->min_pack_length=(uint) uint4korr(header+8);
|
||||
|
@ -173,20 +174,20 @@ my_bool _mi_read_pack_info(MI_INFO *info, pbool fix_keys)
|
|||
my_malloc((uint) (trees*sizeof(MI_DECODE_TREE)+
|
||||
intervall_length*sizeof(byte)),
|
||||
MYF(MY_WME))))
|
||||
DBUG_RETURN(1);
|
||||
goto err0;
|
||||
intervall_buff=(byte*) (share->decode_trees+trees);
|
||||
|
||||
length=(uint) (elements*2+trees*(1 << myisam_quick_table_bits));
|
||||
if (!(share->decode_tables=(uint16*)
|
||||
my_malloc((length+512)*sizeof(uint16)+
|
||||
my_malloc((length+OFFSET_TABLE_SIZE)*sizeof(uint16)+
|
||||
(uint) (share->pack.header_length+7),
|
||||
MYF(MY_WME | MY_ZEROFILL))))
|
||||
{
|
||||
my_free((gptr) share->decode_trees,MYF(0));
|
||||
DBUG_RETURN(1);
|
||||
goto err1;
|
||||
}
|
||||
tmp_buff=share->decode_tables+length;
|
||||
disk_cache=(byte*) (tmp_buff+512);
|
||||
disk_cache=(byte*) (tmp_buff+OFFSET_TABLE_SIZE);
|
||||
|
||||
if (my_read(file,disk_cache,
|
||||
(uint) (share->pack.header_length-sizeof(header)),
|
||||
|
@ -194,7 +195,7 @@ my_bool _mi_read_pack_info(MI_INFO *info, pbool fix_keys)
|
|||
{
|
||||
my_free((gptr) share->decode_trees,MYF(0));
|
||||
my_free((gptr) share->decode_tables,MYF(0));
|
||||
DBUG_RETURN(1);
|
||||
goto err2;
|
||||
}
|
||||
|
||||
huff_tree_bits=max_bit(trees ? trees-1 : 0);
|
||||
|
@ -213,8 +214,9 @@ my_bool _mi_read_pack_info(MI_INFO *info, pbool fix_keys)
|
|||
skip_to_next_byte(&bit_buff);
|
||||
decode_table=share->decode_tables;
|
||||
for (i=0 ; i < trees ; i++)
|
||||
read_huff_table(&bit_buff,share->decode_trees+i,&decode_table,
|
||||
&intervall_buff,tmp_buff);
|
||||
if (read_huff_table(&bit_buff,share->decode_trees+i,&decode_table,
|
||||
&intervall_buff,tmp_buff))
|
||||
goto err3;
|
||||
decode_table=(uint16*)
|
||||
my_realloc((gptr) share->decode_tables,
|
||||
(uint) ((byte*) decode_table - (byte*) share->decode_tables),
|
||||
|
@ -224,8 +226,7 @@ my_bool _mi_read_pack_info(MI_INFO *info, pbool fix_keys)
|
|||
share->decode_tables=decode_table;
|
||||
for (i=0 ; i < trees ; i++)
|
||||
share->decode_trees[i].table=ADD_TO_PTR(share->decode_trees[i].table,
|
||||
diff,
|
||||
uint16*);
|
||||
diff, uint16*);
|
||||
}
|
||||
|
||||
/* Fix record-ref-length for keys */
|
||||
|
@ -242,19 +243,24 @@ my_bool _mi_read_pack_info(MI_INFO *info, pbool fix_keys)
|
|||
}
|
||||
|
||||
if (bit_buff.error || bit_buff.pos < bit_buff.end)
|
||||
{ /* info_length was wrong */
|
||||
my_errno=HA_ERR_WRONG_IN_RECORD;
|
||||
my_free((gptr) share->decode_trees,MYF(0));
|
||||
my_free((gptr) share->decode_tables,MYF(0));
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
goto err3;
|
||||
|
||||
DBUG_RETURN(0);
|
||||
|
||||
err3:
|
||||
my_errno=HA_ERR_WRONG_IN_RECORD;
|
||||
err2:
|
||||
my_free((gptr) share->decode_tables,MYF(0));
|
||||
err1:
|
||||
my_free((gptr) share->decode_trees,MYF(0));
|
||||
err0:
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
|
||||
|
||||
/* Read on huff-code-table from datafile */
|
||||
|
||||
static void read_huff_table(MI_BIT_BUFF *bit_buff, MI_DECODE_TREE *decode_tree,
|
||||
static uint read_huff_table(MI_BIT_BUFF *bit_buff, MI_DECODE_TREE *decode_tree,
|
||||
uint16 **decode_table, byte **intervall_buff,
|
||||
uint16 *tmp_buff)
|
||||
{
|
||||
|
@ -297,7 +303,9 @@ static void read_huff_table(MI_BIT_BUFF *bit_buff, MI_DECODE_TREE *decode_tree,
|
|||
decode_tree->intervalls= *intervall_buff;
|
||||
if (! intervall_length)
|
||||
{
|
||||
table_bits=find_longest_bitstream(tmp_buff);
|
||||
table_bits=find_longest_bitstream(tmp_buff, tmp_buff+OFFSET_TABLE_SIZE);
|
||||
if (table_bits == (uint) ~0)
|
||||
return 1;
|
||||
if (table_bits > myisam_quick_table_bits)
|
||||
table_bits=myisam_quick_table_bits;
|
||||
next_free_offset= (1 << table_bits);
|
||||
|
@ -315,7 +323,7 @@ static void read_huff_table(MI_BIT_BUFF *bit_buff, MI_DECODE_TREE *decode_tree,
|
|||
bit_buff->pos+=intervall_length;
|
||||
bit_buff->bits=0;
|
||||
}
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -390,15 +398,23 @@ static uint copy_decode_table(uint16 *to_pos, uint offset,
|
|||
}
|
||||
|
||||
|
||||
static uint find_longest_bitstream(uint16 *table)
|
||||
static uint find_longest_bitstream(uint16 *table, uint16 *end)
|
||||
{
|
||||
uint length=1,length2;
|
||||
if (!(*table & IS_CHAR))
|
||||
length=find_longest_bitstream(table+ *table)+1;
|
||||
{
|
||||
uint16 *next= table + *table;
|
||||
if (next > end || next == table)
|
||||
return ~0;
|
||||
length=find_longest_bitstream(next, end)+1;
|
||||
}
|
||||
table++;
|
||||
if (!(*table & IS_CHAR))
|
||||
{
|
||||
length2=find_longest_bitstream(table+ *table)+1;
|
||||
uint16 *next= table + *table;
|
||||
if (next > end || next == table)
|
||||
return ~0;
|
||||
length2=find_longest_bitstream(table+ *table, end)+1;
|
||||
length=max(length,length2);
|
||||
}
|
||||
return length;
|
||||
|
|
|
@ -1387,13 +1387,18 @@ run_testcase ()
|
|||
# script soon anyway so it is not worth it spending the time
|
||||
if [ "x$USE_EMBEDDED_SERVER" = "x1" -a -z "$DO_TEST" ] ; then
|
||||
for t in \
|
||||
"alter_table" \
|
||||
"bdb-deadlock" \
|
||||
"connect" \
|
||||
"ctype_latin1_de" \
|
||||
"ctype_ucs" \
|
||||
"flush_block_commit" \
|
||||
"grant2" \
|
||||
"grant_cache" \
|
||||
"grant" \
|
||||
"init_connect" \
|
||||
"init_file" \
|
||||
"innodb" \
|
||||
"innodb-deadlock" \
|
||||
"innodb-lock" \
|
||||
"mix_innodb_myisam_binlog" \
|
||||
|
@ -1401,10 +1406,12 @@ run_testcase ()
|
|||
"mysqlbinlog" \
|
||||
"mysqldump" \
|
||||
"mysql_protocols" \
|
||||
"packet" \
|
||||
"ps_1general" \
|
||||
"rename" \
|
||||
"show_check" \
|
||||
"system_mysql_db_fix" \
|
||||
"timezone2" \
|
||||
"user_var" \
|
||||
"variables"
|
||||
do
|
||||
|
|
58
mysql-test/r/ctype_big5.result.es
Normal file
58
mysql-test/r/ctype_big5.result.es
Normal file
|
@ -0,0 +1,58 @@
|
|||
drop table if exists t1;
|
||||
SET @test_character_set= 'big5';
|
||||
SET @test_collation= 'big5_chinese_ci';
|
||||
SET @safe_character_set_server= @@character_set_server;
|
||||
SET @safe_collation_server= @@collation_server;
|
||||
SET character_set_server= @test_character_set;
|
||||
SET collation_server= @test_collation;
|
||||
CREATE DATABASE d1;
|
||||
USE d1;
|
||||
CREATE TABLE t1 (c CHAR(10), KEY(c));
|
||||
SHOW FULL COLUMNS FROM t1;
|
||||
Field Type Collation Null Key Default Extra Privileges Comment
|
||||
c char(10) big5_chinese_ci YES MUL NULL
|
||||
INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
|
||||
SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%';
|
||||
want3results
|
||||
aaa
|
||||
aaaa
|
||||
aaaaa
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2)));
|
||||
SHOW FULL COLUMNS FROM t1;
|
||||
Field Type Collation Null Key Default Extra Privileges Comment
|
||||
c1 varchar(15) big5_chinese_ci YES MUL NULL
|
||||
INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab');
|
||||
SELECT c1 as want3results from t1 where c1 like 'l%';
|
||||
want3results
|
||||
location
|
||||
loberge
|
||||
lotre
|
||||
SELECT c1 as want3results from t1 where c1 like 'lo%';
|
||||
want3results
|
||||
location
|
||||
loberge
|
||||
lotre
|
||||
SELECT c1 as want1result from t1 where c1 like 'loc%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'loca%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'locat%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'locati%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'locatio%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'location%';
|
||||
want1result
|
||||
location
|
||||
DROP TABLE t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
SET character_set_server= @safe_character_set_server;
|
||||
SET collation_server= @safe_collation_server;
|
|
@ -63,3 +63,12 @@ ERROR HY000: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET
|
|||
create database d1 default character set latin1 collate latin2_bin;
|
||||
ERROR 42000: COLLATION 'latin2_bin' is not valid for CHARACTER SET 'latin1'
|
||||
DROP DATABASE mysqltest1;
|
||||
CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET latin7;
|
||||
use mysqltest2;
|
||||
ALTER DATABASE DEFAULT CHARACTER SET latin2;
|
||||
show create database mysqltest2;
|
||||
Database Create Database
|
||||
mysqltest2 CREATE DATABASE `mysqltest2` /*!40100 DEFAULT CHARACTER SET latin2 */
|
||||
drop database mysqltest2;
|
||||
ALTER DATABASE DEFAULT CHARACTER SET latin2;
|
||||
ERROR 3D000: No database selected
|
||||
|
|
242
mysql-test/r/ctype_recoding.result.es
Normal file
242
mysql-test/r/ctype_recoding.result.es
Normal file
|
@ -0,0 +1,242 @@
|
|||
SET CHARACTER SET koi8r;
|
||||
DROP TABLE IF EXISTS ÔÁÂÌÉÃÁ, t1, t2;
|
||||
SET CHARACTER SET koi8r;
|
||||
CREATE TABLE t1 (a CHAR(10) CHARACTER SET cp1251) SELECT _koi8r'ÐÒÏÂÁ' AS a;
|
||||
CREATE TABLE t2 (a CHAR(10) CHARACTER SET utf8);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(10) character set cp1251 default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
ÐÒÏÂÁ
|
||||
SELECT HEX(a) FROM t1;
|
||||
HEX(a)
|
||||
EFF0EEE1E0
|
||||
INSERT t2 SELECT * FROM t1;
|
||||
SELECT HEX(a) FROM t2;
|
||||
HEX(a)
|
||||
D0BFD180D0BED0B1D0B0
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (description text character set cp1250 NOT NULL);
|
||||
INSERT INTO t1 (description) VALUES (_latin2'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddde');
|
||||
SELECT description FROM t1;
|
||||
description
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddde
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a TEXT CHARACTER SET cp1251) SELECT _koi8r'ÐÒÏÂÁ' AS a;
|
||||
CREATE TABLE t2 (a TEXT CHARACTER SET utf8);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` text character set cp1251
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT HEX(a) FROM t1;
|
||||
HEX(a)
|
||||
EFF0EEE1E0
|
||||
INSERT t2 SELECT * FROM t1;
|
||||
SELECT HEX(a) FROM t2;
|
||||
HEX(a)
|
||||
D0BFD180D0BED0B1D0B0
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE `ÔÁÂÌÉÃÁ`
|
||||
(
|
||||
ÐÏÌÅ CHAR(32) CHARACTER SET koi8r NOT NULL COMMENT "ËÏÍÍÅÎÔÁÒÉÊ ÐÏÌÑ"
|
||||
) COMMENT "ËÏÍÍÅÎÔÁÒÉÊ ÔÁÂÌÉÃÙ";
|
||||
SHOW TABLES;
|
||||
Tables_in_test
|
||||
ÔÁÂÌÉÃÁ
|
||||
SHOW CREATE TABLE ÔÁÂÌÉÃÁ;
|
||||
Table Create Table
|
||||
ÔÁÂÌÉÃÁ CREATE TABLE `ÔÁÂÌÉÃÁ` (
|
||||
`ÐÏÌÅ` char(32) character set koi8r NOT NULL default '' COMMENT 'ËÏÍÍÅÎÔÁÒÉÊ ÐÏÌÑ'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='ËÏÍÍÅÎÔÁÒÉÊ ÔÁÂÌÉÃÙ'
|
||||
SHOW FIELDS FROM ÔÁÂÌÉÃÁ;
|
||||
Field Type Null Key Default Extra
|
||||
ÐÏÌÅ char(32)
|
||||
SET CHARACTER SET cp1251;
|
||||
SHOW TABLES;
|
||||
Tables_in_test
|
||||
òàáëèöà
|
||||
SHOW CREATE TABLE òàáëèöà;
|
||||
Table Create Table
|
||||
òàáëèöà CREATE TABLE `òàáëèöà` (
|
||||
`ïîëå` char(32) character set koi8r NOT NULL default '' COMMENT 'êîììåíòàðèé ïîëÿ'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='êîììåíòàðèé òàáëèöû'
|
||||
SHOW FIELDS FROM òàáëèöà;
|
||||
Field Type Null Key Default Extra
|
||||
ïîëå char(32)
|
||||
SET CHARACTER SET utf8;
|
||||
SHOW TABLES;
|
||||
Tables_in_test
|
||||
таблица
|
||||
SHOW CREATE TABLE таблица;
|
||||
Table Create Table
|
||||
таблица CREATE TABLE `таблица` (
|
||||
`поле` char(32) character set koi8r NOT NULL default '' COMMENT 'комментарий полÑ<EFBFBD>'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='комментарий таблицы'
|
||||
SHOW FIELDS FROM таблица;
|
||||
Field Type Null Key Default Extra
|
||||
поле char(32)
|
||||
SET CHARACTER SET koi8r;
|
||||
DROP TABLE ÔÁÂÌÉÃÁ;
|
||||
SET CHARACTER SET default;
|
||||
SET NAMES UTF8;
|
||||
CREATE TABLE t1 (t text) DEFAULT CHARSET UTF8;
|
||||
INSERT INTO t1 (t) VALUES ('x');
|
||||
SELECT 1 FROM t1 WHERE CONCAT(_latin1'x') = t;
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
SET CHARACTER SET koi8r;
|
||||
CREATE DATABASE ÔÅÓÔ;
|
||||
USE ÔÅÓÔ;
|
||||
SHOW TABLES;
|
||||
Tables_in_теÑ<EFBFBD>Ñ‚
|
||||
SHOW TABLES IN ÔÅÓÔ;
|
||||
Tables_in_теÑ<EFBFBD>Ñ‚
|
||||
SET CHARACTER SET cp1251;
|
||||
SHOW TABLES;
|
||||
Tables_in_теÑ<EFBFBD>Ñ‚
|
||||
SHOW TABLES IN òåñò;
|
||||
Tables_in_теÑ<EFBFBD>Ñ‚
|
||||
SET CHARACTER SET koi8r;
|
||||
DROP DATABASE ÔÅÓÔ;
|
||||
SET NAMES koi8r;
|
||||
SELECT hex('ÔÅÓÔ');
|
||||
hex('теÑ<C2B5>Ñ‚')
|
||||
D4C5D3D4
|
||||
SET character_set_connection=cp1251;
|
||||
SELECT hex('ÔÅÓÔ');
|
||||
hex('теÑ<C2B5>Ñ‚')
|
||||
F2E5F1F2
|
||||
USE test;
|
||||
SET NAMES binary;
|
||||
CREATE TABLE `теÑ<EFBFBD>Ñ‚` (`теÑ<EFBFBD>Ñ‚` int);
|
||||
SHOW CREATE TABLE `теÑ<EFBFBD>Ñ‚`;
|
||||
Table Create Table
|
||||
теÑ<EFBFBD>Ñ‚ CREATE TABLE `теÑ<EFBFBD>Ñ‚` (
|
||||
`теÑ<EFBFBD>Ñ‚` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SET NAMES utf8;
|
||||
SHOW CREATE TABLE `теÑ<EFBFBD>Ñ‚`;
|
||||
Table Create Table
|
||||
теÑ<EFBFBD>Ñ‚ CREATE TABLE `теÑ<EFBFBD>Ñ‚` (
|
||||
`теÑ<EFBFBD>Ñ‚` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE `теÑ<EFBFBD>Ñ‚`;
|
||||
SET NAMES binary;
|
||||
SET character_set_connection=utf8;
|
||||
SELECT 'теÑ<C2B5>Ñ‚' as s;
|
||||
s
|
||||
теÑ<EFBFBD>Ñ‚
|
||||
SET NAMES utf8;
|
||||
SET character_set_connection=binary;
|
||||
SELECT 'теÑ<C2B5>Ñ‚' as s;
|
||||
s
|
||||
теÑ<EFBFBD>Ñ‚
|
||||
SET NAMES latin1;
|
||||
CREATE TABLE t1 (`ä` CHAR(128) DEFAULT 'ä', `ä1` ENUM('ä1','ä2') DEFAULT 'ä2');
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`ä` char(128) default 'ä',
|
||||
`ä1` enum('ä1','ä2') default 'ä2'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
ä char(128) YES ä
|
||||
ä1 enum('ä1','ä2') YES ä2
|
||||
SET NAMES binary;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`ä` char(128) default 'ä',
|
||||
`ä1` enum('ä1','ä2') default 'ä2'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
ä char(128) YES ä
|
||||
ä1 enum('ä1','ä2') YES ä2
|
||||
DROP TABLE t1;
|
||||
SET NAMES binary;
|
||||
CREATE TABLE `goodÐÌÏÈÏ` (a int);
|
||||
ERROR HY000: Invalid utf8 character string: 'ÐÌÏÈÏ'
|
||||
SET NAMES utf8;
|
||||
CREATE TABLE `goodÐÌÏÈÏ` (a int);
|
||||
ERROR HY000: Invalid utf8 character string: 'ÐÌÏÈÏ` (a int)'
|
||||
set names latin1;
|
||||
create table t1 (a char(10) character set koi8r, b text character set koi8r);
|
||||
insert into t1 values ('test','test');
|
||||
insert into t1 values ('ÊÃÕË','ÊÃÕË');
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'a' at row 1
|
||||
Warning 1265 Data truncated for column 'b' at row 1
|
||||
drop table t1;
|
||||
set names koi8r;
|
||||
create table t1 (a char(10) character set cp1251);
|
||||
insert into t1 values (_koi8r'×ÁÓÑ');
|
||||
select * from t1 where a=_koi8r'×ÁÓÑ';
|
||||
a
|
||||
×ÁÓÑ
|
||||
select * from t1 where a=concat(_koi8r'×ÁÓÑ');
|
||||
ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (koi8r_general_ci,COERCIBLE) for operation '='
|
||||
select * from t1 where a=_latin1'×ÁÓÑ';
|
||||
ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
|
||||
drop table t1;
|
||||
set names latin1;
|
||||
set names koi8r;
|
||||
create table t1 (c1 char(10) character set cp1251);
|
||||
insert into t1 values ('ß');
|
||||
select c1 from t1 where c1 between 'ß' and 'ß';
|
||||
c1
|
||||
ß
|
||||
select ifnull(c1,'ß'), ifnull(null,c1) from t1;
|
||||
ifnull(c1,'ÑŠ') ifnull(null,c1)
|
||||
ß ß
|
||||
select if(1,c1,'ö'), if(0,c1,'ö') from t1;
|
||||
if(1,c1,'Ж') if(0,c1,'Ж')
|
||||
ß ö
|
||||
select coalesce('ö',c1), coalesce(null,c1) from t1;
|
||||
coalesce('Ж',c1) coalesce(null,c1)
|
||||
ö ß
|
||||
select least(c1,'ö'), greatest(c1,'ö') from t1;
|
||||
least(c1,'Ж') greatest(c1,'Ж')
|
||||
ö ß
|
||||
select locate(c1,'ß'), locate('ß',c1) from t1;
|
||||
locate(c1,'ÑŠ') locate('ÑŠ',c1)
|
||||
1 1
|
||||
select field(c1,'ß'),field('ß',c1) from t1;
|
||||
field(c1,'ÑŠ') field('ÑŠ',c1)
|
||||
1 1
|
||||
select concat(c1,'ö'), concat('ö',c1) from t1;
|
||||
concat(c1,'Ж') concat('Ж',c1)
|
||||
ßö öß
|
||||
select concat_ws(c1,'ö','ß'), concat_ws('ö',c1,'ß') from t1;
|
||||
concat_ws(c1,'Ж','ъ') concat_ws('Ж',c1,'ъ')
|
||||
ößß ßöß
|
||||
select replace(c1,'ß','ö'), replace('ß',c1,'ö') from t1;
|
||||
replace(c1,'ъ','Ж') replace('ъ',c1,'Ж')
|
||||
ö ö
|
||||
select substring_index(c1,'öößß',2) from t1;
|
||||
substring_index(c1,'ЖЖъъ',2)
|
||||
ß
|
||||
select elt(1,c1,'ö'),elt(1,'ö',c1) from t1;
|
||||
elt(1,c1,'Ж') elt(1,'Ж',c1)
|
||||
ß ö
|
||||
select make_set(3,c1,'ö'), make_set(3,'ö',c1) from t1;
|
||||
make_set(3,c1,'Ж') make_set(3,'Ж',c1)
|
||||
ß,ö ö,ß
|
||||
select insert(c1,1,2,'ö'),insert('ö',1,2,c1) from t1;
|
||||
insert(c1,1,2,'Ж') insert('Ж',1,2,c1)
|
||||
ö ß
|
||||
select trim(c1 from 'ß'),trim('ß' from c1) from t1;
|
||||
trim(c1 from 'ÑŠ') trim('ÑŠ' from c1)
|
||||
|
||||
select lpad(c1,3,'ö'), lpad('ö',3,c1) from t1;
|
||||
lpad(c1,3,'Ж') lpad('Ж',3,c1)
|
||||
ööß ßßö
|
||||
select rpad(c1,3,'ö'), rpad('ö',3,c1) from t1;
|
||||
rpad(c1,3,'Ж') rpad('Ж',3,c1)
|
||||
ßöö ößß
|
2377
mysql-test/r/ctype_uca.result.es
Normal file
2377
mysql-test/r/ctype_uca.result.es
Normal file
File diff suppressed because it is too large
Load diff
|
@ -525,3 +525,59 @@ use test;
|
|||
SET TIMESTAMP=10000;
|
||||
insert into t2 values (@v);
|
||||
drop table t2;
|
||||
set names latin1;
|
||||
create table t1 (a enum('x','y','z') character set ucs2);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` enum('x','y','z') character set ucs2 default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
insert into t1 values ('x');
|
||||
insert into t1 values ('y');
|
||||
insert into t1 values ('z');
|
||||
select a, hex(a) from t1 order by a;
|
||||
a hex(a)
|
||||
x 0078
|
||||
y 0079
|
||||
z 007A
|
||||
alter table t1 change a a enum('x','y','z','d','e','ä','ö','ü') character set ucs2;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` enum('x','y','z','d','e','ä','ö','ü') character set ucs2 default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
insert into t1 values ('D');
|
||||
insert into t1 values ('E ');
|
||||
insert into t1 values ('Ä');
|
||||
insert into t1 values ('Ö');
|
||||
insert into t1 values ('Ü');
|
||||
select a, hex(a) from t1 order by a;
|
||||
a hex(a)
|
||||
x 0078
|
||||
y 0079
|
||||
z 007A
|
||||
d 0064
|
||||
e 0065
|
||||
ä 00E4
|
||||
ö 00F6
|
||||
ü 00FC
|
||||
drop table t1;
|
||||
create table t1 (a set ('x','y','z','ä','ö','ü') character set ucs2);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` set('x','y','z','ä','ö','ü') character set ucs2 default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
insert into t1 values ('x');
|
||||
insert into t1 values ('y');
|
||||
insert into t1 values ('z');
|
||||
insert into t1 values ('x,y');
|
||||
insert into t1 values ('x,y,z,Ä,Ö,Ü');
|
||||
select a, hex(a) from t1 order by a;
|
||||
a hex(a)
|
||||
x 0078
|
||||
y 0079
|
||||
x,y 0078002C0079
|
||||
z 007A
|
||||
x,y,z,ä,ö,ü 0078002C0079002C007A002C00E4002C00F6002C00FC
|
||||
drop table t1;
|
||||
|
|
|
@ -11,8 +11,8 @@ get_lock("a",10)
|
|||
show binlog events;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3
|
||||
master-bin.000001 79 Query 1 79 use `test`; create database `drop-temp+table-test`
|
||||
master-bin.000001 152 Query 1 152 use `drop-temp+table-test`; create temporary table `table:name` (a int)
|
||||
master-bin.000001 246 Query 1 246 use `drop-temp+table-test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `drop-temp+table-test`.`table:name`
|
||||
master-bin.000001 375 Query 1 375 use `drop-temp+table-test`; DO RELEASE_LOCK("a")
|
||||
master-bin.000001 79 Query 1 79 create database `drop-temp+table-test`
|
||||
master-bin.000001 168 Query 1 168 use `drop-temp+table-test`; create temporary table `table:name` (a int)
|
||||
master-bin.000001 262 Query 1 262 use `drop-temp+table-test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `drop-temp+table-test`.`table:name`
|
||||
master-bin.000001 391 Query 1 391 use `drop-temp+table-test`; DO RELEASE_LOCK("a")
|
||||
drop database `drop-temp+table-test`;
|
||||
|
|
185
mysql-test/r/func_test.result.es
Normal file
185
mysql-test/r/func_test.result.es
Normal file
|
@ -0,0 +1,185 @@
|
|||
drop table if exists t1,t2;
|
||||
select 0=0,1>0,1>=1,1<0,1<=0,1!=0,strcmp("abc","abcd"),strcmp("b","a"),strcmp("a","a") ;
|
||||
0=0 1>0 1>=1 1<0 1<=0 1!=0 strcmp("abc","abcd") strcmp("b","a") strcmp("a","a")
|
||||
1 1 1 0 0 1 -1 1 0
|
||||
select "a"<"b","a"<="b","b">="a","b">"a","a"="A","a"<>"b";
|
||||
"a"<"b" "a"<="b" "b">="a" "b">"a" "a"="A" "a"<>"b"
|
||||
1 1 1 1 1 1
|
||||
select "a "="A", "A "="a", "a " <= "A b";
|
||||
"a "="A" "A "="a" "a " <= "A b"
|
||||
1 1 1
|
||||
select "abc" like "a%", "abc" not like "%d%", "a%" like "a\%","abc%" like "a%\%","abcd" like "a%b_%d", "a" like "%%a","abcde" like "a%_e","abc" like "abc%";
|
||||
"abc" like "a%" "abc" not like "%d%" "a%" like "a\%" "abc%" like "a%\%" "abcd" like "a%b_%d" "a" like "%%a" "abcde" like "a%_e" "abc" like "abc%"
|
||||
1 1 1 1 1 1 1 1
|
||||
select "a" like "%%b","a" like "%%ab","ab" like "a\%", "ab" like "_", "ab" like "ab_", "abc" like "%_d", "abc" like "abc%d";
|
||||
"a" like "%%b" "a" like "%%ab" "ab" like "a\%" "ab" like "_" "ab" like "ab_" "abc" like "%_d" "abc" like "abc%d"
|
||||
0 0 0 0 0 0 0
|
||||
select '?' like '|%', '?' like '|%' ESCAPE '|', '%' like '|%', '%' like '|%' ESCAPE '|', '%' like '%';
|
||||
'?' like '|%' '?' like '|%' ESCAPE '|' '%' like '|%' '%' like '|%' ESCAPE '|' '%' like '%'
|
||||
0 0 0 1 1
|
||||
select 'abc' like '%c','abcabc' like '%c', "ab" like "", "ab" like "a", "ab" like "ab";
|
||||
'abc' like '%c' 'abcabc' like '%c' "ab" like "" "ab" like "a" "ab" like "ab"
|
||||
1 1 0 0 1
|
||||
select "Det här är svenska" regexp "h[[:alpha:]]+r", "aba" regexp "^(a|b)*$";
|
||||
"Det här är svenska" regexp "h[[:alpha:]]+r" "aba" regexp "^(a|b)*$"
|
||||
1 1
|
||||
select "aba" regexp concat("^","a");
|
||||
"aba" regexp concat("^","a")
|
||||
1
|
||||
select !0,NOT 0=1,!(0=0),1 AND 1,1 && 0,0 OR 1,1 || NULL, 1=1 or 1=1 and 1=0;
|
||||
!0 NOT 0=1 !(0=0) 1 AND 1 1 && 0 0 OR 1 1 || NULL 1=1 or 1=1 and 1=0
|
||||
1 1 0 1 0 1 1 1
|
||||
select 2 between 1 and 3, "monty" between "max" and "my",2=2 and "monty" between "max" and "my" and 3=3;
|
||||
2 between 1 and 3 "monty" between "max" and "my" 2=2 and "monty" between "max" and "my" and 3=3
|
||||
1 1 1
|
||||
select 'b' between 'a' and 'c', 'B' between 'a' and 'c';
|
||||
'b' between 'a' and 'c' 'B' between 'a' and 'c'
|
||||
1 1
|
||||
select 2 in (3,2,5,9,5,1),"monty" in ("david","monty","allan"), 1.2 in (1.4,1.2,1.0);
|
||||
2 in (3,2,5,9,5,1) "monty" in ("david","monty","allan") 1.2 in (1.4,1.2,1.0)
|
||||
1 1 1
|
||||
select -1.49 or -1.49,0.6 or 0.6;
|
||||
-1.49 or -1.49 0.6 or 0.6
|
||||
1 1
|
||||
select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1;
|
||||
3 ^ 11 1 ^ 1 1 ^ 0 1 ^ NULL NULL ^ 1
|
||||
8 0 1 NULL NULL
|
||||
explain extended select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select (3 ^ 11) AS `3 ^ 11`,(1 ^ 1) AS `1 ^ 1`,(1 ^ 0) AS `1 ^ 0`,(1 ^ NULL) AS `1 ^ NULL`,(NULL ^ 1) AS `NULL ^ 1`
|
||||
select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL;
|
||||
1 XOR 1 1 XOR 0 0 XOR 1 0 XOR 0 NULL XOR 1 1 XOR NULL 0 XOR NULL
|
||||
0 1 1 0 NULL NULL NULL
|
||||
select 1 like 2 xor 2 like 1;
|
||||
1 like 2 xor 2 like 1
|
||||
0
|
||||
select 10 % 7, 10 mod 7, 10 div 3;
|
||||
10 % 7 10 mod 7 10 div 3
|
||||
3 3 3
|
||||
explain extended select 10 % 7, 10 mod 7, 10 div 3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select (10 % 7) AS `10 % 7`,(10 % 7) AS `10 mod 7`,(10 DIV 3) AS `10 div 3`
|
||||
select (1 << 64)-1, ((1 << 64)-1) DIV 1, ((1 << 64)-1) DIV 2;
|
||||
(1 << 64)-1 ((1 << 64)-1) DIV 1 ((1 << 64)-1) DIV 2
|
||||
18446744073709551615 18446744073709551615 9223372036854775807
|
||||
explain extended select (1 << 64)-1, ((1 << 64)-1) DIV 1, ((1 << 64)-1) DIV 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select ((1 << 64) - 1) AS `(1 << 64)-1`,(((1 << 64) - 1) DIV 1) AS `((1 << 64)-1) DIV 1`,(((1 << 64) - 1) DIV 2) AS `((1 << 64)-1) DIV 2`
|
||||
create table t1 (a int);
|
||||
insert t1 values (1);
|
||||
select * from t1 where 1 xor 1;
|
||||
a
|
||||
explain extended select * from t1 where 1 xor 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
Warnings:
|
||||
Note 1003 select test.t1.a AS `a` from test.t1 where (1 xor 1)
|
||||
select - a from t1;
|
||||
- a
|
||||
-1
|
||||
explain extended select - a from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||
Warnings:
|
||||
Note 1003 select -(test.t1.a) AS `- a` from test.t1
|
||||
drop table t1;
|
||||
select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1;
|
||||
5 between 0 and 10 between 0 and 1 (5 between 0 and 10) between 0 and 1
|
||||
0 1
|
||||
select 1 and 2 between 2 and 10, 2 between 2 and 10 and 1;
|
||||
1 and 2 between 2 and 10 2 between 2 and 10 and 1
|
||||
1 1
|
||||
select 1 and 0 or 2, 2 or 1 and 0;
|
||||
1 and 0 or 2 2 or 1 and 0
|
||||
1 1
|
||||
select _koi8r'a' = _koi8r'A';
|
||||
_koi8r'a' = _koi8r'A'
|
||||
1
|
||||
select _koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci;
|
||||
_koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci
|
||||
1
|
||||
explain extended select _koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select (_koi8r'a' = (_koi8r'A' collate _latin1'koi8r_general_ci')) AS `_koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci`
|
||||
select _koi8r'a' = _koi8r'A' COLLATE koi8r_bin;
|
||||
_koi8r'a' = _koi8r'A' COLLATE koi8r_bin
|
||||
0
|
||||
select _koi8r'a' COLLATE koi8r_general_ci = _koi8r'A';
|
||||
_koi8r'a' COLLATE koi8r_general_ci = _koi8r'A'
|
||||
1
|
||||
select _koi8r'a' COLLATE koi8r_bin = _koi8r'A';
|
||||
_koi8r'a' COLLATE koi8r_bin = _koi8r'A'
|
||||
0
|
||||
select _koi8r'a' COLLATE koi8r_bin = _koi8r'A' COLLATE koi8r_general_ci;
|
||||
ERROR HY000: Illegal mix of collations (koi8r_bin,EXPLICIT) and (koi8r_general_ci,EXPLICIT) for operation '='
|
||||
select _koi8r'a' = _latin1'A';
|
||||
ERROR HY000: Illegal mix of collations (koi8r_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation '='
|
||||
select strcmp(_koi8r'a', _koi8r'A');
|
||||
strcmp(_koi8r'a', _koi8r'A')
|
||||
0
|
||||
select strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_general_ci);
|
||||
strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_general_ci)
|
||||
0
|
||||
select strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_bin);
|
||||
strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_bin)
|
||||
1
|
||||
select strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A');
|
||||
strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A')
|
||||
0
|
||||
select strcmp(_koi8r'a' COLLATE koi8r_bin, _koi8r'A');
|
||||
strcmp(_koi8r'a' COLLATE koi8r_bin, _koi8r'A')
|
||||
1
|
||||
select strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A' COLLATE koi8r_bin);
|
||||
ERROR HY000: Illegal mix of collations (koi8r_general_ci,EXPLICIT) and (koi8r_bin,EXPLICIT) for operation 'strcmp'
|
||||
select strcmp(_koi8r'a', _latin1'A');
|
||||
ERROR HY000: Illegal mix of collations (koi8r_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation 'strcmp'
|
||||
select _koi8r'a' LIKE _koi8r'A';
|
||||
_koi8r'a' LIKE _koi8r'A'
|
||||
1
|
||||
select _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_general_ci;
|
||||
_koi8r'a' LIKE _koi8r'A' COLLATE koi8r_general_ci
|
||||
1
|
||||
select _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_bin;
|
||||
_koi8r'a' LIKE _koi8r'A' COLLATE koi8r_bin
|
||||
0
|
||||
select _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A';
|
||||
_koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A'
|
||||
1
|
||||
select _koi8r'a' COLLATE koi8r_bin LIKE _koi8r'A';
|
||||
_koi8r'a' COLLATE koi8r_bin LIKE _koi8r'A'
|
||||
0
|
||||
select _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A' COLLATE koi8r_bin;
|
||||
ERROR HY000: Illegal mix of collations (koi8r_general_ci,EXPLICIT) and (koi8r_bin,EXPLICIT) for operation 'like'
|
||||
select _koi8r'a' LIKE _latin1'A';
|
||||
ERROR HY000: Illegal mix of collations (koi8r_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation 'like'
|
||||
CREATE TABLE t1 ( faq_group_id int(11) NOT NULL default '0', faq_id int(11) NOT NULL default '0', title varchar(240) default NULL, keywords text, description longblob, solution longblob, status tinyint(4) NOT NULL default '0', access_id smallint(6) default NULL, lang_id smallint(6) NOT NULL default '0', created datetime NOT NULL default '0000-00-00 00:00:00', updated datetime default NULL, last_access datetime default NULL, last_notify datetime default NULL, solved_count int(11) NOT NULL default '0', static_solved int(11) default NULL, solved_1 int(11) default NULL, solved_2 int(11) default NULL, solved_3 int(11) default NULL, solved_4 int(11) default NULL, solved_5 int(11) default NULL, expires datetime default NULL, notes text, assigned_to smallint(6) default NULL, assigned_group smallint(6) default NULL, last_edited_by smallint(6) default NULL, orig_ref_no varchar(15) binary default NULL, c$fundstate smallint(6) default NULL, c$contributor smallint(6) default NULL, UNIQUE KEY t1$faq_id (faq_id), KEY t1$group_id$faq_id (faq_group_id,faq_id), KEY t1$c$fundstate (c$fundstate) ) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (82,82,'How to use the DynaVox Usage Counts Feature','usages count, number, corner, white, box, button','<as-html>\r\n<table width=\"100%\" border=\"0\">\r\n <tr>\r\n <td width=\"3%\"> </td>\r\n <td width=\"97%\">\r\n <h3><font face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#000000\">How \r\n To</font><!-- #BeginEditable \"CS_troubleshoot_question\" --><font face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#000099\"><font color=\"#000000\">: \r\n Display or Hide the Usage Counts to find out how many times each button is being selected. </font></font><!-- #EndEditable --></h3>\r\n </td>\r\n </tr>\r\n</table>','<as-html>\r\n <table width=\"100%\" border=\"0\">\r\n <tr>\r\n <td width=\"3%\"> </td>\r\n \r\n<td width=\"97%\"><!-- #BeginEditable \"CS_troubleshoot_answer\" --> \r\n \r\n<p><font color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">1. Select \r\n the <i>On/Setup</i> button to access the DynaVox Setup Menu.<br>\r\n 2. Select <b>Button Features.</b><br>\r\n 3. Below the <b>OK</b> button is the <b>Usage Counts</b> button.<br>\r\n a. If it says \"Hidden\" then the Usage Counts will not be displayed.<br>\r\n b. If it says \"Displayed\" then the Usage Counts will be shown.<br>\r\n c. Select the <b>Usage Counts</b> Option Ring once and it will toggle \r\n to the alternative option.<br>\r\n 4. Once the correct setting has been chosen, select <b>OK</b> to leave the <i>Button \r\n Features</i> menu.<br>\r\n 5. Select <b>OK</b> out of the <i>Setup</i> menu and return to the communication \r\n page.</font></p>\r\n <p><font color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">For \r\n further information on <i>Usage Counts,</i> see the <i>Button Features \r\n Menu Entry</i> in the DynaVox/DynaMyte Reference Manual.</font></p>\r\n<!-- #EndEditable --></td>\r\n </tr>\r\n</table>',4,1,1,'2001-11-16 16:43:34','2002-11-25 12:09:43','2003-07-24 01:04:48',NULL,11,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,11,NULL,NULL,NULL);
|
||||
CREATE TABLE t2 ( access_id smallint(6) NOT NULL default '0', name varchar(20) binary default NULL, rank smallint(6) NOT NULL default '0', KEY t2$access_id (access_id) ) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (1,'Everyone',2),(2,'Help',3),(3,'Customer Support',1);
|
||||
SELECT f_acc.rank, a1.rank, a2.rank FROM t1 LEFT JOIN t1 f1 ON (f1.access_id=1 AND f1.faq_group_id = t1.faq_group_id) LEFT JOIN t2 a1 ON (a1.access_id = f1.access_id) LEFT JOIN t1 f2 ON (f2.access_id=3 AND f2.faq_group_id = t1.faq_group_id) LEFT JOIN t2 a2 ON (a2.access_id = f2.access_id), t2 f_acc WHERE LEAST(a1.rank,a2.rank) = f_acc.rank;
|
||||
rank rank rank
|
||||
2 2 NULL
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1 (d varchar(6), k int);
|
||||
INSERT INTO t1 VALUES (NULL, 2);
|
||||
SELECT GREATEST(d,d) FROM t1 WHERE k=2;
|
||||
GREATEST(d,d)
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
select 1197.90 mod 50;
|
||||
1197.90 mod 50
|
||||
47.90
|
||||
select 5.1 mod 3, 5.1 mod -3, -5.1 mod 3, -5.1 mod -3;
|
||||
5.1 mod 3 5.1 mod -3 -5.1 mod 3 -5.1 mod -3
|
||||
2.1 2.1 -2.1 -2.1
|
||||
select 5 mod 3, 5 mod -3, -5 mod 3, -5 mod -3;
|
||||
5 mod 3 5 mod -3 -5 mod 3 -5 mod -3
|
||||
2 2 -2 -2
|
|
@ -757,3 +757,44 @@ SPATIAL KEY(g)
|
|||
) ENGINE=MyISAM;
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)'));
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
geoobjid INT NOT NULL,
|
||||
line LINESTRING NOT NULL,
|
||||
kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po',
|
||||
name VARCHAR(32),
|
||||
SPATIAL KEY (line)
|
||||
) engine=myisam;
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
INSERT INTO t1 (name, kind, line) VALUES
|
||||
("Aadaouane", "pp", GeomFromText("POINT(32.816667 35.983333)")),
|
||||
("Aadassiye", "pp", GeomFromText("POINT(35.816667 36.216667)")),
|
||||
("Aadbel", "pp", GeomFromText("POINT(34.533333 36.100000)")),
|
||||
("Aadchit", "pp", GeomFromText("POINT(33.347222 35.423611)")),
|
||||
("Aadchite", "pp", GeomFromText("POINT(33.347222 35.423611)")),
|
||||
("Aadchit el Qoussair", "pp", GeomFromText("POINT(33.283333 35.483333)")),
|
||||
("Aaddaye", "pp", GeomFromText("POINT(36.716667 40.833333)")),
|
||||
("'Aadeissa", "pp", GeomFromText("POINT(32.823889 35.698889)")),
|
||||
("Aaderup", "pp", GeomFromText("POINT(55.216667 11.766667)")),
|
||||
("Qalaat Aades", "pp", GeomFromText("POINT(33.503333 35.377500)")),
|
||||
("A ad'ino", "pp", GeomFromText("POINT(54.812222 38.209167)")),
|
||||
("Aadi Noia", "pp", GeomFromText("POINT(13.800000 39.833333)")),
|
||||
("Aad La Macta", "pp", GeomFromText("POINT(35.779444 -0.129167)")),
|
||||
("Aadland", "pp", GeomFromText("POINT(60.366667 5.483333)")),
|
||||
("Aadliye", "pp", GeomFromText("POINT(33.366667 36.333333)")),
|
||||
("Aadloun", "pp", GeomFromText("POINT(33.403889 35.273889)")),
|
||||
("Aadma", "pp", GeomFromText("POINT(58.798333 22.663889)")),
|
||||
("Aadma Asundus", "pp", GeomFromText("POINT(58.798333 22.663889)")),
|
||||
("Aadmoun", "pp", GeomFromText("POINT(34.150000 35.650000)")),
|
||||
("Aadneram", "pp", GeomFromText("POINT(59.016667 6.933333)")),
|
||||
("Aadneskaar", "pp", GeomFromText("POINT(58.083333 6.983333)")),
|
||||
("Aadorf", "pp", GeomFromText("POINT(47.483333 8.900000)")),
|
||||
("Aadorp", "pp", GeomFromText("POINT(52.366667 6.633333)")),
|
||||
("Aadouane", "pp", GeomFromText("POINT(32.816667 35.983333)")),
|
||||
("Aadoui", "pp", GeomFromText("POINT(34.450000 35.983333)")),
|
||||
("Aadouiye", "pp", GeomFromText("POINT(34.583333 36.183333)")),
|
||||
("Aadouss", "pp", GeomFromText("POINT(33.512500 35.601389)")),
|
||||
("Aadra", "pp", GeomFromText("POINT(33.616667 36.500000)")),
|
||||
("Aadzi", "pp", GeomFromText("POINT(38.100000 64.850000)"));
|
||||
ALTER TABLE t1 ENABLE KEYS;
|
||||
INSERT INTO t1 (name, kind, line) VALUES ("austria", "pp", GeomFromText('LINESTRING(14.9906 48.9887,14.9946 48.9904,14.9947 48.9916)'));
|
||||
drop table t1;
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
Variable_name Value
|
||||
have_exampledb YES
|
||||
have_example_engine YES
|
||||
|
|
1653
mysql-test/r/innodb.result.es
Normal file
1653
mysql-test/r/innodb.result.es
Normal file
File diff suppressed because it is too large
Load diff
|
@ -81,6 +81,15 @@ a
|
|||
1
|
||||
2
|
||||
drop table t1, t2;
|
||||
create table t1(a int);
|
||||
insert into t1 values(1),(1);
|
||||
reset master;
|
||||
create table t2(unique(a)) select a from t1;
|
||||
ERROR 23000: Duplicate entry '1' for key 1
|
||||
show binlog events;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3
|
||||
drop table t1;
|
||||
create table t1 (a int not null);
|
||||
create table t2 (a int not null);
|
||||
insert into t1 values (1);
|
||||
|
|
|
@ -6,5 +6,5 @@ drop table t1;
|
|||
flush tables;
|
||||
CREATE TABLE t1 (a int) ENGINE=INNODB;
|
||||
SELECT * from T1;
|
||||
ERROR HY000: Can't open file: 'T1.InnoDB' (errno: 1)
|
||||
ERROR HY000: Can't open file: 'T1.ibd' (errno: 1)
|
||||
drop table t1;
|
||||
|
|
59
mysql-test/r/myisam-blob.result.es
Normal file
59
mysql-test/r/myisam-blob.result.es
Normal file
|
@ -0,0 +1,59 @@
|
|||
drop table if exists t1;
|
||||
CREATE TABLE t1 (data LONGBLOB) ENGINE=myisam;
|
||||
INSERT INTO t1 (data) VALUES (NULL);
|
||||
UPDATE t1 set data=repeat('a',18*1024*1024);
|
||||
Warnings:
|
||||
Warning 1301 Result of repeat() was larger than max_allowed_packet (24) - truncated
|
||||
select length(data) from t1;
|
||||
length(data)
|
||||
NULL
|
||||
delete from t1 where left(data,1)='a';
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
truncate table t1;
|
||||
INSERT INTO t1 (data) VALUES (repeat('a',1*1024*1024));
|
||||
Warnings:
|
||||
Warning 1301 Result of repeat() was larger than max_allowed_packet (24) - truncated
|
||||
INSERT INTO t1 (data) VALUES (repeat('b',16*1024*1024-1024));
|
||||
Warnings:
|
||||
Warning 1301 Result of repeat() was larger than max_allowed_packet (24) - truncated
|
||||
delete from t1 where left(data,1)='b';
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
UPDATE t1 set data=repeat('c',17*1024*1024);
|
||||
Warnings:
|
||||
Warning 1301 Result of repeat() was larger than max_allowed_packet (24) - truncated
|
||||
Warning 1301 Result of repeat() was larger than max_allowed_packet (24) - truncated
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
delete from t1 where left(data,1)='c';
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 set data=repeat('a',18*1024*1024);
|
||||
Warnings:
|
||||
Warning 1301 Result of repeat() was larger than max_allowed_packet (24) - truncated
|
||||
select length(data) from t1;
|
||||
length(data)
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
alter table t1 modify data blob;
|
||||
select length(data) from t1;
|
||||
length(data)
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (data BLOB) ENGINE=myisam;
|
||||
INSERT INTO t1 (data) VALUES (NULL);
|
||||
UPDATE t1 set data=repeat('a',18*1024*1024);
|
||||
Warnings:
|
||||
Warning 1301 Result of repeat() was larger than max_allowed_packet (24) - truncated
|
||||
select length(data) from t1;
|
||||
length(data)
|
||||
NULL
|
||||
drop table t1;
|
|
@ -1,4 +1,5 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
drop database if exists mysqltest;
|
||||
CREATE TABLE t1 (
|
||||
a INT NOT NULL,
|
||||
b INT NOT NULL
|
||||
|
@ -9,6 +10,21 @@ SELECT * FROM t1;
|
|||
a b c
|
||||
9410 9412 0
|
||||
DROP TABLE t1;
|
||||
CREATE DATABASE mysqltest;
|
||||
USE mysqltest;
|
||||
CREATE TABLE t1 (
|
||||
a INT NOT NULL,
|
||||
b INT NOT NULL
|
||||
) ENGINE=ndbcluster;
|
||||
RENAME TABLE t1 TO test.t1;
|
||||
SHOW TABLES;
|
||||
Tables_in_mysqltest
|
||||
DROP DATABASE mysqltest;
|
||||
USE test;
|
||||
SHOW TABLES;
|
||||
Tables_in_test
|
||||
t1
|
||||
DROP TABLE t1;
|
||||
create table t1 (
|
||||
col1 int not null auto_increment primary key,
|
||||
col2 varchar(30) not null,
|
||||
|
|
13
mysql-test/r/ndb_update.result
Normal file
13
mysql-test/r/ndb_update.result
Normal file
|
@ -0,0 +1,13 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (
|
||||
pk1 INT NOT NULL PRIMARY KEY,
|
||||
b INT NOT NULL,
|
||||
c INT NOT NULL
|
||||
) ENGINE=ndbcluster;
|
||||
INSERT INTO t1 VALUES (0, 0, 1),(1,1,2),(2,2,3);
|
||||
UPDATE t1 set b = c;
|
||||
select * from t1 order by pk1;
|
||||
pk1 b c
|
||||
0 1 1
|
||||
1 2 2
|
||||
2 3 3
|
|
@ -1941,7 +1941,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
|
||||
|
@ -2038,7 +2038,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2126,7 +2126,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2216,7 +2216,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
|
3130
mysql-test/r/ps_2myisam.result.es
Normal file
3130
mysql-test/r/ps_2myisam.result.es
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1924,7 +1924,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
|
||||
|
@ -2021,7 +2021,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2109,7 +2109,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2199,7 +2199,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
|
3113
mysql-test/r/ps_3innodb.result.es
Normal file
3113
mysql-test/r/ps_3innodb.result.es
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1925,7 +1925,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 0 31 8
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
|
||||
|
@ -2022,7 +2022,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 0 31 8
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2110,7 +2110,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 0 31 8
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2200,7 +2200,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 0 31 8
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
|
3114
mysql-test/r/ps_4heap.result.es
Normal file
3114
mysql-test/r/ps_4heap.result.es
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1864,7 +1864,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
|
||||
|
@ -1961,7 +1961,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2049,7 +2049,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2139,7 +2139,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -4874,7 +4874,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
|
||||
|
@ -4971,7 +4971,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -5059,7 +5059,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -5149,7 +5149,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
|
6064
mysql-test/r/ps_5merge.result.es
Normal file
6064
mysql-test/r/ps_5merge.result.es
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1924,7 +1924,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
|
||||
|
@ -2021,7 +2021,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2109,7 +2109,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2199,7 +2199,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
|
3113
mysql-test/r/ps_6bdb.result.es
Normal file
3113
mysql-test/r/ps_6bdb.result.es
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1924,7 +1924,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
|
||||
|
@ -2021,7 +2021,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2109,7 +2109,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2199,7 +2199,7 @@ def @arg28 254 8192 10 Y 0 31 8
|
|||
def @arg29 254 8192 8 Y 128 31 63
|
||||
def @arg30 254 8192 8 Y 0 31 8
|
||||
def @arg31 254 8192 3 Y 0 31 8
|
||||
def @arg32 254 8192 6 Y 128 31 63
|
||||
def @arg32 254 8192 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
|
|
@ -791,6 +791,19 @@ Qcache_queries_in_cache 1
|
|||
unlock table;
|
||||
drop table t1,t2;
|
||||
set query_cache_wlock_invalidate=default;
|
||||
CREATE TABLE t1 (id INT PRIMARY KEY);
|
||||
insert into t1 values (1),(2),(3);
|
||||
select * from t1;
|
||||
id
|
||||
1
|
||||
2
|
||||
3
|
||||
create temporary table t1 (a int not null auto_increment
|
||||
primary key);
|
||||
select * from t1;
|
||||
a
|
||||
drop table t1;
|
||||
drop table t1;
|
||||
SET NAMES koi8r;
|
||||
CREATE TABLE t1 (a char(1) character set koi8r);
|
||||
INSERT INTO t1 VALUES (_koi8r'á'),(_koi8r'Á');
|
||||
|
@ -901,6 +914,8 @@ set group_concat_max_len=10;
|
|||
select group_concat(a) FROM t1 group by b;
|
||||
group_concat(a)
|
||||
1234567890
|
||||
Warnings:
|
||||
Warning 1260 1 line(s) were cut by GROUP_CONCAT()
|
||||
set group_concat_max_len=1024;
|
||||
select group_concat(a) FROM t1 group by b;
|
||||
group_concat(a)
|
||||
|
|
|
@ -105,62 +105,62 @@ drop database mysqltest2;
|
|||
drop database mysqltest3;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.000001 79 Query 1 79 use `test`; drop database if exists mysqltest2
|
||||
master-bin.000001 148 Query 1 148 use `test`; drop database if exists mysqltest3
|
||||
master-bin.000001 217 Query 1 217 use `test`; create database mysqltest2 character set latin2
|
||||
master-bin.000001 299 Query 1 299 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=30
|
||||
master-bin.000001 433 Query 1 433 use `test`; create database mysqltest3
|
||||
master-bin.000001 494 Query 1 494 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=64
|
||||
master-bin.000001 628 Query 1 628 use `test`; drop database mysqltest3
|
||||
master-bin.000001 687 Query 1 687 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=64
|
||||
master-bin.000001 821 Query 1 821 use `test`; create database mysqltest3
|
||||
master-bin.000001 882 Query 1 882 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 1022 Query 1 1022 use `mysqltest2`; create table t1 (a int auto_increment primary key, b varchar(100))
|
||||
master-bin.000001 1129 Query 1 1129 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 1270 Intvar 1 1270 INSERT_ID=1
|
||||
master-bin.000001 1298 Query 1 1298 use `mysqltest2`; insert into t1 (b) values(@@character_set_server)
|
||||
master-bin.000001 1388 Query 1 1388 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 1529 Intvar 1 1529 INSERT_ID=2
|
||||
master-bin.000001 1557 Query 1 1557 use `mysqltest2`; insert into t1 (b) values(@@collation_server)
|
||||
master-bin.000001 1643 Query 1 1643 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 1784 Intvar 1 1784 INSERT_ID=3
|
||||
master-bin.000001 1812 Query 1 1812 use `mysqltest2`; insert into t1 (b) values(@@character_set_client)
|
||||
master-bin.000001 1902 Query 1 1902 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 2043 Intvar 1 2043 INSERT_ID=4
|
||||
master-bin.000001 2071 Query 1 2071 use `mysqltest2`; insert into t1 (b) values(@@character_set_connection)
|
||||
master-bin.000001 2165 Query 1 2165 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 2306 Intvar 1 2306 INSERT_ID=5
|
||||
master-bin.000001 2334 Query 1 2334 use `mysqltest2`; insert into t1 (b) values(@@collation_connection)
|
||||
master-bin.000001 2424 Query 1 2424 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=5,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 2564 Query 1 2564 use `mysqltest2`; truncate table t1
|
||||
master-bin.000001 2622 Query 1 2622 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=5,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 2762 Intvar 1 2762 INSERT_ID=1
|
||||
master-bin.000001 2790 Query 1 2790 use `mysqltest2`; insert into t1 (b) values(@@collation_connection)
|
||||
master-bin.000001 2880 Query 1 2880 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=5,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 3020 Intvar 1 3020 INSERT_ID=2
|
||||
master-bin.000001 3048 Query 1 3048 use `mysqltest2`; insert into t1 (b) values(LEAST("Müller","Muffler"))
|
||||
master-bin.000001 3141 Query 1 3141 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 3282 Intvar 1 3282 INSERT_ID=3
|
||||
master-bin.000001 3310 Query 1 3310 use `mysqltest2`; insert into t1 (b) values(@@collation_connection)
|
||||
master-bin.000001 3400 Query 1 3400 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 3541 Intvar 1 3541 INSERT_ID=4
|
||||
master-bin.000001 3569 Query 1 3569 use `mysqltest2`; insert into t1 (b) values(LEAST("Müller","Muffler"))
|
||||
master-bin.000001 3662 Query 1 3662 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 3803 Intvar 1 3803 INSERT_ID=74
|
||||
master-bin.000001 3831 Create_file 1 3831 db=mysqltest2;table=t1;file_id=1;block_len=581
|
||||
master-bin.000001 4504 Query 1 4504 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 4645 Intvar 1 4645 INSERT_ID=5
|
||||
master-bin.000001 4673 Exec_load 1 4673 ;file_id=1
|
||||
master-bin.000001 4696 Query 1 4696 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 4837 Query 1 4837 use `mysqltest2`; truncate table t1
|
||||
master-bin.000001 4895 Query 1 4895 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 5036 Intvar 1 5036 INSERT_ID=1
|
||||
master-bin.000001 5064 User var 1 5064 @`a`=_cp850 0x4DFC6C6C6572 COLLATE cp850_general_ci
|
||||
master-bin.000001 5104 Query 1 5104 use `mysqltest2`; insert into t1 (b) values(collation(@a))
|
||||
master-bin.000001 5185 Query 1 5185 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 5326 Query 1 5326 use `mysqltest2`; drop database mysqltest2
|
||||
master-bin.000001 5391 Query 1 5391 SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 5522 Query 1 5522 drop database mysqltest3
|
||||
master-bin.000001 79 Query 1 79 drop database if exists mysqltest2
|
||||
master-bin.000001 154 Query 1 154 drop database if exists mysqltest3
|
||||
master-bin.000001 229 Query 1 229 create database mysqltest2 character set latin2
|
||||
master-bin.000001 317 Query 1 317 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=30
|
||||
master-bin.000001 451 Query 1 451 create database mysqltest3
|
||||
master-bin.000001 518 Query 1 518 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=64
|
||||
master-bin.000001 652 Query 1 652 drop database mysqltest3
|
||||
master-bin.000001 717 Query 1 717 use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=8,COLLATION_SERVER=64
|
||||
master-bin.000001 851 Query 1 851 create database mysqltest3
|
||||
master-bin.000001 918 Query 1 918 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=8,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 1058 Query 1 1058 use `mysqltest2`; create table t1 (a int auto_increment primary key, b varchar(100))
|
||||
master-bin.000001 1165 Query 1 1165 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 1306 Intvar 1 1306 INSERT_ID=1
|
||||
master-bin.000001 1334 Query 1 1334 use `mysqltest2`; insert into t1 (b) values(@@character_set_server)
|
||||
master-bin.000001 1424 Query 1 1424 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 1565 Intvar 1 1565 INSERT_ID=2
|
||||
master-bin.000001 1593 Query 1 1593 use `mysqltest2`; insert into t1 (b) values(@@collation_server)
|
||||
master-bin.000001 1679 Query 1 1679 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 1820 Intvar 1 1820 INSERT_ID=3
|
||||
master-bin.000001 1848 Query 1 1848 use `mysqltest2`; insert into t1 (b) values(@@character_set_client)
|
||||
master-bin.000001 1938 Query 1 1938 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 2079 Intvar 1 2079 INSERT_ID=4
|
||||
master-bin.000001 2107 Query 1 2107 use `mysqltest2`; insert into t1 (b) values(@@character_set_connection)
|
||||
master-bin.000001 2201 Query 1 2201 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=4,COLLATION_CONNECTION=27,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 2342 Intvar 1 2342 INSERT_ID=5
|
||||
master-bin.000001 2370 Query 1 2370 use `mysqltest2`; insert into t1 (b) values(@@collation_connection)
|
||||
master-bin.000001 2460 Query 1 2460 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=5,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 2600 Query 1 2600 use `mysqltest2`; truncate table t1
|
||||
master-bin.000001 2658 Query 1 2658 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=5,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 2798 Intvar 1 2798 INSERT_ID=1
|
||||
master-bin.000001 2826 Query 1 2826 use `mysqltest2`; insert into t1 (b) values(@@collation_connection)
|
||||
master-bin.000001 2916 Query 1 2916 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=5,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 3056 Intvar 1 3056 INSERT_ID=2
|
||||
master-bin.000001 3084 Query 1 3084 use `mysqltest2`; insert into t1 (b) values(LEAST("Müller","Muffler"))
|
||||
master-bin.000001 3177 Query 1 3177 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 3318 Intvar 1 3318 INSERT_ID=3
|
||||
master-bin.000001 3346 Query 1 3346 use `mysqltest2`; insert into t1 (b) values(@@collation_connection)
|
||||
master-bin.000001 3436 Query 1 3436 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 3577 Intvar 1 3577 INSERT_ID=4
|
||||
master-bin.000001 3605 Query 1 3605 use `mysqltest2`; insert into t1 (b) values(LEAST("Müller","Muffler"))
|
||||
master-bin.000001 3698 Query 1 3698 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 3839 Intvar 1 3839 INSERT_ID=74
|
||||
master-bin.000001 3867 Create_file 1 3867 db=mysqltest2;table=t1;file_id=1;block_len=581
|
||||
master-bin.000001 4540 Query 1 4540 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 4681 Intvar 1 4681 INSERT_ID=5
|
||||
master-bin.000001 4709 Exec_load 1 4709 ;file_id=1
|
||||
master-bin.000001 4732 Query 1 4732 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 4873 Query 1 4873 use `mysqltest2`; truncate table t1
|
||||
master-bin.000001 4931 Query 1 4931 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 5072 Intvar 1 5072 INSERT_ID=1
|
||||
master-bin.000001 5100 User var 1 5100 @`a`=_cp850 0x4DFC6C6C6572 COLLATE cp850_general_ci
|
||||
master-bin.000001 5140 Query 1 5140 use `mysqltest2`; insert into t1 (b) values(collation(@a))
|
||||
master-bin.000001 5221 Query 1 5221 use `mysqltest2`; SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 5362 Query 1 5362 drop database mysqltest2
|
||||
master-bin.000001 5427 Query 1 5427 SET ONE_SHOT CHARACTER_SET_CLIENT=8,COLLATION_CONNECTION=31,COLLATION_DATABASE=9,COLLATION_SERVER=64
|
||||
master-bin.000001 5558 Query 1 5558 drop database mysqltest3
|
||||
set global character_set_server=latin2;
|
||||
ERROR HY000: Binary logging and replication forbid changing the global server character set or collation
|
||||
set global character_set_server=latin2;
|
||||
|
@ -200,8 +200,8 @@ hex(c1) hex(c2)
|
|||
CDF32C20E7E020F0FBE1E0EBEAF3 CDF32C20E7E020F0FBE1E0EBEAF3
|
||||
stop slave;
|
||||
delete from t1;
|
||||
change master to master_log_pos=5801;
|
||||
start slave until master_log_file='master-bin.000001', master_log_pos=5937;
|
||||
change master to master_log_pos=5847;
|
||||
start slave until master_log_file='master-bin.000001', master_log_pos=5983;
|
||||
start slave;
|
||||
select hex(c1), hex(c2) from t1;
|
||||
hex(c1) hex(c2)
|
||||
|
|
83
mysql-test/r/rpl_create_database.result
Normal file
83
mysql-test/r/rpl_create_database.result
Normal file
|
@ -0,0 +1,83 @@
|
|||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
DROP DATABASE IF EXISTS mysqltest_prometheus;
|
||||
DROP DATABASE IF EXISTS mysqltest_sisyfos;
|
||||
DROP DATABASE IF EXISTS mysqltest_bob;
|
||||
DROP DATABASE IF EXISTS mysqltest_bob;
|
||||
CREATE DATABASE mysqltest_prometheus;
|
||||
CREATE DATABASE mysqltest_sisyfos;
|
||||
CREATE DATABASE mysqltest_bob;
|
||||
USE mysqltest_sisyfos;
|
||||
CREATE TABLE t1 (b int);
|
||||
INSERT INTO t1 VALUES(1);
|
||||
USE mysqltest_bob;
|
||||
CREATE TABLE t2 (b int);
|
||||
INSERT INTO t2 VALUES(2);
|
||||
ALTER DATABASE mysqltest_sisyfos CHARACTER SET latin1;
|
||||
USE mysqltest_sisyfos;
|
||||
ALTER DATABASE mysqltest_bob CHARACTER SET latin1;
|
||||
SHOW DATABASES;
|
||||
Database
|
||||
mysql
|
||||
mysqltest_bob
|
||||
mysqltest_prometheus
|
||||
mysqltest_sisyfos
|
||||
test
|
||||
SHOW DATABASES;
|
||||
Database
|
||||
mysql
|
||||
mysqltest_prometheus
|
||||
mysqltest_sisyfos
|
||||
test
|
||||
DROP DATABASE IF EXISTS mysqltest_sisyfos;
|
||||
USE mysqltest_prometheus;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
CREATE DATABASE mysqltest_sisyfos;
|
||||
USE mysqltest_sisyfos;
|
||||
CREATE TABLE t2 (a INT);
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.000001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3
|
||||
master-bin.000001 79 Query 1 79 DROP DATABASE IF EXISTS mysqltest_prometheus
|
||||
master-bin.000001 174 Query 1 174 DROP DATABASE IF EXISTS mysqltest_sisyfos
|
||||
master-bin.000001 263 Query 1 263 CREATE DATABASE mysqltest_prometheus
|
||||
master-bin.000001 350 Query 1 350 CREATE DATABASE mysqltest_sisyfos
|
||||
master-bin.000001 431 Query 1 431 use `mysqltest_sisyfos`; CREATE TABLE t1 (b int)
|
||||
master-bin.000001 502 Query 1 502 use `mysqltest_sisyfos`; INSERT INTO t1 VALUES(1)
|
||||
master-bin.000001 574 Query 1 574 ALTER DATABASE mysqltest_sisyfos CHARACTER SET latin1
|
||||
master-bin.000001 675 Query 1 675 DROP DATABASE IF EXISTS mysqltest_sisyfos
|
||||
master-bin.000001 764 Query 1 764 use `mysqltest_prometheus`; CREATE TABLE t1 (a INT)
|
||||
master-bin.000001 838 Query 1 838 use `mysqltest_prometheus`; INSERT INTO t1 VALUES (1)
|
||||
master-bin.000001 914 Query 1 914 CREATE DATABASE mysqltest_sisyfos
|
||||
master-bin.000001 995 Query 1 995 use `mysqltest_sisyfos`; CREATE TABLE t2 (a INT)
|
||||
SHOW DATABASES;
|
||||
Database
|
||||
mysql
|
||||
mysqltest_bob
|
||||
mysqltest_prometheus
|
||||
mysqltest_sisyfos
|
||||
test
|
||||
SHOW DATABASES;
|
||||
Database
|
||||
mysql
|
||||
mysqltest_prometheus
|
||||
mysqltest_sisyfos
|
||||
test
|
||||
SHOW CREATE TABLE mysqltest_prometheus.t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SHOW CREATE TABLE mysqltest_sisyfos.t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP DATABASE IF EXISTS mysqltest_prometheus;
|
||||
DROP DATABASE IF EXISTS mysqltest_sisyfos;
|
||||
DROP DATABASE IF EXISTS mysqltest_bob;
|
|
@ -12,4 +12,6 @@ use mysqltest;
|
|||
load data infile '../../std_data/rpl_loaddata.dat' into table test.t1;
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.000001 79 Query 1 79 drop database if exists mysqltest
|
||||
master-bin.000001 152 Query 1 152 create database mysqltest
|
||||
drop database mysqltest;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
drop table if exists t1,t2,t3,t4;
|
||||
drop table if exists t1_1,t1_2,t9_1,t9_2;
|
||||
CREATE TABLE t1 (
|
||||
Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
|
||||
Varor_period smallint(4) unsigned DEFAULT '0' NOT NULL
|
||||
|
@ -2056,6 +2057,10 @@ t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
|
|||
drop table t4, t3, t2, t1;
|
||||
DO 1;
|
||||
DO benchmark(100,1+1),1,1;
|
||||
do default;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
|
||||
do foobar;
|
||||
ERROR 42S22: Unknown column 'foobar' in 'field list'
|
||||
CREATE TABLE t1 (
|
||||
id mediumint(8) unsigned NOT NULL auto_increment,
|
||||
pseudo varchar(35) NOT NULL default '',
|
||||
|
@ -2348,6 +2353,27 @@ select * from t2,t3 where t2.s = t3.s;
|
|||
s s
|
||||
two two
|
||||
drop table t1, t2, t3;
|
||||
create table t1 (a integer, b integer, index(a), index(b));
|
||||
create table t2 (c integer, d integer, index(c), index(d));
|
||||
insert into t1 values (1,2), (2,2), (3,2), (4,2);
|
||||
insert into t2 values (1,3), (2,3), (3,4), (4,4);
|
||||
explain select * from t1 left join t2 on a=c where d in (4);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref c,d d 5 const 2 Using where
|
||||
1 SIMPLE t1 ALL a NULL NULL NULL 3 Using where
|
||||
select * from t1 left join t2 on a=c where d in (4);
|
||||
a b c d
|
||||
3 2 3 4
|
||||
4 2 4 4
|
||||
explain select * from t1 left join t2 on a=c where d = 4;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref c,d d 5 const 2 Using where
|
||||
1 SIMPLE t1 ALL a NULL NULL NULL 3 Using where
|
||||
select * from t1 left join t2 on a=c where d = 4;
|
||||
a b c d
|
||||
3 2 3 4
|
||||
4 2 4 4
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 (
|
||||
i int(11) NOT NULL default '0',
|
||||
c char(10) NOT NULL default '',
|
||||
|
@ -2360,7 +2386,4 @@ INSERT INTO t1 VALUES (3,'c');
|
|||
EXPLAIN SELECT i FROM t1 WHERE i=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
|
||||
EXPLAIN SELECT i FROM t1 WHERE i=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -2005,3 +2005,29 @@ explain select a from t1 where c=2;
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
|
||||
drop table t1;
|
||||
set @got_val= (SELECT 1 FROM (SELECT 'A' as my_col) as T1 ) ;
|
||||
create table t1 (a int, b int);
|
||||
create table t2 (a int, b int);
|
||||
insert into t1 values (1,1),(1,2),(1,3),(2,4),(2,5);
|
||||
insert into t2 values (1,3),(2,1);
|
||||
select distinct a,b, (select max(b) from t2 where t1.b=t2.a) from t1 order by t1.b;
|
||||
a b (select max(b) from t2 where t1.b=t2.a)
|
||||
1 1 3
|
||||
1 2 1
|
||||
1 3 NULL
|
||||
2 4 NULL
|
||||
2 5 NULL
|
||||
drop table t1, t2;
|
||||
create table t1 (id int);
|
||||
create table t2 (id int, body text, fulltext (body));
|
||||
insert into t1 values(1),(2),(3);
|
||||
insert into t2 values (1,'test'), (2,'mysql'), (3,'test'), (4,'test');
|
||||
select count(distinct id) from t1 where id in (select id from t2 where match(body) against ('mysql' in boolean mode));
|
||||
count(distinct id)
|
||||
1
|
||||
drop table t2,t1;
|
||||
create table t1 (s1 int,s2 int);
|
||||
insert into t1 values (20,15);
|
||||
select * from t1 where (('a',null) <=> (select 'a',s2 from t1 where s1 = 0));
|
||||
s1 s2
|
||||
drop table t1;
|
||||
|
|
|
@ -114,3 +114,29 @@ SELECT R.unit, R.ingredient FROM t1 R WHERE R.ingredient IN (SELECT N.ingredient
|
|||
unit ingredient
|
||||
xx yy
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 (
|
||||
id INT NOT NULL auto_increment,
|
||||
date1 DATE, coworkerid INT,
|
||||
description VARCHAR(255),
|
||||
sum_used DOUBLE,
|
||||
sum_remaining DOUBLE,
|
||||
comments VARCHAR(255),
|
||||
PRIMARY KEY(id)
|
||||
) engine=innodb;
|
||||
insert into t1 values (NULL, '1999-01-01', 1,'test', 22, 33, 'comment'), (NULL, '1999-01-01', 1,'test', 22, 33, 'comment'), (NULL, '1999-01-01', 1,'test', 22, 33, 'comment'), (NULL, '1998-01-01', 1,'test', 22, 33, 'comment'), (NULL, '1998-01-01', 1,'test', 22, 33, 'comment'), (NULL, '2004-01-01', 1,'test', 22, 33, 'comment'), (NULL, '2004-01-01', 1,'test', 22, 33, 'comment');
|
||||
SELECT DISTINCT
|
||||
(SELECT sum(sum_used) FROM t1 WHERE sum_used > 0 AND year(date1) <= '2004') as somallontvangsten,
|
||||
(SELECT sum(sum_used) FROM t1 WHERE sum_used < 0 AND year(date1) <= '2004') as somalluitgaven
|
||||
FROM t1;
|
||||
somallontvangsten somalluitgaven
|
||||
154 NULL
|
||||
select * from t1;
|
||||
id date1 coworkerid description sum_used sum_remaining comments
|
||||
1 1999-01-01 1 test 22 33 comment
|
||||
2 1999-01-01 1 test 22 33 comment
|
||||
3 1999-01-01 1 test 22 33 comment
|
||||
4 1998-01-01 1 test 22 33 comment
|
||||
5 1998-01-01 1 test 22 33 comment
|
||||
6 2004-01-01 1 test 22 33 comment
|
||||
7 2004-01-01 1 test 22 33 comment
|
||||
drop table t1;
|
||||
|
|
|
@ -684,8 +684,8 @@ id txt
|
|||
3 NULL
|
||||
1 Chevy
|
||||
drop table t1;
|
||||
CREATE TABLE t1 ( i int(11) NOT NULL default '0', c text NOT NULL, PRIMARY KEY (i), KEY (c(1),c(1)));
|
||||
INSERT t1 VALUES (1,''),(2,''),(3,'asdfh'),(4,'');
|
||||
CREATE TABLE t1 ( i int(11) NOT NULL default '0', c text NOT NULL, d varchar(1) NOT NULL DEFAULT ' ', PRIMARY KEY (i), KEY (c(1),d));
|
||||
INSERT t1 (i, c) VALUES (1,''),(2,''),(3,'asdfh'),(4,'');
|
||||
select max(i) from t1 where c = '';
|
||||
max(i)
|
||||
4
|
||||
|
|
|
@ -1725,3 +1725,23 @@ a
|
|||
ö
|
||||
ü
|
||||
drop table t1;
|
||||
create table t1 (a enum ('Y','N') CHARACTER SET utf8 COLLATE utf8_bin);
|
||||
insert into t1 values ('Y');
|
||||
alter table t1 add b set ('Y','N') CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
alter table t1 add c enum ('Y','N') CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
select * from t1;
|
||||
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def test t1 t1 a a 254 3 1 Y 384 0 8
|
||||
def test t1 t1 b b 254 9 0 Y 2176 0 8
|
||||
def test t1 t1 c c 254 3 0 Y 384 0 8
|
||||
a b c
|
||||
Y NULL NULL
|
||||
drop table t1;
|
||||
create table t1 (a enum('x','y') default 'x');
|
||||
alter table t1 alter a set default 'z';
|
||||
ERROR 42000: Invalid default value for 'a'
|
||||
drop table t1;
|
||||
create table t1 (a set('x','y') default 'x');
|
||||
alter table t1 alter a set default 'z';
|
||||
ERROR 42000: Invalid default value for 'a'
|
||||
drop table t1;
|
||||
|
|
|
@ -22,14 +22,14 @@ select * from t1;
|
|||
f1 f2
|
||||
10 10
|
||||
100000 100000
|
||||
1.23457e+09 1234567890
|
||||
1.23457e+9 1234567890
|
||||
1e+10 10000000000
|
||||
1e+15 1e+15
|
||||
1e+20 1e+20
|
||||
3.40282e+38 1e+50
|
||||
3.40282e+38 1e+150
|
||||
-10 -10
|
||||
1e-05 1e-05
|
||||
1e-5 1e-5
|
||||
1e-10 1e-10
|
||||
1e-15 1e-15
|
||||
1e-20 1e-20
|
||||
|
@ -137,6 +137,8 @@ t1 CREATE TABLE `t1` (
|
|||
drop table t1;
|
||||
create table t1 (c20 char);
|
||||
insert into t1 values (5000.0);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c20' at row 1
|
||||
drop table t1;
|
||||
create table t1 (f float(54));
|
||||
ERROR 42000: Incorrect column specifier for column 'f'
|
||||
|
|
|
@ -478,3 +478,7 @@ t1 CREATE TABLE `t1` (
|
|||
`c3` longtext
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
SET GLOBAL MYISAM_DATA_POINTER_SIZE= 8;
|
||||
SHOW VARIABLES LIKE 'MYISAM_DATA_POINTER_SIZE';
|
||||
Variable_name Value
|
||||
myisam_data_pointer_size 8
|
||||
|
|
57
mysql-test/t/bdb-deadlock.tminus
Normal file
57
mysql-test/t/bdb-deadlock.tminus
Normal file
|
@ -0,0 +1,57 @@
|
|||
# This test doesn't work with the embedded version as this code
|
||||
# assumes that one query is running while we are doing queries on
|
||||
# a second connection.
|
||||
# This would work if mysqltest run would be threaded and handle each
|
||||
# connection in a separate thread.
|
||||
#
|
||||
|
||||
#-- source include/not_embedded.inc
|
||||
-- source include/have_bdb.inc
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
--enable_warnings
|
||||
connection con1;
|
||||
create table t1 (id integer, x integer) engine=BDB;
|
||||
create table t2 (id integer, x integer) engine=BDB;
|
||||
insert into t1 values(0, 0);
|
||||
insert into t2 values(0, 0);
|
||||
set autocommit=0;
|
||||
update t1 set x = 1 where id = 0;
|
||||
|
||||
connection con2;
|
||||
set autocommit=0;
|
||||
update t2 set x = 1 where id = 0;
|
||||
|
||||
# The following query should hang because con1 is locking the page
|
||||
--send
|
||||
select x from t1 where id = 0;
|
||||
|
||||
connection con1;
|
||||
# This should generate a deadlock as we are trying to access a locked row
|
||||
--send
|
||||
select x from t2 where id = 0;
|
||||
|
||||
connection con2;
|
||||
--error 1213
|
||||
reap;
|
||||
commit;
|
||||
|
||||
connection con1;
|
||||
reap;
|
||||
commit;
|
||||
|
||||
connection con2;
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
commit;
|
||||
|
||||
connection con1;
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
commit;
|
||||
|
||||
drop table t1,t2;
|
|
@ -86,3 +86,15 @@ create database d1 default character set latin1 collate latin2_bin;
|
|||
#
|
||||
#
|
||||
DROP DATABASE mysqltest1;
|
||||
|
||||
|
||||
#
|
||||
# Synatx: 'ALTER DATABASE' without db_name
|
||||
#
|
||||
CREATE DATABASE mysqltest2 DEFAULT CHARACTER SET latin7;
|
||||
use mysqltest2;
|
||||
ALTER DATABASE DEFAULT CHARACTER SET latin2;
|
||||
show create database mysqltest2;
|
||||
drop database mysqltest2;
|
||||
--error 1046
|
||||
ALTER DATABASE DEFAULT CHARACTER SET latin2;
|
||||
|
|
|
@ -343,3 +343,34 @@ show binlog events from 79;
|
|||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000001
|
||||
drop table t2;
|
||||
|
||||
|
||||
#
|
||||
# Check that ucs2 works with ENUM and SET type
|
||||
#
|
||||
set names latin1;
|
||||
create table t1 (a enum('x','y','z') character set ucs2);
|
||||
show create table t1;
|
||||
insert into t1 values ('x');
|
||||
insert into t1 values ('y');
|
||||
insert into t1 values ('z');
|
||||
select a, hex(a) from t1 order by a;
|
||||
alter table t1 change a a enum('x','y','z','d','e','ä','ö','ü') character set ucs2;
|
||||
show create table t1;
|
||||
insert into t1 values ('D');
|
||||
insert into t1 values ('E ');
|
||||
insert into t1 values ('Ä');
|
||||
insert into t1 values ('Ö');
|
||||
insert into t1 values ('Ü');
|
||||
select a, hex(a) from t1 order by a;
|
||||
drop table t1;
|
||||
|
||||
create table t1 (a set ('x','y','z','ä','ö','ü') character set ucs2);
|
||||
show create table t1;
|
||||
insert into t1 values ('x');
|
||||
insert into t1 values ('y');
|
||||
insert into t1 values ('z');
|
||||
insert into t1 values ('x,y');
|
||||
insert into t1 values ('x,y,z,Ä,Ö,Ü');
|
||||
select a, hex(a) from t1 order by a;
|
||||
drop table t1;
|
||||
|
|
|
@ -118,3 +118,50 @@ CREATE TABLE t1 (
|
|||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)'));
|
||||
#select * from t1 where g<GeomFromText('LineString(1 2, 2 3)');
|
||||
drop table t1;
|
||||
|
||||
CREATE TABLE t1 (
|
||||
geoobjid INT NOT NULL,
|
||||
line LINESTRING NOT NULL,
|
||||
kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po',
|
||||
name VARCHAR(32),
|
||||
|
||||
SPATIAL KEY (line)
|
||||
|
||||
|
||||
) engine=myisam;
|
||||
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
INSERT INTO t1 (name, kind, line) VALUES
|
||||
("Aadaouane", "pp", GeomFromText("POINT(32.816667 35.983333)")),
|
||||
("Aadassiye", "pp", GeomFromText("POINT(35.816667 36.216667)")),
|
||||
("Aadbel", "pp", GeomFromText("POINT(34.533333 36.100000)")),
|
||||
("Aadchit", "pp", GeomFromText("POINT(33.347222 35.423611)")),
|
||||
("Aadchite", "pp", GeomFromText("POINT(33.347222 35.423611)")),
|
||||
("Aadchit el Qoussair", "pp", GeomFromText("POINT(33.283333 35.483333)")),
|
||||
("Aaddaye", "pp", GeomFromText("POINT(36.716667 40.833333)")),
|
||||
("'Aadeissa", "pp", GeomFromText("POINT(32.823889 35.698889)")),
|
||||
("Aaderup", "pp", GeomFromText("POINT(55.216667 11.766667)")),
|
||||
("Qalaat Aades", "pp", GeomFromText("POINT(33.503333 35.377500)")),
|
||||
("A ad'ino", "pp", GeomFromText("POINT(54.812222 38.209167)")),
|
||||
("Aadi Noia", "pp", GeomFromText("POINT(13.800000 39.833333)")),
|
||||
("Aad La Macta", "pp", GeomFromText("POINT(35.779444 -0.129167)")),
|
||||
("Aadland", "pp", GeomFromText("POINT(60.366667 5.483333)")),
|
||||
("Aadliye", "pp", GeomFromText("POINT(33.366667 36.333333)")),
|
||||
("Aadloun", "pp", GeomFromText("POINT(33.403889 35.273889)")),
|
||||
("Aadma", "pp", GeomFromText("POINT(58.798333 22.663889)")),
|
||||
("Aadma Asundus", "pp", GeomFromText("POINT(58.798333 22.663889)")),
|
||||
("Aadmoun", "pp", GeomFromText("POINT(34.150000 35.650000)")),
|
||||
("Aadneram", "pp", GeomFromText("POINT(59.016667 6.933333)")),
|
||||
("Aadneskaar", "pp", GeomFromText("POINT(58.083333 6.983333)")),
|
||||
("Aadorf", "pp", GeomFromText("POINT(47.483333 8.900000)")),
|
||||
("Aadorp", "pp", GeomFromText("POINT(52.366667 6.633333)")),
|
||||
("Aadouane", "pp", GeomFromText("POINT(32.816667 35.983333)")),
|
||||
("Aadoui", "pp", GeomFromText("POINT(34.450000 35.983333)")),
|
||||
("Aadouiye", "pp", GeomFromText("POINT(34.583333 36.183333)")),
|
||||
("Aadouss", "pp", GeomFromText("POINT(33.512500 35.601389)")),
|
||||
("Aadra", "pp", GeomFromText("POINT(33.616667 36.500000)")),
|
||||
("Aadzi", "pp", GeomFromText("POINT(38.100000 64.850000)"));
|
||||
|
||||
ALTER TABLE t1 ENABLE KEYS;
|
||||
INSERT INTO t1 (name, kind, line) VALUES ("austria", "pp", GeomFromText('LINESTRING(14.9906 48.9887,14.9946 48.9904,14.9947 48.9916)'));
|
||||
drop table t1;
|
||||
|
|
|
@ -89,6 +89,19 @@ show binlog events;
|
|||
select * from t1;
|
||||
drop table t1, t2;
|
||||
|
||||
# Verify that a partly-completed CREATE TABLE .. SELECT does not
|
||||
# get into the binlog (Bug #6682)
|
||||
create table t1(a int);
|
||||
insert into t1 values(1),(1);
|
||||
reset master;
|
||||
--error 1062
|
||||
create table t2(unique(a)) select a from t1;
|
||||
# The above should produce an error, *and* not appear in the binlog
|
||||
let $VERSION=`select version()`;
|
||||
--replace_result $VERSION VERSION
|
||||
show binlog events;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test of insert ... select from same table
|
||||
#
|
||||
|
|
|
@ -71,7 +71,7 @@ show status like 'key_blocks_used';
|
|||
# Following results differs on 64 and 32 bit systems because of different
|
||||
# pointer sizes, which takes up different amount of space in key cache
|
||||
|
||||
--replace_result 1812 KEY_BLOCKS_UNUSED 1793 KEY_BLOCKS_UNUSED 1674 KEY_BLOCKS_UNUSED 1818 KEY_BLOCKS_UNUSED
|
||||
--replace_result 1812 KEY_BLOCKS_UNUSED 1793 KEY_BLOCKS_UNUSED 1674 KEY_BLOCKS_UNUSED 1818 KEY_BLOCKS_UNUSED 1824 KEY_BLOCKS_UNUSED
|
||||
show status like 'key_blocks_unused';
|
||||
|
||||
insert into t1 values (1, 'qqqq'), (11, 'yyyy');
|
||||
|
@ -84,7 +84,7 @@ update t1 set p=2 where p=1;
|
|||
update t2 set i=2 where i=1;
|
||||
|
||||
show status like 'key_blocks_used';
|
||||
--replace_result 1808 KEY_BLOCKS_UNUSED 1789 KEY_BLOCKS_UNUSED 1670 KEY_BLOCKS_UNUSED 1814 KEY_BLOCKS_UNUSED
|
||||
--replace_result 1808 KEY_BLOCKS_UNUSED 1789 KEY_BLOCKS_UNUSED 1670 KEY_BLOCKS_UNUSED 1814 KEY_BLOCKS_UNUSED 1820 KEY_BLOCKS_UNUSED
|
||||
show status like 'key_blocks_unused';
|
||||
|
||||
cache index t1 key (`primary`) in keycache1;
|
||||
|
@ -146,7 +146,7 @@ cache index t1,t2 in default;
|
|||
drop table t1,t2,t3;
|
||||
|
||||
show status like 'key_blocks_used';
|
||||
--replace_result 1812 KEY_BLOCKS_UNUSED 1793 KEY_BLOCKS_UNUSED 1674 KEY_BLOCKS_UNUSED 1818 KEY_BLOCKS_UNUSED
|
||||
--replace_result 1812 KEY_BLOCKS_UNUSED 1793 KEY_BLOCKS_UNUSED 1674 KEY_BLOCKS_UNUSED 1818 KEY_BLOCKS_UNUSED 1824 KEY_BLOCKS_UNUSED
|
||||
show status like 'key_blocks_unused';
|
||||
|
||||
# Cleanup
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
drop database if exists mysqltest;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
|
@ -20,6 +21,22 @@ SELECT * FROM t1;
|
|||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Verfify changing table names between databases
|
||||
#
|
||||
CREATE DATABASE mysqltest;
|
||||
USE mysqltest;
|
||||
CREATE TABLE t1 (
|
||||
a INT NOT NULL,
|
||||
b INT NOT NULL
|
||||
) ENGINE=ndbcluster;
|
||||
RENAME TABLE t1 TO test.t1;
|
||||
SHOW TABLES;
|
||||
DROP DATABASE mysqltest;
|
||||
USE test;
|
||||
SHOW TABLES;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# More advanced test
|
||||
#
|
||||
|
|
22
mysql-test/t/ndb_update.test
Normal file
22
mysql-test/t/ndb_update.test
Normal file
|
@ -0,0 +1,22 @@
|
|||
-- source include/have_ndb.inc
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# Basic test of INSERT in NDB
|
||||
#
|
||||
|
||||
#
|
||||
# Create a normal table with primary key
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
pk1 INT NOT NULL PRIMARY KEY,
|
||||
b INT NOT NULL,
|
||||
c INT NOT NULL
|
||||
) ENGINE=ndbcluster;
|
||||
|
||||
INSERT INTO t1 VALUES (0, 0, 1),(1,1,2),(2,2,3);
|
||||
UPDATE t1 set b = c;
|
||||
select * from t1 order by pk1;
|
|
@ -471,4 +471,3 @@ execute stmt using @var, @var, @var;
|
|||
set @var=null;
|
||||
select @var is null, @var is not null, @var;
|
||||
execute stmt using @var, @var, @var;
|
||||
|
||||
|
|
|
@ -294,12 +294,14 @@ execute stmt4;
|
|||
prepare stmt4 from ' show table status from test like ''t2%'' ';
|
||||
# egalize date and time values
|
||||
--replace_column 12 # 13 # 14 #
|
||||
--replace_result 2147483647 64424509439
|
||||
# Bug#4288 : prepared statement 'show table status ..', wrong output on execute
|
||||
execute stmt4;
|
||||
# try the same with the big table
|
||||
prepare stmt4 from ' show table status from test like ''t9%'' ';
|
||||
# egalize date and time values
|
||||
--replace_column 12 # 13 # 14 #
|
||||
--replace_result 2147483647 4294967295
|
||||
# Bug#4288
|
||||
execute stmt4;
|
||||
prepare stmt4 from ' show status like ''Threads_running'' ';
|
||||
|
|
|
@ -154,9 +154,9 @@ select hex(c1), hex(c2) from t1;
|
|||
|
||||
stop slave;
|
||||
delete from t1;
|
||||
change master to master_log_pos=5801;
|
||||
start slave until master_log_file='master-bin.000001', master_log_pos=5937;
|
||||
# Slave is supposed to stop _after_ the INSERT, even though 5937 is
|
||||
change master to master_log_pos=5847;
|
||||
start slave until master_log_file='master-bin.000001', master_log_pos=5983;
|
||||
# Slave is supposed to stop _after_ the INSERT, even though 5983 is
|
||||
# the position of the beginning of the INSERT; after SET slave is not
|
||||
# supposed to increment position.
|
||||
wait_for_slave_to_stop;
|
||||
|
|
1
mysql-test/t/rpl_create_database-master.opt
Normal file
1
mysql-test/t/rpl_create_database-master.opt
Normal file
|
@ -0,0 +1 @@
|
|||
--binlog-do-db=mysqltest_sisyfos --binlog-do-db=mysqltest_prometheus
|
1
mysql-test/t/rpl_create_database-slave.opt
Normal file
1
mysql-test/t/rpl_create_database-slave.opt
Normal file
|
@ -0,0 +1 @@
|
|||
--replicate-do-db=mysqltest_sisyfos --replicate-do-db=mysqltest_prometheus
|
70
mysql-test/t/rpl_create_database.test
Normal file
70
mysql-test/t/rpl_create_database.test
Normal file
|
@ -0,0 +1,70 @@
|
|||
#
|
||||
# Tests for replication of statements that manipulate databases.
|
||||
#
|
||||
# For this test file, we have a number of databases. All databases
|
||||
# with "greek" names will be replicated on the slave, while other names
|
||||
# (e.g., american) will not be replicated.
|
||||
#
|
||||
|
||||
source include/master-slave.inc;
|
||||
|
||||
# Bug#6391 (binlog-do-db rules ignored)
|
||||
# In this case, 'mysqltest_bob' should not be replicated to the slave.
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS mysqltest_prometheus;
|
||||
DROP DATABASE IF EXISTS mysqltest_sisyfos;
|
||||
DROP DATABASE IF EXISTS mysqltest_bob;
|
||||
sync_slave_with_master;
|
||||
# This database is not replicated
|
||||
DROP DATABASE IF EXISTS mysqltest_bob;
|
||||
--enable_warnings
|
||||
|
||||
connection master;
|
||||
CREATE DATABASE mysqltest_prometheus;
|
||||
CREATE DATABASE mysqltest_sisyfos;
|
||||
CREATE DATABASE mysqltest_bob;
|
||||
|
||||
USE mysqltest_sisyfos;
|
||||
# These should be replicated
|
||||
CREATE TABLE t1 (b int);
|
||||
INSERT INTO t1 VALUES(1);
|
||||
|
||||
USE mysqltest_bob;
|
||||
# These should *not* be replicated
|
||||
CREATE TABLE t2 (b int);
|
||||
INSERT INTO t2 VALUES(2);
|
||||
|
||||
# Current database is now 'mysqltest_bob'
|
||||
# The following should be replicated
|
||||
ALTER DATABASE mysqltest_sisyfos CHARACTER SET latin1;
|
||||
|
||||
USE mysqltest_sisyfos;
|
||||
# The following should *not* be replicated
|
||||
ALTER DATABASE mysqltest_bob CHARACTER SET latin1;
|
||||
|
||||
SHOW DATABASES;
|
||||
sync_slave_with_master;
|
||||
SHOW DATABASES;
|
||||
|
||||
connection master;
|
||||
DROP DATABASE IF EXISTS mysqltest_sisyfos;
|
||||
USE mysqltest_prometheus;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
CREATE DATABASE mysqltest_sisyfos;
|
||||
USE mysqltest_sisyfos;
|
||||
CREATE TABLE t2 (a INT);
|
||||
let $VERSION=`select version()`;
|
||||
--replace_result $VERSION VERSION
|
||||
SHOW BINLOG EVENTS;
|
||||
SHOW DATABASES;
|
||||
sync_slave_with_master;
|
||||
SHOW DATABASES;
|
||||
SHOW CREATE TABLE mysqltest_prometheus.t1;
|
||||
SHOW CREATE TABLE mysqltest_sisyfos.t2;
|
||||
|
||||
connection master;
|
||||
DROP DATABASE IF EXISTS mysqltest_prometheus;
|
||||
DROP DATABASE IF EXISTS mysqltest_sisyfos;
|
||||
DROP DATABASE IF EXISTS mysqltest_bob;
|
||||
sync_slave_with_master;
|
|
@ -43,7 +43,7 @@ show slave status;
|
|||
|
||||
# try replicate all until second insert to t2;
|
||||
start slave until relay_log_file='slave-relay-bin.000002', relay_log_pos=537;
|
||||
sleep 2;
|
||||
sleep 4;
|
||||
select * from t2;
|
||||
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
||||
--replace_column 1 # 9 # 23 # 33 #
|
||||
|
|
|
@ -1301,3 +1301,38 @@ explain select a from t1 where c=2;
|
|||
do @a:= (select sum(a) from t1 where b > @b);
|
||||
explain select a from t1 where c=2;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Subselect in non-select command just after connection
|
||||
#
|
||||
connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
|
||||
connection root;
|
||||
set @got_val= (SELECT 1 FROM (SELECT 'A' as my_col) as T1 ) ;
|
||||
|
||||
#
|
||||
# primary query with temporary table and subquery with groupping
|
||||
#
|
||||
create table t1 (a int, b int);
|
||||
create table t2 (a int, b int);
|
||||
insert into t1 values (1,1),(1,2),(1,3),(2,4),(2,5);
|
||||
insert into t2 values (1,3),(2,1);
|
||||
select distinct a,b, (select max(b) from t2 where t1.b=t2.a) from t1 order by t1.b;
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# subqueries with full text search
|
||||
#
|
||||
create table t1 (id int);
|
||||
create table t2 (id int, body text, fulltext (body));
|
||||
insert into t1 values(1),(2),(3);
|
||||
insert into t2 values (1,'test'), (2,'mysql'), (3,'test'), (4,'test');
|
||||
select count(distinct id) from t1 where id in (select id from t2 where match(body) against ('mysql' in boolean mode));
|
||||
drop table t2,t1;
|
||||
|
||||
#
|
||||
# Equal operation under row and empty subquery
|
||||
#
|
||||
create table t1 (s1 int,s2 int);
|
||||
insert into t1 values (20,15);
|
||||
select * from t1 where (('a',null) <=> (select 'a',s2 from t1 where s1 = 0));
|
||||
drop table t1;
|
||||
|
|
|
@ -125,3 +125,23 @@ INSERT INTO `t2` VALUES ('yy','xx');
|
|||
SELECT R.unit, R.ingredient FROM t1 R WHERE R.ingredient IN (SELECT N.ingredient FROM t2 N WHERE N.unit = R.unit);
|
||||
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# possible early unlock
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
id INT NOT NULL auto_increment,
|
||||
date1 DATE, coworkerid INT,
|
||||
description VARCHAR(255),
|
||||
sum_used DOUBLE,
|
||||
sum_remaining DOUBLE,
|
||||
comments VARCHAR(255),
|
||||
PRIMARY KEY(id)
|
||||
) engine=innodb;
|
||||
insert into t1 values (NULL, '1999-01-01', 1,'test', 22, 33, 'comment'), (NULL, '1999-01-01', 1,'test', 22, 33, 'comment'), (NULL, '1999-01-01', 1,'test', 22, 33, 'comment'), (NULL, '1998-01-01', 1,'test', 22, 33, 'comment'), (NULL, '1998-01-01', 1,'test', 22, 33, 'comment'), (NULL, '2004-01-01', 1,'test', 22, 33, 'comment'), (NULL, '2004-01-01', 1,'test', 22, 33, 'comment');
|
||||
SELECT DISTINCT
|
||||
(SELECT sum(sum_used) FROM t1 WHERE sum_used > 0 AND year(date1) <= '2004') as somallontvangsten,
|
||||
(SELECT sum(sum_used) FROM t1 WHERE sum_used < 0 AND year(date1) <= '2004') as somalluitgaven
|
||||
FROM t1;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
|
|
@ -100,3 +100,29 @@ set names latin1;
|
|||
show create table t1;
|
||||
select a from t1 order by a;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test bug where enum fields where extended for each ALTER TABLE
|
||||
#
|
||||
|
||||
create table t1 (a enum ('Y','N') CHARACTER SET utf8 COLLATE utf8_bin);
|
||||
insert into t1 values ('Y');
|
||||
alter table t1 add b set ('Y','N') CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
alter table t1 add c enum ('Y','N') CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
--enable_metadata
|
||||
select * from t1;
|
||||
--disable_metadata
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #6840 Default value is not checked in ALTER column SET DEFAULT 'x'
|
||||
#
|
||||
create table t1 (a enum('x','y') default 'x');
|
||||
--error 1067
|
||||
alter table t1 alter a set default 'z';
|
||||
drop table t1;
|
||||
|
||||
create table t1 (a set('x','y') default 'x');
|
||||
--error 1067
|
||||
alter table t1 alter a set default 'z';
|
||||
drop table t1;
|
||||
|
|
|
@ -355,3 +355,10 @@ create table t1 as select @arg00 as c1, @arg01 as c2, @arg02 as c3;
|
|||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
|
||||
#
|
||||
# Bug #6993: myisam_data_pointer_size
|
||||
#
|
||||
|
||||
SET GLOBAL MYISAM_DATA_POINTER_SIZE= 8;
|
||||
SHOW VARIABLES LIKE 'MYISAM_DATA_POINTER_SIZE';
|
||||
|
|
|
@ -101,7 +101,7 @@ public:
|
|||
/** The log levels. NOTE: Could not use the name LogLevel since
|
||||
* it caused conflicts with another class.
|
||||
*/
|
||||
enum LoggerLevel {LL_OFF, LL_DEBUG, LL_INFO, LL_WARNING, LL_ERROR,
|
||||
enum LoggerLevel {LL_ON, LL_DEBUG, LL_INFO, LL_WARNING, LL_ERROR,
|
||||
LL_CRITICAL, LL_ALERT, LL_ALL};
|
||||
|
||||
/**
|
||||
|
|
|
@ -244,7 +244,9 @@ extern "C" {
|
|||
* Log severities (used to filter the cluster log)
|
||||
*/
|
||||
enum ndb_mgm_clusterlog_level {
|
||||
NDB_MGM_CLUSTERLOG_OFF = 0, /*< Cluster log off*/
|
||||
NDB_MGM_ILLEGAL_CLUSTERLOG_LEVEL = -1,
|
||||
/* must range from 0 and up, indexes into an array */
|
||||
NDB_MGM_CLUSTERLOG_ON = 0, /*< Cluster log on*/
|
||||
NDB_MGM_CLUSTERLOG_DEBUG = 1, /*< Used in NDB Cluster
|
||||
*< developement
|
||||
*/
|
||||
|
@ -264,7 +266,8 @@ extern "C" {
|
|||
*< corrected immediately,
|
||||
*< such as a corrupted system
|
||||
*/
|
||||
NDB_MGM_CLUSTERLOG_ALL = 7 /*< All severities on*/
|
||||
/* must be next number, works as bound in loop */
|
||||
NDB_MGM_CLUSTERLOG_ALL = 7 /*< All severities */
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -580,11 +583,13 @@ extern "C" {
|
|||
*
|
||||
* @param handle NDB management handle.
|
||||
* @param level A cluster log level to filter.
|
||||
* @param enable set 1=enable 0=disable
|
||||
* @param reply Reply message.
|
||||
* @return -1 on error.
|
||||
*/
|
||||
int ndb_mgm_filter_clusterlog(NdbMgmHandle handle,
|
||||
enum ndb_mgm_clusterlog_level level,
|
||||
int enable,
|
||||
struct ndb_mgm_reply* reply);
|
||||
|
||||
/**
|
||||
|
@ -620,6 +625,11 @@ extern "C" {
|
|||
int level,
|
||||
struct ndb_mgm_reply* reply);
|
||||
|
||||
ndb_mgm_clusterlog_level
|
||||
ndb_mgm_match_clusterlog_level(const char * name);
|
||||
const char *
|
||||
ndb_mgm_get_clusterlog_level_string(enum ndb_mgm_clusterlog_level level);
|
||||
|
||||
/**
|
||||
* Set log category and levels for the Node
|
||||
*
|
||||
|
|
|
@ -982,13 +982,6 @@ public:
|
|||
*/
|
||||
const Table * getTable(const char * name);
|
||||
|
||||
/**
|
||||
* Get table with given name for alteration.
|
||||
* @param name Name of table to alter
|
||||
* @return table if successful. NULL if undefined
|
||||
*/
|
||||
Table getTableForAlteration(const char * name);
|
||||
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
|
||||
/**
|
||||
* Invalidate cached table object
|
||||
|
|
|
@ -48,10 +48,10 @@ public:
|
|||
bool empty() const;
|
||||
|
||||
/** @brief Convert to uppercase */
|
||||
void ndb_toupper();
|
||||
BaseString& ndb_toupper();
|
||||
|
||||
/** @brief Convert to lowercase */
|
||||
void ndb_tolower();
|
||||
BaseString& ndb_tolower();
|
||||
|
||||
/** @brief Assigns from a char * */
|
||||
BaseString& assign(const char* s);
|
||||
|
@ -206,16 +206,18 @@ BaseString::empty() const
|
|||
return m_len == 0;
|
||||
}
|
||||
|
||||
inline void
|
||||
inline BaseString&
|
||||
BaseString::ndb_toupper() {
|
||||
for(unsigned i = 0; i < length(); i++)
|
||||
m_chr[i] = toupper(m_chr[i]);
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline void
|
||||
inline BaseString&
|
||||
BaseString::ndb_tolower() {
|
||||
for(unsigned i = 0; i < length(); i++)
|
||||
m_chr[i] = tolower(m_chr[i]);
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline bool
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
//
|
||||
// PUBLIC
|
||||
//
|
||||
const char* Logger::LoggerLevelNames[] = { "OFF ",
|
||||
const char* Logger::LoggerLevelNames[] = { "ON ",
|
||||
"DEBUG ",
|
||||
"INFO ",
|
||||
"WARNING ",
|
||||
|
@ -46,7 +46,9 @@ Logger::Logger() :
|
|||
m_pSyslogHandler(NULL)
|
||||
{
|
||||
m_pHandlerList = new LogHandlerList();
|
||||
m_logLevels[LL_INFO] = true;
|
||||
disable(LL_ALL);
|
||||
enable(LL_ON);
|
||||
enable(LL_INFO);
|
||||
}
|
||||
|
||||
Logger::~Logger()
|
||||
|
@ -227,6 +229,13 @@ Logger::removeAllHandlers()
|
|||
bool
|
||||
Logger::isEnable(LoggerLevel logLevel) const
|
||||
{
|
||||
if (logLevel == LL_ALL)
|
||||
{
|
||||
for (unsigned i = 1; i < MAX_LOG_LEVELS; i++)
|
||||
if (!m_logLevels[i])
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
return m_logLevels[logLevel];
|
||||
}
|
||||
|
||||
|
@ -235,7 +244,7 @@ Logger::enable(LoggerLevel logLevel)
|
|||
{
|
||||
if (logLevel == LL_ALL)
|
||||
{
|
||||
for (unsigned i = 1; i < MAX_LOG_LEVELS; i++)
|
||||
for (unsigned i = 0; i < MAX_LOG_LEVELS; i++)
|
||||
{
|
||||
m_logLevels[i] = true;
|
||||
}
|
||||
|
@ -337,7 +346,7 @@ Logger::debug(const char* pMsg, ...) const
|
|||
void
|
||||
Logger::log(LoggerLevel logLevel, const char* pMsg, va_list ap) const
|
||||
{
|
||||
if (m_logLevels[LL_OFF] == false && m_logLevels[logLevel])
|
||||
if (m_logLevels[LL_ON] && m_logLevels[logLevel])
|
||||
{
|
||||
LogHandler* pHandler = NULL;
|
||||
while ( (pHandler = m_pHandlerList->next()) != NULL)
|
||||
|
|
|
@ -54,7 +54,7 @@ NdbOut&
|
|||
NdbOut::operator<<(unsigned long int v) { return *this << (Uint64) v; }
|
||||
|
||||
NdbOut&
|
||||
NdbOut::operator<<(const char* val){ m_out->print("%s", val); return * this; }
|
||||
NdbOut::operator<<(const char* val){ m_out->print("%s", val ? val : "(null)"); return * this; }
|
||||
NdbOut&
|
||||
NdbOut::operator<<(const void* val){ m_out->print("%p", val); return * this; }
|
||||
NdbOut&
|
||||
|
|
|
@ -7320,6 +7320,8 @@ void Dblqh::closeScanRequestLab(Signal* signal)
|
|||
scanptr.p->m_curr_batch_size_rows = 0;
|
||||
scanptr.p->m_curr_batch_size_bytes= 0;
|
||||
sendScanFragConf(signal, ZTRUE);
|
||||
abort_scan(signal, scanptr.i, 0);
|
||||
return;
|
||||
break;
|
||||
case TcConnectionrec::SCAN_TUPKEY:
|
||||
case TcConnectionrec::SCAN_FIRST_STOPPED:
|
||||
|
@ -7710,14 +7712,18 @@ void Dblqh::abort_scan(Signal* signal, Uint32 scan_ptr_i, Uint32 errcode){
|
|||
releaseScanrec(signal);
|
||||
tcConnectptr.p->transactionState = TcConnectionrec::IDLE;
|
||||
tcConnectptr.p->abortState = TcConnectionrec::ABORT_ACTIVE;
|
||||
|
||||
ScanFragRef * ref = (ScanFragRef*)&signal->theData[0];
|
||||
ref->senderData = tcConnectptr.p->clientConnectrec;
|
||||
ref->transId1 = tcConnectptr.p->transid[0];
|
||||
ref->transId2 = tcConnectptr.p->transid[1];
|
||||
ref->errorCode = errcode;
|
||||
sendSignal(tcConnectptr.p->clientBlockref, GSN_SCAN_FRAGREF, signal,
|
||||
ScanFragRef::SignalLength, JBB);
|
||||
|
||||
if(errcode)
|
||||
{
|
||||
jam();
|
||||
ScanFragRef * ref = (ScanFragRef*)&signal->theData[0];
|
||||
ref->senderData = tcConnectptr.p->clientConnectrec;
|
||||
ref->transId1 = tcConnectptr.p->transid[0];
|
||||
ref->transId2 = tcConnectptr.p->transid[1];
|
||||
ref->errorCode = errcode;
|
||||
sendSignal(tcConnectptr.p->clientBlockref, GSN_SCAN_FRAGREF, signal,
|
||||
ScanFragRef::SignalLength, JBB);
|
||||
}
|
||||
deleteTransidHash(signal);
|
||||
releaseOprec(signal);
|
||||
releaseTcrec(signal, tcConnectptr);
|
||||
|
|
|
@ -1113,6 +1113,7 @@ Dbtup::updateStartLab(Signal* signal,
|
|||
regOperPtr->attrinbufLen);
|
||||
if (retValue == -1) {
|
||||
tupkeyErrorLab(signal);
|
||||
return -1;
|
||||
}//if
|
||||
} else {
|
||||
jam();
|
||||
|
|
|
@ -914,21 +914,67 @@ ndb_mgm_restart(NdbMgmHandle handle, int no_of_nodes, const int *node_list)
|
|||
return ndb_mgm_restart2(handle, no_of_nodes, node_list, 0, 0, 0);
|
||||
}
|
||||
|
||||
static const char *clusterlog_level_names[]=
|
||||
{ "enabled", "debug", "info", "warning", "error", "critical", "alert" };
|
||||
|
||||
struct ndb_mgm_clusterlog_levels
|
||||
{
|
||||
const char* name;
|
||||
enum ndb_mgm_clusterlog_level level;
|
||||
} clusterlog_levels[] = {
|
||||
{ clusterlog_level_names[0], NDB_MGM_CLUSTERLOG_ON },
|
||||
{ clusterlog_level_names[1], NDB_MGM_CLUSTERLOG_DEBUG },
|
||||
{ clusterlog_level_names[2], NDB_MGM_CLUSTERLOG_INFO },
|
||||
{ clusterlog_level_names[3], NDB_MGM_CLUSTERLOG_WARNING },
|
||||
{ clusterlog_level_names[4], NDB_MGM_CLUSTERLOG_ERROR },
|
||||
{ clusterlog_level_names[5], NDB_MGM_CLUSTERLOG_CRITICAL },
|
||||
{ clusterlog_level_names[6], NDB_MGM_CLUSTERLOG_ALERT },
|
||||
{ "all", NDB_MGM_CLUSTERLOG_ALL },
|
||||
{ 0, NDB_MGM_ILLEGAL_CLUSTERLOG_LEVEL },
|
||||
};
|
||||
|
||||
extern "C"
|
||||
ndb_mgm_clusterlog_level
|
||||
ndb_mgm_match_clusterlog_level(const char * name)
|
||||
{
|
||||
if(name == 0)
|
||||
return NDB_MGM_ILLEGAL_CLUSTERLOG_LEVEL;
|
||||
|
||||
for(int i = 0; clusterlog_levels[i].name !=0 ; i++)
|
||||
if(strcasecmp(name, clusterlog_levels[i].name) == 0)
|
||||
return clusterlog_levels[i].level;
|
||||
|
||||
return NDB_MGM_ILLEGAL_CLUSTERLOG_LEVEL;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
const char *
|
||||
ndb_mgm_get_clusterlog_level_string(enum ndb_mgm_clusterlog_level level)
|
||||
{
|
||||
int i= (int)level;
|
||||
if (i >= 0 && i < (int)NDB_MGM_CLUSTERLOG_ALL)
|
||||
return clusterlog_level_names[i];
|
||||
for(i = (int)NDB_MGM_CLUSTERLOG_ALL; clusterlog_levels[i].name != 0; i++)
|
||||
if(clusterlog_levels[i].level == level)
|
||||
return clusterlog_levels[i].name;
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
unsigned int *
|
||||
ndb_mgm_get_logfilter(NdbMgmHandle handle)
|
||||
{
|
||||
SET_ERROR(handle, NDB_MGM_NO_ERROR, "Executing: ndb_mgm_get_logfilter");
|
||||
static Uint32 enabled[7] = {0,0,0,0,0,0,0};
|
||||
static Uint32 enabled[(int)NDB_MGM_CLUSTERLOG_ALL] = {0,0,0,0,0,0,0};
|
||||
const ParserRow<ParserDummy> getinfo_reply[] = {
|
||||
MGM_CMD("clusterlog", NULL, ""),
|
||||
MGM_ARG("enabled", Int, Mandatory, ""),
|
||||
MGM_ARG("debug", Int, Mandatory, ""),
|
||||
MGM_ARG("info", Int, Mandatory, ""),
|
||||
MGM_ARG("warning", Int, Mandatory, ""),
|
||||
MGM_ARG("error", Int, Mandatory, ""),
|
||||
MGM_ARG("critical", Int, Mandatory, ""),
|
||||
MGM_ARG("alert", Int, Mandatory, ""),
|
||||
MGM_ARG(clusterlog_level_names[0], Int, Mandatory, ""),
|
||||
MGM_ARG(clusterlog_level_names[1], Int, Mandatory, ""),
|
||||
MGM_ARG(clusterlog_level_names[2], Int, Mandatory, ""),
|
||||
MGM_ARG(clusterlog_level_names[3], Int, Mandatory, ""),
|
||||
MGM_ARG(clusterlog_level_names[4], Int, Mandatory, ""),
|
||||
MGM_ARG(clusterlog_level_names[5], Int, Mandatory, ""),
|
||||
MGM_ARG(clusterlog_level_names[6], Int, Mandatory, ""),
|
||||
};
|
||||
CHECK_HANDLE(handle, NULL);
|
||||
CHECK_CONNECTED(handle, NULL);
|
||||
|
@ -938,10 +984,8 @@ ndb_mgm_get_logfilter(NdbMgmHandle handle)
|
|||
reply = ndb_mgm_call(handle, getinfo_reply, "get info clusterlog", &args);
|
||||
CHECK_REPLY(reply, NULL);
|
||||
|
||||
const char *names[] = { "enabled", "debug", "info", "warning", "error",
|
||||
"critical", "alert" };
|
||||
for(int i=0; i < 7; i++) {
|
||||
reply->get(names[i], &enabled[i]);
|
||||
for(int i=0; i < (int)NDB_MGM_CLUSTERLOG_ALL; i++) {
|
||||
reply->get(clusterlog_level_names[i], &enabled[i]);
|
||||
}
|
||||
return enabled;
|
||||
}
|
||||
|
@ -950,6 +994,7 @@ extern "C"
|
|||
int
|
||||
ndb_mgm_filter_clusterlog(NdbMgmHandle handle,
|
||||
enum ndb_mgm_clusterlog_level level,
|
||||
int enable,
|
||||
struct ndb_mgm_reply* /*reply*/)
|
||||
{
|
||||
SET_ERROR(handle, NDB_MGM_NO_ERROR, "Executing: ndb_mgm_filter_clusterlog");
|
||||
|
@ -964,6 +1009,7 @@ ndb_mgm_filter_clusterlog(NdbMgmHandle handle,
|
|||
|
||||
Properties args;
|
||||
args.put("level", level);
|
||||
args.put("enable", enable);
|
||||
|
||||
const Properties *reply;
|
||||
reply = ndb_mgm_call(handle, filter_reply, "set logfilter", &args);
|
||||
|
@ -971,11 +1017,14 @@ ndb_mgm_filter_clusterlog(NdbMgmHandle handle,
|
|||
|
||||
BaseString result;
|
||||
reply->get("result", result);
|
||||
if(strcmp(result.c_str(), "1") == 0) {
|
||||
|
||||
if (strcmp(result.c_str(), "1") == 0)
|
||||
retval = 1;
|
||||
else if (strcmp(result.c_str(), "0") == 0)
|
||||
retval = 0;
|
||||
} else {
|
||||
else
|
||||
{
|
||||
SET_ERROR(handle, EINVAL, result.c_str());
|
||||
retval = -1;
|
||||
}
|
||||
delete reply;
|
||||
return retval;
|
||||
|
@ -1690,6 +1739,9 @@ ndb_mgm_alloc_nodeid(NdbMgmHandle handle, unsigned int version, int nodetype)
|
|||
{
|
||||
CHECK_HANDLE(handle, 0);
|
||||
CHECK_CONNECTED(handle, 0);
|
||||
union { long l; char c[sizeof(long)]; } endian_check;
|
||||
|
||||
endian_check.l = 1;
|
||||
|
||||
int nodeid= handle->cfg._ownNodeId;
|
||||
|
||||
|
@ -1700,6 +1752,7 @@ ndb_mgm_alloc_nodeid(NdbMgmHandle handle, unsigned int version, int nodetype)
|
|||
args.put("user", "mysqld");
|
||||
args.put("password", "mysqld");
|
||||
args.put("public key", "a public key");
|
||||
args.put("endian", (endian_check.c[sizeof(long)-1])?"big":"little");
|
||||
|
||||
const ParserRow<ParserDummy> reply[]= {
|
||||
MGM_CMD("get nodeid reply", NULL, ""),
|
||||
|
|
|
@ -264,9 +264,9 @@ static const char* helpText =
|
|||
"START BACKUP Start backup\n"
|
||||
"ABORT BACKUP <backup id> Abort backup\n"
|
||||
"SHUTDOWN Shutdown all processes in cluster and quit\n"
|
||||
"CLUSTERLOG ON Enable Cluster logging\n"
|
||||
"CLUSTERLOG OFF Disable Cluster logging\n"
|
||||
"CLUSTERLOG FILTER <severity> Toggle severity filter on/off\n"
|
||||
"CLUSTERLOG ON [<severity>] ... Enable Cluster logging\n"
|
||||
"CLUSTERLOG OFF [<severity>] ... Disable Cluster logging\n"
|
||||
"CLUSTERLOG TOGGLE [<severity>] ... Toggle severity filter on/off\n"
|
||||
"CLUSTERLOG INFO Print cluster log information\n"
|
||||
"<id> START Start DB node (started with -n)\n"
|
||||
"<id> RESTART [-n] [-i] Restart DB node\n"
|
||||
|
@ -666,11 +666,9 @@ CommandInterpreter::analyseAfterFirstToken(int processId,
|
|||
if(processId == -1){
|
||||
executeForAll(command, fun, allAfterSecondToken);
|
||||
} else {
|
||||
if(strcasecmp(command, "STATUS") != 0)
|
||||
ndbout_c("Executing %s on node %d.", command, processId);
|
||||
(this->*fun)(processId, allAfterSecondToken, false);
|
||||
ndbout << endl;
|
||||
}
|
||||
ndbout << endl;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -733,12 +731,8 @@ CommandInterpreter::executeForAll(const char * cmd, ExecuteFunction fun,
|
|||
return;
|
||||
}
|
||||
NdbAutoPtr<char> ap1((char*)cl);
|
||||
while(get_next_nodeid(cl, &nodeId, NDB_MGM_NODE_TYPE_NDB)) {
|
||||
if(strcasecmp(cmd, "STATUS") != 0)
|
||||
ndbout_c("Executing %s on node %d.", cmd, nodeId);
|
||||
while(get_next_nodeid(cl, &nodeId, NDB_MGM_NODE_TYPE_NDB))
|
||||
(this->*fun)(nodeId, allAfterSecondToken, true);
|
||||
ndbout << endl;
|
||||
} // while
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1137,144 +1131,130 @@ CommandInterpreter::executeConnect(char* parameters)
|
|||
void
|
||||
CommandInterpreter::executeClusterLog(char* parameters)
|
||||
{
|
||||
DBUG_ENTER("CommandInterpreter::executeClusterLog");
|
||||
int i;
|
||||
if (parameters != 0 && strlen(parameters) != 0) {
|
||||
enum ndb_mgm_clusterlog_level severity = NDB_MGM_CLUSTERLOG_ALL;
|
||||
int isOk = true;
|
||||
char name[12];
|
||||
bool noArgs = false;
|
||||
|
||||
char * tmpString = my_strdup(parameters,MYF(MY_WME));
|
||||
My_auto_ptr<char> ap1(tmpString);
|
||||
char * tmpPtr = 0;
|
||||
char * item = strtok_r(tmpString, " ", &tmpPtr);
|
||||
|
||||
/********************
|
||||
* CLUSTERLOG FILTER
|
||||
********************/
|
||||
if (strcasecmp(item, "FILTER") == 0) {
|
||||
|
||||
item = strtok_r(NULL, " ", &tmpPtr);
|
||||
if (item == NULL) {
|
||||
noArgs = true;
|
||||
}
|
||||
while (item != NULL) {
|
||||
snprintf(name, sizeof(name), item);
|
||||
|
||||
if (strcasecmp(item, "ALL") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_ALL;
|
||||
} else if (strcasecmp(item, "ALERT") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_ALERT;
|
||||
} else if (strcasecmp(item, "CRITICAL") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_CRITICAL;
|
||||
} else if (strcasecmp(item, "ERROR") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_ERROR;
|
||||
} else if (strcasecmp(item, "WARNING") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_WARNING;
|
||||
} else if (strcasecmp(item, "INFO") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_INFO;
|
||||
} else if (strcasecmp(item, "DEBUG") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_DEBUG;
|
||||
} else if (strcasecmp(item, "OFF") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_OFF;
|
||||
} else {
|
||||
isOk = false;
|
||||
}
|
||||
|
||||
item = strtok_r(NULL, " ", &tmpPtr);
|
||||
} // while(item != NULL){
|
||||
|
||||
if (noArgs) {
|
||||
ndbout << "Missing argument(s)." << endl;
|
||||
} else if (isOk) {
|
||||
if(ndb_mgm_filter_clusterlog(m_mgmsrv, severity, NULL)) {
|
||||
if(strcasecmp(name, "ALL") == 0) {
|
||||
ndbout << "All severities levels enabled." << endl;
|
||||
} else if(strcasecmp(name, "OFF") == 0) {
|
||||
ndbout << "Cluster logging enabled." << endl;
|
||||
} else {
|
||||
ndbout << name << " events disabled." << endl;
|
||||
}
|
||||
} else {
|
||||
if(strcasecmp(name, "ALL") == 0) {
|
||||
ndbout << "All severities levels disabled." << endl;
|
||||
} else if(strcasecmp(name, "OFF") == 0) {
|
||||
ndbout << "Cluster logging disabled." << endl;
|
||||
} else {
|
||||
ndbout << name << " events enabled." << endl;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ndbout << "Invalid severity level." << endl;
|
||||
}
|
||||
|
||||
/********************
|
||||
* CLUSTERLOG INFO
|
||||
********************/
|
||||
} else if (strcasecmp(item, "INFO") == 0) {
|
||||
Uint32 *enabled = ndb_mgm_get_logfilter(m_mgmsrv);
|
||||
if(enabled == NULL) {
|
||||
ndbout << "Couldn't get status" << endl;
|
||||
printError();
|
||||
return;
|
||||
}
|
||||
const char* names[] = {"ENABLED", "DEBUG", "INFO", "WARNING", "ERROR",
|
||||
"CRITICAL", "ALERT"};
|
||||
if(enabled[0])
|
||||
ndbout << "Cluster logging is disabled." << endl;
|
||||
|
||||
|
||||
for(i = 0; i<7;i++)
|
||||
printf("enabled[%d] = %d\n", i, enabled[i]);
|
||||
ndbout << "Severities enabled: ";
|
||||
for(i = 1; i < 7; i++) {
|
||||
if(enabled[i])
|
||||
ndbout << names[i] << " ";
|
||||
}
|
||||
ndbout << endl;
|
||||
|
||||
/********************
|
||||
* CLUSTERLOG OFF
|
||||
********************/
|
||||
} else if (strcasecmp(item, "OFF") == 0) {
|
||||
Uint32 *enabled = ndb_mgm_get_logfilter(m_mgmsrv);
|
||||
if(enabled == NULL) {
|
||||
ndbout << "Couldn't get status" << endl;
|
||||
printError();
|
||||
return;
|
||||
}
|
||||
if(!enabled[0]) {
|
||||
ndb_mgm_filter_clusterlog(m_mgmsrv, NDB_MGM_CLUSTERLOG_OFF, NULL);
|
||||
ndbout << "Cluster logging is disabled." << endl;
|
||||
} else {
|
||||
ndbout << "Cluster logging is already disabled." << endl;
|
||||
|
||||
}
|
||||
|
||||
/********************
|
||||
* CLUSTERLOG ON
|
||||
********************/
|
||||
} else if (strcasecmp(item, "ON") == 0) {
|
||||
Uint32 *enabled = ndb_mgm_get_logfilter(m_mgmsrv);
|
||||
if(enabled == NULL) {
|
||||
ndbout << "Could not get status" << endl;
|
||||
printError();
|
||||
return;
|
||||
}
|
||||
if(enabled[0]) {
|
||||
ndb_mgm_filter_clusterlog(m_mgmsrv, NDB_MGM_CLUSTERLOG_OFF, NULL);
|
||||
ndbout << "Cluster logging is enabled." << endl;
|
||||
} else {
|
||||
ndbout << "Cluster logging is already enabled." << endl;
|
||||
|
||||
}
|
||||
} else {
|
||||
ndbout << "Invalid argument." << endl;
|
||||
}
|
||||
|
||||
} else {
|
||||
if (emptyString(parameters))
|
||||
{
|
||||
ndbout << "Missing argument." << endl;
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
enum ndb_mgm_clusterlog_level severity = NDB_MGM_CLUSTERLOG_ALL;
|
||||
|
||||
char * tmpString = my_strdup(parameters,MYF(MY_WME));
|
||||
My_auto_ptr<char> ap1(tmpString);
|
||||
char * tmpPtr = 0;
|
||||
char * item = strtok_r(tmpString, " ", &tmpPtr);
|
||||
int enable;
|
||||
|
||||
Uint32 *enabled = ndb_mgm_get_logfilter(m_mgmsrv);
|
||||
if(enabled == NULL) {
|
||||
ndbout << "Couldn't get status" << endl;
|
||||
printError();
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
/********************
|
||||
* CLUSTERLOG INFO
|
||||
********************/
|
||||
if (strcasecmp(item, "INFO") == 0) {
|
||||
DBUG_PRINT("info",("INFO"));
|
||||
if(enabled[0] == 0)
|
||||
{
|
||||
ndbout << "Cluster logging is disabled." << endl;
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
#if 0
|
||||
for(i = 0; i<7;i++)
|
||||
printf("enabled[%d] = %d\n", i, enabled[i]);
|
||||
#endif
|
||||
ndbout << "Severities enabled: ";
|
||||
for(i = 1; i < (int)NDB_MGM_CLUSTERLOG_ALL; i++) {
|
||||
const char *str= ndb_mgm_get_clusterlog_level_string((ndb_mgm_clusterlog_level)i);
|
||||
if (str == 0)
|
||||
{
|
||||
DBUG_ASSERT(false);
|
||||
continue;
|
||||
}
|
||||
if(enabled[i])
|
||||
ndbout << BaseString(str).ndb_toupper() << " ";
|
||||
}
|
||||
ndbout << endl;
|
||||
DBUG_VOID_RETURN;
|
||||
|
||||
}
|
||||
else if (strcasecmp(item, "FILTER") == 0 ||
|
||||
strcasecmp(item, "TOGGLE") == 0)
|
||||
{
|
||||
DBUG_PRINT("info",("TOGGLE"));
|
||||
enable= -1;
|
||||
}
|
||||
else if (strcasecmp(item, "OFF") == 0)
|
||||
{
|
||||
DBUG_PRINT("info",("OFF"));
|
||||
enable= 0;
|
||||
} else if (strcasecmp(item, "ON") == 0) {
|
||||
DBUG_PRINT("info",("ON"));
|
||||
enable= 1;
|
||||
} else {
|
||||
ndbout << "Invalid argument." << endl;
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
int res_enable;
|
||||
item = strtok_r(NULL, " ", &tmpPtr);
|
||||
if (item == NULL) {
|
||||
res_enable= ndb_mgm_filter_clusterlog(m_mgmsrv,
|
||||
NDB_MGM_CLUSTERLOG_ON, enable, NULL);
|
||||
if (res_enable < 0)
|
||||
{
|
||||
ndbout << "Couldn't set filter" << endl;
|
||||
printError();
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
ndbout << "Cluster logging is " << (res_enable ? "enabled.":"disabled") << endl;
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
do {
|
||||
severity= NDB_MGM_ILLEGAL_CLUSTERLOG_LEVEL;
|
||||
if (strcasecmp(item, "ALL") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_ALL;
|
||||
} else if (strcasecmp(item, "ALERT") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_ALERT;
|
||||
} else if (strcasecmp(item, "CRITICAL") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_CRITICAL;
|
||||
} else if (strcasecmp(item, "ERROR") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_ERROR;
|
||||
} else if (strcasecmp(item, "WARNING") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_WARNING;
|
||||
} else if (strcasecmp(item, "INFO") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_INFO;
|
||||
} else if (strcasecmp(item, "DEBUG") == 0) {
|
||||
severity = NDB_MGM_CLUSTERLOG_DEBUG;
|
||||
} else if (strcasecmp(item, "OFF") == 0 ||
|
||||
strcasecmp(item, "ON") == 0) {
|
||||
if (enable < 0) // only makes sense with toggle
|
||||
severity = NDB_MGM_CLUSTERLOG_ON;
|
||||
}
|
||||
if (severity == NDB_MGM_ILLEGAL_CLUSTERLOG_LEVEL) {
|
||||
ndbout << "Invalid severity level: " << item << endl;
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
res_enable = ndb_mgm_filter_clusterlog(m_mgmsrv, severity, enable, NULL);
|
||||
if (res_enable < 0)
|
||||
{
|
||||
ndbout << "Couldn't set filter" << endl;
|
||||
printError();
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
ndbout << BaseString(item).ndb_toupper().c_str() << " " << (res_enable ? "enabled":"disabled") << endl;
|
||||
|
||||
item = strtok_r(NULL, " ", &tmpPtr);
|
||||
} while(item != NULL);
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
|
@ -1404,7 +1384,7 @@ CommandInterpreter::executeRestart(int processId, const char* parameters,
|
|||
if(all)
|
||||
ndbout << "NDB Cluster is being restarted." << endl;
|
||||
else
|
||||
ndbout_c("Database node %d is being restarted.", processId);
|
||||
ndbout_c("Node %d is being restarted.", processId);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1451,7 +1431,7 @@ CommandInterpreter::executeStatus(int processId,
|
|||
const char* parameters, bool all)
|
||||
{
|
||||
if (! emptyString(parameters)) {
|
||||
ndbout << "No parameters expected to this command." << endl;
|
||||
ndbout_c("No parameters expected to this command.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1482,7 +1462,7 @@ CommandInterpreter::executeStatus(int processId,
|
|||
ndbout << "Node " << processId << ": " << status_string(status);
|
||||
switch(status){
|
||||
case NDB_MGM_NODE_STATUS_STARTING:
|
||||
ndbout << " (Phase " << startPhase << ")" ;
|
||||
ndbout << " (Phase " << startPhase << ")";
|
||||
break;
|
||||
case NDB_MGM_NODE_STATUS_SHUTTING_DOWN:
|
||||
ndbout << " (Phase " << startPhase << ")";
|
||||
|
@ -1495,6 +1475,8 @@ CommandInterpreter::executeStatus(int processId,
|
|||
getMajor(version) ,
|
||||
getMinor(version),
|
||||
getBuild(version));
|
||||
else
|
||||
ndbout << endl;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1506,7 +1488,10 @@ CommandInterpreter::executeLogLevel(int processId, const char* parameters,
|
|||
bool all)
|
||||
{
|
||||
(void) all;
|
||||
|
||||
if (emptyString(parameters)) {
|
||||
ndbout << "Expected argument" << endl;
|
||||
return;
|
||||
}
|
||||
BaseString tmp(parameters);
|
||||
Vector<BaseString> spec;
|
||||
tmp.split(spec, "=");
|
||||
|
@ -1532,6 +1517,8 @@ CommandInterpreter::executeLogLevel(int processId, const char* parameters,
|
|||
return;
|
||||
}
|
||||
|
||||
ndbout << "Executing LOGLEVEL on node " << processId << flush;
|
||||
|
||||
struct ndb_mgm_reply reply;
|
||||
int result;
|
||||
result = ndb_mgm_set_loglevel_node(m_mgmsrv,
|
||||
|
@ -1541,11 +1528,10 @@ CommandInterpreter::executeLogLevel(int processId, const char* parameters,
|
|||
&reply);
|
||||
|
||||
if (result < 0) {
|
||||
ndbout_c("Executing LOGLEVEL on node %d failed.", processId);
|
||||
ndbout_c(" failed.");
|
||||
printError();
|
||||
} else {
|
||||
ndbout << "Executing LOGLEVEL on node " << processId << " OK!"
|
||||
<< endl;
|
||||
ndbout_c(" OK!");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1840,36 +1826,36 @@ CommandInterpreter::executeEventReporting(int processId,
|
|||
spec[0].trim().ndb_toupper();
|
||||
int category = ndb_mgm_match_event_category(spec[0].c_str());
|
||||
if(category == NDB_MGM_ILLEGAL_EVENT_CATEGORY){
|
||||
category = atoi(spec[0].c_str());
|
||||
if(category < NDB_MGM_MIN_EVENT_CATEGORY ||
|
||||
if(!convert(spec[0].c_str(), category) ||
|
||||
category < NDB_MGM_MIN_EVENT_CATEGORY ||
|
||||
category > NDB_MGM_MAX_EVENT_CATEGORY){
|
||||
ndbout << "Unknown category: \"" << spec[0].c_str() << "\"" << endl;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
int level = atoi(spec[1].c_str());
|
||||
if(level < 0 || level > 15){
|
||||
|
||||
int level;
|
||||
if (!convert(spec[1].c_str(),level))
|
||||
{
|
||||
ndbout << "Invalid level: " << spec[1].c_str() << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ndbout << "Executing CLUSTERLOG on node " << processId << flush;
|
||||
|
||||
struct ndb_mgm_reply reply;
|
||||
int result;
|
||||
|
||||
result = ndb_mgm_set_loglevel_clusterlog(m_mgmsrv,
|
||||
processId, // fast fix - pekka
|
||||
processId,
|
||||
(ndb_mgm_event_category)category,
|
||||
level,
|
||||
&reply);
|
||||
|
||||
if (result != 0) {
|
||||
ndbout_c("Executing CLUSTERLOG on node %d failed", processId);
|
||||
ndbout_c(" failed.");
|
||||
printError();
|
||||
} else {
|
||||
ndbout << "Executing CLUSTERLOG on node " << processId << " OK!"
|
||||
<< endl;
|
||||
ndbout_c(" OK!");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -157,10 +157,6 @@ int CommandInterpreter::readAndExecute() {
|
|||
executeShow(allAfterFirstToken);
|
||||
return true;
|
||||
}
|
||||
else if (strcmp(firstToken, "CLUSTERLOG") == 0) {
|
||||
executeClusterLog(allAfterFirstToken);
|
||||
return true;
|
||||
}
|
||||
else if(strcmp(firstToken, "START") == 0 &&
|
||||
allAfterFirstToken != 0 &&
|
||||
strncmp(allAfterFirstToken, "BACKUP", sizeof("BACKUP") - 1) == 0){
|
||||
|
@ -472,130 +468,6 @@ void CommandInterpreter::executeShow(char* parameters) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
//*****************************************************************************
|
||||
//*****************************************************************************
|
||||
void CommandInterpreter::executeClusterLog(char* parameters) {
|
||||
|
||||
if (parameters != 0 && strlen(parameters) != 0) {
|
||||
int severity = 7;
|
||||
int isOk = true;
|
||||
char name[12];
|
||||
bool noArgs = false;
|
||||
|
||||
char * tmpString = strdup(parameters);
|
||||
char * tmpPtr = 0;
|
||||
char * item = strtok_r(tmpString, " ", &tmpPtr);
|
||||
|
||||
/********************
|
||||
* CLUSTERLOG FILTER
|
||||
********************/
|
||||
if (strcmp(item, "FILTER") == 0) {
|
||||
|
||||
item = strtok_r(NULL, " ", &tmpPtr);
|
||||
if (item == NULL) {
|
||||
noArgs = true;
|
||||
}
|
||||
while (item != NULL) {
|
||||
snprintf(name, 12, item);
|
||||
|
||||
if (strcmp(item, "ALL") == 0) {
|
||||
severity = 7;
|
||||
} else if (strcmp(item, "ALERT") == 0) {
|
||||
severity = 6;
|
||||
} else if (strcmp(item, "CRITICAL") == 0) {
|
||||
severity = 5;
|
||||
} else if (strcmp(item, "ERROR") == 0) {
|
||||
severity = 4;
|
||||
} else if (strcmp(item, "WARNING") == 0) {
|
||||
severity = 3;
|
||||
} else if (strcmp(item, "INFO") == 0) {
|
||||
severity = 2;
|
||||
} else if (strcmp(item, "DEBUG") == 0) {
|
||||
severity = 1;
|
||||
} else if (strcmp(item, "OFF") == 0) {
|
||||
severity = 0;
|
||||
} else {
|
||||
isOk = false;
|
||||
}
|
||||
|
||||
item = strtok_r(NULL, " ", &tmpPtr);
|
||||
} // while(item != NULL){
|
||||
free(tmpString);
|
||||
|
||||
if (noArgs) {
|
||||
ndbout << "Missing argument(s)." << endl;
|
||||
} else if (isOk) {
|
||||
if (_mgmtSrvr.setEventLogFilter(severity)) {
|
||||
if(strcmp(name, "ALL") == 0 || strcmp(name, "all") == 0) {
|
||||
ndbout << "All severities levels enabled." << endl;
|
||||
} else if(strcmp(name, "OFF") == 0 || strcmp(name, "off") == 0) {
|
||||
ndbout << "Cluster logging disabled." << endl;
|
||||
} else {
|
||||
ndbout << name << " events enabled." << endl;
|
||||
}
|
||||
} else {
|
||||
if(strcmp(name, "ALL") == 0) {
|
||||
ndbout << "All severities levels disabled." << endl;
|
||||
} else if(strcmp(name, "OFF") == 0) {
|
||||
ndbout << "Cluster logging enabled." << endl;
|
||||
} else {
|
||||
ndbout << name << " events disabled." << endl;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ndbout << "Invalid severity level." << endl;
|
||||
}
|
||||
|
||||
/********************
|
||||
* CLUSTERLOG INFO
|
||||
********************/
|
||||
} else if (strcmp(item, "INFO") == 0) {
|
||||
const char* names[] = {"DEBUG", "INFO", "WARNING", "ERROR",
|
||||
"CRITICAL", "ALERT"};
|
||||
if (_mgmtSrvr.isEventLogFilterEnabled(0)) { // OFF
|
||||
ndbout << "Cluster logging is disabled." << endl;
|
||||
}
|
||||
|
||||
ndbout << "Severities enabled: ";
|
||||
for (int i = 0; i < 6; i++) {
|
||||
if (_mgmtSrvr.isEventLogFilterEnabled(i + 1)) {
|
||||
ndbout << names[i] << " ";
|
||||
}
|
||||
}
|
||||
ndbout << endl;
|
||||
|
||||
/********************
|
||||
* CLUSTERLOG OFF
|
||||
********************/
|
||||
} else if (strcmp(item, "OFF") == 0) {
|
||||
if (!_mgmtSrvr.isEventLogFilterEnabled(0)) { // ON
|
||||
if (_mgmtSrvr.setEventLogFilter(0));
|
||||
ndbout << "Cluster logging is disabled." << endl;
|
||||
} else {
|
||||
ndbout << "Cluster logging is already disabled." << endl;
|
||||
}
|
||||
|
||||
/********************
|
||||
* CLUSTERLOG ON
|
||||
********************/
|
||||
} else if (strcmp(item, "ON") == 0) {
|
||||
if (_mgmtSrvr.isEventLogFilterEnabled(0)) { // OFF
|
||||
if (_mgmtSrvr.setEventLogFilter(0));
|
||||
ndbout << "Cluster logging is enabled." << endl;
|
||||
} else {
|
||||
ndbout << "Cluster logging is already enabled." << endl;
|
||||
}
|
||||
|
||||
} else {
|
||||
ndbout << "Invalid argument." << endl;
|
||||
}
|
||||
|
||||
} else {
|
||||
ndbout << "Missing argument." << endl;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
stopCallback(int nodeId, void * anyData, int errCode){
|
||||
if(errCode == 0){
|
||||
|
|
|
@ -125,7 +125,6 @@ private:
|
|||
void executeShow(char* parameters);
|
||||
void executeRun(char* parameters);
|
||||
void executeInfo(char* parameters);
|
||||
void executeClusterLog(char* parameters);
|
||||
|
||||
public:
|
||||
void executeStop(int processId, const char* parameters, bool all);
|
||||
|
|
|
@ -226,7 +226,8 @@ MgmtSrvr::startEventLog()
|
|||
clusterLog);
|
||||
}
|
||||
if(!g_EventLogger.addHandler(logdest)) {
|
||||
ndbout << "Warning: could not add log destination \"" << logdest.c_str() << "\"" << endl;
|
||||
ndbout << "Warning: could not add log destination \""
|
||||
<< logdest.c_str() << "\"" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -244,18 +245,19 @@ public:
|
|||
};
|
||||
|
||||
bool
|
||||
MgmtSrvr::setEventLogFilter(int severity)
|
||||
MgmtSrvr::setEventLogFilter(int severity, int enable)
|
||||
{
|
||||
bool enabled = true;
|
||||
Logger::LoggerLevel level = (Logger::LoggerLevel)severity;
|
||||
if (g_EventLogger.isEnable(level)) {
|
||||
if (enable > 0) {
|
||||
g_EventLogger.enable(level);
|
||||
} else if (enable == 0) {
|
||||
g_EventLogger.disable(level);
|
||||
} else if (g_EventLogger.isEnable(level)) {
|
||||
g_EventLogger.disable(level);
|
||||
enabled = false;
|
||||
} else {
|
||||
g_EventLogger.enable(level);
|
||||
}
|
||||
|
||||
return enabled;
|
||||
return g_EventLogger.isEnable(level);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
@ -122,7 +122,7 @@ public:
|
|||
* @param serverity the log level/serverity.
|
||||
* @return true if the severity was enabled.
|
||||
*/
|
||||
bool setEventLogFilter(int severity);
|
||||
bool setEventLogFilter(int severity, int enable);
|
||||
|
||||
/**
|
||||
* Returns true if the log level/severity is enabled.
|
||||
|
|
|
@ -132,6 +132,7 @@ ParserRow<MgmApiSession> commands[] = {
|
|||
MGM_ARG("user", String, Mandatory, "Password"),
|
||||
MGM_ARG("password", String, Mandatory, "Password"),
|
||||
MGM_ARG("public key", String, Mandatory, "Public key"),
|
||||
MGM_ARG("endian", String, Optional, "Endianness"),
|
||||
|
||||
MGM_CMD("get version", &MgmApiSession::getVersion, ""),
|
||||
|
||||
|
@ -217,6 +218,7 @@ ParserRow<MgmApiSession> commands[] = {
|
|||
|
||||
MGM_CMD("set logfilter", &MgmApiSession::setLogFilter, ""),
|
||||
MGM_ARG("level", Int, Mandatory, "Severety level"),
|
||||
MGM_ARG("enable", Int, Mandatory, "1=disable, 0=enable, -1=toggle"),
|
||||
|
||||
MGM_CMD("config lock", &MgmApiSession::configLock, ""),
|
||||
|
||||
|
@ -386,6 +388,8 @@ MgmApiSession::get_nodeid(Parser_t::Context &,
|
|||
const char * user;
|
||||
const char * password;
|
||||
const char * public_key;
|
||||
const char * endian= NULL;
|
||||
union { long l; char c[sizeof(long)]; } endian_check;
|
||||
|
||||
args.get("version", &version);
|
||||
args.get("nodetype", &nodetype);
|
||||
|
@ -394,7 +398,17 @@ MgmApiSession::get_nodeid(Parser_t::Context &,
|
|||
args.get("user", &user);
|
||||
args.get("password", &password);
|
||||
args.get("public key", &public_key);
|
||||
|
||||
args.get("endian", &endian);
|
||||
|
||||
endian_check.l = 1;
|
||||
if(endian
|
||||
&& strcmp(endian,(endian_check.c[sizeof(long)-1])?"big":"little")!=0) {
|
||||
m_output->println(cmd);
|
||||
m_output->println("result: Node does not have the same endianness as the management server.");
|
||||
m_output->println("");
|
||||
return;
|
||||
}
|
||||
|
||||
bool compatible;
|
||||
switch (nodetype) {
|
||||
case NODE_TYPE_MGM:
|
||||
|
@ -1190,10 +1204,12 @@ void
|
|||
MgmApiSession::setLogFilter(Parser_t::Context &ctx,
|
||||
const class Properties &args) {
|
||||
Uint32 level;
|
||||
Uint32 enable;
|
||||
|
||||
args.get("level", &level);
|
||||
args.get("enable", &enable);
|
||||
|
||||
int result = m_mgmsrv.setEventLogFilter(level);
|
||||
int result = m_mgmsrv.setEventLogFilter(level, enable);
|
||||
|
||||
m_output->println("set logfilter reply");
|
||||
m_output->println("result: %d", result);
|
||||
|
|
|
@ -773,14 +773,6 @@ NdbDictionary::Dictionary::removeCachedTable(const char * name){
|
|||
m_impl.removeCachedObject(* t);
|
||||
}
|
||||
|
||||
NdbDictionary::Table
|
||||
NdbDictionary::Dictionary::getTableForAlteration(const char * name){
|
||||
const NdbDictionary::Table * oldTable = getTable(name);
|
||||
return (oldTable) ?
|
||||
NdbDictionary::Table(*oldTable)
|
||||
: NdbDictionary::Table();
|
||||
}
|
||||
|
||||
int
|
||||
NdbDictionary::Dictionary::createIndex(const Index & ind)
|
||||
{
|
||||
|
|
|
@ -1411,15 +1411,14 @@ int NdbDictionaryImpl::alterTable(NdbTableImpl &impl)
|
|||
const char * originalInternalName = internalName.c_str();
|
||||
BaseString externalName = impl.m_externalName;
|
||||
const char * originalExternalName = externalName.c_str();
|
||||
NdbTableImpl * oldTab = getTable(originalExternalName);
|
||||
|
||||
if(!oldTab){
|
||||
|
||||
DBUG_ENTER("NdbDictionaryImpl::alterTable");
|
||||
if(!get_local_table_info(originalInternalName, false)){
|
||||
m_error.code = 709;
|
||||
return -1;
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
// Alter the table
|
||||
int ret = m_receiver.alterTable(m_ndb, impl);
|
||||
|
||||
if(ret == 0){
|
||||
// Remove cached information and let it be refreshed at next access
|
||||
if (m_localHash.get(originalInternalName) != NULL) {
|
||||
|
@ -1433,7 +1432,7 @@ int NdbDictionaryImpl::alterTable(NdbTableImpl &impl)
|
|||
m_globalHash->unlock();
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
DBUG_RETURN(ret);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -1448,15 +1447,16 @@ NdbDictInterface::createOrAlterTable(Ndb & ndb,
|
|||
NdbTableImpl & impl,
|
||||
bool alter)
|
||||
{
|
||||
DBUG_ENTER("NdbDictInterface::createOrAlterTable");
|
||||
unsigned i;
|
||||
if((unsigned)impl.getNoOfPrimaryKeys() > NDB_MAX_NO_OF_ATTRIBUTES_IN_KEY){
|
||||
m_error.code = 4317;
|
||||
return -1;
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
unsigned sz = impl.m_columns.size();
|
||||
if (sz > NDB_MAX_ATTRIBUTES_IN_TABLE){
|
||||
m_error.code = 4318;
|
||||
return -1;
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
|
||||
impl.copyNewProperties();
|
||||
|
@ -1491,7 +1491,7 @@ NdbDictInterface::createOrAlterTable(Ndb & ndb,
|
|||
// Check max length of frm data
|
||||
if (impl.m_frm.length() > MAX_FRM_DATA_SIZE){
|
||||
m_error.code = 1229;
|
||||
return -1;
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
tmpTab.FrmLen = impl.m_frm.length();
|
||||
memcpy(tmpTab.FrmData, impl.m_frm.get_data(), impl.m_frm.length());
|
||||
|
@ -1543,12 +1543,12 @@ NdbDictInterface::createOrAlterTable(Ndb & ndb,
|
|||
// charset is defined exactly for char types
|
||||
if (col->getCharType() != (col->m_cs != NULL)) {
|
||||
m_error.code = 703;
|
||||
return -1;
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
// primary key type check
|
||||
if (col->m_pk && ! NdbSqlUtil::usable_in_pk(col->m_type, col->m_cs)) {
|
||||
m_error.code = 743;
|
||||
return -1;
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
// charset in upper half of precision
|
||||
if (col->getCharType()) {
|
||||
|
@ -1616,7 +1616,7 @@ NdbDictInterface::createOrAlterTable(Ndb & ndb,
|
|||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
DBUG_RETURN(ret);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -1675,17 +1675,17 @@ NdbDictInterface::alterTable(NdbApiSignal* signal, LinearSectionPtr ptr[3])
|
|||
int errCodes[noErrCodes] =
|
||||
{AlterTableRef::NotMaster,
|
||||
AlterTableRef::Busy};
|
||||
int r = dictSignal(signal,ptr,1,
|
||||
1/*use masternode id*/,
|
||||
100,WAIT_ALTER_TAB_REQ,
|
||||
WAITFOR_RESPONSE_TIMEOUT,
|
||||
errCodes, noErrCodes);
|
||||
if(m_error.code == AlterTableRef::InvalidTableVersion) {
|
||||
// Clear caches and try again
|
||||
return INCOMPATIBLE_VERSION;
|
||||
}
|
||||
int r = dictSignal(signal,ptr,1,
|
||||
1/*use masternode id*/,
|
||||
100,WAIT_ALTER_TAB_REQ,
|
||||
WAITFOR_RESPONSE_TIMEOUT,
|
||||
errCodes, noErrCodes);
|
||||
if(m_error.code == AlterTableRef::InvalidTableVersion) {
|
||||
// Clear caches and try again
|
||||
return INCOMPATIBLE_VERSION;
|
||||
}
|
||||
|
||||
return r;
|
||||
return r;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1211,7 +1211,7 @@ runTableRename(NDBT_Context* ctx, NDBT_Step* step){
|
|||
|
||||
const NdbDictionary::Table * oldTable = dict->getTable(pTabName.c_str());
|
||||
if (oldTable) {
|
||||
NdbDictionary::Table newTable = dict->getTableForAlteration(pTabName.c_str());
|
||||
NdbDictionary::Table newTable = *oldTable;
|
||||
newTable.setName(pTabNewName.c_str());
|
||||
CHECK2(dict->alterTable(newTable) == 0,
|
||||
"TableRename failed");
|
||||
|
@ -1280,7 +1280,7 @@ runTableRenameNF(NDBT_Context* ctx, NDBT_Step* step){
|
|||
|
||||
const NdbDictionary::Table * oldTable = dict->getTable(pTabName.c_str());
|
||||
if (oldTable) {
|
||||
NdbDictionary::Table newTable = dict->getTableForAlteration(pTabName.c_str());
|
||||
NdbDictionary::Table newTable = *oldTable;
|
||||
newTable.setName(pTabNewName.c_str());
|
||||
CHECK2(dict->alterTable(newTable) == 0,
|
||||
"TableRename failed");
|
||||
|
@ -1377,7 +1377,7 @@ runTableRenameSR(NDBT_Context* ctx, NDBT_Step* step){
|
|||
|
||||
const NdbDictionary::Table * oldTable = dict->getTable(pTabName.c_str());
|
||||
if (oldTable) {
|
||||
NdbDictionary::Table newTable = dict->getTableForAlteration(pTabName.c_str());
|
||||
NdbDictionary::Table newTable = *oldTable;
|
||||
newTable.setName(pTabNewName.c_str());
|
||||
CHECK2(dict->alterTable(newTable) == 0,
|
||||
"TableRename failed");
|
||||
|
|
|
@ -519,6 +519,7 @@ void NDBT_TestCaseImpl1::waitSteps(){
|
|||
NdbThread_WaitFor(threads[i], &status);
|
||||
NdbThread_Destroy(&threads[i]);
|
||||
}
|
||||
threads.clear();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -454,10 +454,12 @@ sub print_verbose_errors
|
|||
print STDERR "number of help keywords - ",$count_keywords,"\n";
|
||||
|
||||
my $count_without_help= scalar(@without_help);
|
||||
my $percent_without_help= $count_lex ?
|
||||
int (($count_without_help/$count_lex)*100) :
|
||||
"100";
|
||||
print_bad_names(\@without_help,"lexems without help (".
|
||||
$count_without_help." ~ ".
|
||||
(int (($count_without_help/$count_lex)*100)).
|
||||
"%)");
|
||||
$percent_without_help."%)");
|
||||
print_bad_names(\@description_with_at,
|
||||
" topics below have symbol \'@\' in their descriptions.\n".
|
||||
"it's probably the litter from 'texi' tags (script needs fixing)");
|
||||
|
@ -467,10 +469,12 @@ sub print_verbose_errors
|
|||
print_bad_names(\@without_description,"topics without description");
|
||||
|
||||
my $count_without_example= scalar(@without_example);
|
||||
my $percent_without_example= $count_topics ?
|
||||
int (($count_without_example/$count_topics)*100) :
|
||||
"100";
|
||||
print_bad_names(\@without_example,"topics without example (".
|
||||
$count_without_example." ~ ".
|
||||
(int (($count_without_example/$count_topics)*100)).
|
||||
"%)");
|
||||
$percent_without_example."%)");
|
||||
}
|
||||
|
||||
print_verbose_errors if ($verbose_option ne 0);
|
||||
|
|
|
@ -213,7 +213,7 @@ then
|
|||
fi
|
||||
mysqld_install_cmd_line="$mysqld $defaults $mysqld_opt --bootstrap \
|
||||
--skip-grant-tables --basedir=$basedir --datadir=$ldata --skip-innodb \
|
||||
--skip-bdb --skip-ndbcluster $args --max_allowed_packet=8M"
|
||||
--skip-bdb --skip-ndbcluster $args --max_allowed_packet=8M --net_buffer_length=16K"
|
||||
if $scriptdir/mysql_create_system_tables $create_option $mdata $hostname $windows \
|
||||
| eval "$mysqld_install_cmd_line"
|
||||
then
|
||||
|
|
|
@ -141,12 +141,12 @@ fi
|
|||
|
||||
args=
|
||||
SET_USER=2
|
||||
parse_arguments `$print_defaults --loose-verbose $defaults mysqld server`
|
||||
parse_arguments `$print_defaults $defaults --loose-verbose mysqld server`
|
||||
if test $SET_USER -eq 2
|
||||
then
|
||||
SET_USER=0
|
||||
fi
|
||||
parse_arguments `$print_defaults --loose-verbose $defaults mysqld_safe safe_mysqld`
|
||||
parse_arguments `$print_defaults $defaults --loose-verbose mysqld_safe safe_mysqld`
|
||||
parse_arguments PICK-ARGS-FROM-ARGV "$@"
|
||||
safe_mysql_unix_port=${mysql_unix_port:-${MYSQL_UNIX_PORT:-@MYSQL_UNIX_ADDR@}}
|
||||
|
||||
|
|
|
@ -528,6 +528,7 @@ error:
|
|||
int ha_archive::write_row(byte * buf)
|
||||
{
|
||||
z_off_t written;
|
||||
Field_blob **field;
|
||||
DBUG_ENTER("ha_archive::write_row");
|
||||
|
||||
statistic_increment(ha_write_count,&LOCK_status);
|
||||
|
@ -543,7 +544,7 @@ int ha_archive::write_row(byte * buf)
|
|||
We should probably mark the table as damagaged if the record is written
|
||||
but the blob fails.
|
||||
*/
|
||||
for (Field_blob **field=table->blob_field ; *field ; field++)
|
||||
for (field= table->blob_field ; *field ; field++)
|
||||
{
|
||||
char *ptr;
|
||||
uint32 size= (*field)->get_length();
|
||||
|
|
61
sql/field.cc
61
sql/field.cc
|
@ -2145,7 +2145,7 @@ int Field_longlong::store(double nr)
|
|||
set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1);
|
||||
error= 1;
|
||||
}
|
||||
else if (nr >= (double) LONGLONG_MAX)
|
||||
else if (nr >= (double) (ulonglong) LONGLONG_MAX)
|
||||
{
|
||||
res=(longlong) LONGLONG_MAX;
|
||||
set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1);
|
||||
|
@ -5529,8 +5529,7 @@ int Field_enum::store(const char *from,uint length,CHARSET_INFO *cs)
|
|||
}
|
||||
|
||||
/* Remove end space */
|
||||
while (length > 0 && my_isspace(system_charset_info,from[length-1]))
|
||||
length--;
|
||||
length= field_charset->cset->lengthsp(field_charset, from, length);
|
||||
uint tmp=find_type2(typelib, from, length, field_charset);
|
||||
if (!tmp)
|
||||
{
|
||||
|
@ -5632,7 +5631,7 @@ String *Field_enum::val_str(String *val_buffer __attribute__((unused)),
|
|||
val_ptr->set("", 0, field_charset);
|
||||
else
|
||||
val_ptr->set((const char*) typelib->type_names[tmp-1],
|
||||
(uint) strlen(typelib->type_names[tmp-1]),
|
||||
typelib->type_lengths[tmp-1],
|
||||
field_charset);
|
||||
return val_ptr;
|
||||
}
|
||||
|
@ -5669,13 +5668,14 @@ void Field_enum::sql_type(String &res) const
|
|||
res.append("enum(");
|
||||
|
||||
bool flag=0;
|
||||
for (const char **pos= typelib->type_names; *pos; pos++)
|
||||
uint *len= typelib->type_lengths;
|
||||
for (const char **pos= typelib->type_names; *pos; pos++, len++)
|
||||
{
|
||||
uint dummy_errors;
|
||||
if (flag)
|
||||
res.append(',');
|
||||
/* convert to res.charset() == utf8, then quote */
|
||||
enum_item.copy(*pos, strlen(*pos), charset(), res.charset(), &dummy_errors);
|
||||
enum_item.copy(*pos, *len, charset(), res.charset(), &dummy_errors);
|
||||
append_unescaped(&res, enum_item.ptr(), enum_item.length());
|
||||
flag= 1;
|
||||
}
|
||||
|
@ -5754,14 +5754,15 @@ String *Field_set::val_str(String *val_buffer,
|
|||
uint bitnr=0;
|
||||
|
||||
val_buffer->length(0);
|
||||
val_buffer->set_charset(field_charset);
|
||||
while (tmp && bitnr < (uint) typelib->count)
|
||||
{
|
||||
if (tmp & 1)
|
||||
{
|
||||
if (val_buffer->length())
|
||||
val_buffer->append(field_separator);
|
||||
val_buffer->append(&field_separator, 1, &my_charset_latin1);
|
||||
String str(typelib->type_names[bitnr],
|
||||
(uint) strlen(typelib->type_names[bitnr]),
|
||||
typelib->type_lengths[bitnr],
|
||||
field_charset);
|
||||
val_buffer->append(str);
|
||||
}
|
||||
|
@ -5781,13 +5782,14 @@ void Field_set::sql_type(String &res) const
|
|||
res.append("set(");
|
||||
|
||||
bool flag=0;
|
||||
for (const char **pos= typelib->type_names; *pos; pos++)
|
||||
uint *len= typelib->type_lengths;
|
||||
for (const char **pos= typelib->type_names; *pos; pos++, len++)
|
||||
{
|
||||
uint dummy_errors;
|
||||
if (flag)
|
||||
res.append(',');
|
||||
/* convert to res.charset() == utf8, then quote */
|
||||
set_item.copy(*pos, strlen(*pos), charset(), res.charset(), &dummy_errors);
|
||||
set_item.copy(*pos, *len, charset(), res.charset(), &dummy_errors);
|
||||
append_unescaped(&res, set_item.ptr(), set_item.length());
|
||||
flag= 1;
|
||||
}
|
||||
|
@ -5842,25 +5844,24 @@ bool Field_num::eq_def(Field *field)
|
|||
|
||||
void create_field::create_length_to_internal_length(void)
|
||||
{
|
||||
switch (sql_type)
|
||||
{
|
||||
case MYSQL_TYPE_TINY_BLOB:
|
||||
case MYSQL_TYPE_MEDIUM_BLOB:
|
||||
case MYSQL_TYPE_LONG_BLOB:
|
||||
case MYSQL_TYPE_BLOB:
|
||||
case MYSQL_TYPE_VAR_STRING:
|
||||
case MYSQL_TYPE_STRING:
|
||||
length*= charset->mbmaxlen;
|
||||
pack_length= calc_pack_length(sql_type == FIELD_TYPE_VAR_STRING ?
|
||||
FIELD_TYPE_STRING : sql_type, length);
|
||||
break;
|
||||
case MYSQL_TYPE_ENUM:
|
||||
case MYSQL_TYPE_SET:
|
||||
length*= charset->mbmaxlen;
|
||||
break;
|
||||
default:
|
||||
/* do nothing */
|
||||
break;
|
||||
switch (sql_type) {
|
||||
case MYSQL_TYPE_TINY_BLOB:
|
||||
case MYSQL_TYPE_MEDIUM_BLOB:
|
||||
case MYSQL_TYPE_LONG_BLOB:
|
||||
case MYSQL_TYPE_BLOB:
|
||||
case MYSQL_TYPE_VAR_STRING:
|
||||
case MYSQL_TYPE_STRING:
|
||||
length*= charset->mbmaxlen;
|
||||
pack_length= calc_pack_length(sql_type == FIELD_TYPE_VAR_STRING ?
|
||||
FIELD_TYPE_STRING : sql_type, length);
|
||||
break;
|
||||
case MYSQL_TYPE_ENUM:
|
||||
case MYSQL_TYPE_SET:
|
||||
length*= charset->mbmaxlen;
|
||||
break;
|
||||
default:
|
||||
/* do nothing */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6085,6 +6086,8 @@ create_field::create_field(Field *old_field,Field *orig_field)
|
|||
}
|
||||
length=(length+charset->mbmaxlen-1)/charset->mbmaxlen; // QQ: Probably not needed
|
||||
break;
|
||||
case MYSQL_TYPE_ENUM:
|
||||
case MYSQL_TYPE_SET:
|
||||
case FIELD_TYPE_STRING:
|
||||
case FIELD_TYPE_VAR_STRING:
|
||||
length=(length+charset->mbmaxlen-1)/charset->mbmaxlen;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue