Merge with MySQL 5.1.50
- Changed to still use bcmp() in certain cases becasue - Faster for short unaligneed strings than memcmp() - Bettern when using valgrind - Changed to use my_sprintf() instead of sprintf() to get higher portability for old systems - Changed code to use MariaDB version of select->skip_record() - Removed -%::SCCS/s.% from Makefile.am:s to remove automake warnings
This commit is contained in:
commit
ad6d95d3cb
@ -83,6 +83,3 @@ EXTRA_DIST = FINISH.sh \
|
|||||||
compile-solaris-x86-32-debug-forte \
|
compile-solaris-x86-32-debug-forte \
|
||||||
compile-solaris-x86-forte-32 \
|
compile-solaris-x86-forte-32 \
|
||||||
util.sh
|
util.sh
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -98,22 +98,19 @@ SSL_LIBRARY=--with-ssl
|
|||||||
|
|
||||||
if [ "x$warning_mode" != "xpedantic" ]; then
|
if [ "x$warning_mode" != "xpedantic" ]; then
|
||||||
# Both C and C++ warnings
|
# Both C and C++ warnings
|
||||||
warnings="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W"
|
warnings="-Wall -Wextra -Wunused -Wwrite-strings"
|
||||||
warnings="$warnings -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare"
|
|
||||||
warnings="$warnings -Wwrite-strings -Wunused-function -Wunused-label -Wunused-value -Wunused-variable"
|
|
||||||
|
|
||||||
# For more warnings, uncomment the following line
|
# For more warnings, uncomment the following line
|
||||||
# warnings="$global_warnings -Wshadow"
|
# warnings="$warnings -Wshadow"
|
||||||
|
|
||||||
# C warnings
|
# C warnings
|
||||||
c_warnings="$warnings -Wunused-parameter"
|
c_warnings="$warnings"
|
||||||
# C++ warnings
|
# C++ warnings
|
||||||
cxx_warnings="$warnings"
|
cxx_warnings="$warnings -Wno-unused-parameter"
|
||||||
# cxx_warnings="$cxx_warnings -Woverloaded-virtual -Wsign-promo"
|
# cxx_warnings="$cxx_warnings -Woverloaded-virtual -Wsign-promo"
|
||||||
cxx_warnings="$cxx_warnings -Wreorder"
|
|
||||||
cxx_warnings="$cxx_warnings -Wctor-dtor-privacy -Wnon-virtual-dtor"
|
cxx_warnings="$cxx_warnings -Wctor-dtor-privacy -Wnon-virtual-dtor"
|
||||||
# Added unless --with-debug=full
|
# Added unless --with-debug=full
|
||||||
debug_extra_cflags="-O0 -g3 -gdwarf-2" #1 -Wuninitialized"
|
debug_extra_cflags="-O0 -g3 -gdwarf-2"
|
||||||
else
|
else
|
||||||
warnings="-W -Wall -ansi -pedantic -Wno-long-long -Wno-unused -D_POSIX_SOURCE"
|
warnings="-W -Wall -ansi -pedantic -Wno-long-long -Wno-unused -D_POSIX_SOURCE"
|
||||||
c_warnings="$warnings"
|
c_warnings="$warnings"
|
||||||
|
@ -181,13 +181,16 @@ check_cpu () {
|
|||||||
cc=$CC
|
cc=$CC
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cc_ver=`$cc --version | sed 1q`
|
# check if compiler is gcc and dump its version
|
||||||
cc_verno=`echo $cc_ver | sed -e 's/^.*(GCC)//g; s/[^0-9. ]//g; s/^ *//g; s/ .*//g'`
|
cc_verno=`$cc -dumpversion 2>/dev/null`
|
||||||
|
if test "x$?" = "x0" ; then
|
||||||
set -- `echo $cc_verno | tr '.' ' '`
|
set -- `echo $cc_verno | tr '.' ' '`
|
||||||
|
cc_ver="GCC"
|
||||||
cc_major=$1
|
cc_major=$1
|
||||||
cc_minor=$2
|
cc_minor=$2
|
||||||
cc_patch=$3
|
cc_patch=$3
|
||||||
cc_comp=`expr $cc_major '*' 100 '+' $cc_minor`
|
cc_comp=`expr $cc_major '*' 100 '+' $cc_minor`
|
||||||
|
fi
|
||||||
|
|
||||||
case "$cc_ver--$cc_verno" in
|
case "$cc_ver--$cc_verno" in
|
||||||
*GCC*)
|
*GCC*)
|
||||||
|
@ -37,6 +37,3 @@ uninstall-local:
|
|||||||
@RM@ -f $(DESTDIR)$(infodir)/mysql.info ; \
|
@RM@ -f $(DESTDIR)$(infodir)/mysql.info ; \
|
||||||
@RM@ -f $(DESTDIR)$(pkgdatadir)/ChangeLog ; \
|
@RM@ -f $(DESTDIR)$(pkgdatadir)/ChangeLog ; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -324,7 +324,7 @@ abi_check_all: $(TEST_PREPROCESSOR_HEADER)
|
|||||||
do_abi_check:
|
do_abi_check:
|
||||||
set -ex; \
|
set -ex; \
|
||||||
for file in $(abi_headers); do \
|
for file in $(abi_headers); do \
|
||||||
@CC@ -E -nostdinc -dI \
|
@CC@ -E -nostdinc -dI -DMYSQL_ABI_CHECK \
|
||||||
-I$(top_srcdir)/include \
|
-I$(top_srcdir)/include \
|
||||||
-I$(top_srcdir)/include/mysql \
|
-I$(top_srcdir)/include/mysql \
|
||||||
-I$(top_srcdir)/sql \
|
-I$(top_srcdir)/sql \
|
||||||
@ -340,6 +340,3 @@ do_abi_check:
|
|||||||
@DIFF@ -w $$file.pp $(top_builddir)/abi_check.out; \
|
@DIFF@ -w $$file.pp $(top_builddir)/abi_check.out; \
|
||||||
@RM@ $(top_builddir)/abi_check.out; \
|
@RM@ $(top_builddir)/abi_check.out; \
|
||||||
done
|
done
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -122,6 +122,3 @@ link_sources:
|
|||||||
rm -f $(srcdir)/my_user.c; \
|
rm -f $(srcdir)/my_user.c; \
|
||||||
@LN_CP_F@ $(top_srcdir)/sql-common/my_user.c my_user.c;
|
@LN_CP_F@ $(top_srcdir)/sql-common/my_user.c my_user.c;
|
||||||
echo timestamp > link_sources;
|
echo timestamp > link_sources;
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -3655,7 +3655,7 @@ xmlencode_print(const char *src, uint length)
|
|||||||
tee_fputs("NULL", PAGER);
|
tee_fputs("NULL", PAGER);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (const char *p = src; length; *p++, length--)
|
for (const char *p = src; length; p++, length--)
|
||||||
{
|
{
|
||||||
const char *t;
|
const char *t;
|
||||||
if ((t = array_value(xmlmeta, *p)))
|
if ((t = array_value(xmlmeta, *p)))
|
||||||
@ -4767,7 +4767,7 @@ static const char *construct_prompt()
|
|||||||
struct tm *t = localtime(&lclock);
|
struct tm *t = localtime(&lclock);
|
||||||
|
|
||||||
/* parse thru the settings for the prompt */
|
/* parse thru the settings for the prompt */
|
||||||
for (char *c = current_prompt; *c ; *c++)
|
for (char *c = current_prompt; *c ; c++)
|
||||||
{
|
{
|
||||||
if (*c != PROMPT_CHAR)
|
if (*c != PROMPT_CHAR)
|
||||||
processed_prompt.append(*c);
|
processed_prompt.append(*c);
|
||||||
|
@ -669,8 +669,7 @@ list_fields(MYSQL *mysql,const char *db,const char *table,
|
|||||||
char query[1024],*end;
|
char query[1024],*end;
|
||||||
MYSQL_RES *result;
|
MYSQL_RES *result;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
ulong rows;
|
ulong UNINIT_VAR(rows);
|
||||||
LINT_INIT(rows);
|
|
||||||
|
|
||||||
if (mysql_select_db(mysql,db))
|
if (mysql_select_db(mysql,db))
|
||||||
{
|
{
|
||||||
|
@ -5825,7 +5825,7 @@ int read_command(struct st_command** command_ptr)
|
|||||||
(struct st_command*) my_malloc(sizeof(*command),
|
(struct st_command*) my_malloc(sizeof(*command),
|
||||||
MYF(MY_WME|MY_ZEROFILL))) ||
|
MYF(MY_WME|MY_ZEROFILL))) ||
|
||||||
insert_dynamic(&q_lines, (uchar*) &command))
|
insert_dynamic(&q_lines, (uchar*) &command))
|
||||||
die(NullS);
|
die("Out of memory");
|
||||||
command->type= Q_UNKNOWN;
|
command->type= Q_UNKNOWN;
|
||||||
|
|
||||||
read_command_buf[0]= 0;
|
read_command_buf[0]= 0;
|
||||||
@ -6322,7 +6322,7 @@ void init_win_path_patterns()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (insert_dynamic(&patterns, (uchar*) &p))
|
if (insert_dynamic(&patterns, (uchar*) &p))
|
||||||
die(NullS);
|
die("Out of memory");
|
||||||
|
|
||||||
DBUG_PRINT("info", ("p: %s", p));
|
DBUG_PRINT("info", ("p: %s", p));
|
||||||
while (*p)
|
while (*p)
|
||||||
@ -9402,8 +9402,7 @@ REPLACE *init_replace(char * *from, char * *to,uint count,
|
|||||||
for (i=1 ; i <= found_sets ; i++)
|
for (i=1 ; i <= found_sets ; i++)
|
||||||
{
|
{
|
||||||
pos=from[found_set[i-1].table_offset];
|
pos=from[found_set[i-1].table_offset];
|
||||||
rep_str[i].found= !bcmp((const uchar*) pos,
|
rep_str[i].found= !memcmp(pos, "\\^", 3) ? 2 : 1;
|
||||||
(const uchar*) "\\^", 3) ? 2 : 1;
|
|
||||||
rep_str[i].replace_string=to_array[found_set[i-1].table_offset];
|
rep_str[i].replace_string=to_array[found_set[i-1].table_offset];
|
||||||
rep_str[i].to_offset=found_set[i-1].found_offset-start_at_word(pos);
|
rep_str[i].to_offset=found_set[i-1].found_offset-start_at_word(pos);
|
||||||
rep_str[i].from_offset=found_set[i-1].found_offset-replace_len(pos)+
|
rep_str[i].from_offset=found_set[i-1].found_offset-replace_len(pos)+
|
||||||
@ -9531,7 +9530,7 @@ void copy_bits(REP_SET *to,REP_SET *from)
|
|||||||
|
|
||||||
int cmp_bits(REP_SET *set1,REP_SET *set2)
|
int cmp_bits(REP_SET *set1,REP_SET *set2)
|
||||||
{
|
{
|
||||||
return bcmp((uchar*) set1->bits,(uchar*) set2->bits,
|
return memcmp(set1->bits, set2->bits,
|
||||||
sizeof(uint) * set1->size_of_bits);
|
sizeof(uint) * set1->size_of_bits);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9601,17 +9600,15 @@ int find_found(FOUND_SET *found_set,uint table_offset, int found_offset)
|
|||||||
|
|
||||||
uint start_at_word(char * pos)
|
uint start_at_word(char * pos)
|
||||||
{
|
{
|
||||||
return (((!bcmp((const uchar*) pos, (const uchar*) "\\b",2) && pos[2]) ||
|
return (((!memcmp(pos, "\\b",2) && pos[2]) ||
|
||||||
!bcmp((const uchar*) pos, (const uchar*) "\\^", 2)) ? 1 : 0);
|
!memcmp(pos, "\\^", 2)) ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint end_of_word(char * pos)
|
uint end_of_word(char * pos)
|
||||||
{
|
{
|
||||||
char * end=strend(pos);
|
char * end=strend(pos);
|
||||||
return ((end > pos+2 && !bcmp((const uchar*) end-2,
|
return ((end > pos+2 && !memcmp(end-2, "\\b", 2)) ||
|
||||||
(const uchar*) "\\b", 2)) ||
|
(end >= pos+2 && !memcmp(end-2, "\\$",2))) ? 1 : 0;
|
||||||
(end >= pos+2 && !bcmp((const uchar*) end-2,
|
|
||||||
(const uchar*) "\\$",2))) ? 1 : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
@ -19,6 +19,3 @@
|
|||||||
|
|
||||||
SUBDIRS= @readline_basedir@
|
SUBDIRS= @readline_basedir@
|
||||||
DIST_SUBDIRS= libedit readline
|
DIST_SUBDIRS= libedit readline
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -31,7 +31,7 @@ noinst_HEADERS = readline.h chardefs.h keymaps.h \
|
|||||||
|
|
||||||
EXTRA_DIST= emacs_keymap.c vi_keymap.c
|
EXTRA_DIST= emacs_keymap.c vi_keymap.c
|
||||||
|
|
||||||
DEFS = -DMYSQL_CLIENT_NO_THREADS -DHAVE_CONFIG_H -DNO_KILL_INTR
|
DEFS = -DMYSQL_CLIENT_NO_THREADS -DHAVE_CONFIG_H -DNO_KILL_INTR -D_GNU_SOURCE=1
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
# Don't update the files from bitkeeper
|
||||||
%::SCCS/s.%
|
%::SCCS/s.%
|
||||||
|
@ -318,7 +318,9 @@ _rl_input_available ()
|
|||||||
return (_kbhit ());
|
return (_kbhit ());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined (HAVE_SELECT)
|
||||||
return 0;
|
return 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
64
config/ac-macros/maintainer.m4
Normal file
64
config/ac-macros/maintainer.m4
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
#
|
||||||
|
# Control aspects of the development environment which are
|
||||||
|
# specific to MySQL maintainers and developers.
|
||||||
|
#
|
||||||
|
AC_DEFUN([MY_MAINTAINER_MODE], [
|
||||||
|
AC_MSG_CHECKING([whether to enable the maintainer-specific development environment])
|
||||||
|
AC_ARG_ENABLE([mysql-maintainer-mode],
|
||||||
|
[AS_HELP_STRING([--enable-mysql-maintainer-mode],
|
||||||
|
[Enable a MySQL maintainer-specific development environment])],
|
||||||
|
[USE_MYSQL_MAINTAINER_MODE=$enableval],
|
||||||
|
[USE_MYSQL_MAINTAINER_MODE=no])
|
||||||
|
AC_MSG_RESULT([$USE_MYSQL_MAINTAINER_MODE])
|
||||||
|
])
|
||||||
|
|
||||||
|
# Set warning options required under maintainer mode.
|
||||||
|
AC_DEFUN([MY_MAINTAINER_MODE_WARNINGS], [
|
||||||
|
# Setup GCC warning options.
|
||||||
|
AS_IF([test "$GCC" = "yes"], [
|
||||||
|
C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Werror"
|
||||||
|
CXX_WARNINGS="${C_WARNINGS} -Wno-unused-parameter"
|
||||||
|
])
|
||||||
|
|
||||||
|
# Test whether the warning options work.
|
||||||
|
# Test C options
|
||||||
|
AS_IF([test -n "$C_WARNINGS"], [
|
||||||
|
save_CFLAGS="$CFLAGS"
|
||||||
|
AC_MSG_CHECKING([whether to use C warning options ${C_WARNINGS}])
|
||||||
|
AC_LANG_PUSH(C)
|
||||||
|
CFLAGS="$CFLAGS ${C_WARNINGS}"
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [myac_c_warning_flags=yes],
|
||||||
|
[myac_c_warning_flags=no])
|
||||||
|
AC_LANG_POP()
|
||||||
|
AC_MSG_RESULT([$myac_c_warning_flags])
|
||||||
|
CFLAGS="$save_CFLAGS"
|
||||||
|
])
|
||||||
|
|
||||||
|
# Test C++ options
|
||||||
|
AS_IF([test -n "$CXX_WARNINGS"], [
|
||||||
|
save_CXXFLAGS="$CXXFLAGS"
|
||||||
|
AC_MSG_CHECKING([whether to use C++ warning options ${CXX_WARNINGS}])
|
||||||
|
AC_LANG_PUSH(C++)
|
||||||
|
CXXFLAGS="$CXXFLAGS ${CXX_WARNINGS}"
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [myac_cxx_warning_flags=yes],
|
||||||
|
[myac_cxx_warning_flags=no])
|
||||||
|
AC_LANG_POP()
|
||||||
|
AC_MSG_RESULT([$myac_cxx_warning_flags])
|
||||||
|
CXXFLAGS="$save_CXXFLAGS"
|
||||||
|
])
|
||||||
|
|
||||||
|
# Set compile flag variables.
|
||||||
|
AS_IF([test "$myac_c_warning_flags" = "yes"], [
|
||||||
|
AM_CFLAGS="${AM_CFLAGS} ${C_WARNINGS}"
|
||||||
|
AC_SUBST([AM_CFLAGS])])
|
||||||
|
AS_IF([test "$myac_cxx_warning_flags" = "yes"], [
|
||||||
|
AM_CXXFLAGS="${AM_CXXFLAGS} ${CXX_WARNINGS}"
|
||||||
|
AC_SUBST([AM_CXXFLAGS])])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# Set compiler flags required under maintainer mode.
|
||||||
|
AC_DEFUN([MY_MAINTAINER_MODE_SETUP], [
|
||||||
|
AS_IF([test "$USE_MYSQL_MAINTAINER_MODE" = "yes"],
|
||||||
|
[MY_MAINTAINER_MODE_WARNINGS])
|
||||||
|
])
|
16
configure.in
16
configure.in
@ -12,7 +12,7 @@ dnl
|
|||||||
dnl When changing the major version number please also check the switch
|
dnl When changing the major version number please also check the switch
|
||||||
dnl statement in mysqlbinlog::check_master_version(). You may also need
|
dnl statement in mysqlbinlog::check_master_version(). You may also need
|
||||||
dnl to update version.c in ndb.
|
dnl to update version.c in ndb.
|
||||||
AC_INIT([MariaDB Server], [5.1.49-MariaDB], [], [mysql])
|
AC_INIT([MariaDB Server], [5.1.50-MariaDB], [], [mysql])
|
||||||
|
|
||||||
AC_CONFIG_SRCDIR([sql/mysqld.cc])
|
AC_CONFIG_SRCDIR([sql/mysqld.cc])
|
||||||
AC_CANONICAL_SYSTEM
|
AC_CANONICAL_SYSTEM
|
||||||
@ -65,6 +65,7 @@ MYSQL_TCP_PORT_DEFAULT=3306
|
|||||||
MYSQL_UNIX_ADDR_DEFAULT="/tmp/mysql.sock"
|
MYSQL_UNIX_ADDR_DEFAULT="/tmp/mysql.sock"
|
||||||
|
|
||||||
dnl Include m4
|
dnl Include m4
|
||||||
|
sinclude(config/ac-macros/maintainer.m4)
|
||||||
sinclude(config/ac-macros/alloca.m4)
|
sinclude(config/ac-macros/alloca.m4)
|
||||||
sinclude(config/ac-macros/check_cpu.m4)
|
sinclude(config/ac-macros/check_cpu.m4)
|
||||||
sinclude(config/ac-macros/character_sets.m4)
|
sinclude(config/ac-macros/character_sets.m4)
|
||||||
@ -103,6 +104,8 @@ AC_SUBST(SHARED_LIB_MAJOR_VERSION)
|
|||||||
AC_SUBST(SHARED_LIB_VERSION)
|
AC_SUBST(SHARED_LIB_VERSION)
|
||||||
AC_SUBST(AVAILABLE_LANGUAGES)
|
AC_SUBST(AVAILABLE_LANGUAGES)
|
||||||
|
|
||||||
|
# Whether the maintainer mode should be enabled.
|
||||||
|
MY_MAINTAINER_MODE
|
||||||
|
|
||||||
# Canonicalize the configuration name.
|
# Canonicalize the configuration name.
|
||||||
|
|
||||||
@ -2892,7 +2895,13 @@ do
|
|||||||
done
|
done
|
||||||
AC_SUBST(sql_union_dirs)
|
AC_SUBST(sql_union_dirs)
|
||||||
|
|
||||||
# Some useful subst
|
#
|
||||||
|
# Setup maintainer mode options by the end to not disturb
|
||||||
|
# system and other checks.
|
||||||
|
#
|
||||||
|
MY_MAINTAINER_MODE_SETUP
|
||||||
|
|
||||||
|
# Some usefull subst
|
||||||
AC_SUBST(CC)
|
AC_SUBST(CC)
|
||||||
AC_SUBST(GXX)
|
AC_SUBST(GXX)
|
||||||
|
|
||||||
@ -2917,7 +2926,8 @@ fi
|
|||||||
|
|
||||||
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile dnl
|
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile dnl
|
||||||
unittest/Makefile unittest/mytap/Makefile unittest/mytap/t/Makefile dnl
|
unittest/Makefile unittest/mytap/Makefile unittest/mytap/t/Makefile dnl
|
||||||
unittest/mysys/Makefile unittest/examples/Makefile dnl
|
unittest/mysys/Makefile unittest/strings/Makefile dnl
|
||||||
|
unittest/examples/Makefile dnl
|
||||||
strings/Makefile regex/Makefile storage/Makefile dnl
|
strings/Makefile regex/Makefile storage/Makefile dnl
|
||||||
man/Makefile BUILD/Makefile vio/Makefile dnl
|
man/Makefile BUILD/Makefile vio/Makefile dnl
|
||||||
libmysql/Makefile libmysql_r/Makefile client/Makefile dnl
|
libmysql/Makefile libmysql_r/Makefile client/Makefile dnl
|
||||||
|
@ -65,6 +65,3 @@ output5.r: factorial
|
|||||||
# a hack to have executable in builddir, not in srcdir
|
# a hack to have executable in builddir, not in srcdir
|
||||||
tests-t: tests-t.pl
|
tests-t: tests-t.pl
|
||||||
cp -f $(srcdir)/tests-t.pl ./tests-t
|
cp -f $(srcdir)/tests-t.pl ./tests-t
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -55,6 +55,3 @@ EXTRA_DIST = CMakeLists.txt
|
|||||||
|
|
||||||
perror.o: perror.c
|
perror.o: perror.c
|
||||||
$(COMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
|
$(COMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -640,9 +640,9 @@ static struct message *find_message(struct errors *err, const char *lang,
|
|||||||
static ha_checksum checksum_format_specifier(const char* msg)
|
static ha_checksum checksum_format_specifier(const char* msg)
|
||||||
{
|
{
|
||||||
ha_checksum chksum= 0;
|
ha_checksum chksum= 0;
|
||||||
const char* p= msg;
|
const uchar* p= (const uchar*) msg;
|
||||||
const char* start= 0;
|
const uchar* start= NULL;
|
||||||
int num_format_specifiers= 0;
|
uint32 num_format_specifiers= 0;
|
||||||
while (*p)
|
while (*p)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -832,7 +832,6 @@ static struct message *parse_message_string(struct message *new_message,
|
|||||||
static struct errors *parse_error_string(char *str, int er_count)
|
static struct errors *parse_error_string(char *str, int er_count)
|
||||||
{
|
{
|
||||||
struct errors *new_error;
|
struct errors *new_error;
|
||||||
char *start;
|
|
||||||
DBUG_ENTER("parse_error_string");
|
DBUG_ENTER("parse_error_string");
|
||||||
DBUG_PRINT("enter", ("str: %s", str));
|
DBUG_PRINT("enter", ("str: %s", str));
|
||||||
|
|
||||||
@ -843,7 +842,6 @@ static struct errors *parse_error_string(char *str, int er_count)
|
|||||||
DBUG_RETURN(0); /* OOM: Fatal error */
|
DBUG_RETURN(0); /* OOM: Fatal error */
|
||||||
|
|
||||||
/* getting the error name */
|
/* getting the error name */
|
||||||
start= str;
|
|
||||||
str= skip_delimiters(str);
|
str= skip_delimiters(str);
|
||||||
|
|
||||||
if (!(new_error->er_name= get_word(&str)))
|
if (!(new_error->er_name= get_word(&str)))
|
||||||
|
@ -649,7 +649,7 @@ static REPLACE *init_replace(char * *from, char * *to,uint count,
|
|||||||
for (i=1 ; i <= found_sets ; i++)
|
for (i=1 ; i <= found_sets ; i++)
|
||||||
{
|
{
|
||||||
pos=from[found_set[i-1].table_offset];
|
pos=from[found_set[i-1].table_offset];
|
||||||
rep_str[i].found= (my_bool) (!bcmp(pos,"\\^",3) ? 2 : 1);
|
rep_str[i].found= (my_bool) (!memcmp(pos,"\\^",3) ? 2 : 1);
|
||||||
rep_str[i].replace_string=to_array[found_set[i-1].table_offset];
|
rep_str[i].replace_string=to_array[found_set[i-1].table_offset];
|
||||||
rep_str[i].to_offset=found_set[i-1].found_offset-start_at_word(pos);
|
rep_str[i].to_offset=found_set[i-1].found_offset-start_at_word(pos);
|
||||||
rep_str[i].from_offset=found_set[i-1].found_offset-replace_len(pos)+
|
rep_str[i].from_offset=found_set[i-1].found_offset-replace_len(pos)+
|
||||||
@ -777,7 +777,7 @@ static void copy_bits(REP_SET *to,REP_SET *from)
|
|||||||
|
|
||||||
static int cmp_bits(REP_SET *set1,REP_SET *set2)
|
static int cmp_bits(REP_SET *set1,REP_SET *set2)
|
||||||
{
|
{
|
||||||
return bcmp((uchar*) set1->bits,(uchar*) set2->bits,
|
return memcmp(set1->bits, set2->bits,
|
||||||
sizeof(uint) * set1->size_of_bits);
|
sizeof(uint) * set1->size_of_bits);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -850,14 +850,14 @@ static short find_found(FOUND_SET *found_set,uint table_offset,
|
|||||||
|
|
||||||
static uint start_at_word(char * pos)
|
static uint start_at_word(char * pos)
|
||||||
{
|
{
|
||||||
return (((!bcmp(pos,"\\b",2) && pos[2]) || !bcmp(pos,"\\^",2)) ? 1 : 0);
|
return (((!memcmp(pos,"\\b",2) && pos[2]) || !memcmp(pos,"\\^",2)) ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint end_of_word(char * pos)
|
static uint end_of_word(char * pos)
|
||||||
{
|
{
|
||||||
char * end=strend(pos);
|
char * end=strend(pos);
|
||||||
return ((end > pos+2 && !bcmp(end-2,"\\b",2)) ||
|
return ((end > pos+2 && !memcmp(end-2,"\\b",2)) ||
|
||||||
(end >= pos+2 && !bcmp(end-2,"\\$",2))) ?
|
(end >= pos+2 && !memcmp(end-2,"\\$",2))) ?
|
||||||
1 : 0;
|
1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -884,21 +884,19 @@ void Alert::Process(input_buffer& input, SSL& ssl)
|
|||||||
else
|
else
|
||||||
hmac(ssl, verify, data, aSz, alert, true);
|
hmac(ssl, verify, data, aSz, alert, true);
|
||||||
|
|
||||||
// read mac and fill
|
// read mac and skip fill
|
||||||
int digestSz = ssl.getCrypto().get_digest().get_digestSize();
|
int digestSz = ssl.getCrypto().get_digest().get_digestSize();
|
||||||
opaque mac[SHA_LEN];
|
opaque mac[SHA_LEN];
|
||||||
input.read(mac, digestSz);
|
input.read(mac, digestSz);
|
||||||
|
|
||||||
if (ssl.getSecurity().get_parms().cipher_type_ == block) {
|
if (ssl.getSecurity().get_parms().cipher_type_ == block) {
|
||||||
int ivExtra = 0;
|
int ivExtra = 0;
|
||||||
opaque fill;
|
|
||||||
|
|
||||||
if (ssl.isTLSv1_1())
|
if (ssl.isTLSv1_1())
|
||||||
ivExtra = ssl.getCrypto().get_cipher().get_blockSize();
|
ivExtra = ssl.getCrypto().get_cipher().get_blockSize();
|
||||||
int padSz = ssl.getSecurity().get_parms().encrypt_size_ - ivExtra -
|
int padSz = ssl.getSecurity().get_parms().encrypt_size_ - ivExtra -
|
||||||
aSz - digestSz;
|
aSz - digestSz;
|
||||||
for (int i = 0; i < padSz; i++)
|
input.set_current(input.get_current() + padSz);
|
||||||
fill = input[AUTO];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// verify
|
// verify
|
||||||
@ -981,17 +979,17 @@ output_buffer& operator<<(output_buffer& output, const Data& data)
|
|||||||
void Data::Process(input_buffer& input, SSL& ssl)
|
void Data::Process(input_buffer& input, SSL& ssl)
|
||||||
{
|
{
|
||||||
int msgSz = ssl.getSecurity().get_parms().encrypt_size_;
|
int msgSz = ssl.getSecurity().get_parms().encrypt_size_;
|
||||||
int pad = 0, padByte = 0;
|
int pad = 0, padSz = 0;
|
||||||
int ivExtra = 0;
|
int ivExtra = 0;
|
||||||
|
|
||||||
if (ssl.getSecurity().get_parms().cipher_type_ == block) {
|
if (ssl.getSecurity().get_parms().cipher_type_ == block) {
|
||||||
if (ssl.isTLSv1_1()) // IV
|
if (ssl.isTLSv1_1()) // IV
|
||||||
ivExtra = ssl.getCrypto().get_cipher().get_blockSize();
|
ivExtra = ssl.getCrypto().get_cipher().get_blockSize();
|
||||||
pad = *(input.get_buffer() + input.get_current() + msgSz -ivExtra - 1);
|
pad = *(input.get_buffer() + input.get_current() + msgSz -ivExtra - 1);
|
||||||
padByte = 1;
|
padSz = 1;
|
||||||
}
|
}
|
||||||
int digestSz = ssl.getCrypto().get_digest().get_digestSize();
|
int digestSz = ssl.getCrypto().get_digest().get_digestSize();
|
||||||
int dataSz = msgSz - ivExtra - digestSz - pad - padByte;
|
int dataSz = msgSz - ivExtra - digestSz - pad - padSz;
|
||||||
opaque verify[SHA_LEN];
|
opaque verify[SHA_LEN];
|
||||||
|
|
||||||
const byte* rawData = input.get_buffer() + input.get_current();
|
const byte* rawData = input.get_buffer() + input.get_current();
|
||||||
@ -1020,14 +1018,10 @@ void Data::Process(input_buffer& input, SSL& ssl)
|
|||||||
hmac(ssl, verify, rawData, dataSz, application_data, true);
|
hmac(ssl, verify, rawData, dataSz, application_data, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// read mac and fill
|
// read mac and skip fill
|
||||||
opaque mac[SHA_LEN];
|
opaque mac[SHA_LEN];
|
||||||
opaque fill;
|
|
||||||
input.read(mac, digestSz);
|
input.read(mac, digestSz);
|
||||||
for (int i = 0; i < pad; i++)
|
input.set_current(input.get_current() + pad + padSz);
|
||||||
fill = input[AUTO];
|
|
||||||
if (padByte)
|
|
||||||
fill = input[AUTO];
|
|
||||||
|
|
||||||
// verify
|
// verify
|
||||||
if (dataSz) {
|
if (dataSz) {
|
||||||
@ -2072,11 +2066,9 @@ void Finished::Process(input_buffer& input, SSL& ssl)
|
|||||||
if (ssl.isTLSv1_1())
|
if (ssl.isTLSv1_1())
|
||||||
ivExtra = ssl.getCrypto().get_cipher().get_blockSize();
|
ivExtra = ssl.getCrypto().get_cipher().get_blockSize();
|
||||||
|
|
||||||
opaque fill;
|
|
||||||
int padSz = ssl.getSecurity().get_parms().encrypt_size_ - ivExtra -
|
int padSz = ssl.getSecurity().get_parms().encrypt_size_ - ivExtra -
|
||||||
HANDSHAKE_HEADER - finishedSz - digestSz;
|
HANDSHAKE_HEADER - finishedSz - digestSz;
|
||||||
for (int i = 0; i < padSz; i++)
|
input.set_current(input.get_current() + padSz);
|
||||||
fill = input[AUTO];
|
|
||||||
|
|
||||||
// verify mac
|
// verify mac
|
||||||
if (memcmp(mac, verifyMAC, digestSz)) {
|
if (memcmp(mac, verifyMAC, digestSz)) {
|
||||||
|
@ -51,7 +51,7 @@ public:
|
|||||||
enum { BLOCK_SIZE = BLOWFISH_BLOCK_SIZE, ROUNDS = 16 };
|
enum { BLOCK_SIZE = BLOWFISH_BLOCK_SIZE, ROUNDS = 16 };
|
||||||
|
|
||||||
Blowfish(CipherDir DIR, Mode MODE)
|
Blowfish(CipherDir DIR, Mode MODE)
|
||||||
: Mode_BASE(BLOCK_SIZE, DIR, MODE) {}
|
: Mode_BASE(BLOCK_SIZE, DIR, MODE), sbox_(pbox_ + ROUNDS + 2) {}
|
||||||
|
|
||||||
#ifdef DO_BLOWFISH_ASM
|
#ifdef DO_BLOWFISH_ASM
|
||||||
void Process(byte*, const byte*, word32);
|
void Process(byte*, const byte*, word32);
|
||||||
@ -62,8 +62,8 @@ private:
|
|||||||
static const word32 p_init_[ROUNDS + 2];
|
static const word32 p_init_[ROUNDS + 2];
|
||||||
static const word32 s_init_[4 * 256];
|
static const word32 s_init_[4 * 256];
|
||||||
|
|
||||||
word32 pbox_[ROUNDS + 2];
|
word32 pbox_[ROUNDS + 2 + 4 * 256];
|
||||||
word32 sbox_[4 * 256];
|
word32* sbox_;
|
||||||
|
|
||||||
void crypt_block(const word32 in[2], word32 out[2]) const;
|
void crypt_block(const word32 in[2], word32 out[2]) const;
|
||||||
void AsmProcess(const byte* in, byte* out) const;
|
void AsmProcess(const byte* in, byte* out) const;
|
||||||
|
@ -35,10 +35,7 @@
|
|||||||
|
|
||||||
// Handler for pure virtual functions
|
// Handler for pure virtual functions
|
||||||
namespace __Crun {
|
namespace __Crun {
|
||||||
static void pure_error(void)
|
void pure_error(void);
|
||||||
{
|
|
||||||
assert("Pure virtual method called." == "Aborted");
|
|
||||||
}
|
|
||||||
} // namespace __Crun
|
} // namespace __Crun
|
||||||
|
|
||||||
#endif // __sun
|
#endif // __sun
|
||||||
@ -54,16 +51,7 @@ extern "C" {
|
|||||||
#else
|
#else
|
||||||
#include "kernelc.hpp"
|
#include "kernelc.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
int __cxa_pure_virtual () __attribute__ ((weak));
|
||||||
/* Disallow inline __cxa_pure_virtual() */
|
|
||||||
static int __cxa_pure_virtual() __attribute__((noinline, used));
|
|
||||||
static int __cxa_pure_virtual()
|
|
||||||
{
|
|
||||||
// oops, pure virtual called!
|
|
||||||
assert("Pure virtual method called." == "Aborted");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
|
|
||||||
#endif // __GNUC__ > 2
|
#endif // __GNUC__ > 2
|
||||||
|
@ -185,10 +185,10 @@ Integer AbstractGroup::CascadeScalarMultiply(const Element &x,
|
|||||||
|
|
||||||
struct WindowSlider
|
struct WindowSlider
|
||||||
{
|
{
|
||||||
WindowSlider(const Integer &exp, bool fastNegate,
|
WindowSlider(const Integer &expIn, bool fastNegateIn,
|
||||||
unsigned int windowSizeIn=0)
|
unsigned int windowSizeIn=0)
|
||||||
: exp(exp), windowModulus(Integer::One()), windowSize(windowSizeIn),
|
: exp(expIn), windowModulus(Integer::One()), windowSize(windowSizeIn),
|
||||||
windowBegin(0), fastNegate(fastNegate), firstTime(true),
|
windowBegin(0), fastNegate(fastNegateIn), firstTime(true),
|
||||||
finished(false)
|
finished(false)
|
||||||
{
|
{
|
||||||
if (windowSize == 0)
|
if (windowSize == 0)
|
||||||
|
@ -185,7 +185,7 @@ void Base64Decoder::Decode()
|
|||||||
{
|
{
|
||||||
word32 bytes = coded_.size();
|
word32 bytes = coded_.size();
|
||||||
word32 plainSz = bytes - ((bytes + (pemLineSz - 1)) / pemLineSz);
|
word32 plainSz = bytes - ((bytes + (pemLineSz - 1)) / pemLineSz);
|
||||||
plainSz = (plainSz * 3 + 3) / 4;
|
plainSz = ((plainSz * 3) / 4) + 3;
|
||||||
decoded_.New(plainSz);
|
decoded_.New(plainSz);
|
||||||
|
|
||||||
word32 i = 0;
|
word32 i = 0;
|
||||||
|
@ -283,12 +283,7 @@ DWord() {}
|
|||||||
word GetHighHalfAsBorrow() const {return 0-halfs_.high;}
|
word GetHighHalfAsBorrow() const {return 0-halfs_.high;}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
union
|
struct dword_struct
|
||||||
{
|
|
||||||
#ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
|
|
||||||
dword whole_;
|
|
||||||
#endif
|
|
||||||
struct
|
|
||||||
{
|
{
|
||||||
#ifdef LITTLE_ENDIAN_ORDER
|
#ifdef LITTLE_ENDIAN_ORDER
|
||||||
word low;
|
word low;
|
||||||
@ -297,7 +292,14 @@ private:
|
|||||||
word high;
|
word high;
|
||||||
word low;
|
word low;
|
||||||
#endif
|
#endif
|
||||||
} halfs_;
|
};
|
||||||
|
|
||||||
|
union
|
||||||
|
{
|
||||||
|
#ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
|
||||||
|
dword whole_;
|
||||||
|
#endif
|
||||||
|
struct dword_struct halfs_;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1214,20 +1216,24 @@ public:
|
|||||||
#define AS1(x) #x ";"
|
#define AS1(x) #x ";"
|
||||||
#define AS2(x, y) #x ", " #y ";"
|
#define AS2(x, y) #x ", " #y ";"
|
||||||
#define AddPrologue \
|
#define AddPrologue \
|
||||||
|
word res; \
|
||||||
__asm__ __volatile__ \
|
__asm__ __volatile__ \
|
||||||
( \
|
( \
|
||||||
"push %%ebx;" /* save this manually, in case of -fPIC */ \
|
"push %%ebx;" /* save this manually, in case of -fPIC */ \
|
||||||
"mov %2, %%ebx;" \
|
"mov %3, %%ebx;" \
|
||||||
".intel_syntax noprefix;" \
|
".intel_syntax noprefix;" \
|
||||||
"push ebp;"
|
"push ebp;"
|
||||||
#define AddEpilogue \
|
#define AddEpilogue \
|
||||||
"pop ebp;" \
|
"pop ebp;" \
|
||||||
".att_syntax prefix;" \
|
".att_syntax prefix;" \
|
||||||
"pop %%ebx;" \
|
"pop %%ebx;" \
|
||||||
: \
|
"mov %%eax, %0;" \
|
||||||
|
: "=g" (res) \
|
||||||
: "c" (C), "d" (A), "m" (B), "S" (N) \
|
: "c" (C), "d" (A), "m" (B), "S" (N) \
|
||||||
: "%edi", "memory", "cc" \
|
: "%edi", "memory", "cc" \
|
||||||
);
|
); \
|
||||||
|
return res;
|
||||||
|
|
||||||
#define MulPrologue \
|
#define MulPrologue \
|
||||||
__asm__ __volatile__ \
|
__asm__ __volatile__ \
|
||||||
( \
|
( \
|
||||||
|
@ -84,12 +84,23 @@ namespace STL = STL_NAMESPACE;
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__ICC) || defined(__INTEL_COMPILER)
|
#ifdef __sun
|
||||||
|
|
||||||
|
// Handler for pure virtual functions
|
||||||
|
namespace __Crun {
|
||||||
|
void pure_error() {
|
||||||
|
assert(!"Aborted: pure virtual method called.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__ICC) || defined(__INTEL_COMPILER) || (__GNUC__ > 2)
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
int __cxa_pure_virtual() {
|
int __cxa_pure_virtual() {
|
||||||
assert("Pure virtual method called." == "Aborted");
|
assert(!"Aborted: pure virtual method called.");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,7 +187,6 @@ word Crop(word value, unsigned int size)
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
bool HaveCpuId()
|
bool HaveCpuId()
|
||||||
{
|
{
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
|
@ -160,6 +160,11 @@ inline void err_sys(const char* msg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
static int PasswordCallBack(char*, int, int, void*);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int PasswordCallBack(char* passwd, int sz, int rw, void* userdata)
|
static int PasswordCallBack(char* passwd, int sz, int rw, void* userdata)
|
||||||
{
|
{
|
||||||
strncpy(passwd, "12345678", sz);
|
strncpy(passwd, "12345678", sz);
|
||||||
|
@ -40,7 +40,8 @@ noinst_HEADERS = config-win.h config-netware.h lf.h my_bit.h \
|
|||||||
my_vle.h my_user.h my_atomic.h atomic/nolock.h \
|
my_vle.h my_user.h my_atomic.h atomic/nolock.h \
|
||||||
atomic/rwlock.h atomic/x86-gcc.h atomic/generic-msvc.h \
|
atomic/rwlock.h atomic/x86-gcc.h atomic/generic-msvc.h \
|
||||||
atomic/gcc_builtins.h my_libwrap.h my_stacktrace.h \
|
atomic/gcc_builtins.h my_libwrap.h my_stacktrace.h \
|
||||||
wqueue.h waiting_threads.h
|
wqueue.h waiting_threads.h my_compiler.h
|
||||||
|
|
||||||
EXTRA_DIST = mysql.h.pp mysql/plugin.h.pp
|
EXTRA_DIST = mysql.h.pp mysql/plugin.h.pp
|
||||||
|
|
||||||
# Remove built files and the symlinked directories
|
# Remove built files and the symlinked directories
|
||||||
@ -68,6 +69,3 @@ my_config.h: config.h
|
|||||||
# generated by configure from the .h.in files
|
# generated by configure from the .h.in files
|
||||||
dist-hook:
|
dist-hook:
|
||||||
$(RM) -f $(distdir)/mysql_version.h $(distdir)/my_config.h
|
$(RM) -f $(distdir)/mysql_version.h $(distdir)/my_config.h
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -33,10 +33,6 @@
|
|||||||
/* need by my_vsnprintf */
|
/* need by my_vsnprintf */
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
#ifdef _AIX
|
|
||||||
#undef HAVE_BCMP
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This is needed for the definitions of bzero... on solaris */
|
/* This is needed for the definitions of bzero... on solaris */
|
||||||
#if defined(HAVE_STRINGS_H)
|
#if defined(HAVE_STRINGS_H)
|
||||||
#include <strings.h>
|
#include <strings.h>
|
||||||
@ -114,7 +110,7 @@ extern void bfill(uchar *dst,size_t len,pchar fill);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(bzero) && !defined(HAVE_BZERO)
|
#if !defined(bzero) && !defined(HAVE_BZERO)
|
||||||
extern void bzero(uchar * dst,size_t len);
|
extern void bzero(void * dst,size_t len);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(bcmp) && !defined(HAVE_BCMP)
|
#if !defined(bcmp) && !defined(HAVE_BCMP)
|
||||||
|
@ -161,22 +161,6 @@ static inline my_bool bitmap_cmp(const MY_BITMAP *map1, const MY_BITMAP *map2)
|
|||||||
#define bitmap_set_all(MAP) \
|
#define bitmap_set_all(MAP) \
|
||||||
(memset((MAP)->bitmap, 0xFF, 4*no_words_in_map((MAP))))
|
(memset((MAP)->bitmap, 0xFF, 4*no_words_in_map((MAP))))
|
||||||
|
|
||||||
/**
|
|
||||||
check, set and clear a bit of interest of an integer.
|
|
||||||
|
|
||||||
If the bit is out of range @retval -1. Otherwise
|
|
||||||
bit_is_set @return 0 or 1 reflecting the bit is set or not;
|
|
||||||
bit_do_set @return 1 (bit is set 1)
|
|
||||||
bit_do_clear @return 0 (bit is cleared to 0)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define bit_is_set(I,B) (sizeof(I) * CHAR_BIT > (B) ? \
|
|
||||||
(((I) & (ULL(1) << (B))) == 0 ? 0 : 1) : -1)
|
|
||||||
#define bit_do_set(I,B) (sizeof(I) * CHAR_BIT > (B) ? \
|
|
||||||
((I) |= (ULL(1) << (B)), 1) : -1)
|
|
||||||
#define bit_do_clear(I,B) (sizeof(I) * CHAR_BIT > (B) ? \
|
|
||||||
((I) &= ~(ULL(1) << (B)), 0) : -1)
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
129
include/my_compiler.h
Normal file
129
include/my_compiler.h
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
#ifndef MY_COMPILER_INCLUDED
|
||||||
|
#define MY_COMPILER_INCLUDED
|
||||||
|
|
||||||
|
/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; version 2 of the License.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
|
||||||
|
|
||||||
|
/**
|
||||||
|
Header for compiler-dependent features.
|
||||||
|
|
||||||
|
Intended to contain a set of reusable wrappers for preprocessor
|
||||||
|
macros, attributes, pragmas, and any other features that are
|
||||||
|
specific to a target compiler.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <my_global.h> /* stddef.h offsetof */
|
||||||
|
|
||||||
|
/**
|
||||||
|
Compiler-dependent internal convenience macros.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* GNU C/C++ */
|
||||||
|
#if defined __GNUC__
|
||||||
|
/* Any after 2.95... */
|
||||||
|
# define MY_ALIGN_EXT
|
||||||
|
|
||||||
|
/* Microsoft Visual C++ */
|
||||||
|
#elif defined _MSC_VER
|
||||||
|
# define MY_ALIGNOF(type) __alignof(type)
|
||||||
|
# define MY_ALIGNED(n) __declspec(align(n))
|
||||||
|
|
||||||
|
/* Oracle Solaris Studio */
|
||||||
|
#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
|
||||||
|
# if __SUNPRO_C >= 0x590
|
||||||
|
# define MY_ALIGN_EXT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* IBM XL C/C++ */
|
||||||
|
#elif defined __xlC__
|
||||||
|
# if __xlC__ >= 0x0600
|
||||||
|
# define MY_ALIGN_EXT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* HP aCC */
|
||||||
|
#elif defined(__HP_aCC) || defined(__HP_cc)
|
||||||
|
# if (__HP_aCC >= 60000) || (__HP_cc >= 60000)
|
||||||
|
# define MY_ALIGN_EXT
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MY_ALIGN_EXT
|
||||||
|
/** Specifies the minimum alignment of a type. */
|
||||||
|
# define MY_ALIGNOF(type) __alignof__(type)
|
||||||
|
/** Determine the alignment requirement of a type. */
|
||||||
|
# define MY_ALIGNED(n) __attribute__((__aligned__((n))))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
Generic compiler-dependent features.
|
||||||
|
*/
|
||||||
|
#ifndef MY_ALIGNOF
|
||||||
|
# ifdef __cplusplus
|
||||||
|
template<typename type> struct my_alignof_helper { char m1; type m2; };
|
||||||
|
/* Invalid for non-POD types, but most compilers give the right answer. */
|
||||||
|
# define MY_ALIGNOF(type) offsetof(my_alignof_helper<type>, m2)
|
||||||
|
# else
|
||||||
|
# define MY_ALIGNOF(type) offsetof(struct { char m1; type m2; }, m2)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
C++ Type Traits
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
/**
|
||||||
|
Opaque storage with a particular alignment.
|
||||||
|
*/
|
||||||
|
# if defined(MY_ALIGNED)
|
||||||
|
/* Partial specialization used due to MSVC++. */
|
||||||
|
template<size_t alignment> struct my_alignment_imp;
|
||||||
|
template<> struct MY_ALIGNED(1) my_alignment_imp<1> {};
|
||||||
|
template<> struct MY_ALIGNED(2) my_alignment_imp<2> {};
|
||||||
|
template<> struct MY_ALIGNED(4) my_alignment_imp<4> {};
|
||||||
|
template<> struct MY_ALIGNED(8) my_alignment_imp<8> {};
|
||||||
|
template<> struct MY_ALIGNED(16) my_alignment_imp<16> {};
|
||||||
|
/* ... expand as necessary. */
|
||||||
|
# else
|
||||||
|
template<size_t alignment>
|
||||||
|
struct my_alignment_imp { double m1; };
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
A POD type with a given size and alignment.
|
||||||
|
|
||||||
|
@remark If the compiler does not support a alignment attribute
|
||||||
|
(MY_ALIGN macro), the default alignment of a double is
|
||||||
|
used instead.
|
||||||
|
|
||||||
|
@tparam size The minimum size.
|
||||||
|
@tparam alignment The desired alignment: 1, 2, 4, 8 or 16.
|
||||||
|
*/
|
||||||
|
template <size_t size, size_t alignment>
|
||||||
|
struct my_aligned_storage
|
||||||
|
{
|
||||||
|
union
|
||||||
|
{
|
||||||
|
char data[size];
|
||||||
|
my_alignment_imp<alignment> align;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
#include <my_attribute.h>
|
||||||
|
|
||||||
|
#endif /* MY_COMPILER_INCLUDED */
|
@ -567,31 +567,43 @@ int __void__;
|
|||||||
#endif
|
#endif
|
||||||
#endif /* DONT_DEFINE_VOID */
|
#endif /* DONT_DEFINE_VOID */
|
||||||
|
|
||||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS)
|
/*
|
||||||
#define LINT_INIT(var) var=0 /* No uninitialize-warning */
|
Try to suppress warning for not initialized variables.
|
||||||
|
|
||||||
|
With gcc when using C, we suppress the uninitialized variable warning
|
||||||
|
without generating code. We can't do this with C++
|
||||||
|
for a g++ bug (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772).
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(FORCE_INIT_OF_VARS)
|
||||||
|
#define LINT_INIT(var) var= 0
|
||||||
|
#if defined(__cplusplus) || !defined(__GNUC__)
|
||||||
|
#define UNINIT_VAR(x) x= 0
|
||||||
#else
|
#else
|
||||||
#define LINT_INIT(var)
|
/* GCC specific self-initialization which inhibits the warning. */
|
||||||
|
#define UNINIT_VAR(x) x= x
|
||||||
#endif
|
#endif
|
||||||
|
#else /* !FORCE_INIT_OF_VARS */
|
||||||
|
#define LINT_INIT(var)
|
||||||
|
#if !defined(__cplusplus) && !defined(__GNUC__)
|
||||||
|
/* GCC specific self-initialization which inhibits the warning. */
|
||||||
|
#define UNINIT_VAR(x) x= x
|
||||||
|
#else
|
||||||
|
#define UNINIT_VAR(x) x
|
||||||
|
#endif
|
||||||
|
#endif /* FORCE_INIT_OF_VARS */
|
||||||
|
|
||||||
#include <my_valgrind.h>
|
#include <my_valgrind.h>
|
||||||
|
|
||||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(HAVE_valgrind)
|
/*
|
||||||
|
The following is to force some unitialized variables to 0 if we are
|
||||||
|
running valgrind. This is needed when the compiler may access the variable
|
||||||
|
even if the value of it is never used.
|
||||||
|
*/
|
||||||
|
#if defined(HAVE_valgrind)
|
||||||
#define VALGRIND_OR_LINT_INIT(var) var=0
|
#define VALGRIND_OR_LINT_INIT(var) var=0
|
||||||
#else
|
#else
|
||||||
#define VALGRIND_OR_LINT_INIT(var)
|
#define VALGRIND_OR_LINT_INIT(var) LINT_INIT(var)
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
Suppress uninitialized variable warning without generating code.
|
|
||||||
|
|
||||||
The _cplusplus is a temporary workaround for C++ code pending a fix
|
|
||||||
for a g++ bug (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772).
|
|
||||||
*/
|
|
||||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(__cplusplus) || \
|
|
||||||
!defined(__GNUC__)
|
|
||||||
#define UNINIT_VAR(x) x= 0
|
|
||||||
#else
|
|
||||||
#define UNINIT_VAR(x) x= x
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Define some useful general macros */
|
/* Define some useful general macros */
|
||||||
@ -613,8 +625,8 @@ typedef unsigned short ushort;
|
|||||||
#define test(a) ((a) ? 1 : 0)
|
#define test(a) ((a) ? 1 : 0)
|
||||||
#define set_if_bigger(a,b) do { if ((a) < (b)) (a)=(b); } while(0)
|
#define set_if_bigger(a,b) do { if ((a) < (b)) (a)=(b); } while(0)
|
||||||
#define set_if_smaller(a,b) do { if ((a) > (b)) (a)=(b); } while(0)
|
#define set_if_smaller(a,b) do { if ((a) > (b)) (a)=(b); } while(0)
|
||||||
#define test_all_bits(a,b) (((a) & (b)) == (b))
|
|
||||||
#define set_bits(type, bit_count) (sizeof(type)*8 <= (bit_count) ? ~(type) 0 : ((((type) 1) << (bit_count)) - (type) 1))
|
#define set_bits(type, bit_count) (sizeof(type)*8 <= (bit_count) ? ~(type) 0 : ((((type) 1) << (bit_count)) - (type) 1))
|
||||||
|
#define test_all_bits(a,b) (((a) & (b)) == (b))
|
||||||
#define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0])))
|
#define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0])))
|
||||||
|
|
||||||
/* Define some general constants */
|
/* Define some general constants */
|
||||||
@ -635,7 +647,7 @@ typedef unsigned short ushort;
|
|||||||
#define my_const_cast(A) (A)
|
#define my_const_cast(A) (A)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <my_attribute.h>
|
#include <my_compiler.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Wen using the embedded library, users might run into link problems,
|
Wen using the embedded library, users might run into link problems,
|
||||||
@ -671,7 +683,7 @@ C_MODE_END
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef char my_bool; /* Small bool */
|
typedef char my_bool; /* Small bool; Needed by my_dbug.h */
|
||||||
#include <my_dbug.h>
|
#include <my_dbug.h>
|
||||||
|
|
||||||
#define MIN_ARRAY_SIZE 0 /* Zero or One. Gcc allows zero*/
|
#define MIN_ARRAY_SIZE 0 /* Zero or One. Gcc allows zero*/
|
||||||
@ -950,13 +962,11 @@ typedef long long my_ptrdiff_t;
|
|||||||
#define ALIGN_MAX_UNIT (sizeof(double))
|
#define ALIGN_MAX_UNIT (sizeof(double))
|
||||||
/* Size to make adressable obj. */
|
/* Size to make adressable obj. */
|
||||||
#define ALIGN_PTR(A, t) ((t*) MY_ALIGN((A), sizeof(double)))
|
#define ALIGN_PTR(A, t) ((t*) MY_ALIGN((A), sizeof(double)))
|
||||||
|
/* Offset of field f in structure t */
|
||||||
#define OFFSET(t, f) ((size_t)(char *)&((t *)0)->f)
|
#define OFFSET(t, f) ((size_t)(char *)&((t *)0)->f)
|
||||||
#define ADD_TO_PTR(ptr,size,type) (type) ((uchar*) (ptr)+size)
|
#define ADD_TO_PTR(ptr,size,type) (type) ((uchar*) (ptr)+size)
|
||||||
#define PTR_BYTE_DIFF(A,B) (my_ptrdiff_t) ((uchar*) (A) - (uchar*) (B))
|
#define PTR_BYTE_DIFF(A,B) (my_ptrdiff_t) ((uchar*) (A) - (uchar*) (B))
|
||||||
|
|
||||||
#define MY_DIV_UP(A, B) (((A) + (B) - 1) / (B))
|
|
||||||
#define MY_ALIGNED_BYTE_ARRAY(N, S, T) T N[MY_DIV_UP(S, sizeof(T))]
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Custom version of standard offsetof() macro which can be used to get
|
Custom version of standard offsetof() macro which can be used to get
|
||||||
offsets of members in class for non-POD types (according to the current
|
offsets of members in class for non-POD types (according to the current
|
||||||
|
@ -274,13 +274,14 @@ int sigwait(sigset_t *setp, int *sigp); /* Use our implemention */
|
|||||||
we want to make sure that no such flags are set.
|
we want to make sure that no such flags are set.
|
||||||
*/
|
*/
|
||||||
#if defined(HAVE_SIGACTION) && !defined(my_sigset)
|
#if defined(HAVE_SIGACTION) && !defined(my_sigset)
|
||||||
#define my_sigset(A,B) do { struct sigaction l_s; sigset_t l_set; int l_rc; \
|
#define my_sigset(A,B) do { struct sigaction l_s; sigset_t l_set; \
|
||||||
|
IF_DBUG(int l_rc); \
|
||||||
DBUG_ASSERT((A) != 0); \
|
DBUG_ASSERT((A) != 0); \
|
||||||
sigemptyset(&l_set); \
|
sigemptyset(&l_set); \
|
||||||
l_s.sa_handler = (B); \
|
l_s.sa_handler = (B); \
|
||||||
l_s.sa_mask = l_set; \
|
l_s.sa_mask = l_set; \
|
||||||
l_s.sa_flags = 0; \
|
l_s.sa_flags = 0; \
|
||||||
l_rc= sigaction((A), &l_s, (struct sigaction *) NULL);\
|
IF_DBUG(l_rc=) sigaction((A), &l_s, NULL); \
|
||||||
DBUG_ASSERT(l_rc == 0); \
|
DBUG_ASSERT(l_rc == 0); \
|
||||||
} while (0)
|
} while (0)
|
||||||
#elif defined(HAVE_SIGSET) && !defined(my_sigset)
|
#elif defined(HAVE_SIGSET) && !defined(my_sigset)
|
||||||
@ -755,7 +756,7 @@ extern uint thd_lib_detected;
|
|||||||
The implementation is guaranteed to be thread safe, on all platforms.
|
The implementation is guaranteed to be thread safe, on all platforms.
|
||||||
Note that the calling code should *not* assume the counter is protected
|
Note that the calling code should *not* assume the counter is protected
|
||||||
by the mutex given, as the implementation of these helpers may change
|
by the mutex given, as the implementation of these helpers may change
|
||||||
to use my_atomic operations instead.
|
to use atomic operations instead.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -44,7 +44,9 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef _global_h /* If not standard header */
|
#ifndef _global_h /* If not standard header */
|
||||||
|
#ifndef MYSQL_ABI_CHECK
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
#ifdef __LCC__
|
#ifdef __LCC__
|
||||||
#include <winsock2.h> /* For windows */
|
#include <winsock2.h> /* For windows */
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#include <sys/types.h>
|
|
||||||
typedef char my_bool;
|
typedef char my_bool;
|
||||||
typedef int my_socket;
|
typedef int my_socket;
|
||||||
#include "mysql_version.h"
|
#include "mysql_version.h"
|
||||||
|
@ -62,10 +62,12 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */
|
|||||||
#define EE_UNKNOWN_COLLATION 28
|
#define EE_UNKNOWN_COLLATION 28
|
||||||
#define EE_FILENOTFOUND 29
|
#define EE_FILENOTFOUND 29
|
||||||
#define EE_FILE_NOT_CLOSED 30
|
#define EE_FILE_NOT_CLOSED 30
|
||||||
#define EE_CANT_CHMOD 31
|
#define EE_CHANGE_OWNERSHIP 31
|
||||||
#define EE_CANT_SEEK 32
|
#define EE_CHANGE_PERMISSIONS 32
|
||||||
#define EE_CANT_COPY_OWNERSHIP 33
|
#define EE_CANT_CHMOD 33
|
||||||
#define EE_ERROR_LAST 33 /* Copy last error nr */
|
#define EE_CANT_SEEK 34
|
||||||
|
#define EE_CANT_COPY_OWNERSHIP 35
|
||||||
|
#define EE_ERROR_LAST 35 /* Copy last error nr */
|
||||||
/* Add error numbers before EE_ERROR_LAST and change it accordingly. */
|
/* Add error numbers before EE_ERROR_LAST and change it accordingly. */
|
||||||
|
|
||||||
/* exit codes for all MySQL programs */
|
/* exit codes for all MySQL programs */
|
||||||
|
@ -111,6 +111,3 @@ do-lib-dist:
|
|||||||
echo ' $$(AR) r $$@ $$?' >>$$dir/Makefile; \
|
echo ' $$(AR) r $$@ $$?' >>$$dir/Makefile; \
|
||||||
gtar cvzf $$dir.tar.gz $$dir; \
|
gtar cvzf $$dir.tar.gz $$dir; \
|
||||||
cd $$dir; gmake
|
cd $$dir; gmake
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -4434,6 +4434,7 @@ static my_bool setup_one_fetch_function(MYSQL_BIND *param, MYSQL_FIELD *field)
|
|||||||
case MYSQL_TYPE_TIME:
|
case MYSQL_TYPE_TIME:
|
||||||
field->max_length= 15; /* 19:23:48.123456 */
|
field->max_length= 15; /* 19:23:48.123456 */
|
||||||
param->skip_result= skip_result_with_length;
|
param->skip_result= skip_result_with_length;
|
||||||
|
break;
|
||||||
case MYSQL_TYPE_DATE:
|
case MYSQL_TYPE_DATE:
|
||||||
field->max_length= 10; /* 2003-11-11 */
|
field->max_length= 10; /* 2003-11-11 */
|
||||||
param->skip_result= skip_result_with_length;
|
param->skip_result= skip_result_with_length;
|
||||||
|
@ -42,6 +42,3 @@ link_sources:
|
|||||||
done; \
|
done; \
|
||||||
done
|
done
|
||||||
echo timestamp > link_sources
|
echo timestamp > link_sources
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -232,6 +232,3 @@ link_sources:
|
|||||||
clean-local:
|
clean-local:
|
||||||
rm -f `echo $(sqlsources) $(libmysqlsources) $(sqlstoragesources) $(storagesources) | sed "s;\.lo;.c;g"`; \
|
rm -f `echo $(sqlsources) $(libmysqlsources) $(sqlstoragesources) $(storagesources) | sed "s;\.lo;.c;g"`; \
|
||||||
rm -f client_settings.h
|
rm -f client_settings.h
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -42,7 +42,8 @@ LDADD = @CLIENT_EXTRA_LDFLAGS@ ../libmysqld.a @LIBDL@ $(CXXLDFLAGS) \
|
|||||||
|
|
||||||
mysqltest_embedded_LINK = $(CXXLINK)
|
mysqltest_embedded_LINK = $(CXXLINK)
|
||||||
nodist_mysqltest_embedded_SOURCES = mysqltest.cc
|
nodist_mysqltest_embedded_SOURCES = mysqltest.cc
|
||||||
mysqltest_embedded_LDADD = $(LDADD) $(top_builddir)/regex/libregex.a
|
mysqltest_embedded_LDADD = $(LDADD) $(top_builddir)/regex/libregex.a \
|
||||||
|
@MYSQLD_EXTRA_LDFLAGS@
|
||||||
|
|
||||||
nodist_mysql_SOURCES = mysql.cc readline.cc completion_hash.cc \
|
nodist_mysql_SOURCES = mysql.cc readline.cc completion_hash.cc \
|
||||||
my_readline.h sql_string.h completion_hash.h
|
my_readline.h sql_string.h completion_hash.h
|
||||||
|
@ -24,6 +24,3 @@ EXTRA_DIST = $(man1_MANS) $(man8_MANS)
|
|||||||
# "make_win_*" are not needed in Unix binary packages,
|
# "make_win_*" are not needed in Unix binary packages,
|
||||||
install-data-hook:
|
install-data-hook:
|
||||||
rm -f $(DESTDIR)$(mandir)/man1/make_win_*
|
rm -f $(DESTDIR)$(mandir)/man1/make_win_*
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -104,7 +104,8 @@ TEST_DIRS = t r include std_data std_data/parts collections \
|
|||||||
suite/parts suite/parts/t suite/parts/r suite/parts/inc \
|
suite/parts suite/parts/t suite/parts/r suite/parts/inc \
|
||||||
suite/pbxt/t suite/pbxt/r suite/pbxt \
|
suite/pbxt/t suite/pbxt/r suite/pbxt \
|
||||||
suite/innodb suite/innodb/t suite/innodb/r suite/innodb/include \
|
suite/innodb suite/innodb/t suite/innodb/r suite/innodb/include \
|
||||||
suite/innodb_plugin suite/innodb_plugin/t suite/innodb_plugin/r suite/innodb_plugin/include \
|
suite/innodb_plugin suite/innodb_plugin/t suite/innodb_plugin/r \
|
||||||
|
suite/innodb_plugin/include \
|
||||||
suite/percona \
|
suite/percona \
|
||||||
suite/engines suite/engines/funcs suite/engines/iuds suite/engines/rr_trx \
|
suite/engines suite/engines/funcs suite/engines/iuds suite/engines/rr_trx \
|
||||||
suite/engines/funcs/r suite/engines/funcs/t suite/engines/iuds/r \
|
suite/engines/funcs/r suite/engines/funcs/t suite/engines/iuds/r \
|
||||||
@ -146,6 +147,3 @@ mtr:
|
|||||||
mysql-test-run:
|
mysql-test-run:
|
||||||
$(RM) -f mysql-test-run
|
$(RM) -f mysql-test-run
|
||||||
$(LN_S) mysql-test-run.pl mysql-test-run
|
$(LN_S) mysql-test-run.pl mysql-test-run
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -725,9 +725,9 @@ call p_verify_status_increment(4, 4, 4, 4);
|
|||||||
alter table t3 add column (b int);
|
alter table t3 add column (b int);
|
||||||
call p_verify_status_increment(2, 0, 2, 0);
|
call p_verify_status_increment(2, 0, 2, 0);
|
||||||
alter table t3 rename t4;
|
alter table t3 rename t4;
|
||||||
call p_verify_status_increment(2, 2, 2, 2);
|
call p_verify_status_increment(1, 0, 1, 0);
|
||||||
rename table t4 to t3;
|
rename table t4 to t3;
|
||||||
call p_verify_status_increment(2, 2, 2, 2);
|
call p_verify_status_increment(1, 0, 1, 0);
|
||||||
truncate table t3;
|
truncate table t3;
|
||||||
call p_verify_status_increment(4, 4, 4, 4);
|
call p_verify_status_increment(4, 4, 4, 4);
|
||||||
create view v1 as select * from t2;
|
create view v1 as select * from t2;
|
||||||
|
@ -64,17 +64,13 @@ let $_diff_table=$diff_table_2;
|
|||||||
let $_diff_i=2;
|
let $_diff_i=2;
|
||||||
while ($_diff_i) {
|
while ($_diff_i) {
|
||||||
|
|
||||||
# Parse out any leading "master:" or "slave:" from the table
|
# Parse out any leading "master:" or "slave:" from the table specification
|
||||||
# specification and connect the appropriate server.
|
# and connect the appropriate server.
|
||||||
let $_diff_conn_master=`SELECT SUBSTR('$_diff_table', 1, 7) = 'master:'`;
|
let $_pos= `SELECT LOCATE(':', '$_diff_table')`;
|
||||||
if ($_diff_conn_master) {
|
let $_diff_conn=`SELECT SUBSTR('$_diff_table', 1, $_pos-1)`;
|
||||||
let $_diff_table=`SELECT SUBSTR('$_diff_table', 8)`;
|
if (`SELECT 'XX$_diff_conn' <> 'XX'`) {
|
||||||
connection master;
|
let $_diff_table=`SELECT SUBSTR('$_diff_table', $_pos+1)`;
|
||||||
}
|
connection $_diff_conn;
|
||||||
let $_diff_conn_slave=`SELECT SUBSTR('$_diff_table', 1, 6) = 'slave:'`;
|
|
||||||
if ($_diff_conn_slave) {
|
|
||||||
let $_diff_table=`SELECT SUBSTR('$_diff_table', 7)`;
|
|
||||||
connection slave;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Sanity-check the input.
|
# Sanity-check the input.
|
||||||
|
35
mysql-test/include/rpl_diff_tables.inc
Normal file
35
mysql-test/include/rpl_diff_tables.inc
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# #############################################################################
|
||||||
|
# Check whether the given table is consistent between different master and
|
||||||
|
# slaves
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# --let $diff_table= test.t1
|
||||||
|
# --let $diff_server_list= master, slave, slave2
|
||||||
|
# --source include/rpl_diff_tables.inc
|
||||||
|
# #############################################################################
|
||||||
|
|
||||||
|
if (`SELECT "XX$diff_table" = "XX"`)
|
||||||
|
{
|
||||||
|
--die diff_table is null.
|
||||||
|
}
|
||||||
|
|
||||||
|
--let $_servers= master, slave
|
||||||
|
if (`SELECT "XX$diff_server_list" <> "XX"`)
|
||||||
|
{
|
||||||
|
--let $_servers= $diff_server_list
|
||||||
|
}
|
||||||
|
|
||||||
|
--let $_master= `SELECT SUBSTRING_INDEX('$_servers', ',', 1)`
|
||||||
|
--let $_servers= `SELECT LTRIM(SUBSTRING('$_servers', LENGTH('$_master') + 2))`
|
||||||
|
connection $_master;
|
||||||
|
while (`SELECT "XX$_servers" <> "XX"`)
|
||||||
|
{
|
||||||
|
--let $_slave= `SELECT SUBSTRING_INDEX('$_servers', ',', 1)`
|
||||||
|
--let $_servers= `SELECT LTRIM(SUBSTRING('$_servers', LENGTH('$_slave') + 2))`
|
||||||
|
|
||||||
|
--sync_slave_with_master $_slave
|
||||||
|
--let $diff_table_1= $_master:$diff_table
|
||||||
|
--let $diff_table_2= $_slave:$diff_table
|
||||||
|
--source include/diff_tables.inc
|
||||||
|
connection $_slave;
|
||||||
|
}
|
@ -160,7 +160,7 @@ int main(int argc, char* const argv[] )
|
|||||||
signal(SIGCHLD, handle_signal);
|
signal(SIGCHLD, handle_signal);
|
||||||
signal(SIGABRT, handle_abort);
|
signal(SIGABRT, handle_abort);
|
||||||
|
|
||||||
sprintf(safe_process_name, "safe_process[%d]", (int) own_pid);
|
sprintf(safe_process_name, "safe_process[%ld]", (long) own_pid);
|
||||||
|
|
||||||
message("Started");
|
message("Started");
|
||||||
|
|
||||||
|
@ -841,11 +841,11 @@ call p_verify_status_increment(2, 0, 2, 0);
|
|||||||
SUCCESS
|
SUCCESS
|
||||||
|
|
||||||
alter table t3 rename t4;
|
alter table t3 rename t4;
|
||||||
call p_verify_status_increment(2, 2, 2, 2);
|
call p_verify_status_increment(1, 0, 1, 0);
|
||||||
SUCCESS
|
SUCCESS
|
||||||
|
|
||||||
rename table t4 to t3;
|
rename table t4 to t3;
|
||||||
call p_verify_status_increment(2, 2, 2, 2);
|
call p_verify_status_increment(1, 0, 1, 0);
|
||||||
SUCCESS
|
SUCCESS
|
||||||
|
|
||||||
truncate table t3;
|
truncate table t3;
|
||||||
|
@ -995,6 +995,7 @@ SELECT 1 FROM
|
|||||||
1
|
1
|
||||||
1
|
1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
End of 5.0 tests
|
||||||
#
|
#
|
||||||
# Bug #52397: another crash with explain extended and group_concat
|
# Bug #52397: another crash with explain extended and group_concat
|
||||||
#
|
#
|
||||||
@ -1010,4 +1011,22 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 1 AS `1` from (select group_concat(`test`.`t1`.`a` order by `test`.`t1`.`a` ASC separator ',') AS `GROUP_CONCAT(t1.a ORDER BY t1.a ASC)` from `test`.`t1` `t2` join `test`.`t1` group by `test`.`t1`.`a`) `d`
|
Note 1003 select 1 AS `1` from (select group_concat(`test`.`t1`.`a` order by `test`.`t1`.`a` ASC separator ',') AS `GROUP_CONCAT(t1.a ORDER BY t1.a ASC)` from `test`.`t1` `t2` join `test`.`t1` group by `test`.`t1`.`a`) `d`
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
#
|
||||||
|
# Bug #54476: crash when group_concat and 'with rollup' in prepared statements
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (1), (2);
|
||||||
|
PREPARE stmt FROM "SELECT GROUP_CONCAT(t1.a ORDER BY t1.a) FROM t1 JOIN t1 t2 GROUP BY t1.a WITH ROLLUP";
|
||||||
|
EXECUTE stmt;
|
||||||
|
GROUP_CONCAT(t1.a ORDER BY t1.a)
|
||||||
|
1,1
|
||||||
|
2,2
|
||||||
|
1,1,2,2
|
||||||
|
EXECUTE stmt;
|
||||||
|
GROUP_CONCAT(t1.a ORDER BY t1.a)
|
||||||
|
1,1
|
||||||
|
2,2
|
||||||
|
1,1,2,2
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
DROP TABLE t1;
|
||||||
|
End of 5.1 tests
|
||||||
|
@ -243,4 +243,19 @@ End of 5.0 tests
|
|||||||
select connection_id() > 0;
|
select connection_id() > 0;
|
||||||
connection_id() > 0
|
connection_id() > 0
|
||||||
1
|
1
|
||||||
|
#
|
||||||
|
# Bug #54461: crash with longblob and union or update with subquery
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT, b LONGBLOB);
|
||||||
|
INSERT INTO t1 VALUES (1, '2'), (2, '3'), (3, '2');
|
||||||
|
SELECT DISTINCT LEAST(a, (SELECT b FROM t1 LIMIT 1)) FROM t1 UNION SELECT 1;
|
||||||
|
LEAST(a, (SELECT b FROM t1 LIMIT 1))
|
||||||
|
1
|
||||||
|
2
|
||||||
|
SELECT DISTINCT GREATEST(a, (SELECT b FROM t1 LIMIT 1)) FROM t1 UNION SELECT 1;
|
||||||
|
GREATEST(a, (SELECT b FROM t1 LIMIT 1))
|
||||||
|
2
|
||||||
|
3
|
||||||
|
1
|
||||||
|
DROP TABLE t1;
|
||||||
End of tests
|
End of tests
|
||||||
|
@ -1827,4 +1827,39 @@ min(t2.key_col)+1
|
|||||||
NULL
|
NULL
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
#
|
#
|
||||||
|
# Bug#55188: GROUP BY, GROUP_CONCAT and TEXT - inconsistent results
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a text, b varchar(10));
|
||||||
|
INSERT INTO t1 VALUES (repeat('1', 1300),'one'), (repeat('1', 1300),'two');
|
||||||
|
EXPLAIN
|
||||||
|
SELECT SUBSTRING(a,1,10), LENGTH(a), GROUP_CONCAT(b) FROM t1 GROUP BY a;
|
||||||
|
id 1
|
||||||
|
select_type SIMPLE
|
||||||
|
table t1
|
||||||
|
type ALL
|
||||||
|
possible_keys NULL
|
||||||
|
key NULL
|
||||||
|
key_len NULL
|
||||||
|
ref NULL
|
||||||
|
rows 2
|
||||||
|
Extra Using filesort
|
||||||
|
SELECT SUBSTRING(a,1,10), LENGTH(a), GROUP_CONCAT(b) FROM t1 GROUP BY a;
|
||||||
|
SUBSTRING(a,1,10) LENGTH(a) GROUP_CONCAT(b)
|
||||||
|
1111111111 1300 one,two
|
||||||
|
EXPLAIN
|
||||||
|
SELECT SUBSTRING(a,1,10), LENGTH(a) FROM t1 GROUP BY a;
|
||||||
|
id 1
|
||||||
|
select_type SIMPLE
|
||||||
|
table t1
|
||||||
|
type ALL
|
||||||
|
possible_keys NULL
|
||||||
|
key NULL
|
||||||
|
key_len NULL
|
||||||
|
ref NULL
|
||||||
|
rows 2
|
||||||
|
Extra Using temporary; Using filesort
|
||||||
|
SELECT SUBSTRING(a,1,10), LENGTH(a) FROM t1 GROUP BY a;
|
||||||
|
SUBSTRING(a,1,10) LENGTH(a)
|
||||||
|
1111111111 1300
|
||||||
|
DROP TABLE t1;
|
||||||
# End of 5.1 tests
|
# End of 5.1 tests
|
||||||
|
@ -470,10 +470,9 @@ WHERE table2.f1 = 2
|
|||||||
GROUP BY table1.f1, table2.f2
|
GROUP BY table1.f1, table2.f2
|
||||||
HAVING (table2.f2 = 8 AND table1.f1 >= 6);
|
HAVING (table2.f2 = 8 AND table1.f1 >= 6);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE table2 const PRIMARY PRIMARY 4 const 1 100.00 Using filesort
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible HAVING noticed after reading const tables
|
||||||
1 SIMPLE table1 ALL NULL NULL NULL NULL 4 100.00 Using where
|
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`table1`.`f1` AS `f1`,'7' AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where ((`test`.`table1`.`f3` = '9')) group by `test`.`table1`.`f1`,'7' having (('7' = 8) and (`test`.`table1`.`f1` >= 6))
|
Note 1003 select `test`.`table1`.`f1` AS `f1`,'7' AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where ((`test`.`table1`.`f3` = '9')) group by `test`.`table1`.`f1`,'7' having 0
|
||||||
EXPLAIN EXTENDED
|
EXPLAIN EXTENDED
|
||||||
SELECT table1.f1, table2.f2
|
SELECT table1.f1, table2.f2
|
||||||
FROM t1 AS table1
|
FROM t1 AS table1
|
||||||
@ -482,10 +481,9 @@ WHERE table2.f1 = 2
|
|||||||
GROUP BY table1.f1, table2.f2
|
GROUP BY table1.f1, table2.f2
|
||||||
HAVING (table2.f2 = 8);
|
HAVING (table2.f2 = 8);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE table2 const PRIMARY PRIMARY 4 const 1 100.00 Using filesort
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible HAVING noticed after reading const tables
|
||||||
1 SIMPLE table1 ALL NULL NULL NULL NULL 4 100.00 Using where
|
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`table1`.`f1` AS `f1`,'7' AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where ((`test`.`table1`.`f3` = '9')) group by `test`.`table1`.`f1`,'7' having ('7' = 8)
|
Note 1003 select `test`.`table1`.`f1` AS `f1`,'7' AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where ((`test`.`table1`.`f3` = '9')) group by `test`.`table1`.`f1`,'7' having 0
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# Bug#52336 Segfault / crash in 5.1 copy_fields (param=0x9872980) at sql_select.cc:15355
|
# Bug#52336 Segfault / crash in 5.1 copy_fields (param=0x9872980) at sql_select.cc:15355
|
||||||
@ -532,3 +530,19 @@ MAX(t2.f2)
|
|||||||
NULL
|
NULL
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
#
|
||||||
|
# Bug#54416 MAX from JOIN with HAVING returning NULL with 5.1 and Empty set
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (f1 INT(11), f2 VARCHAR(1), PRIMARY KEY (f1));
|
||||||
|
INSERT INTO t1 VALUES (1,'f');
|
||||||
|
CREATE TABLE t2 (f1 INT(11), f2 VARCHAR(1));
|
||||||
|
INSERT INTO t2 VALUES (2,'m');
|
||||||
|
INSERT INTO t2 VALUES (3,'m');
|
||||||
|
INSERT INTO t2 VALUES (11,NULL);
|
||||||
|
INSERT INTO t2 VALUES (12,'k');
|
||||||
|
SELECT MAX(t1.f1) field1
|
||||||
|
FROM t1 JOIN t2 ON t2.f2 LIKE 'x'
|
||||||
|
HAVING field1 < 7;
|
||||||
|
field1
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
End of 5.1 tests
|
||||||
|
@ -1651,4 +1651,21 @@ WHERE INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = 'variables';
|
|||||||
COLUMN_DEFAULT TABLE_NAME
|
COLUMN_DEFAULT TABLE_NAME
|
||||||
NULL variables
|
NULL variables
|
||||||
DROP TABLE variables;
|
DROP TABLE variables;
|
||||||
|
#
|
||||||
|
# Bug #53814: NUMERIC_PRECISION for unsigned bigint field is 19,
|
||||||
|
# should be 20
|
||||||
|
#
|
||||||
|
CREATE TABLE ubig (a BIGINT, b BIGINT UNSIGNED);
|
||||||
|
SELECT TABLE_NAME, COLUMN_NAME, NUMERIC_PRECISION
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='ubig';
|
||||||
|
TABLE_NAME COLUMN_NAME NUMERIC_PRECISION
|
||||||
|
ubig a 19
|
||||||
|
ubig b 20
|
||||||
|
INSERT INTO ubig VALUES (0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF);
|
||||||
|
Warnings:
|
||||||
|
Warning 1264 Out of range value for column 'a' at row 1
|
||||||
|
SELECT length(CAST(b AS CHAR)) FROM ubig;
|
||||||
|
length(CAST(b AS CHAR))
|
||||||
|
20
|
||||||
|
DROP TABLE ubig;
|
||||||
End of 5.1 tests.
|
End of 5.1 tests.
|
||||||
|
@ -503,4 +503,33 @@ DROP TABLE t1;
|
|||||||
CREATE TABLE t1 (id INT NOT NULL);
|
CREATE TABLE t1 (id INT NOT NULL);
|
||||||
LOAD DATA LOCAL INFILE 'tb.txt' INTO TABLE t1;
|
LOAD DATA LOCAL INFILE 'tb.txt' INTO TABLE t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #51876 : crash/memory underrun when loading data with ucs2
|
||||||
|
# and reverse() function
|
||||||
|
#
|
||||||
|
# Problem # 1 (original report): wrong parsing of ucs2 data
|
||||||
|
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp.txt';
|
||||||
|
CREATE TABLE t1(a INT);
|
||||||
|
LOAD DATA INFILE 'tmpp.txt' INTO TABLE t1 CHARACTER SET ucs2
|
||||||
|
(@b) SET a=REVERSE(@b);
|
||||||
|
Warnings:
|
||||||
|
Warning 1366 Incorrect integer value: '00' for column 'a' at row 1
|
||||||
|
Warning 1366 Incorrect integer value: '10' for column 'a' at row 2
|
||||||
|
# should return 2 zeroes (as the value is truncated)
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a
|
||||||
|
0
|
||||||
|
0
|
||||||
|
DROP TABLE t1;
|
||||||
|
# Problem # 2 : if you write and read ucs2 data to a file they're lost
|
||||||
|
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp2.txt' CHARACTER SET ucs2;
|
||||||
|
CREATE TABLE t1(a INT);
|
||||||
|
LOAD DATA INFILE 'tmpp2.txt' INTO TABLE t1 CHARACTER SET ucs2
|
||||||
|
(@b) SET a=REVERSE(@b);
|
||||||
|
# should return 0 and 1 (10 reversed)
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a
|
||||||
|
0
|
||||||
|
1
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
@ -56,6 +56,7 @@ CREATE DATABASE `TEST_$1`;
|
|||||||
SHOW DATABASES LIKE "TEST%";
|
SHOW DATABASES LIKE "TEST%";
|
||||||
Database (TEST%)
|
Database (TEST%)
|
||||||
TEST_$1
|
TEST_$1
|
||||||
|
test
|
||||||
DROP DATABASE `test_$1`;
|
DROP DATABASE `test_$1`;
|
||||||
CREATE TABLE T1 (a int) engine=innodb;
|
CREATE TABLE T1 (a int) engine=innodb;
|
||||||
INSERT INTO T1 VALUES (1);
|
INSERT INTO T1 VALUES (1);
|
||||||
@ -171,6 +172,6 @@ create table myUC (i int);
|
|||||||
select TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES
|
select TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES
|
||||||
where TABLE_SCHEMA ='mysqltest_LC2';
|
where TABLE_SCHEMA ='mysqltest_LC2';
|
||||||
TABLE_SCHEMA TABLE_NAME
|
TABLE_SCHEMA TABLE_NAME
|
||||||
mysqltest_LC2 myUC
|
mysqltest_lc2 myUC
|
||||||
use test;
|
use test;
|
||||||
drop database mysqltest_LC2;
|
drop database mysqltest_LC2;
|
||||||
|
@ -148,3 +148,20 @@ a
|
|||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
End of 5.0 tests.
|
End of 5.0 tests.
|
||||||
|
#
|
||||||
|
# Bug #53095: SELECT column_name FROM INFORMATION_SCHEMA.STATISTICS
|
||||||
|
# returns nothing
|
||||||
|
#
|
||||||
|
CREATE TABLE `ttt` (
|
||||||
|
`f1` char(3) NOT NULL,
|
||||||
|
PRIMARY KEY (`f1`)
|
||||||
|
) ENGINE=myisam DEFAULT CHARSET=latin1;
|
||||||
|
SELECT count(COLUMN_NAME) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME =
|
||||||
|
'TTT';
|
||||||
|
count(COLUMN_NAME)
|
||||||
|
1
|
||||||
|
SELECT count(*) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 'TTT';
|
||||||
|
count(*)
|
||||||
|
1
|
||||||
|
DROP TABLE `ttt`;
|
||||||
|
End of 5.0 tests.
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
SET @old_general_log= @@global.general_log;
|
SET @old_general_log= @@global.general_log;
|
||||||
|
SET @old_slow_query_log= @@global.slow_query_log;
|
||||||
ok
|
ok
|
||||||
SET @@global.general_log= @old_general_log;
|
SET @@global.general_log= @old_general_log;
|
||||||
|
SET @@global.slow_query_log= @old_slow_query_log;
|
||||||
|
@ -169,3 +169,45 @@ DROP PROCEDURE testproc;
|
|||||||
WARNING: NULL values of the 'character_set_client' column ('mysql.proc' table) have been updated with a default value (latin1). Please verify if necessary.
|
WARNING: NULL values of the 'character_set_client' column ('mysql.proc' table) have been updated with a default value (latin1). Please verify if necessary.
|
||||||
WARNING: NULL values of the 'collation_connection' column ('mysql.proc' table) have been updated with a default value (latin1_swedish_ci). Please verify if necessary.
|
WARNING: NULL values of the 'collation_connection' column ('mysql.proc' table) have been updated with a default value (latin1_swedish_ci). Please verify if necessary.
|
||||||
WARNING: NULL values of the 'db_collation' column ('mysql.proc' table) have been updated with default values. Please verify if necessary.
|
WARNING: NULL values of the 'db_collation' column ('mysql.proc' table) have been updated with default values. Please verify if necessary.
|
||||||
|
#
|
||||||
|
# Bug #53613: mysql_upgrade incorrectly revokes
|
||||||
|
# TRIGGER privilege on given table
|
||||||
|
#
|
||||||
|
GRANT USAGE ON *.* TO 'user3'@'%';
|
||||||
|
GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%';
|
||||||
|
Run mysql_upgrade with all privileges on a user
|
||||||
|
mtr.global_suppressions OK
|
||||||
|
mtr.test_suppressions OK
|
||||||
|
mysql.columns_priv OK
|
||||||
|
mysql.db OK
|
||||||
|
mysql.event OK
|
||||||
|
mysql.func OK
|
||||||
|
mysql.general_log
|
||||||
|
Error : You can't use locks with log tables.
|
||||||
|
status : OK
|
||||||
|
mysql.help_category OK
|
||||||
|
mysql.help_keyword OK
|
||||||
|
mysql.help_relation OK
|
||||||
|
mysql.help_topic OK
|
||||||
|
mysql.host OK
|
||||||
|
mysql.ndb_binlog_index OK
|
||||||
|
mysql.plugin OK
|
||||||
|
mysql.proc OK
|
||||||
|
mysql.procs_priv OK
|
||||||
|
mysql.servers OK
|
||||||
|
mysql.slow_log
|
||||||
|
Error : You can't use locks with log tables.
|
||||||
|
status : OK
|
||||||
|
mysql.tables_priv OK
|
||||||
|
mysql.time_zone OK
|
||||||
|
mysql.time_zone_leap_second OK
|
||||||
|
mysql.time_zone_name OK
|
||||||
|
mysql.time_zone_transition OK
|
||||||
|
mysql.time_zone_transition_type OK
|
||||||
|
mysql.user OK
|
||||||
|
SHOW GRANTS FOR 'user3'@'%';
|
||||||
|
Grants for user3@%
|
||||||
|
GRANT USAGE ON *.* TO 'user3'@'%'
|
||||||
|
GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%'
|
||||||
|
DROP USER 'user3'@'%';
|
||||||
|
End of 5.1 tests
|
||||||
|
@ -527,3 +527,17 @@ ERROR HY000: You are using safe update mode and you tried to update a table with
|
|||||||
SET SESSION sql_safe_updates = DEFAULT;
|
SET SESSION sql_safe_updates = DEFAULT;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
|
#
|
||||||
|
# Bug#54734 assert in Diagnostics_area::set_ok_status
|
||||||
|
#
|
||||||
|
DROP TABLE IF EXISTS t1, not_exists;
|
||||||
|
DROP FUNCTION IF EXISTS f1;
|
||||||
|
DROP VIEW IF EXISTS v1;
|
||||||
|
CREATE TABLE t1 (PRIMARY KEY(pk)) AS SELECT 1 AS pk;
|
||||||
|
CREATE FUNCTION f1() RETURNS INTEGER RETURN (SELECT 1 FROM not_exists);
|
||||||
|
CREATE VIEW v1 AS SELECT pk FROM t1 WHERE f1() = 13;
|
||||||
|
UPDATE v1 SET pk = 7 WHERE pk > 0;
|
||||||
|
ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP FUNCTION f1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -1,125 +1,51 @@
|
|||||||
Certificate:
|
|
||||||
Data:
|
|
||||||
Version: 1 (0x0)
|
|
||||||
Serial Number: 1048579 (0x100003)
|
|
||||||
Signature Algorithm: md5WithRSAEncryption
|
|
||||||
Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
|
|
||||||
Validity
|
|
||||||
Not Before: Jan 29 12:01:53 2010 GMT
|
|
||||||
Not After : Jan 28 12:01:53 2015 GMT
|
|
||||||
Subject: C=SE, ST=Uppsala, O=MySQL AB, CN=server
|
|
||||||
Subject Public Key Info:
|
|
||||||
Public Key Algorithm: rsaEncryption
|
|
||||||
Public-Key: (8192 bit)
|
|
||||||
Modulus:
|
|
||||||
00:ca:aa:1d:c4:11:ec:91:f0:c7:ff:5f:90:92:fc:
|
|
||||||
40:0c:5e:b7:3d:00:c5:20:d5:0f:89:31:07:d7:41:
|
|
||||||
4c:8b:60:80:aa:38:14:de:93:6b:9c:74:88:41:68:
|
|
||||||
b5:02:41:01:2d:86:a2:7a:95:53:5e:7b:67:2f:6c:
|
|
||||||
1e:29:51:f9:44:fd:4a:80:be:b2:23:a1:3e:1b:38:
|
|
||||||
cf:88:c4:71:ee:f8:6b:41:c5:2d:c0:c3:52:ac:59:
|
|
||||||
7d:81:34:19:95:32:b8:9a:51:b6:41:36:d4:c4:a1:
|
|
||||||
ae:84:e6:38:b9:e8:bf:96:be:19:7a:6b:77:4d:e0:
|
|
||||||
de:e6:b3:b6:6b:bc:3d:dd:68:bc:4b:c4:eb:f5:36:
|
|
||||||
93:ed:56:a2:15:50:8a:10:e8:d6:22:ed:6c:b1:cd:
|
|
||||||
c3:18:c9:f6:0a:e1:de:61:65:62:d6:14:41:8c:b5:
|
|
||||||
fb:14:68:c1:cf:12:5d:41:21:9d:57:11:43:7d:bb:
|
|
||||||
43:2c:21:bb:c3:44:7d:a8:cf:1f:c3:71:75:b5:47:
|
|
||||||
c2:7d:ce:38:3c:73:64:9e:15:d8:a7:27:cf:bd:40:
|
|
||||||
c8:45:08:e3:c8:39:a8:0b:8e:c2:5b:7b:f1:47:91:
|
|
||||||
12:91:cc:e1:00:e0:94:5b:bd:32:e4:0c:8d:c3:be:
|
|
||||||
cc:76:32:52:12:69:b0:18:e0:b0:c2:76:34:5a:5f:
|
|
||||||
79:d9:f6:81:9d:02:0a:61:69:1c:33:ce:49:fa:76:
|
|
||||||
03:1e:07:5b:27:0b:bf:34:9e:34:96:b8:03:9b:50:
|
|
||||||
3a:6a:2f:17:7a:14:cf:65:63:00:37:52:a8:73:ce:
|
|
||||||
4b:14:40:f4:d2:9a:56:54:33:b8:77:2e:42:5b:8f:
|
|
||||||
ec:1f:18:f4:ad:ab:8a:4a:8d:6d:70:25:f3:58:e7:
|
|
||||||
cb:66:51:14:7d:16:f4:eb:6d:56:76:76:51:6e:d6:
|
|
||||||
1d:da:d3:8d:c0:64:5a:67:4e:af:e2:bf:33:d1:b8:
|
|
||||||
f6:2a:fc:57:87:a7:35:5e:80:c9:ac:fc:87:c9:71:
|
|
||||||
17:91:bf:b7:4d:a3:ed:3c:1b:27:f4:66:a0:f9:46:
|
|
||||||
03:27:cc:ea:80:f6:4b:40:f6:41:94:cd:bd:0a:b3:
|
|
||||||
ef:26:be:de:6f:69:ae:0f:3f:1c:55:63:33:90:9b:
|
|
||||||
ed:ca:5a:12:4d:de:4b:06:c2:a2:92:b0:42:3d:31:
|
|
||||||
af:a4:15:12:15:f8:8a:e9:88:8d:cf:fd:85:66:50:
|
|
||||||
6f:11:f1:9f:48:f3:b5:ba:9d:86:68:24:a2:5d:a8:
|
|
||||||
7c:54:42:fa:d8:b5:c5:f2:dd:0e:0f:d0:68:e4:54:
|
|
||||||
7e:c5:b9:a0:9b:65:2d:77:f4:8f:b9:30:0a:d5:86:
|
|
||||||
5c:ed:c9:7c:d1:da:9d:0d:63:50:ee:e5:1e:92:63:
|
|
||||||
cc:a2:0c:e8:4a:96:02:4d:dc:8f:df:7c:8f:08:18:
|
|
||||||
a8:30:88:d7:af:89:ad:fc:57:4b:10:f9:f1:cb:48:
|
|
||||||
e8:b6:3b:c8:3f:fc:c2:d3:d1:4a:10:3c:1b:6b:64:
|
|
||||||
dc:e5:65:1e:5b:b2:da:b1:e2:24:97:8f:ee:c0:4b:
|
|
||||||
8e:18:83:7c:17:a6:3c:45:b3:60:06:23:f2:2f:18:
|
|
||||||
13:9e:17:8a:c6:72:79:8c:4d:04:f3:9d:ea:e0:25:
|
|
||||||
d3:33:8c:1e:11:47:63:1f:a5:45:3f:bd:85:b3:fe:
|
|
||||||
a5:68:ee:48:b7:0c:a4:c9:7f:72:d0:75:66:9b:6a:
|
|
||||||
f9:a0:50:f3:a8:59:6d:a3:dd:38:4f:70:2b:bb:ff:
|
|
||||||
92:2e:71:ab:ef:e9:00:ed:0d:d1:b4:6f:f0:8e:b2:
|
|
||||||
09:fb:4d:61:0d:d9:10:d5:54:11:cd:03:94:84:fd:
|
|
||||||
a8:68:e4:45:6e:1e:6a:1e:2f:85:a1:6d:f5:b6:c0:
|
|
||||||
f1:ee:f7:36:e9:fe:c2:f7:ad:cc:13:46:5b:88:42:
|
|
||||||
f0:2d:1f:b5:0e:7e:b5:2b:e4:8d:ab:b9:87:30:6a:
|
|
||||||
3d:12:f4:ad:f3:1c:ac:cc:1a:48:29:2a:96:7b:80:
|
|
||||||
00:0b:6e:59:87:bf:a3:ca:70:99:1b:1c:fd:72:3d:
|
|
||||||
b2:d3:94:4a:cf:55:75:be:1f:40:ec:55:35:48:2d:
|
|
||||||
55:f0:00:da:3c:b0:60:ba:11:32:66:54:0b:be:06:
|
|
||||||
a4:5e:b7:c9:59:bb:4d:f4:92:06:26:48:6e:c2:12:
|
|
||||||
d4:7c:f0:20:b8:a2:e1:bc:6a:b6:19:0e:37:47:55:
|
|
||||||
c9:f2:49:0d:96:75:a2:84:64:bf:34:fc:be:b2:41:
|
|
||||||
e4:f5:88:eb:e1:b7:26:a5:e5:41:c2:20:0c:f6:e2:
|
|
||||||
a8:a5:e7:76:54:a5:fb:4b:80:05:7d:18:85:7a:ba:
|
|
||||||
bc:b7:ad:c0:2f:60:85:cc:15:12:1c:2f:0a:9e:f3:
|
|
||||||
7c:40:cf:f4:3e:23:d2:95:ca:d0:06:58:52:f0:84:
|
|
||||||
d8:0f:3d:eb:ff:12:68:94:79:8f:be:40:29:5f:98:
|
|
||||||
c8:90:6c:05:2f:99:8c:2a:63:78:1f:23:b1:29:c5:
|
|
||||||
e7:49:c9:b2:92:0f:53:0b:d5:71:28:17:c2:19:bf:
|
|
||||||
60:bf:7c:87:a8:ab:c1:f4:0a:c1:b8:d2:68:ee:c1:
|
|
||||||
ce:a7:13:13:17:6d:24:5d:a2:37:a6:d7:7d:48:8b:
|
|
||||||
2b:74:2d:40:2e:ca:19:d5:b6:3e:6c:42:71:fa:cf:
|
|
||||||
85:87:f9:de:80:73:8b:89:f4:70:f0:d8:d7:ff:40:
|
|
||||||
41:9c:c7:15:6d:9b:6e:4c:b5:52:02:99:79:32:73:
|
|
||||||
ca:26:a0:ac:31:6f:c4:b0:f5:da:bb:c2:1f:e0:9f:
|
|
||||||
44:ba:25:f7:9f
|
|
||||||
Exponent: 65537 (0x10001)
|
|
||||||
Signature Algorithm: md5WithRSAEncryption
|
|
||||||
08:75:dc:b9:3f:aa:b6:7e:81:7a:39:d1:ee:ed:44:b6:ce:1b:
|
|
||||||
37:c4:4c:19:d0:66:e6:eb:b5:4f:2a:ef:95:58:64:21:55:01:
|
|
||||||
12:30:ac:8a:95:d1:06:de:29:46:a4:f1:7d:7f:b0:1e:d2:4e:
|
|
||||||
fb:f6:fa:9a:74:be:85:62:db:0b:82:90:58:62:c5:5f:f1:80:
|
|
||||||
02:9f:c5:fb:f3:6b:b0:b4:3b:04:b1:e5:53:c2:d0:00:a1:1a:
|
|
||||||
9d:65:60:6f:73:98:67:e0:9c:c8:12:94:79:59:bf:43:7b:f5:
|
|
||||||
77:c8:8f:df:b1:cd:11:1c:01:19:99:c2:22:42:f7:41:ae:b4:
|
|
||||||
b8:1a
|
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
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
|
||||||
sc0RHAEZmcIiQvdBrrS4Gg==
|
UsZdIB0n2+KA0xwEdGPdkGCfNPBtOg557DkcyEvsIZ9ELp4Pp2XzWRhyFGasJZc4
|
||||||
|
YwgD/3K2rpOPZoMkBKeKqV19j41OfLKGBVyuaqzitbu9+KT4RU1ibr2a+UuFCwdT
|
||||||
|
oqyN7bfWXjcjXOMkxCsOmLfKmqQxs7TEOVrYPTdYjamDxLy/e5g5FgoCxGY8iil0
|
||||||
|
+YFLZyH6eEx/Os9DlG/M3O1MeRD9U97CdsphbDVZIDyWw5xeX8qQHJe0KSprAgiG
|
||||||
|
TLhTZHeyrKujQCQS1oFFmNy4gSqXt0j1/6/9T80j6HeyjiiYEaEQK9YLTAjRoA7W
|
||||||
|
VN8wtHI5F3RlNOVQEJks/bjdlpLL3VhaWtfewGh/mXRGcow84cgcsejMexmhreHm
|
||||||
|
JfTUl9+X1IFFxGq2/606A9ROQ7kN/s4rXu7/TiMODXI/kZijoWd2SCc7Z0YWoNo7
|
||||||
|
IRKkmZtrsflJbObEuK2Jk59uqzSxyQOBId8qtbPo8qJJyHGV5GCp34g4x67BxJBo
|
||||||
|
h1iyVMamBAS5Ip1ejghuROrB8Hit8NhAZApXju62btJeXLX+mQayXb/wC/IXNJJD
|
||||||
|
83tXiLfZgs6GzLAq7+KW/64sZSvj87CPiNtxkvjchAvyr+fhbBXCrf4rlOjJE6SH
|
||||||
|
Je2/Jon7uqijncARGLBeYUT0Aa6k1slpXuSKxDNt7EIkP21kDZ5/OJ0Y1u587KVB
|
||||||
|
dEhuDgNf2/8ij7gAQBwBoZMe1DrwddrxgLLBlyHpAZetNYFZNT+Cs/OlpqI0Jm59
|
||||||
|
kK9pX0BY4AGOd23XM3K/uLawdmf67kkftim7aVaqXFHPiWsJVtlzmidKvNSmbmZe
|
||||||
|
dOmMXp6PBoqcdusFVUS7vjd3KAes5wUX/CaTyOOPRu0LMSnpwEnaL76IC9x4Jd6d
|
||||||
|
7QqY/OFTjpPH8nP57LwouiT6MgSUCWGaOkPuBJ9w9sENSbbINpgJJ42iAe2kE+R7
|
||||||
|
qEIvf/2ETCTseeQUqm2nWiSPLkNagEh6kojmEoKrGyrv3YjrSXSOY1a70tDVy43+
|
||||||
|
ueQDQzNZm3Q7inpke2ZKvWyY0LQmLzP2te+tnNBcdLyKJx7emPRTuMUlEdK7cLbt
|
||||||
|
V3Sy9IKtyAXqqd66fPFj4NhJygyncj8M6CSqhG5L0GhDbkA8UJ8yK/gfKm3h5xe2
|
||||||
|
utULK5VMtAhQt6cVahO59A9t/OI17y45bmlIgdlEQISzVFe9ZbIUJW44zBfPx74k
|
||||||
|
/w8pMRr8gEuRqpL2WdJiKGG6lhMHLVFo
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
@ -1,99 +1,99 @@
|
|||||||
-----BEGIN RSA PRIVATE KEY-----
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
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
|
||||||
-----END RSA PRIVATE KEY-----
|
-----END RSA PRIVATE KEY-----
|
||||||
|
@ -328,7 +328,7 @@ ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_
|
|||||||
SELECT table_schema,table_name FROM information_schema.tables
|
SELECT table_schema,table_name FROM information_schema.tables
|
||||||
WHERE table_schema = 'information_schema' AND table_name = 'tables';
|
WHERE table_schema = 'information_schema' AND table_name = 'tables';
|
||||||
table_schema table_name
|
table_schema table_name
|
||||||
information_schema tables
|
information_schema TABLES
|
||||||
SELECT * FROM information_schema.table_privileges
|
SELECT * FROM information_schema.table_privileges
|
||||||
WHERE table_schema = 'information_schema';
|
WHERE table_schema = 'information_schema';
|
||||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||||
|
@ -450,9 +450,9 @@ NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zero
|
|||||||
NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
|
NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
|
||||||
NULL test tb1 f3 3 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references
|
NULL test tb1 f3 3 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references
|
||||||
NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
NULL test tb1 f30 30 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||||
NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
NULL test tb1 f31 31 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
NULL test tb1 f32 32 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb1 f33 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
|
NULL test tb1 f33 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
|
||||||
NULL test tb1 f34 34 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
|
NULL test tb1 f34 34 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
|
||||||
NULL test tb1 f35 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
|
NULL test tb1 f35 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
|
||||||
@ -565,9 +565,9 @@ NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned s
|
|||||||
NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
|
NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
|
||||||
NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
NULL test tb3 f147 30 999999 NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||||
NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
|
NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
|
||||||
NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
|
NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
|
||||||
NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
|
NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
|
||||||
|
@ -15,8 +15,8 @@ NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 u
|
|||||||
NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
|
NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
|
||||||
NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
|
NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
|
||||||
@ -27,9 +27,9 @@ NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 42949
|
|||||||
NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select
|
NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select
|
||||||
NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||||
NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
||||||
NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||||
NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
@ -71,14 +71,14 @@ NULL information_schema EVENTS SQL_MODE 12 NO varchar 8192 24576 NULL NULL utf8
|
|||||||
NULL information_schema EVENTS STARTS 13 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema EVENTS STARTS 13 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema EVENTS STATUS 15 NO varchar 18 54 NULL NULL utf8 utf8_general_ci varchar(18) select
|
NULL information_schema EVENTS STATUS 15 NO varchar 18 54 NULL NULL utf8 utf8_general_ci varchar(18) select
|
||||||
NULL information_schema EVENTS TIME_ZONE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema EVENTS TIME_ZONE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema FILES AUTOEXTEND_SIZE 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema FILES AUTOEXTEND_SIZE 19 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema FILES AVG_ROW_LENGTH 28 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema FILES AVG_ROW_LENGTH 28 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema FILES CHECKSUM 36 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema FILES CHECKSUM 36 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema FILES CHECK_TIME 35 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema FILES CHECK_TIME 35 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema FILES CREATE_TIME 33 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema FILES CREATE_TIME 33 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema FILES CREATION_TIME 20 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema FILES CREATION_TIME 20 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema FILES DATA_FREE 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema FILES DATA_FREE 32 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema FILES DATA_LENGTH 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema FILES DATA_LENGTH 29 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema FILES DELETED_ROWS 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
NULL information_schema FILES DELETED_ROWS 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||||
NULL information_schema FILES ENGINE 10 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema FILES ENGINE 10 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema FILES EXTENT_SIZE 16 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
NULL information_schema FILES EXTENT_SIZE 16 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||||
@ -88,27 +88,27 @@ NULL information_schema FILES FILE_NAME 2 NULL YES varchar 64 192 NULL NULL utf8
|
|||||||
NULL information_schema FILES FILE_TYPE 3 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
|
NULL information_schema FILES FILE_TYPE 3 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
|
||||||
NULL information_schema FILES FREE_EXTENTS 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
NULL information_schema FILES FREE_EXTENTS 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||||
NULL information_schema FILES FULLTEXT_KEYS 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema FILES FULLTEXT_KEYS 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema FILES INDEX_LENGTH 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema FILES INDEX_LENGTH 31 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema FILES INITIAL_SIZE 17 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema FILES INITIAL_SIZE 17 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema FILES LAST_ACCESS_TIME 22 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema FILES LAST_ACCESS_TIME 22 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema FILES LAST_UPDATE_TIME 21 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema FILES LAST_UPDATE_TIME 21 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema FILES LOGFILE_GROUP_NAME 8 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema FILES LOGFILE_GROUP_NAME 8 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema FILES LOGFILE_GROUP_NUMBER 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
NULL information_schema FILES LOGFILE_GROUP_NUMBER 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||||
NULL information_schema FILES MAXIMUM_SIZE 18 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema FILES MAXIMUM_SIZE 18 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema FILES MAX_DATA_LENGTH 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema FILES MAX_DATA_LENGTH 30 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema FILES RECOVER_TIME 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
NULL information_schema FILES RECOVER_TIME 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||||
NULL information_schema FILES ROW_FORMAT 26 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
|
NULL information_schema FILES ROW_FORMAT 26 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
|
||||||
NULL information_schema FILES STATUS 37 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
|
NULL information_schema FILES STATUS 37 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
|
||||||
NULL information_schema FILES TABLESPACE_NAME 4 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema FILES TABLESPACE_NAME 4 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema FILES TABLE_CATALOG 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema FILES TABLE_CATALOG 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema FILES TABLE_NAME 7 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema FILES TABLE_NAME 7 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema FILES TABLE_ROWS 27 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema FILES TABLE_ROWS 27 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema FILES TABLE_SCHEMA 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema FILES TABLE_SCHEMA 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema FILES TOTAL_EXTENTS 15 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
NULL information_schema FILES TOTAL_EXTENTS 15 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||||
NULL information_schema FILES TRANSACTION_COUNTER 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
NULL information_schema FILES TRANSACTION_COUNTER 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||||
NULL information_schema FILES UPDATE_COUNT 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
NULL information_schema FILES UPDATE_COUNT 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||||
NULL information_schema FILES UPDATE_TIME 34 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema FILES UPDATE_TIME 34 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema FILES VERSION 25 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema FILES VERSION 25 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema GLOBAL_STATUS VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema GLOBAL_STATUS VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema GLOBAL_STATUS VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024) select
|
NULL information_schema GLOBAL_STATUS VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024) select
|
||||||
NULL information_schema GLOBAL_VARIABLES VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema GLOBAL_VARIABLES VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
@ -233,29 +233,29 @@ NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES var
|
|||||||
NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||||
NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema PARTITIONS AVG_ROW_LENGTH 14 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema PARTITIONS AVG_ROW_LENGTH 14 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema PARTITIONS CHECKSUM 22 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema PARTITIONS CHECKSUM 22 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema PARTITIONS CHECK_TIME 21 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema PARTITIONS CHECK_TIME 21 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema PARTITIONS CREATE_TIME 19 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema PARTITIONS CREATE_TIME 19 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema PARTITIONS DATA_FREE 18 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema PARTITIONS DATA_FREE 18 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema PARTITIONS DATA_LENGTH 15 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema PARTITIONS DATA_LENGTH 15 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema PARTITIONS INDEX_LENGTH 17 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema PARTITIONS INDEX_LENGTH 17 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema PARTITIONS MAX_DATA_LENGTH 16 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema PARTITIONS MAX_DATA_LENGTH 16 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema PARTITIONS NODEGROUP 24 NO varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12) select
|
NULL information_schema PARTITIONS NODEGROUP 24 NO varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12) select
|
||||||
NULL information_schema PARTITIONS PARTITION_COMMENT 23 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
NULL information_schema PARTITIONS PARTITION_COMMENT 23 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
||||||
NULL information_schema PARTITIONS PARTITION_DESCRIPTION 12 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
NULL information_schema PARTITIONS PARTITION_DESCRIPTION 12 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||||
NULL information_schema PARTITIONS PARTITION_EXPRESSION 10 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
NULL information_schema PARTITIONS PARTITION_EXPRESSION 10 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||||
NULL information_schema PARTITIONS PARTITION_METHOD 8 NULL YES varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12) select
|
NULL information_schema PARTITIONS PARTITION_METHOD 8 NULL YES varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12) select
|
||||||
NULL information_schema PARTITIONS PARTITION_NAME 4 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema PARTITIONS PARTITION_NAME 4 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema PARTITIONS PARTITION_ORDINAL_POSITION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema PARTITIONS PARTITION_ORDINAL_POSITION 6 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema PARTITIONS SUBPARTITION_EXPRESSION 11 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
NULL information_schema PARTITIONS SUBPARTITION_EXPRESSION 11 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||||
NULL information_schema PARTITIONS SUBPARTITION_METHOD 9 NULL YES varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12) select
|
NULL information_schema PARTITIONS SUBPARTITION_METHOD 9 NULL YES varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12) select
|
||||||
NULL information_schema PARTITIONS SUBPARTITION_NAME 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema PARTITIONS SUBPARTITION_NAME 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema PARTITIONS SUBPARTITION_ORDINAL_POSITION 7 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema PARTITIONS SUBPARTITION_ORDINAL_POSITION 7 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema PARTITIONS TABLESPACE_NAME 25 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema PARTITIONS TABLESPACE_NAME 25 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema PARTITIONS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
NULL information_schema PARTITIONS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||||
NULL information_schema PARTITIONS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema PARTITIONS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema PARTITIONS TABLE_ROWS 13 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema PARTITIONS TABLE_ROWS 13 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema PARTITIONS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema PARTITIONS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema PARTITIONS UPDATE_TIME 20 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema PARTITIONS UPDATE_TIME 20 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema PBXT_STATISTICS ID 1 0 NO int NULL NULL 10 0 NULL NULL int(4) select
|
NULL information_schema PBXT_STATISTICS ID 1 0 NO int NULL NULL 10 0 NULL NULL int(4) select
|
||||||
@ -343,27 +343,27 @@ NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NU
|
|||||||
NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||||
NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
|
NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
|
||||||
NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
|
NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
|
||||||
NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||||
NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||||
NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
||||||
NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||||
NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select
|
NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||||
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||||
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||||
|
@ -437,9 +437,9 @@ NULL test tb1 f27 19 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zero
|
|||||||
NULL test tb1 f28 20 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
NULL test tb1 f28 20 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb1 f29 21 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
|
NULL test tb1 f29 21 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
|
||||||
NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
|
NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
|
||||||
NULL test tb1 f30 22 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
NULL test tb1 f30 22 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||||
NULL test tb1 f31 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
NULL test tb1 f31 23 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb1 f32 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
NULL test tb1 f32 24 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb1 f33 25 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
|
NULL test tb1 f33 25 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
|
||||||
NULL test tb1 f34 26 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
|
NULL test tb1 f34 26 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
|
||||||
NULL test tb1 f35 27 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
|
NULL test tb1 f35 27 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
|
||||||
@ -540,9 +540,9 @@ NULL test tb3 f143 20 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned s
|
|||||||
NULL test tb3 f144 21 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
NULL test tb3 f144 21 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb3 f145 22 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
NULL test tb3 f145 22 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb3 f146 23 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
|
NULL test tb3 f146 23 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
|
||||||
NULL test tb3 f147 24 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
NULL test tb3 f147 24 999999 NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||||
NULL test tb3 f148 25 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
NULL test tb3 f148 25 00000000000000999999 NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb3 f149 26 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
NULL test tb3 f149 26 00000000000000999999 NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb3 f150 27 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
|
NULL test tb3 f150 27 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
|
||||||
NULL test tb3 f151 28 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
|
NULL test tb3 f151 28 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
|
||||||
NULL test tb3 f152 29 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
|
NULL test tb3 f152 29 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
|
||||||
|
@ -479,9 +479,9 @@ NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zero
|
|||||||
NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
|
NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
|
||||||
NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
|
NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references
|
||||||
NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
NULL test tb1 f30 30 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||||
NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
NULL test tb1 f31 31 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
NULL test tb1 f32 32 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb1 f33 33 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
|
NULL test tb1 f33 33 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
|
||||||
NULL test tb1 f34 34 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
|
NULL test tb1 f34 34 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
|
||||||
NULL test tb1 f35 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
|
NULL test tb1 f35 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
|
||||||
@ -602,9 +602,9 @@ NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned s
|
|||||||
NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
|
NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references
|
||||||
NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
NULL test tb3 f147 30 999999 NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||||
NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references
|
||||||
NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
|
NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references
|
||||||
NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
|
NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references
|
||||||
NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
|
NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references
|
||||||
|
@ -97,13 +97,13 @@ NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum(
|
|||||||
NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||||
NULL mysql host Trigger_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
NULL mysql host Trigger_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||||
NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||||
NULL mysql ndb_binlog_index deletes 6 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
NULL mysql ndb_binlog_index deletes 6 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||||
NULL mysql ndb_binlog_index epoch 3 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned PRI select,insert,update,references
|
NULL mysql ndb_binlog_index epoch 3 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned PRI select,insert,update,references
|
||||||
NULL mysql ndb_binlog_index File 2 NULL NO varchar 255 255 NULL NULL latin1 latin1_swedish_ci varchar(255) select,insert,update,references
|
NULL mysql ndb_binlog_index File 2 NULL NO varchar 255 255 NULL NULL latin1 latin1_swedish_ci varchar(255) select,insert,update,references
|
||||||
NULL mysql ndb_binlog_index inserts 4 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
NULL mysql ndb_binlog_index inserts 4 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||||
NULL mysql ndb_binlog_index Position 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
NULL mysql ndb_binlog_index Position 1 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||||
NULL mysql ndb_binlog_index schemaops 7 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
NULL mysql ndb_binlog_index schemaops 7 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||||
NULL mysql ndb_binlog_index updates 5 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
NULL mysql ndb_binlog_index updates 5 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||||
NULL mysql plugin dl 2 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references
|
NULL mysql plugin dl 2 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references
|
||||||
NULL mysql plugin name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
NULL mysql plugin name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||||
NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
|
NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
|
||||||
|
118
mysql-test/suite/innodb/r/innodb_bug53756.result
Normal file
118
mysql-test/suite/innodb/r/innodb_bug53756.result
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
DROP TABLE IF EXISTS bug_53756 ;
|
||||||
|
CREATE TABLE bug_53756 (pk INT, c1 INT) ENGINE=InnoDB;
|
||||||
|
ALTER TABLE bug_53756 ADD PRIMARY KEY (pk);
|
||||||
|
INSERT INTO bug_53756 VALUES(1, 11), (2, 22), (3, 33), (4, 44);
|
||||||
|
|
||||||
|
# Select a less restrictive isolation level.
|
||||||
|
SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||||
|
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
# Start a transaction in the default connection for isolation.
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
@@tx_isolation
|
||||||
|
READ-COMMITTED
|
||||||
|
SELECT * FROM bug_53756;
|
||||||
|
pk c1
|
||||||
|
1 11
|
||||||
|
2 22
|
||||||
|
3 33
|
||||||
|
4 44
|
||||||
|
|
||||||
|
# connection con1 deletes row 1
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
@@tx_isolation
|
||||||
|
READ-COMMITTED
|
||||||
|
DELETE FROM bug_53756 WHERE pk=1;
|
||||||
|
|
||||||
|
# connection con2 deletes row 2
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
@@tx_isolation
|
||||||
|
READ-COMMITTED
|
||||||
|
DELETE FROM bug_53756 WHERE pk=2;
|
||||||
|
|
||||||
|
# connection con3 updates row 3
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
@@tx_isolation
|
||||||
|
READ-COMMITTED
|
||||||
|
UPDATE bug_53756 SET c1=77 WHERE pk=3;
|
||||||
|
|
||||||
|
# connection con4 updates row 4
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
@@tx_isolation
|
||||||
|
READ-COMMITTED
|
||||||
|
UPDATE bug_53756 SET c1=88 WHERE pk=4;
|
||||||
|
|
||||||
|
# connection con5 inserts row 5
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
@@tx_isolation
|
||||||
|
READ-COMMITTED
|
||||||
|
INSERT INTO bug_53756 VALUES(5, 55);
|
||||||
|
|
||||||
|
# connection con6 inserts row 6
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
@@tx_isolation
|
||||||
|
READ-COMMITTED
|
||||||
|
INSERT INTO bug_53756 VALUES(6, 66);
|
||||||
|
|
||||||
|
# connection con1 commits.
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
# connection con3 commits.
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
# connection con4 rolls back.
|
||||||
|
ROLLBACK;
|
||||||
|
|
||||||
|
# connection con6 rolls back.
|
||||||
|
ROLLBACK;
|
||||||
|
|
||||||
|
# The connections 2 and 5 stay open.
|
||||||
|
|
||||||
|
# connection default selects resulting data.
|
||||||
|
# Delete of row 1 was committed.
|
||||||
|
# Update of row 3 was committed.
|
||||||
|
# Due to isolation level read committed, these should be included.
|
||||||
|
# All other changes should not be included.
|
||||||
|
SELECT * FROM bug_53756;
|
||||||
|
pk c1
|
||||||
|
2 22
|
||||||
|
3 77
|
||||||
|
4 44
|
||||||
|
|
||||||
|
# connection default
|
||||||
|
#
|
||||||
|
# Crash server.
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO bug_53756 VALUES (666,666);
|
||||||
|
SET SESSION debug="+d,crash_commit_before";
|
||||||
|
COMMIT;
|
||||||
|
ERROR HY000: Lost connection to MySQL server during query
|
||||||
|
|
||||||
|
#
|
||||||
|
# disconnect con1, con2, con3, con4, con5, con6.
|
||||||
|
#
|
||||||
|
# Restart server.
|
||||||
|
|
||||||
|
#
|
||||||
|
# Select recovered data.
|
||||||
|
# Delete of row 1 was committed.
|
||||||
|
# Update of row 3 was committed.
|
||||||
|
# These should be included.
|
||||||
|
# All other changes should not be included.
|
||||||
|
# Delete of row 2 and insert of row 5 should be rolled back
|
||||||
|
SELECT * FROM bug_53756;
|
||||||
|
pk c1
|
||||||
|
2 22
|
||||||
|
3 77
|
||||||
|
4 44
|
||||||
|
|
||||||
|
# Clean up.
|
||||||
|
DROP TABLE bug_53756;
|
@ -2507,4 +2507,12 @@ ORDER BY f1 DESC LIMIT 5;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range f2,f4 f4 1 NULL 11 Using where
|
1 SIMPLE t1 range f2,f4 f4 1 NULL 11 Using where
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug#54117 crash in thr_multi_unlock, temporary table
|
||||||
|
#
|
||||||
|
CREATE TEMPORARY TABLE t1(a INT) ENGINE = InnoDB;
|
||||||
|
LOCK TABLES t1 READ;
|
||||||
|
ALTER TABLE t1 COMMENT 'test';
|
||||||
|
UNLOCK TABLES;
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
@ -12,3 +12,4 @@
|
|||||||
|
|
||||||
#innodb : Bug#53306 2010-04-30 VasilDimov valgrind warnings
|
#innodb : Bug#53306 2010-04-30 VasilDimov valgrind warnings
|
||||||
innodb_bug48024 : Waiting for merge with Percona Server; bug fixed in innodb_plugin in MySQL 5.1.48
|
innodb_bug48024 : Waiting for merge with Percona Server; bug fixed in innodb_plugin in MySQL 5.1.48
|
||||||
|
innodb_bug53756 : Waiting for merge with Percona Server; bug fixed in innodb_plugin in MySQL 5.1.50
|
||||||
|
1
mysql-test/suite/innodb/t/innodb_bug53756-master.opt
Normal file
1
mysql-test/suite/innodb/t/innodb_bug53756-master.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--skip-stack-trace --skip-core-file
|
184
mysql-test/suite/innodb/t/innodb_bug53756.test
Normal file
184
mysql-test/suite/innodb/t/innodb_bug53756.test
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
# This is the test case for bug #53756. Alter table operation could
|
||||||
|
# leave a deleted record for the temp table (later renamed to the altered
|
||||||
|
# table) in the SYS_TABLES secondary index, we should ignore this row and
|
||||||
|
# find the first non-deleted row for the specified table_id when load table
|
||||||
|
# metadata in the function dict_load_table_on_id() during crash recovery.
|
||||||
|
|
||||||
|
#
|
||||||
|
# innobackup needs to connect to the server. Not supported in embedded.
|
||||||
|
--source include/not_embedded.inc
|
||||||
|
#
|
||||||
|
# This test case needs to crash the server. Needs a debug server.
|
||||||
|
--source include/have_debug.inc
|
||||||
|
#
|
||||||
|
# Don't test this under valgrind, memory leaks will occur.
|
||||||
|
--source include/not_valgrind.inc
|
||||||
|
#
|
||||||
|
# This test case needs InnoDB.
|
||||||
|
--source include/have_innodb.inc
|
||||||
|
|
||||||
|
#
|
||||||
|
# Precautionary clean up.
|
||||||
|
#
|
||||||
|
--disable_warnings
|
||||||
|
DROP TABLE IF EXISTS bug_53756 ;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
#
|
||||||
|
# Create test data.
|
||||||
|
#
|
||||||
|
CREATE TABLE bug_53756 (pk INT, c1 INT) ENGINE=InnoDB;
|
||||||
|
ALTER TABLE bug_53756 ADD PRIMARY KEY (pk);
|
||||||
|
INSERT INTO bug_53756 VALUES(1, 11), (2, 22), (3, 33), (4, 44);
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Select a less restrictive isolation level.
|
||||||
|
# Don't use user variables. They won't survive server crash.
|
||||||
|
--let $global_isolation= `SELECT @@global.tx_isolation`;
|
||||||
|
--let $session_isolation= `SELECT @@session.tx_isolation`;
|
||||||
|
SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||||
|
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Start a transaction in the default connection for isolation.
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
SELECT * FROM bug_53756;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # connection con1 deletes row 1
|
||||||
|
--connect (con1,localhost,root,,)
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
DELETE FROM bug_53756 WHERE pk=1;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # connection con2 deletes row 2
|
||||||
|
--connect (con2,localhost,root,,)
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
DELETE FROM bug_53756 WHERE pk=2;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # connection con3 updates row 3
|
||||||
|
--connect (con3,localhost,root,,)
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
UPDATE bug_53756 SET c1=77 WHERE pk=3;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # connection con4 updates row 4
|
||||||
|
--connect (con4,localhost,root,,)
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
UPDATE bug_53756 SET c1=88 WHERE pk=4;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # connection con5 inserts row 5
|
||||||
|
--connect (con5,localhost,root,,)
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
INSERT INTO bug_53756 VALUES(5, 55);
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # connection con6 inserts row 6
|
||||||
|
--connect (con6,localhost,root,,)
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT @@tx_isolation;
|
||||||
|
INSERT INTO bug_53756 VALUES(6, 66);
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # connection con1 commits.
|
||||||
|
--connection con1
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # connection con3 commits.
|
||||||
|
--connection con3
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # connection con4 rolls back.
|
||||||
|
--connection con4
|
||||||
|
ROLLBACK;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # connection con6 rolls back.
|
||||||
|
--connection con6
|
||||||
|
ROLLBACK;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # The connections 2 and 5 stay open.
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # connection default selects resulting data.
|
||||||
|
--echo # Delete of row 1 was committed.
|
||||||
|
--echo # Update of row 3 was committed.
|
||||||
|
--echo # Due to isolation level read committed, these should be included.
|
||||||
|
--echo # All other changes should not be included.
|
||||||
|
--connection default
|
||||||
|
SELECT * FROM bug_53756;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # connection default
|
||||||
|
--connection default
|
||||||
|
--echo #
|
||||||
|
--echo # Crash server.
|
||||||
|
#
|
||||||
|
# Write file to make mysql-test-run.pl expect the "crash", but don't start
|
||||||
|
# it until it's told to
|
||||||
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
|
#
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO bug_53756 VALUES (666,666);
|
||||||
|
#
|
||||||
|
# Request a crash on next execution of commit.
|
||||||
|
SET SESSION debug="+d,crash_commit_before";
|
||||||
|
#
|
||||||
|
# Execute the statement that causes the crash.
|
||||||
|
--error 2013
|
||||||
|
COMMIT;
|
||||||
|
--echo
|
||||||
|
--echo #
|
||||||
|
--echo # disconnect con1, con2, con3, con4, con5, con6.
|
||||||
|
--disconnect con1
|
||||||
|
--disconnect con2
|
||||||
|
--disconnect con3
|
||||||
|
--disconnect con4
|
||||||
|
--disconnect con5
|
||||||
|
--disconnect con6
|
||||||
|
--echo #
|
||||||
|
--echo # Restart server.
|
||||||
|
#
|
||||||
|
# Write file to make mysql-test-run.pl start up the server again
|
||||||
|
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
|
#
|
||||||
|
# Turn on reconnect
|
||||||
|
--enable_reconnect
|
||||||
|
#
|
||||||
|
# Call script that will poll the server waiting for it to be back online again
|
||||||
|
--source include/wait_until_connected_again.inc
|
||||||
|
#
|
||||||
|
# Turn off reconnect again
|
||||||
|
--disable_reconnect
|
||||||
|
--echo
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Select recovered data.
|
||||||
|
--echo # Delete of row 1 was committed.
|
||||||
|
--echo # Update of row 3 was committed.
|
||||||
|
--echo # These should be included.
|
||||||
|
--echo # All other changes should not be included.
|
||||||
|
--echo # Delete of row 2 and insert of row 5 should be rolled back
|
||||||
|
SELECT * FROM bug_53756;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Clean up.
|
||||||
|
DROP TABLE bug_53756;
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
eval SET GLOBAL tx_isolation= '$global_isolation';
|
||||||
|
eval SET SESSION tx_isolation= '$session_isolation';
|
||||||
|
--enable_query_log
|
||||||
|
|
@ -752,4 +752,18 @@ ORDER BY f1 DESC LIMIT 5;
|
|||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug#54117 crash in thr_multi_unlock, temporary table
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE t1(a INT) ENGINE = InnoDB;
|
||||||
|
|
||||||
|
LOCK TABLES t1 READ;
|
||||||
|
ALTER TABLE t1 COMMENT 'test';
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
--echo End of 5.1 tests
|
--echo End of 5.1 tests
|
||||||
|
9
mysql-test/suite/innodb_plugin/r/innodb_bug54453.result
Normal file
9
mysql-test/suite/innodb_plugin/r/innodb_bug54453.result
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#
|
||||||
|
# Bug#54453: Failing assertion: trx->active_trans when renaming a table with active trx
|
||||||
|
#
|
||||||
|
DROP TABLE IF EXISTS bug54453;
|
||||||
|
CREATE TABLE bug54453(a INT) ENGINE=InnoDB;
|
||||||
|
ALTER TABLE bug54453 RENAME TO bug54453_2;
|
||||||
|
SELECT * FROM bug54453_2;
|
||||||
|
a
|
||||||
|
DROP TABLE bug54453_2;
|
@ -1,6 +1,8 @@
|
|||||||
-- source include/have_innodb_plugin.inc
|
-- source include/have_innodb_plugin.inc
|
||||||
# embedded server ignores 'delayed', so skip this
|
# embedded server ignores 'delayed', so skip this
|
||||||
-- source include/not_embedded.inc
|
-- source include/not_embedded.inc
|
||||||
|
# remove the next line after bug #55503 is fixed
|
||||||
|
-- source include/not_valgrind.inc
|
||||||
|
|
||||||
let $innodb_file_format_check_orig=`select @@innodb_file_format_check`;
|
let $innodb_file_format_check_orig=`select @@innodb_file_format_check`;
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
-- source include/have_innodb_plugin.inc
|
-- source include/have_innodb_plugin.inc
|
||||||
# embedded server ignores 'delayed', so skip this
|
# embedded server ignores 'delayed', so skip this
|
||||||
-- source include/not_embedded.inc
|
-- source include/not_embedded.inc
|
||||||
|
# remove the next line after bug #55503 is fixed
|
||||||
|
-- source include/not_valgrind.inc
|
||||||
|
|
||||||
let $innodb_file_format_check_orig=`select @@innodb_file_format_check`;
|
let $innodb_file_format_check_orig=`select @@innodb_file_format_check`;
|
||||||
|
|
||||||
|
15
mysql-test/suite/innodb_plugin/t/innodb_bug54453.test
Normal file
15
mysql-test/suite/innodb_plugin/t/innodb_bug54453.test
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
--source include/have_innodb_plugin.inc
|
||||||
|
--source include/have_log_bin.inc
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug#54453: Failing assertion: trx->active_trans when renaming a table with active trx
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--disable_warnings
|
||||||
|
DROP TABLE IF EXISTS bug54453;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
CREATE TABLE bug54453(a INT) ENGINE=InnoDB;
|
||||||
|
ALTER TABLE bug54453 RENAME TO bug54453_2;
|
||||||
|
SELECT * FROM bug54453_2;
|
||||||
|
DROP TABLE bug54453_2;
|
57
mysql-test/suite/rpl/r/rpl_conditional_comments.result
Normal file
57
mysql-test/suite/rpl/r/rpl_conditional_comments.result
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
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;
|
||||||
|
CREATE TABLE t1(c1 INT);
|
||||||
|
show binlog events from <binlog_start>;
|
||||||
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
master-bin.000001 # Query # # use `test`; CREATE TABLE t1(c1 INT)
|
||||||
|
|
||||||
|
# Case 1:
|
||||||
|
# ------------------------------------------------------------------
|
||||||
|
# In a statement, some CCs are applied while others are not. The CCs
|
||||||
|
# which are not applied on master will be binlogged as common comments.
|
||||||
|
/*!99999 --- */INSERT /*!INTO*/ /*!10000 t1 */ VALUES(10) /*!99999 ,(11)*/;
|
||||||
|
show binlog events from <binlog_start>;
|
||||||
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
master-bin.000001 # Query # # use `test`; /* 99999 --- */INSERT /*!INTO*/ /*!10000 t1 */ VALUES(10) /* 99999 ,(11)*/
|
||||||
|
Comparing tables master:test.t1 and slave:test.t1
|
||||||
|
|
||||||
|
# Case 2:
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
# Verify whether it can be binlogged correctly when executing prepared
|
||||||
|
# statement.
|
||||||
|
PREPARE stmt FROM 'INSERT INTO /*!99999 blabla*/ t1 VALUES(60) /*!99999 ,(61)*/';
|
||||||
|
EXECUTE stmt;
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1(c1 INT);
|
||||||
|
EXECUTE stmt;
|
||||||
|
Comparing tables master:test.t1 and slave:test.t1
|
||||||
|
|
||||||
|
SET @value=62;
|
||||||
|
PREPARE stmt FROM 'INSERT INTO /*!99999 blabla */ t1 VALUES(?) /*!99999 ,(63)*/';
|
||||||
|
EXECUTE stmt USING @value;
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1(c1 INT);
|
||||||
|
EXECUTE stmt USING @value;
|
||||||
|
show binlog events from <binlog_start>;
|
||||||
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
master-bin.000001 # Query # # use `test`; INSERT INTO /* 99999 blabla*/ t1 VALUES(60) /* 99999 ,(61)*/
|
||||||
|
master-bin.000001 # Query # # use `test`; DROP TABLE t1
|
||||||
|
master-bin.000001 # Query # # use `test`; CREATE TABLE t1(c1 INT)
|
||||||
|
master-bin.000001 # Query # # use `test`; INSERT INTO /* 99999 blabla*/ t1 VALUES(60) /* 99999 ,(61)*/
|
||||||
|
master-bin.000001 # Query # # use `test`; INSERT INTO /* 99999 blabla */ t1 VALUES(62) /* 99999 ,(63)*/
|
||||||
|
master-bin.000001 # Query # # use `test`; DROP TABLE t1
|
||||||
|
master-bin.000001 # Query # # use `test`; CREATE TABLE t1(c1 INT)
|
||||||
|
master-bin.000001 # Query # # use `test`; INSERT INTO /* 99999 blabla */ t1 VALUES(62) /* 99999 ,(63)*/
|
||||||
|
Comparing tables master:test.t1 and slave:test.t1
|
||||||
|
|
||||||
|
# Case 3:
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
# Verify it can restore the '!', if the it is an uncomplete conditional
|
||||||
|
# comments
|
||||||
|
SELECT c1 FROM /*!99999 t1 WHEREN;
|
||||||
|
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 '/*!99999 t1 WHEREN' at line 1
|
||||||
|
DROP TABLE t1;
|
205
mysql-test/suite/rpl/r/rpl_current_user.result
Normal file
205
mysql-test/suite/rpl/r/rpl_current_user.result
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
# On slave2
|
||||||
|
# Connect slave2 to slave
|
||||||
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=SLAVE_MYPORT;,
|
||||||
|
MASTER_LOG_FILE='slave-bin.000001', MASTER_USER='root';
|
||||||
|
START SLAVE;
|
||||||
|
|
||||||
|
# [On master]
|
||||||
|
DROP VIEW IF EXISTS v_user;
|
||||||
|
DROP VIEW IF EXISTS v_tables_priv;
|
||||||
|
DROP VIEW IF EXISTS v_procs_priv;
|
||||||
|
DROP PROCEDURE IF EXISTS p1;
|
||||||
|
DROP PROCEDURE IF EXISTS my_grant;
|
||||||
|
DROP PROCEDURE IF EXISTS my_revoke;
|
||||||
|
DROP FUNCTION IF EXISTS my_user;
|
||||||
|
DROP EVENT IF EXISTS e1;
|
||||||
|
CREATE TABLE t1(c1 char(100));
|
||||||
|
CREATE VIEW test.v_user AS SELECT * FROM mysql.user WHERE User LIKE 'bug48321%';
|
||||||
|
CREATE VIEW test.v_tables_priv AS SELECT * FROM mysql.tables_priv WHERE User LIKE 'bug48321%';
|
||||||
|
CREATE VIEW test.v_procs_priv AS SELECT * FROM mysql.procs_priv WHERE User LIKE 'bug48321%';
|
||||||
|
CREATE VIEW test.v_event AS SELECT definer FROM mysql.event WHERE name = 'e1';
|
||||||
|
CREATE PROCEDURE p1() SELECT 1;
|
||||||
|
# bug48321_1-01234 has the max length(16) of user.
|
||||||
|
GRANT ALL PRIVILEGES ON *.* TO 'bug48321_1-01234'@'localhost' WITH GRANT OPTION;
|
||||||
|
|
||||||
|
# Make sure the max lengths of user and host
|
||||||
|
# the user name is too lengh
|
||||||
|
GRANT CREATE USER ON *.* TO '01234567890123456'@'fakehost';
|
||||||
|
ERROR HY000: String '01234567890123456' is too long for user name (should be no longer than 16)
|
||||||
|
# the host name is too lengh
|
||||||
|
GRANT CREATE USER ON *.* TO 'fakename'@'0123456789012345678901234567890123456789012345678901234567890';
|
||||||
|
ERROR HY000: String '0123456789012345678901234567890123456789012345678901234567890' is too long for host name (should be no longer than 60)
|
||||||
|
|
||||||
|
# User 'bug48321_1-01234' connects to master by conn1
|
||||||
|
# [On conn1]
|
||||||
|
# Verify 'REVOKE ALL' statement
|
||||||
|
REVOKE ALL PRIVILEGES, GRANT OPTION FROM CURRENT_USER();
|
||||||
|
Comparing tables master:test.v_user and slave:test.v_user
|
||||||
|
Comparing tables master:test.v_user and slave2:test.v_user
|
||||||
|
|
||||||
|
# Verify 'GRANT ... ON TABLE ...' statement
|
||||||
|
GRANT CREATE, INSERT, SELECT ON TABLE test.t1 TO CURRENT_USER();
|
||||||
|
Comparing tables master:test.v_tables_priv and slave:test.v_tables_priv
|
||||||
|
Comparing tables master:test.v_tables_priv and slave2:test.v_tables_priv
|
||||||
|
|
||||||
|
# Verify 'GRANT ... ON PROCEDURE...' statement
|
||||||
|
GRANT ALTER ROUTINE, EXECUTE ON PROCEDURE p1 TO CURRENT_USER();
|
||||||
|
Comparing tables master:test.v_procs_priv and slave:test.v_procs_priv
|
||||||
|
Comparing tables master:test.v_procs_priv and slave2:test.v_procs_priv
|
||||||
|
|
||||||
|
# Verify 'GRANT ... ON *.* ...' statement
|
||||||
|
GRANT ALL PRIVILEGES ON *.* TO CURRENT_USER() WITH GRANT OPTION;
|
||||||
|
Comparing tables master:test.v_procs_priv and slave:test.v_procs_priv
|
||||||
|
Comparing tables master:test.v_procs_priv and slave2:test.v_procs_priv
|
||||||
|
|
||||||
|
# Verify 'REVOKE ... ON TABLE ...' statement
|
||||||
|
REVOKE CREATE, INSERT, SELECT ON TABLE t1 FROM CURRENT_USER();
|
||||||
|
Comparing tables master:test.v_tables_priv and slave:test.v_tables_priv
|
||||||
|
Comparing tables master:test.v_tables_priv and slave2:test.v_tables_priv
|
||||||
|
|
||||||
|
# Verify 'REVOKE ... ON PROCEDURE...' statement
|
||||||
|
REVOKE ALTER ROUTINE, EXECUTE ON PROCEDURE p1 FROM CURRENT_USER();
|
||||||
|
Comparing tables master:test.v_procs_priv and slave:test.v_procs_priv
|
||||||
|
Comparing tables master:test.v_procs_priv and slave2:test.v_procs_priv
|
||||||
|
|
||||||
|
# Verify 'REVOKE ... ON *.* ...' statement
|
||||||
|
REVOKE ALL PRIVILEGES ON *.* FROM CURRENT_USER();
|
||||||
|
Comparing tables master:test.v_user and slave:test.v_user
|
||||||
|
Comparing tables master:test.v_user and slave2:test.v_user
|
||||||
|
|
||||||
|
# Verify 'GRANT ...' statement in the procedure
|
||||||
|
CREATE PROCEDURE my_grant()
|
||||||
|
GRANT CREATE, INSERT, SELECT ON TABLE test.t1 TO CURRENT_USER();
|
||||||
|
call my_grant;
|
||||||
|
Comparing tables master:test.v_tables_priv and slave:test.v_tables_priv
|
||||||
|
Comparing tables master:test.v_tables_priv and slave2:test.v_tables_priv
|
||||||
|
|
||||||
|
# Verify 'REVOKE ... ON TABLE ...' statement in the procedure
|
||||||
|
CREATE PROCEDURE my_revoke()
|
||||||
|
REVOKE CREATE, INSERT, SELECT ON TABLE t1 FROM CURRENT_USER();
|
||||||
|
call my_revoke;
|
||||||
|
Comparing tables master:test.v_tables_priv and slave:test.v_tables_priv
|
||||||
|
Comparing tables master:test.v_tables_priv and slave2:test.v_tables_priv
|
||||||
|
|
||||||
|
# Verify 'RENAME USER ...' statement
|
||||||
|
RENAME USER CURRENT_USER TO 'bug48321_2'@'localhost';
|
||||||
|
Comparing tables master:test.v_user and slave:test.v_user
|
||||||
|
Comparing tables master:test.v_user and slave2:test.v_user
|
||||||
|
|
||||||
|
# Verify 'DROP USER ...' statement
|
||||||
|
GRANT CREATE USER ON *.* TO 'bug48321_2'@'localhost';
|
||||||
|
DROP USER CURRENT_USER();
|
||||||
|
Comparing tables master:test.v_user and slave:test.v_user
|
||||||
|
Comparing tables master:test.v_user and slave2:test.v_user
|
||||||
|
|
||||||
|
# Verify 'ALTER EVENT...' statement
|
||||||
|
CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT * FROM t1;
|
||||||
|
# Explicitly assign CURRENT_USER() to definer
|
||||||
|
ALTER DEFINER=CURRENT_USER() EVENT e1 ENABLE;
|
||||||
|
Comparing tables master:test.v_event and slave:test.v_event
|
||||||
|
Comparing tables master:test.v_event and slave2:test.v_event
|
||||||
|
|
||||||
|
# Session user will be set as definer, if the statement does not assign
|
||||||
|
# a definer
|
||||||
|
ALTER EVENT e1 ENABLE;
|
||||||
|
Comparing tables master:test.v_event and slave:test.v_event
|
||||||
|
Comparing tables master:test.v_event and slave2:test.v_event
|
||||||
|
|
||||||
|
# Verify that this patch does not affect the calling of CURRENT_USER()
|
||||||
|
# in the other statements
|
||||||
|
# [On master]
|
||||||
|
INSERT INTO t1 VALUES(CURRENT_USER()), ('1234');
|
||||||
|
Warnings:
|
||||||
|
Note 1592 Statement may not be safe to log in statement format.
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
root@localhost
|
||||||
|
1234
|
||||||
|
# [On slave]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
@
|
||||||
|
1234
|
||||||
|
# [On slave2]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
@
|
||||||
|
1234
|
||||||
|
# [On master]
|
||||||
|
UPDATE t1 SET c1=CURRENT_USER() WHERE c1='1234';
|
||||||
|
Warnings:
|
||||||
|
Note 1592 Statement may not be safe to log in statement format.
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
root@localhost
|
||||||
|
root@localhost
|
||||||
|
# [On slave]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
@
|
||||||
|
@
|
||||||
|
# [On slave2]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
@
|
||||||
|
@
|
||||||
|
# [On master]
|
||||||
|
DELETE FROM t1 WHERE c1=CURRENT_USER();
|
||||||
|
Warnings:
|
||||||
|
Note 1592 Statement may not be safe to log in statement format.
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
# [On slave]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
# [On slave2]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
# [On master]
|
||||||
|
CREATE TABLE t2(c1 char(100));
|
||||||
|
CREATE FUNCTION my_user() RETURNS VARCHAR(64)
|
||||||
|
SQL SECURITY INVOKER
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO t2 VALUES(CURRENT_USER());
|
||||||
|
RETURN CURRENT_USER();
|
||||||
|
END |
|
||||||
|
INSERT INTO t1 VALUES(my_user());
|
||||||
|
Warnings:
|
||||||
|
Note 1592 Statement may not be safe to log in statement format.
|
||||||
|
Note 1592 Statement may not be safe to log in statement format.
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
root@localhost
|
||||||
|
SELECT * FROM t2;
|
||||||
|
c1
|
||||||
|
root@localhost
|
||||||
|
# [On slave]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
@
|
||||||
|
SELECT * FROM t2;
|
||||||
|
c1
|
||||||
|
@
|
||||||
|
# [On slave2]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
@
|
||||||
|
SELECT * FROM t2;
|
||||||
|
c1
|
||||||
|
@
|
||||||
|
|
||||||
|
# END
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
DROP VIEW v_user, v_tables_priv, v_procs_priv, v_event;
|
||||||
|
DROP PROCEDURE p1;
|
||||||
|
DROP PROCEDURE my_grant;
|
||||||
|
DROP PROCEDURE my_revoke;
|
||||||
|
DROP FUNCTION my_user;
|
||||||
|
DROP EVENT e1;
|
@ -8,3 +8,27 @@ drop table if exists t1, t2;
|
|||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
ERROR 42S02: Unknown table 't2'
|
ERROR 42S02: Unknown table 't2'
|
||||||
|
include/stop_slave.inc
|
||||||
|
SET @old_binlog_format= @@global.binlog_format;
|
||||||
|
SET GLOBAL binlog_format = ROW;
|
||||||
|
include/start_slave.inc
|
||||||
|
SET @old_binlog_format= @@global.binlog_format;
|
||||||
|
SET binlog_format = ROW;
|
||||||
|
CREATE TABLE t2(a INT) ENGINE=MYISAM;
|
||||||
|
CREATE TABLE t3(a INT) ENGINE=INNODB;
|
||||||
|
CREATE FUNCTION f1() RETURNS INT
|
||||||
|
BEGIN
|
||||||
|
insert into t2 values(1);
|
||||||
|
insert into t3 values(1);
|
||||||
|
return 1;
|
||||||
|
END|
|
||||||
|
CREATE TABLE t1(UNIQUE(a)) ENGINE=MYISAM SELECT 1 AS a UNION ALL SELECT f1();
|
||||||
|
ERROR 23000: Duplicate entry '1' for key 'a'
|
||||||
|
CREATE TABLE t1(UNIQUE(a)) ENGINE=INNODB SELECT 1 AS a UNION ALL SELECT f1();
|
||||||
|
ERROR 23000: Duplicate entry '1' for key 'a'
|
||||||
|
show binlog events in 'master-bin.000001' from <binlog_start>;
|
||||||
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
DROP FUNCTION f1;
|
||||||
|
DROP TABLE t2, t3;
|
||||||
|
SET @@global.binlog_format= @old_binlog_format;
|
||||||
|
SET @@global.binlog_format= @old_binlog_format;
|
||||||
|
@ -750,7 +750,7 @@ test_rpl e2 root@localhost SYSTEM RECURRING NULL 1 # # NULL ENABLED 1 latin1 lat
|
|||||||
USE test_rpl;
|
USE test_rpl;
|
||||||
SHOW EVENTS;
|
SHOW EVENTS;
|
||||||
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
||||||
test_rpl e2 @ SYSTEM RECURRING NULL 1 # # NULL SLAVESIDE_DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
|
test_rpl e2 root@localhost SYSTEM RECURRING NULL 1 # # NULL SLAVESIDE_DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
|
||||||
==========MASTER==========
|
==========MASTER==========
|
||||||
SELECT COUNT(*) FROM t1;
|
SELECT COUNT(*) FROM t1;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
|
@ -49,6 +49,14 @@ Slave_IO_Running = No (expect No)
|
|||||||
SELECT "Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master'" AS Last_IO_Error;
|
SELECT "Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master'" AS Last_IO_Error;
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master'
|
Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master'
|
||||||
|
STOP SLAVE;
|
||||||
|
RESET SLAVE;
|
||||||
|
RESET MASTER;
|
||||||
|
SET @max_allowed_packet_0= @@session.max_allowed_packet;
|
||||||
|
SHOW BINLOG EVENTS;
|
||||||
|
SET @max_allowed_packet_1= @@session.max_allowed_packet;
|
||||||
|
SHOW BINLOG EVENTS;
|
||||||
|
SET @max_allowed_packet_2= @@session.max_allowed_packet;
|
||||||
==== clean up ====
|
==== clean up ====
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET @@global.max_allowed_packet= 1024;
|
SET @@global.max_allowed_packet= 1024;
|
||||||
|
74
mysql-test/suite/rpl/t/rpl_conditional_comments.test
Normal file
74
mysql-test/suite/rpl/t/rpl_conditional_comments.test
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
###############################################################################
|
||||||
|
# After the patch for BUG#49124:
|
||||||
|
# - Use ' ' instead of '!' in the conditional comments which are not applied on
|
||||||
|
# master. So they become common comments and will not be applied on slave.
|
||||||
|
#
|
||||||
|
# - Example:
|
||||||
|
# 'INSERT INTO t1 VALUES (1) /*!10000, (2)*/ /*!99999 ,(3)*/
|
||||||
|
# will be binlogged as
|
||||||
|
# 'INSERT INTO t1 VALUES (1) /*!10000, (2)*/ /* 99999 ,(3)*/'.
|
||||||
|
###############################################################################
|
||||||
|
source include/master-slave.inc;
|
||||||
|
source include/have_binlog_format_statement.inc;
|
||||||
|
|
||||||
|
CREATE TABLE t1(c1 INT);
|
||||||
|
source include/show_binlog_events.inc;
|
||||||
|
let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Case 1:
|
||||||
|
--echo # ------------------------------------------------------------------
|
||||||
|
--echo # In a statement, some CCs are applied while others are not. The CCs
|
||||||
|
--echo # which are not applied on master will be binlogged as common comments.
|
||||||
|
|
||||||
|
/*!99999 --- */INSERT /*!INTO*/ /*!10000 t1 */ VALUES(10) /*!99999 ,(11)*/;
|
||||||
|
|
||||||
|
source include/show_binlog_events.inc;
|
||||||
|
let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||||
|
sync_slave_with_master;
|
||||||
|
let $diff_table_1=master:test.t1;
|
||||||
|
let $diff_table_2=slave:test.t1;
|
||||||
|
source include/diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Case 2:
|
||||||
|
--echo # -----------------------------------------------------------------
|
||||||
|
--echo # Verify whether it can be binlogged correctly when executing prepared
|
||||||
|
--echo # statement.
|
||||||
|
PREPARE stmt FROM 'INSERT INTO /*!99999 blabla*/ t1 VALUES(60) /*!99999 ,(61)*/';
|
||||||
|
EXECUTE stmt;
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1(c1 INT);
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
sync_slave_with_master;
|
||||||
|
let $diff_table_1=master:test.t1;
|
||||||
|
let $diff_table_2=slave:test.t1;
|
||||||
|
source include/diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
SET @value=62;
|
||||||
|
PREPARE stmt FROM 'INSERT INTO /*!99999 blabla */ t1 VALUES(?) /*!99999 ,(63)*/';
|
||||||
|
EXECUTE stmt USING @value;
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1(c1 INT);
|
||||||
|
EXECUTE stmt USING @value;
|
||||||
|
|
||||||
|
source include/show_binlog_events.inc;
|
||||||
|
let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||||
|
|
||||||
|
sync_slave_with_master;
|
||||||
|
let $diff_table_1=master:test.t1;
|
||||||
|
let $diff_table_2=slave:test.t1;
|
||||||
|
source include/diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Case 3:
|
||||||
|
--echo # -----------------------------------------------------------------
|
||||||
|
--echo # Verify it can restore the '!', if the it is an uncomplete conditional
|
||||||
|
--echo # comments
|
||||||
|
--error 1064
|
||||||
|
SELECT c1 FROM /*!99999 t1 WHEREN;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
source include/master-slave-end.inc;
|
9
mysql-test/suite/rpl/t/rpl_current_user.cnf
Normal file
9
mysql-test/suite/rpl/t/rpl_current_user.cnf
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
!include ../my.cnf
|
||||||
|
|
||||||
|
[mysqld.3]
|
||||||
|
server-id=3
|
||||||
|
log-bin=slave-bin
|
||||||
|
|
||||||
|
[ENV]
|
||||||
|
SLAVE_MYPORT1= @mysqld.3.port
|
||||||
|
SLAVE_MYSOCK1= @mysqld.3.socket
|
238
mysql-test/suite/rpl/t/rpl_current_user.test
Normal file
238
mysql-test/suite/rpl/t/rpl_current_user.test
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
##############################################################################
|
||||||
|
# BUG#48321 CURRENT_USER() incorrectly replicated for DROP/RENAME USER,
|
||||||
|
# REVOKE, GRANT, ALTER EVENT
|
||||||
|
#
|
||||||
|
# Calling CURRENT_USER() results into inconsistency between slave and master,
|
||||||
|
# as the slave SQL thread has different user with common users.
|
||||||
|
#
|
||||||
|
# After the patch for bug#48321, session's user will be written into query log
|
||||||
|
# event if CURRENT_USER() is called in 'DROP/RENAME USER', 'REVOKE', 'GRANT',
|
||||||
|
# 'ALTER EVENT'.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
source include/master-slave.inc;
|
||||||
|
source include/have_binlog_format_statement.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # On slave2
|
||||||
|
connect (slave2,127.0.0.1,root,,test,$SLAVE_MYPORT1,);
|
||||||
|
connection slave2;
|
||||||
|
|
||||||
|
--echo # Connect slave2 to slave
|
||||||
|
--replace_result $SLAVE_MYPORT SLAVE_MYPORT;
|
||||||
|
eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=$SLAVE_MYPORT,
|
||||||
|
MASTER_LOG_FILE='slave-bin.000001', MASTER_USER='root';
|
||||||
|
START SLAVE;
|
||||||
|
source include/wait_for_slave_to_start.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # [On master]
|
||||||
|
connection master;
|
||||||
|
--disable_warnings
|
||||||
|
DROP VIEW IF EXISTS v_user;
|
||||||
|
DROP VIEW IF EXISTS v_tables_priv;
|
||||||
|
DROP VIEW IF EXISTS v_procs_priv;
|
||||||
|
DROP PROCEDURE IF EXISTS p1;
|
||||||
|
DROP PROCEDURE IF EXISTS my_grant;
|
||||||
|
DROP PROCEDURE IF EXISTS my_revoke;
|
||||||
|
DROP FUNCTION IF EXISTS my_user;
|
||||||
|
DROP EVENT IF EXISTS e1;
|
||||||
|
--enable_warnings
|
||||||
|
CREATE TABLE t1(c1 char(100));
|
||||||
|
CREATE VIEW test.v_user AS SELECT * FROM mysql.user WHERE User LIKE 'bug48321%';
|
||||||
|
CREATE VIEW test.v_tables_priv AS SELECT * FROM mysql.tables_priv WHERE User LIKE 'bug48321%';
|
||||||
|
CREATE VIEW test.v_procs_priv AS SELECT * FROM mysql.procs_priv WHERE User LIKE 'bug48321%';
|
||||||
|
CREATE VIEW test.v_event AS SELECT definer FROM mysql.event WHERE name = 'e1';
|
||||||
|
CREATE PROCEDURE p1() SELECT 1;
|
||||||
|
--echo # bug48321_1-01234 has the max length(16) of user.
|
||||||
|
GRANT ALL PRIVILEGES ON *.* TO 'bug48321_1-01234'@'localhost' WITH GRANT OPTION;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Make sure the max lengths of user and host
|
||||||
|
--echo # the user name is too lengh
|
||||||
|
--error 1470
|
||||||
|
GRANT CREATE USER ON *.* TO '01234567890123456'@'fakehost';
|
||||||
|
--echo # the host name is too lengh
|
||||||
|
--error 1470
|
||||||
|
GRANT CREATE USER ON *.* TO 'fakename'@'0123456789012345678901234567890123456789012345678901234567890';
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # User 'bug48321_1-01234' connects to master by conn1
|
||||||
|
connect (conn1, 127.0.0.1, 'bug48321_1-01234'@'localhost',,);
|
||||||
|
connection conn1;
|
||||||
|
--echo # [On conn1]
|
||||||
|
--echo # Verify 'REVOKE ALL' statement
|
||||||
|
REVOKE ALL PRIVILEGES, GRANT OPTION FROM CURRENT_USER();
|
||||||
|
let $diff_table= test.v_user;
|
||||||
|
let $diff_server_list= master, slave, slave2;
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Verify 'GRANT ... ON TABLE ...' statement
|
||||||
|
connection conn1;
|
||||||
|
GRANT CREATE, INSERT, SELECT ON TABLE test.t1 TO CURRENT_USER();
|
||||||
|
let $diff_table= test.v_tables_priv;
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Verify 'GRANT ... ON PROCEDURE...' statement
|
||||||
|
connection conn1;
|
||||||
|
GRANT ALTER ROUTINE, EXECUTE ON PROCEDURE p1 TO CURRENT_USER();
|
||||||
|
let $diff_table= test.v_procs_priv;
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Verify 'GRANT ... ON *.* ...' statement
|
||||||
|
connection conn1;
|
||||||
|
GRANT ALL PRIVILEGES ON *.* TO CURRENT_USER() WITH GRANT OPTION;
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Verify 'REVOKE ... ON TABLE ...' statement
|
||||||
|
connection conn1;
|
||||||
|
REVOKE CREATE, INSERT, SELECT ON TABLE t1 FROM CURRENT_USER();
|
||||||
|
let $diff_table= test.v_tables_priv;
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Verify 'REVOKE ... ON PROCEDURE...' statement
|
||||||
|
connection conn1;
|
||||||
|
REVOKE ALTER ROUTINE, EXECUTE ON PROCEDURE p1 FROM CURRENT_USER();
|
||||||
|
let $diff_table= test.v_procs_priv;
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Verify 'REVOKE ... ON *.* ...' statement
|
||||||
|
connection conn1;
|
||||||
|
REVOKE ALL PRIVILEGES ON *.* FROM CURRENT_USER();
|
||||||
|
let $diff_table= test.v_user;
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Verify 'GRANT ...' statement in the procedure
|
||||||
|
connection conn1;
|
||||||
|
CREATE PROCEDURE my_grant()
|
||||||
|
GRANT CREATE, INSERT, SELECT ON TABLE test.t1 TO CURRENT_USER();
|
||||||
|
call my_grant;
|
||||||
|
let $diff_table= test.v_tables_priv;
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Verify 'REVOKE ... ON TABLE ...' statement in the procedure
|
||||||
|
connection conn1;
|
||||||
|
CREATE PROCEDURE my_revoke()
|
||||||
|
REVOKE CREATE, INSERT, SELECT ON TABLE t1 FROM CURRENT_USER();
|
||||||
|
call my_revoke;
|
||||||
|
let $diff_table= test.v_tables_priv;
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Verify 'RENAME USER ...' statement
|
||||||
|
connection conn1;
|
||||||
|
RENAME USER CURRENT_USER TO 'bug48321_2'@'localhost';
|
||||||
|
let $diff_table= test.v_user;
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
disconnect conn1;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Verify 'DROP USER ...' statement
|
||||||
|
connection master;
|
||||||
|
GRANT CREATE USER ON *.* TO 'bug48321_2'@'localhost';
|
||||||
|
connect (conn1, 127.0.0.1, 'bug48321_2'@'localhost',,);
|
||||||
|
connection conn1;
|
||||||
|
DROP USER CURRENT_USER();
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Verify 'ALTER EVENT...' statement
|
||||||
|
connection master;
|
||||||
|
CREATE EVENT e1 ON SCHEDULE EVERY 1 DAY DO SELECT * FROM t1;
|
||||||
|
|
||||||
|
--echo # Explicitly assign CURRENT_USER() to definer
|
||||||
|
ALTER DEFINER=CURRENT_USER() EVENT e1 ENABLE;
|
||||||
|
let $diff_table= test.v_event;
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
connection master;
|
||||||
|
--echo
|
||||||
|
--echo # Session user will be set as definer, if the statement does not assign
|
||||||
|
--echo # a definer
|
||||||
|
ALTER EVENT e1 ENABLE;
|
||||||
|
sync_slave_with_master;
|
||||||
|
source include/rpl_diff_tables.inc;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # Verify that this patch does not affect the calling of CURRENT_USER()
|
||||||
|
--echo # in the other statements
|
||||||
|
connection master;
|
||||||
|
--echo # [On master]
|
||||||
|
INSERT INTO t1 VALUES(CURRENT_USER()), ('1234');
|
||||||
|
SELECT * FROM t1;
|
||||||
|
sync_slave_with_master;
|
||||||
|
--echo # [On slave]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
--echo # [On slave2]
|
||||||
|
sync_slave_with_master slave2;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
|
||||||
|
connection master;
|
||||||
|
--echo # [On master]
|
||||||
|
UPDATE t1 SET c1=CURRENT_USER() WHERE c1='1234';
|
||||||
|
SELECT * FROM t1;
|
||||||
|
sync_slave_with_master;
|
||||||
|
--echo # [On slave]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
sync_slave_with_master slave2;
|
||||||
|
--echo # [On slave2]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
|
||||||
|
connection master;
|
||||||
|
--echo # [On master]
|
||||||
|
DELETE FROM t1 WHERE c1=CURRENT_USER();
|
||||||
|
SELECT * FROM t1;
|
||||||
|
sync_slave_with_master;
|
||||||
|
--echo # [On slave]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
sync_slave_with_master slave2;
|
||||||
|
--echo # [On slave2]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
|
||||||
|
connection master;
|
||||||
|
--echo # [On master]
|
||||||
|
CREATE TABLE t2(c1 char(100));
|
||||||
|
|
||||||
|
DELIMITER |;
|
||||||
|
CREATE FUNCTION my_user() RETURNS VARCHAR(64)
|
||||||
|
SQL SECURITY INVOKER
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO t2 VALUES(CURRENT_USER());
|
||||||
|
RETURN CURRENT_USER();
|
||||||
|
END |
|
||||||
|
DELIMITER ;|
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES(my_user());
|
||||||
|
SELECT * FROM t1;
|
||||||
|
SELECT * FROM t2;
|
||||||
|
sync_slave_with_master;
|
||||||
|
--echo # [On slave]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
SELECT * FROM t2;
|
||||||
|
sync_slave_with_master slave2;
|
||||||
|
--echo # [On slave2]
|
||||||
|
SELECT * FROM t1;
|
||||||
|
SELECT * FROM t2;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # END
|
||||||
|
connection master;
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
DROP VIEW v_user, v_tables_priv, v_procs_priv, v_event;
|
||||||
|
DROP PROCEDURE p1;
|
||||||
|
DROP PROCEDURE my_grant;
|
||||||
|
DROP PROCEDURE my_revoke;
|
||||||
|
DROP FUNCTION my_user;
|
||||||
|
DROP EVENT e1;
|
||||||
|
sync_slave_with_master;
|
||||||
|
sync_slave_with_master slave2;
|
||||||
|
source include/master-slave-end.inc;
|
@ -1,6 +1,7 @@
|
|||||||
# Testcase for BUG#4552 (DROP on two tables, one of which does not
|
# Testcase for BUG#4552 (DROP on two tables, one of which does not
|
||||||
# exist, must be binlogged with a non-zero error code)
|
# exist, must be binlogged with a non-zero error code)
|
||||||
source include/master-slave.inc;
|
source include/master-slave.inc;
|
||||||
|
source include/have_innodb.inc;
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t1, t2;
|
drop table if exists t1, t2;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
@ -10,7 +11,57 @@ drop table t1, t2;
|
|||||||
save_master_pos;
|
save_master_pos;
|
||||||
connection slave;
|
connection slave;
|
||||||
sync_with_master;
|
sync_with_master;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
|
# BUG#55625 RBR breaks on failing 'CREATE TABLE'
|
||||||
|
# A CREATE...SELECT that fails is written to the binary log if a non-transactional
|
||||||
|
# statement is updated. If the logging format is ROW, the CREATE statement and the
|
||||||
|
# changes are written to the binary log as distinct events and by consequence the
|
||||||
|
# created table is not rolled back in the slave.
|
||||||
|
# To fix the problem, we do not write a CREATE...SELECT that fails to the binary
|
||||||
|
# log. Howerver, the changes to non-transactional tables are not replicated and
|
||||||
|
# thus the slave goes out of sync. This should be fixed after BUG#47899.
|
||||||
|
#
|
||||||
|
# In the test case, we verify if the binary log contains no information for a
|
||||||
|
# CREATE...SELECT that fails.
|
||||||
|
connection slave;
|
||||||
|
|
||||||
|
--source include/stop_slave.inc
|
||||||
|
SET @old_binlog_format= @@global.binlog_format;
|
||||||
|
SET GLOBAL binlog_format = ROW;
|
||||||
|
--source include/start_slave.inc
|
||||||
|
|
||||||
|
connection master;
|
||||||
|
SET @old_binlog_format= @@global.binlog_format;
|
||||||
|
SET binlog_format = ROW;
|
||||||
|
|
||||||
|
CREATE TABLE t2(a INT) ENGINE=MYISAM;
|
||||||
|
CREATE TABLE t3(a INT) ENGINE=INNODB;
|
||||||
|
|
||||||
|
delimiter |;
|
||||||
|
CREATE FUNCTION f1() RETURNS INT
|
||||||
|
BEGIN
|
||||||
|
insert into t2 values(1);
|
||||||
|
insert into t3 values(1);
|
||||||
|
return 1;
|
||||||
|
END|
|
||||||
|
delimiter ;|
|
||||||
|
|
||||||
|
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||||
|
let $binlog_file= query_get_value("SHOW MASTER STATUS", File, 1);
|
||||||
|
|
||||||
|
--error 1062
|
||||||
|
CREATE TABLE t1(UNIQUE(a)) ENGINE=MYISAM SELECT 1 AS a UNION ALL SELECT f1();
|
||||||
|
--error 1062
|
||||||
|
CREATE TABLE t1(UNIQUE(a)) ENGINE=INNODB SELECT 1 AS a UNION ALL SELECT f1();
|
||||||
|
|
||||||
|
--source include/show_binlog_events.inc
|
||||||
|
|
||||||
|
DROP FUNCTION f1;
|
||||||
|
DROP TABLE t2, t3;
|
||||||
|
SET @@global.binlog_format= @old_binlog_format;
|
||||||
|
|
||||||
|
--sync_slave_with_master
|
||||||
|
SET @@global.binlog_format= @old_binlog_format;
|
||||||
|
|
||||||
|
# End of 5.1 tests
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
|
# ==== Purpose ====
|
||||||
#
|
#
|
||||||
# Check replication protocol packet size handling
|
# Check replication protocol packet size handling
|
||||||
# Bug#19402 SQL close to the size of the max_allowed_packet fails on slave
|
|
||||||
#
|
#
|
||||||
|
# ==== Related bugs ====
|
||||||
|
# Bug#19402 SQL close to the size of the max_allowed_packet fails on slave
|
||||||
|
# BUG#23755: Replicated event larger that max_allowed_packet infinitely re-transmits
|
||||||
|
# BUG#42914: No LAST_IO_ERROR for max_allowed_packet errors
|
||||||
|
# BUG#55322: SHOW BINLOG EVENTS increases @@SESSION.MAX_ALLOWED_PACKET
|
||||||
|
|
||||||
# max-out size db name
|
# max-out size db name
|
||||||
source include/master-slave.inc;
|
source include/master-slave.inc;
|
||||||
@ -119,6 +124,38 @@ let $slave_io_running= query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1);
|
|||||||
let $last_io_error= query_get_value(SHOW SLAVE STATUS, Last_IO_Error, 1);
|
let $last_io_error= query_get_value(SHOW SLAVE STATUS, Last_IO_Error, 1);
|
||||||
eval SELECT "$last_io_error" AS Last_IO_Error;
|
eval SELECT "$last_io_error" AS Last_IO_Error;
|
||||||
|
|
||||||
|
# Remove the bad binlog and clear error status on slave.
|
||||||
|
STOP SLAVE;
|
||||||
|
RESET SLAVE;
|
||||||
|
--connection master
|
||||||
|
RESET MASTER;
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#55322: SHOW BINLOG EVENTS increases @@SESSION.MAX_ALLOWED_PACKET
|
||||||
|
#
|
||||||
|
# In BUG#55322, @@session.max_allowed_packet increased each time SHOW
|
||||||
|
# BINLOG EVENTS was issued. To verify that this bug is fixed, we
|
||||||
|
# execute SHOW BINLOG EVENTS twice and check that max_allowed_packet
|
||||||
|
# never changes. We turn off the result log because we don't care
|
||||||
|
# about the contents of the binlog.
|
||||||
|
|
||||||
|
--disable_result_log
|
||||||
|
SET @max_allowed_packet_0= @@session.max_allowed_packet;
|
||||||
|
SHOW BINLOG EVENTS;
|
||||||
|
SET @max_allowed_packet_1= @@session.max_allowed_packet;
|
||||||
|
SHOW BINLOG EVENTS;
|
||||||
|
SET @max_allowed_packet_2= @@session.max_allowed_packet;
|
||||||
|
--enable_result_log
|
||||||
|
if (`SELECT NOT(@max_allowed_packet_0 = @max_allowed_packet_1 AND @max_allowed_packet_1 = @max_allowed_packet_2)`)
|
||||||
|
{
|
||||||
|
--echo ERROR: max_allowed_packet changed after executing SHOW BINLOG EVENTS
|
||||||
|
--source include/show_rpl_debug_info.inc
|
||||||
|
SELECT @max_allowed_packet_0, @max_allowed_packet_1, @max_allowed_packet_2;
|
||||||
|
--die @max_allowed_packet changed after executing SHOW BINLOG EVENTS
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
--echo ==== clean up ====
|
--echo ==== clean up ====
|
||||||
connection master;
|
connection master;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@ -708,6 +708,7 @@ SELECT 1 FROM
|
|||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo End of 5.0 tests
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Bug #52397: another crash with explain extended and group_concat
|
--echo # Bug #52397: another crash with explain extended and group_concat
|
||||||
@ -719,5 +720,18 @@ EXPLAIN EXTENDED SELECT 1 FROM
|
|||||||
t1 t2, t1 GROUP BY t1.a) AS d;
|
t1 t2, t1 GROUP BY t1.a) AS d;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #54476: crash when group_concat and 'with rollup' in prepared statements
|
||||||
|
--echo #
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (1), (2);
|
||||||
|
|
||||||
|
PREPARE stmt FROM "SELECT GROUP_CONCAT(t1.a ORDER BY t1.a) FROM t1 JOIN t1 t2 GROUP BY t1.a WITH ROLLUP";
|
||||||
|
EXECUTE stmt;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo End of 5.1 tests
|
||||||
|
@ -279,4 +279,16 @@ select NAME_CONST('_id',1234) as id;
|
|||||||
|
|
||||||
select connection_id() > 0;
|
select connection_id() > 0;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #54461: crash with longblob and union or update with subquery
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT, b LONGBLOB);
|
||||||
|
INSERT INTO t1 VALUES (1, '2'), (2, '3'), (3, '2');
|
||||||
|
|
||||||
|
SELECT DISTINCT LEAST(a, (SELECT b FROM t1 LIMIT 1)) FROM t1 UNION SELECT 1;
|
||||||
|
SELECT DISTINCT GREATEST(a, (SELECT b FROM t1 LIMIT 1)) FROM t1 UNION SELECT 1;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo End of tests
|
--echo End of tests
|
||||||
|
@ -1238,5 +1238,19 @@ select min(t2.key_col)+1 from t1,t2 where t1.a> 1000;
|
|||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
--echo # Bug#55188: GROUP BY, GROUP_CONCAT and TEXT - inconsistent results
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a text, b varchar(10));
|
||||||
|
INSERT INTO t1 VALUES (repeat('1', 1300),'one'), (repeat('1', 1300),'two');
|
||||||
|
|
||||||
|
query_vertical EXPLAIN
|
||||||
|
SELECT SUBSTRING(a,1,10), LENGTH(a), GROUP_CONCAT(b) FROM t1 GROUP BY a;
|
||||||
|
SELECT SUBSTRING(a,1,10), LENGTH(a), GROUP_CONCAT(b) FROM t1 GROUP BY a;
|
||||||
|
query_vertical EXPLAIN
|
||||||
|
SELECT SUBSTRING(a,1,10), LENGTH(a) FROM t1 GROUP BY a;
|
||||||
|
SELECT SUBSTRING(a,1,10), LENGTH(a) FROM t1 GROUP BY a;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
--echo # End of 5.1 tests
|
--echo # End of 5.1 tests
|
||||||
|
@ -544,3 +544,24 @@ ORDER BY t1.f2;
|
|||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug#54416 MAX from JOIN with HAVING returning NULL with 5.1 and Empty set
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (f1 INT(11), f2 VARCHAR(1), PRIMARY KEY (f1));
|
||||||
|
INSERT INTO t1 VALUES (1,'f');
|
||||||
|
|
||||||
|
CREATE TABLE t2 (f1 INT(11), f2 VARCHAR(1));
|
||||||
|
INSERT INTO t2 VALUES (2,'m');
|
||||||
|
INSERT INTO t2 VALUES (3,'m');
|
||||||
|
INSERT INTO t2 VALUES (11,NULL);
|
||||||
|
INSERT INTO t2 VALUES (12,'k');
|
||||||
|
|
||||||
|
SELECT MAX(t1.f1) field1
|
||||||
|
FROM t1 JOIN t2 ON t2.f2 LIKE 'x'
|
||||||
|
HAVING field1 < 7;
|
||||||
|
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
--echo End of 5.1 tests
|
||||||
|
@ -1423,6 +1423,22 @@ FROM INFORMATION_SCHEMA.COLUMNS
|
|||||||
WHERE INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = 'variables';
|
WHERE INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = 'variables';
|
||||||
DROP TABLE variables;
|
DROP TABLE variables;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #53814: NUMERIC_PRECISION for unsigned bigint field is 19,
|
||||||
|
--echo # should be 20
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE ubig (a BIGINT, b BIGINT UNSIGNED);
|
||||||
|
|
||||||
|
SELECT TABLE_NAME, COLUMN_NAME, NUMERIC_PRECISION
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='ubig';
|
||||||
|
|
||||||
|
INSERT INTO ubig VALUES (0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF);
|
||||||
|
SELECT length(CAST(b AS CHAR)) FROM ubig;
|
||||||
|
|
||||||
|
DROP TABLE ubig;
|
||||||
|
|
||||||
|
|
||||||
--echo End of 5.1 tests.
|
--echo End of 5.1 tests.
|
||||||
|
|
||||||
# Wait till all disconnects are completed
|
# Wait till all disconnects are completed
|
||||||
|
@ -580,4 +580,36 @@ DROP TABLE t1;
|
|||||||
connection default;
|
connection default;
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #51876 : crash/memory underrun when loading data with ucs2
|
||||||
|
--echo # and reverse() function
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--echo # Problem # 1 (original report): wrong parsing of ucs2 data
|
||||||
|
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp.txt';
|
||||||
|
CREATE TABLE t1(a INT);
|
||||||
|
LOAD DATA INFILE 'tmpp.txt' INTO TABLE t1 CHARACTER SET ucs2
|
||||||
|
(@b) SET a=REVERSE(@b);
|
||||||
|
--echo # should return 2 zeroes (as the value is truncated)
|
||||||
|
SELECT * FROM t1;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
let $MYSQLD_DATADIR= `select @@datadir`;
|
||||||
|
remove_file $MYSQLD_DATADIR/test/tmpp.txt;
|
||||||
|
|
||||||
|
|
||||||
|
--echo # Problem # 2 : if you write and read ucs2 data to a file they're lost
|
||||||
|
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp2.txt' CHARACTER SET ucs2;
|
||||||
|
CREATE TABLE t1(a INT);
|
||||||
|
LOAD DATA INFILE 'tmpp2.txt' INTO TABLE t1 CHARACTER SET ucs2
|
||||||
|
(@b) SET a=REVERSE(@b);
|
||||||
|
--echo # should return 0 and 1 (10 reversed)
|
||||||
|
SELECT * FROM t1;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
let $MYSQLD_DATADIR= `select @@datadir`;
|
||||||
|
remove_file $MYSQLD_DATADIR/test/tmpp2.txt;
|
||||||
|
|
||||||
|
|
||||||
--echo End of 5.1 tests
|
--echo End of 5.1 tests
|
||||||
|
@ -160,4 +160,26 @@ SELECT * FROM v1;
|
|||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
--echo End of 5.0 tests.
|
--echo End of 5.0 tests.
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #53095: SELECT column_name FROM INFORMATION_SCHEMA.STATISTICS
|
||||||
|
--echo # returns nothing
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE `ttt` (
|
||||||
|
`f1` char(3) NOT NULL,
|
||||||
|
PRIMARY KEY (`f1`)
|
||||||
|
) ENGINE=myisam DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
SELECT count(COLUMN_NAME) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME =
|
||||||
|
'TTT';
|
||||||
|
SELECT count(*) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 'TTT';
|
||||||
|
|
||||||
|
DROP TABLE `ttt`;
|
||||||
|
|
||||||
|
|
||||||
|
--echo End of 5.0 tests.
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
-- source include/not_embedded.inc
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
SET @old_general_log= @@global.general_log;
|
SET @old_general_log= @@global.general_log;
|
||||||
|
SET @old_slow_query_log= @@global.slow_query_log;
|
||||||
|
|
||||||
# We run with different binaries for normal and --embedded-server
|
# We run with different binaries for normal and --embedded-server
|
||||||
#
|
#
|
||||||
@ -17,3 +18,4 @@ SET @old_general_log= @@global.general_log;
|
|||||||
echo ok;
|
echo ok;
|
||||||
|
|
||||||
SET @@global.general_log= @old_general_log;
|
SET @@global.general_log= @old_general_log;
|
||||||
|
SET @@global.slow_query_log= @old_slow_query_log;
|
||||||
|
@ -109,3 +109,19 @@ CALL testproc();
|
|||||||
DROP PROCEDURE testproc;
|
DROP PROCEDURE testproc;
|
||||||
--cat_file $MYSQLTEST_VARDIR/tmp/41569.txt
|
--cat_file $MYSQLTEST_VARDIR/tmp/41569.txt
|
||||||
--remove_file $MYSQLTEST_VARDIR/tmp/41569.txt
|
--remove_file $MYSQLTEST_VARDIR/tmp/41569.txt
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #53613: mysql_upgrade incorrectly revokes
|
||||||
|
--echo # TRIGGER privilege on given table
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
GRANT USAGE ON *.* TO 'user3'@'%';
|
||||||
|
GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%';
|
||||||
|
--echo Run mysql_upgrade with all privileges on a user
|
||||||
|
--exec $MYSQL_UPGRADE --skip-verbose --force 2>&1
|
||||||
|
SHOW GRANTS FOR 'user3'@'%';
|
||||||
|
|
||||||
|
DROP USER 'user3'@'%';
|
||||||
|
|
||||||
|
--echo End of 5.1 tests
|
||||||
|
1
mysql-test/t/ssl_8k_key-master.opt
Normal file
1
mysql-test/t/ssl_8k_key-master.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--loose-ssl-key=$MYSQL_TEST_DIR/std_data/server8k-key.pem --loose-ssl-cert=$MYSQL_TEST_DIR/std_data/server8k-cert.pem
|
@ -483,3 +483,23 @@ UPDATE IGNORE v1 SET a = 1;
|
|||||||
SET SESSION sql_safe_updates = DEFAULT;
|
SET SESSION sql_safe_updates = DEFAULT;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug#54734 assert in Diagnostics_area::set_ok_status
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--disable_warnings
|
||||||
|
DROP TABLE IF EXISTS t1, not_exists;
|
||||||
|
DROP FUNCTION IF EXISTS f1;
|
||||||
|
DROP VIEW IF EXISTS v1;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
CREATE TABLE t1 (PRIMARY KEY(pk)) AS SELECT 1 AS pk;
|
||||||
|
CREATE FUNCTION f1() RETURNS INTEGER RETURN (SELECT 1 FROM not_exists);
|
||||||
|
CREATE VIEW v1 AS SELECT pk FROM t1 WHERE f1() = 13;
|
||||||
|
--error ER_VIEW_INVALID
|
||||||
|
UPDATE v1 SET pk = 7 WHERE pk > 0;
|
||||||
|
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP FUNCTION f1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -147,7 +147,3 @@ test_base64$(EXEEXT): base64.c $(LIBRARIES)
|
|||||||
|
|
||||||
test_thr_mutex$(EXEEXT): test_thr_mutex.c $(LIBRARIES)
|
test_thr_mutex$(EXEEXT): test_thr_mutex.c $(LIBRARIES)
|
||||||
$(LINK) $(FLAGS) $(srcdir)/test_thr_mutex.c $(LDADD) $(LIBS)
|
$(LINK) $(FLAGS) $(srcdir)/test_thr_mutex.c $(LDADD) $(LIBS)
|
||||||
|
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
|
||||||
%::SCCS/s.%
|
|
||||||
|
@ -50,6 +50,8 @@ const char * NEAR globerrs[GLOBERRS]=
|
|||||||
"Collation '%s' is not a compiled collation and is not specified in the '%s' file",
|
"Collation '%s' is not a compiled collation and is not specified in the '%s' file",
|
||||||
"File '%s' not found (Errcode: %d)",
|
"File '%s' not found (Errcode: %d)",
|
||||||
"File '%s' (fileno: %d) was not closed",
|
"File '%s' (fileno: %d) was not closed",
|
||||||
|
"Can't change ownership of the file '%s' (Errcode: %d)",
|
||||||
|
"Can't change permissions of the file '%s' (Errcode: %d)",
|
||||||
"Can't change mode for file '%s' to 0x%lx (Error: %d)",
|
"Can't change mode for file '%s' to 0x%lx (Error: %d)",
|
||||||
"Can't do seek on file '%s' (Errcode: %d)",
|
"Can't do seek on file '%s' (Errcode: %d)",
|
||||||
"Warning: Can't copy ownership for file '%s' (Error: %d)"
|
"Warning: Can't copy ownership for file '%s' (Error: %d)"
|
||||||
@ -93,6 +95,8 @@ void init_glob_errs()
|
|||||||
EE(EE_UNKNOWN_COLLATION)= "Collation '%s' is not a compiled collation and is not specified in the %s file";
|
EE(EE_UNKNOWN_COLLATION)= "Collation '%s' is not a compiled collation and is not specified in the %s file";
|
||||||
EE(EE_FILENOTFOUND) = "File '%s' not found (Errcode: %d)";
|
EE(EE_FILENOTFOUND) = "File '%s' not found (Errcode: %d)";
|
||||||
EE(EE_FILE_NOT_CLOSED) = "File '%s' (fileno: %d) was not closed";
|
EE(EE_FILE_NOT_CLOSED) = "File '%s' (fileno: %d) was not closed";
|
||||||
|
EE(EE_CHANGE_OWNERSHIP) = "Can't change ownership of the file '%s' (Errcode: %d)";
|
||||||
|
EE(EE_CHANGE_PERMISSIONS) = "Can't change permissions of the file '%s' (Errcode: %d)";
|
||||||
EE(EE_CANT_CHMOD) = "Can't change mode for file '%s' to 0x%lx (Error: %d)";
|
EE(EE_CANT_CHMOD) = "Can't change mode for file '%s' to 0x%lx (Error: %d)";
|
||||||
EE(EE_CANT_SEEK) = "Can't do seek on file '%s' (Errcode: %d)";
|
EE(EE_CANT_SEEK) = "Can't do seek on file '%s' (Errcode: %d)";
|
||||||
EE(EE_CANT_COPY_OWNERSHIP)= "Warning: Can't copy ownership for file '%s' (Error: %d)";
|
EE(EE_CANT_COPY_OWNERSHIP)= "Warning: Can't copy ownership for file '%s' (Error: %d)";
|
||||||
|
@ -1701,16 +1701,19 @@ int my_block_write(register IO_CACHE *info, const uchar *Buffer, size_t Count,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock)
|
int my_b_flush_io_cache(IO_CACHE *info,
|
||||||
|
int need_append_buffer_lock __attribute__((unused)))
|
||||||
{
|
{
|
||||||
size_t length;
|
size_t length;
|
||||||
my_bool append_cache;
|
|
||||||
my_off_t pos_in_file;
|
my_off_t pos_in_file;
|
||||||
|
my_bool append_cache= (info->type == SEQ_READ_APPEND);
|
||||||
DBUG_ENTER("my_b_flush_io_cache");
|
DBUG_ENTER("my_b_flush_io_cache");
|
||||||
DBUG_PRINT("enter", ("cache: 0x%lx", (long) info));
|
DBUG_PRINT("enter", ("cache: 0x%lx", (long) info));
|
||||||
|
|
||||||
if (!(append_cache = (info->type == SEQ_READ_APPEND)))
|
#ifdef THREAD
|
||||||
|
if (!append_cache)
|
||||||
need_append_buffer_lock= 0;
|
need_append_buffer_lock= 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (info->type == WRITE_CACHE || append_cache)
|
if (info->type == WRITE_CACHE || append_cache)
|
||||||
{
|
{
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user