mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
merge with 5.1
This commit is contained in:
@ -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,14 +181,17 @@ 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`
|
||||||
set -- `echo $cc_verno | tr '.' ' '`
|
if test "x$?" = "x0" ; then
|
||||||
cc_major=$1
|
set -- `echo $cc_verno | tr '.' ' '`
|
||||||
cc_minor=$2
|
cc_ver="GCC"
|
||||||
cc_patch=$3
|
cc_major=$1
|
||||||
cc_comp=`expr $cc_major '*' 100 '+' $cc_minor`
|
cc_minor=$2
|
||||||
|
cc_patch=$3
|
||||||
|
cc_comp=`expr $cc_major '*' 100 '+' $cc_minor`
|
||||||
|
fi
|
||||||
|
|
||||||
case "$cc_ver--$cc_verno" in
|
case "$cc_ver--$cc_verno" in
|
||||||
*GCC*)
|
*GCC*)
|
||||||
# different gcc backends (and versions) have different CPU flags
|
# different gcc backends (and versions) have different CPU flags
|
||||||
@ -229,7 +232,7 @@ check_cpu () {
|
|||||||
fi
|
fi
|
||||||
while [ "$cpu_arg" ] ; do
|
while [ "$cpu_arg" ] ; do
|
||||||
printf "testing $cpu_arg ... " >&2
|
printf "testing $cpu_arg ... " >&2
|
||||||
|
|
||||||
# compile check
|
# compile check
|
||||||
eval "$cc -c $check_cpu_cflags __test.c" 2>/dev/null
|
eval "$cc -c $check_cpu_cflags __test.c" 2>/dev/null
|
||||||
if test "x$?" = "x0" ; then
|
if test "x$?" = "x0" ; then
|
||||||
@ -243,5 +246,5 @@ check_cpu () {
|
|||||||
done
|
done
|
||||||
rm __test.*
|
rm __test.*
|
||||||
}
|
}
|
||||||
|
|
||||||
check_cpu
|
check_cpu
|
||||||
|
@ -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.%
|
|
||||||
|
@ -325,7 +325,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 \
|
||||||
@ -341,6 +341,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.%
|
|
||||||
|
@ -123,6 +123,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.%
|
|
||||||
|
@ -3663,7 +3663,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)))
|
||||||
@ -4833,7 +4833,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);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
/* Copyright (C) 2000 MySQL AB
|
/* Copyright (C) 2000 MySQL AB
|
||||||
|
Copyright (C) 2010 Monty Program Ab
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -17,7 +18,7 @@
|
|||||||
#include <sslopt-vars.h>
|
#include <sslopt-vars.h>
|
||||||
#include "../scripts/mysql_fix_privilege_tables_sql.c"
|
#include "../scripts/mysql_fix_privilege_tables_sql.c"
|
||||||
|
|
||||||
#define VER "1.1"
|
#define VER "1.2"
|
||||||
|
|
||||||
#ifdef HAVE_SYS_WAIT_H
|
#ifdef HAVE_SYS_WAIT_H
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
@ -34,8 +35,9 @@
|
|||||||
static char mysql_path[FN_REFLEN];
|
static char mysql_path[FN_REFLEN];
|
||||||
static char mysqlcheck_path[FN_REFLEN];
|
static char mysqlcheck_path[FN_REFLEN];
|
||||||
|
|
||||||
static my_bool opt_force, opt_verbose, debug_info_flag, debug_check_flag;
|
static my_bool opt_force, debug_info_flag, debug_check_flag, opt_silent;
|
||||||
static uint my_end_arg= 0;
|
static my_bool opt_not_used; /* For compatiblity */
|
||||||
|
static uint my_end_arg= 0, opt_verbose;
|
||||||
static char *opt_user= (char*)"root";
|
static char *opt_user= (char*)"root";
|
||||||
|
|
||||||
static DYNAMIC_STRING ds_args;
|
static DYNAMIC_STRING ds_args;
|
||||||
@ -62,12 +64,14 @@ static struct my_option my_long_options[]=
|
|||||||
{
|
{
|
||||||
{"help", '?', "Display this help message and exit.", 0, 0, 0, GET_NO_ARG,
|
{"help", '?', "Display this help message and exit.", 0, 0, 0, GET_NO_ARG,
|
||||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"basedir", 'b', "Not used by mysql_upgrade. Only for backward compatibility.",
|
{"basedir", 'b',
|
||||||
|
"Not used by mysql_upgrade. Only for backward compatibility.",
|
||||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"character-sets-dir", OPT_CHARSETS_DIR,
|
{"character-sets-dir", OPT_CHARSETS_DIR,
|
||||||
"Directory for character set files.", 0,
|
"Not used by mysql_upgrade. Only for backward compatibility.",
|
||||||
0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
|
||||||
{"compress", OPT_COMPRESS, "Use compression in server/client protocol.",
|
{"compress", OPT_COMPRESS,
|
||||||
|
"Not used by mysql_upgrade. Only for backward compatibility.",
|
||||||
¬_used, ¬_used, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
¬_used, ¬_used, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"datadir", 'd',
|
{"datadir", 'd',
|
||||||
"Not used by mysql_upgrade. Only for backward compatibility.",
|
"Not used by mysql_upgrade. Only for backward compatibility.",
|
||||||
@ -80,18 +84,17 @@ static struct my_option my_long_options[]=
|
|||||||
&default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
&default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
#endif
|
#endif
|
||||||
{"debug-check", OPT_DEBUG_CHECK, "Check memory and open file usage at exit.",
|
{"debug-check", OPT_DEBUG_CHECK, "Check memory and open file usage at exit.",
|
||||||
&debug_check_flag, &debug_check_flag, 0,
|
&debug_check_flag, &debug_check_flag,
|
||||||
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"debug-info", 'T', "Print some debug info at exit.", &debug_info_flag,
|
{"debug-info", 'T', "Print some debug info at exit.", &debug_info_flag,
|
||||||
&debug_info_flag, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
&debug_info_flag, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"default-character-set", OPT_DEFAULT_CHARSET,
|
{"default-character-set", OPT_DEFAULT_CHARSET,
|
||||||
"Set the default character set.", 0,
|
"Not used by mysql_upgrade. Only for backward compatibility.",
|
||||||
0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"force", 'f', "Force execution of mysqlcheck even if mysql_upgrade "
|
{"force", 'f', "Force execution of mysqlcheck even if mysql_upgrade "
|
||||||
"has already been executed for the current version of MySQL.",
|
"has already been executed for the current version of MySQL.",
|
||||||
&opt_force, &opt_force, 0,
|
&opt_force, &opt_force, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
{"host", 'h', "Connect to host.", 0,
|
||||||
{"host",'h', "Connect to host.", 0,
|
|
||||||
0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"password", 'p',
|
{"password", 'p',
|
||||||
"Password to use when connecting to server. If password is not given,"
|
"Password to use when connecting to server. If password is not given,"
|
||||||
@ -116,6 +119,8 @@ static struct my_option my_long_options[]=
|
|||||||
"Base name of shared memory.", 0,
|
"Base name of shared memory.", 0,
|
||||||
0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
#endif
|
#endif
|
||||||
|
{"silent", 's', "Print less information", &opt_silent,
|
||||||
|
&opt_silent, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"socket", 'S', "The socket file to use for connection.",
|
{"socket", 'S', "The socket file to use for connection.",
|
||||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
#include <sslopt-longopts.h>
|
#include <sslopt-longopts.h>
|
||||||
@ -124,8 +129,7 @@ static struct my_option my_long_options[]=
|
|||||||
{"user", 'u', "User for login if not current user.", &opt_user,
|
{"user", 'u', "User for login if not current user.", &opt_user,
|
||||||
&opt_user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
&opt_user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"verbose", 'v', "Display more output about the process.",
|
{"verbose", 'v', "Display more output about the process.",
|
||||||
&opt_verbose, &opt_verbose, 0,
|
&opt_not_used, &opt_not_used, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
|
||||||
GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
|
|
||||||
{"write-binlog", OPT_WRITE_BINLOG,
|
{"write-binlog", OPT_WRITE_BINLOG,
|
||||||
"All commands including mysqlcheck are binlogged. Enabled by default;"
|
"All commands including mysqlcheck are binlogged. Enabled by default;"
|
||||||
"use --skip-write-binlog when commands should not be sent to replication slaves.",
|
"use --skip-write-binlog when commands should not be sent to replication slaves.",
|
||||||
@ -173,7 +177,7 @@ static void verbose(const char *fmt, ...)
|
|||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
if (!opt_verbose)
|
if (opt_silent)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Print the verbose message */
|
/* Print the verbose message */
|
||||||
@ -266,6 +270,18 @@ get_one_option(int optid, const struct my_option *opt,
|
|||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
|
|
||||||
case 'v': /* --verbose */
|
case 'v': /* --verbose */
|
||||||
|
opt_verbose++;
|
||||||
|
if (argument == disabled_my_option)
|
||||||
|
{
|
||||||
|
opt_verbose= 0;
|
||||||
|
opt_silent= 1;
|
||||||
|
}
|
||||||
|
add_option= 0;
|
||||||
|
break;
|
||||||
|
case 's':
|
||||||
|
opt_verbose= 0;
|
||||||
|
add_option= 0;
|
||||||
|
break;
|
||||||
case 'f': /* --force */
|
case 'f': /* --force */
|
||||||
add_option= FALSE;
|
add_option= FALSE;
|
||||||
break;
|
break;
|
||||||
@ -426,7 +442,8 @@ static void find_tool(char *tool_executable_name, const char *tool_name,
|
|||||||
len, self_name, FN_LIBCHAR, tool_name);
|
len, self_name, FN_LIBCHAR, tool_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
verbose("Looking for '%s' as: %s", tool_name, tool_executable_name);
|
if (opt_verbose)
|
||||||
|
verbose("Looking for '%s' as: %s", tool_name, tool_executable_name);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Make sure it can be executed
|
Make sure it can be executed
|
||||||
@ -496,7 +513,7 @@ static int run_query(const char *query, DYNAMIC_STRING *ds_res,
|
|||||||
"--database=mysql",
|
"--database=mysql",
|
||||||
"--batch", /* Turns off pager etc. */
|
"--batch", /* Turns off pager etc. */
|
||||||
force ? "--force": "--skip-force",
|
force ? "--force": "--skip-force",
|
||||||
ds_res ? "--silent": "",
|
ds_res || opt_silent ? "--silent": "",
|
||||||
"<",
|
"<",
|
||||||
query_file_path,
|
query_file_path,
|
||||||
"2>&1",
|
"2>&1",
|
||||||
@ -649,6 +666,8 @@ static void create_mysql_upgrade_info_file(void)
|
|||||||
|
|
||||||
static void print_conn_args(const char *tool_name)
|
static void print_conn_args(const char *tool_name)
|
||||||
{
|
{
|
||||||
|
if (opt_verbose < 2)
|
||||||
|
return;
|
||||||
if (conn_args.str[0])
|
if (conn_args.str[0])
|
||||||
verbose("Running '%s' with connection arguments: %s", tool_name,
|
verbose("Running '%s' with connection arguments: %s", tool_name,
|
||||||
conn_args.str);
|
conn_args.str);
|
||||||
@ -664,6 +683,7 @@ static void print_conn_args(const char *tool_name)
|
|||||||
|
|
||||||
static int run_mysqlcheck_upgrade(void)
|
static int run_mysqlcheck_upgrade(void)
|
||||||
{
|
{
|
||||||
|
verbose("Phase 2/3: Checking and upgrading tables");
|
||||||
print_conn_args("mysqlcheck");
|
print_conn_args("mysqlcheck");
|
||||||
return run_tool(mysqlcheck_path,
|
return run_tool(mysqlcheck_path,
|
||||||
NULL, /* Send output from mysqlcheck directly to screen */
|
NULL, /* Send output from mysqlcheck directly to screen */
|
||||||
@ -672,6 +692,8 @@ static int run_mysqlcheck_upgrade(void)
|
|||||||
"--check-upgrade",
|
"--check-upgrade",
|
||||||
"--all-databases",
|
"--all-databases",
|
||||||
"--auto-repair",
|
"--auto-repair",
|
||||||
|
!opt_silent || opt_verbose ? "--verbose": "",
|
||||||
|
opt_silent ? "--silent": "",
|
||||||
opt_write_binlog ? "--write-binlog" : "--skip-write-binlog",
|
opt_write_binlog ? "--write-binlog" : "--skip-write-binlog",
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
@ -679,6 +701,7 @@ static int run_mysqlcheck_upgrade(void)
|
|||||||
|
|
||||||
static int run_mysqlcheck_fixnames(void)
|
static int run_mysqlcheck_fixnames(void)
|
||||||
{
|
{
|
||||||
|
verbose("Phase 1/3: Fixing table and database names");
|
||||||
print_conn_args("mysqlcheck");
|
print_conn_args("mysqlcheck");
|
||||||
return run_tool(mysqlcheck_path,
|
return run_tool(mysqlcheck_path,
|
||||||
NULL, /* Send output from mysqlcheck directly to screen */
|
NULL, /* Send output from mysqlcheck directly to screen */
|
||||||
@ -687,6 +710,8 @@ static int run_mysqlcheck_fixnames(void)
|
|||||||
"--all-databases",
|
"--all-databases",
|
||||||
"--fix-db-names",
|
"--fix-db-names",
|
||||||
"--fix-table-names",
|
"--fix-table-names",
|
||||||
|
opt_verbose ? "--verbose": "",
|
||||||
|
opt_silent ? "--silent": "",
|
||||||
opt_write_binlog ? "--write-binlog" : "--skip-write-binlog",
|
opt_write_binlog ? "--write-binlog" : "--skip-write-binlog",
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
@ -756,7 +781,7 @@ static int run_sql_fix_privilege_tables(void)
|
|||||||
if (init_dynamic_string(&ds_result, "", 512, 512))
|
if (init_dynamic_string(&ds_result, "", 512, 512))
|
||||||
die("Out of memory");
|
die("Out of memory");
|
||||||
|
|
||||||
verbose("Running 'mysql_fix_privilege_tables'...");
|
verbose("Phase 3/3: Running 'mysql_fix_privilege_tables'...");
|
||||||
run_query(mysql_fix_privilege_tables,
|
run_query(mysql_fix_privilege_tables,
|
||||||
&ds_result, /* Collect result */
|
&ds_result, /* Collect result */
|
||||||
TRUE);
|
TRUE);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
/* Copyright (C) 2000 MySQL AB
|
/* Copyright (C) 2000 MySQL AB & Jani Tolonen
|
||||||
|
Copyright (C) 2010 Monty Program Ab
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -15,7 +16,7 @@
|
|||||||
|
|
||||||
/* By Jani Tolonen, 2001-04-20, MySQL Development Team */
|
/* By Jani Tolonen, 2001-04-20, MySQL Development Team */
|
||||||
|
|
||||||
#define CHECK_VERSION "2.5.0"
|
#define CHECK_VERSION "2.6.0"
|
||||||
|
|
||||||
#include "client_priv.h"
|
#include "client_priv.h"
|
||||||
#include <m_ctype.h>
|
#include <m_ctype.h>
|
||||||
@ -222,24 +223,26 @@ static void usage(void)
|
|||||||
{
|
{
|
||||||
print_version();
|
print_version();
|
||||||
puts("By Jani Tolonen, 2001-04-20, MySQL Development Team.\n");
|
puts("By Jani Tolonen, 2001-04-20, MySQL Development Team.\n");
|
||||||
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\n");
|
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,");
|
||||||
puts("and you are welcome to modify and redistribute it under the GPL license.\n");
|
puts("and you are welcome to modify and redistribute it under the GPL license.\n");
|
||||||
|
printf("Usage: %s [OPTIONS] database [tables]\n", my_progname);
|
||||||
|
printf("OR %s [OPTIONS] --databases DB1 [DB2 DB3...]\n",
|
||||||
|
my_progname);
|
||||||
|
printf("OR %s [OPTIONS] --all-databases\n\n", my_progname);
|
||||||
puts("This program can be used to CHECK (-c, -m, -C), REPAIR (-r), ANALYZE (-a),");
|
puts("This program can be used to CHECK (-c, -m, -C), REPAIR (-r), ANALYZE (-a),");
|
||||||
puts("or OPTIMIZE (-o) tables. Some of the options (like -e or -q) can be");
|
puts("or OPTIMIZE (-o) tables. Some of the options (like -e or -q) can be");
|
||||||
puts("used at the same time. Not all options are supported by all storage engines.");
|
puts("used at the same time. Not all options are supported by all storage engines.");
|
||||||
puts("Please consult the MySQL manual for latest information about the");
|
puts("The options -c, -r, -a, and -o are exclusive to each other, which");
|
||||||
puts("above. The options -c, -r, -a, and -o are exclusive to each other, which");
|
|
||||||
puts("means that the last option will be used, if several was specified.\n");
|
puts("means that the last option will be used, if several was specified.\n");
|
||||||
puts("The option -c will be used by default, if none was specified. You");
|
puts("The option -c (--check) will be used by default, if none was specified.");
|
||||||
puts("can change the default behavior by making a symbolic link, or");
|
puts("You can change the default behavior by making a symbolic link, or");
|
||||||
puts("copying this file somewhere with another name, the alternatives are:");
|
puts("copying this file somewhere with another name, the alternatives are:");
|
||||||
puts("mysqlrepair: The default option will be -r");
|
puts("mysqlrepair: The default option will be -r");
|
||||||
puts("mysqlanalyze: The default option will be -a");
|
puts("mysqlanalyze: The default option will be -a");
|
||||||
puts("mysqloptimize: The default option will be -o\n");
|
puts("mysqloptimize: The default option will be -o\n");
|
||||||
printf("Usage: %s [OPTIONS] database [tables]\n", my_progname);
|
puts("Please consult the MariaDB/MySQL knowledgebase at");
|
||||||
printf("OR %s [OPTIONS] --databases DB1 [DB2 DB3...]\n",
|
puts("http://kb.askmonty.org/v/mysqlcheck for latest information about");
|
||||||
my_progname);
|
puts("this program.");
|
||||||
printf("OR %s [OPTIONS] --all-databases\n", my_progname);
|
|
||||||
print_defaults("my", load_default_groups);
|
print_defaults("my", load_default_groups);
|
||||||
my_print_help(my_long_options);
|
my_print_help(my_long_options);
|
||||||
my_print_variables(my_long_options);
|
my_print_variables(my_long_options);
|
||||||
@ -416,6 +419,8 @@ static int process_all_databases()
|
|||||||
MYF(0), mysql_error(sock));
|
MYF(0), mysql_error(sock));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
if (verbose)
|
||||||
|
printf("Processing databases\n");
|
||||||
while ((row = mysql_fetch_row(tableres)))
|
while ((row = mysql_fetch_row(tableres)))
|
||||||
{
|
{
|
||||||
if (process_one_db(row[0]))
|
if (process_one_db(row[0]))
|
||||||
@ -429,6 +434,8 @@ static int process_all_databases()
|
|||||||
static int process_databases(char **db_names)
|
static int process_databases(char **db_names)
|
||||||
{
|
{
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
if (verbose)
|
||||||
|
printf("Processing databases\n");
|
||||||
for ( ; *db_names ; db_names++)
|
for ( ; *db_names ; db_names++)
|
||||||
{
|
{
|
||||||
if (process_one_db(*db_names))
|
if (process_one_db(*db_names))
|
||||||
@ -521,6 +528,7 @@ static int process_all_tables_in_db(char *database)
|
|||||||
MYSQL_RES *res;
|
MYSQL_RES *res;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
uint num_columns;
|
uint num_columns;
|
||||||
|
my_bool system_database= 0;
|
||||||
|
|
||||||
LINT_INIT(res);
|
LINT_INIT(res);
|
||||||
if (use_db(database))
|
if (use_db(database))
|
||||||
@ -534,6 +542,9 @@ static int process_all_tables_in_db(char *database)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!strcmp(database, "mysql") || !strcmp(database, "MYSQL"))
|
||||||
|
system_database= 1;
|
||||||
|
|
||||||
num_columns= mysql_num_fields(res);
|
num_columns= mysql_num_fields(res);
|
||||||
|
|
||||||
if (opt_all_in_1 && what_to_do != DO_UPGRADE)
|
if (opt_all_in_1 && what_to_do != DO_UPGRADE)
|
||||||
@ -576,6 +587,10 @@ static int process_all_tables_in_db(char *database)
|
|||||||
/* Skip views if we don't perform renaming. */
|
/* Skip views if we don't perform renaming. */
|
||||||
if ((what_to_do != DO_UPGRADE) && (num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
|
if ((what_to_do != DO_UPGRADE) && (num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
|
||||||
continue;
|
continue;
|
||||||
|
if (system_database &&
|
||||||
|
(!strcmp(row[0], "general_log") ||
|
||||||
|
!strcmp(row[0], "slow_log")))
|
||||||
|
continue; /* Skip logging tables */
|
||||||
|
|
||||||
handle_request_for_tables(row[0], fixed_name_length(row[0]));
|
handle_request_for_tables(row[0], fixed_name_length(row[0]));
|
||||||
}
|
}
|
||||||
@ -624,6 +639,8 @@ static int fix_database_storage_name(const char *name)
|
|||||||
|
|
||||||
static int process_one_db(char *database)
|
static int process_one_db(char *database)
|
||||||
{
|
{
|
||||||
|
if (verbose)
|
||||||
|
puts(database);
|
||||||
if (what_to_do == DO_UPGRADE)
|
if (what_to_do == DO_UPGRADE)
|
||||||
{
|
{
|
||||||
int rc= 0;
|
int rc= 0;
|
||||||
@ -731,7 +748,7 @@ static void print_result()
|
|||||||
{
|
{
|
||||||
MYSQL_RES *res;
|
MYSQL_RES *res;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
char prev[NAME_LEN*2+2];
|
char prev[(NAME_LEN+9)*2+2];
|
||||||
uint i;
|
uint i;
|
||||||
my_bool found_error=0;
|
my_bool found_error=0;
|
||||||
|
|
||||||
@ -761,7 +778,15 @@ static void print_result()
|
|||||||
printf("%-50s %s", row[0], row[3]);
|
printf("%-50s %s", row[0], row[3]);
|
||||||
else if (!status && changed)
|
else if (!status && changed)
|
||||||
{
|
{
|
||||||
printf("%s\n%-9s: %s", row[0], row[2], row[3]);
|
/*
|
||||||
|
If the error message includes REPAIR TABLE, we assume it means
|
||||||
|
we have to run upgrade on it. In this case we write a nicer message
|
||||||
|
than "Please do "REPAIR TABLE""...
|
||||||
|
*/
|
||||||
|
if (!strcmp(row[2],"error") && strinstr(row[3],"REPAIR TABLE") != 0)
|
||||||
|
printf("%-50s %s", row[0], "Needs upgrade");
|
||||||
|
else
|
||||||
|
printf("%s\n%-9s: %s", row[0], row[2], row[3]);
|
||||||
if (strcmp(row[2],"note"))
|
if (strcmp(row[2],"note"))
|
||||||
found_error=1;
|
found_error=1;
|
||||||
}
|
}
|
||||||
@ -780,7 +805,7 @@ static void print_result()
|
|||||||
static int dbConnect(char *host, char *user, char *passwd)
|
static int dbConnect(char *host, char *user, char *passwd)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("dbConnect");
|
DBUG_ENTER("dbConnect");
|
||||||
if (verbose)
|
if (verbose > 1)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "# Connecting to %s...\n", host ? host : "localhost");
|
fprintf(stderr, "# Connecting to %s...\n", host ? host : "localhost");
|
||||||
}
|
}
|
||||||
@ -813,7 +838,7 @@ static int dbConnect(char *host, char *user, char *passwd)
|
|||||||
|
|
||||||
static void dbDisconnect(char *host)
|
static void dbDisconnect(char *host)
|
||||||
{
|
{
|
||||||
if (verbose)
|
if (verbose > 1)
|
||||||
fprintf(stderr, "# Disconnecting from %s...\n", host ? host : "localhost");
|
fprintf(stderr, "# Disconnecting from %s...\n", host ? host : "localhost");
|
||||||
mysql_close(sock);
|
mysql_close(sock);
|
||||||
} /* dbDisconnect */
|
} /* dbDisconnect */
|
||||||
|
@ -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))
|
||||||
{
|
{
|
||||||
|
@ -5828,7 +5828,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;
|
||||||
@ -6325,7 +6325,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)
|
||||||
@ -9405,8 +9405,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)+
|
||||||
@ -9534,8 +9533,8 @@ 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -9604,17 +9603,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])
|
||||||
|
])
|
22
configure.in
22
configure.in
@ -11,13 +11,7 @@ dnl internals@lists.mysql.com in advance of pushing the change.
|
|||||||
dnl
|
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.
|
AC_INIT([MariaDB Server], [5.2.2-MariaDB-gamma], [], [mysql])
|
||||||
dnl
|
|
||||||
dnl When merging new MariaDB releases, update the version number to match the
|
|
||||||
dnl MariaDB version number.
|
|
||||||
dnl
|
|
||||||
dnl Note: the following line must be parseable by win/configure.js:GetVersion()
|
|
||||||
AC_INIT([MariaDB Server], [5.2.1-MariaDB-beta], [], [mysql])
|
|
||||||
|
|
||||||
AC_CONFIG_SRCDIR([sql/mysqld.cc])
|
AC_CONFIG_SRCDIR([sql/mysqld.cc])
|
||||||
AC_CANONICAL_SYSTEM
|
AC_CANONICAL_SYSTEM
|
||||||
@ -70,6 +64,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)
|
||||||
@ -108,6 +103,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.
|
||||||
|
|
||||||
@ -2907,7 +2904,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)
|
||||||
|
|
||||||
@ -2932,7 +2935,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.%
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
|
||||||
die <<EEE unless @ARGV;
|
die <<EEE unless @ARGV;
|
||||||
Usage: $0 func1 [func2 [ ...] ]
|
Usage: $0 func1 [func2 [ ...] ]
|
||||||
|
|
||||||
@ -11,16 +10,16 @@ DBUG_ENTER() and DBUG_POP(); right before DBUG_RETURN in every such a function.
|
|||||||
EEE
|
EEE
|
||||||
|
|
||||||
$re=join('|', @ARGV);
|
$re=join('|', @ARGV);
|
||||||
$skip='';
|
|
||||||
|
|
||||||
while(<STDIN>) {
|
while(<STDIN>) {
|
||||||
print unless $skip;
|
($thd) = /^(T@\d+)/;
|
||||||
|
print unless $skip{$thd};
|
||||||
next unless /^(?:.*: )*((?:\| )*)([<>])($re)\n/o;
|
next unless /^(?:.*: )*((?:\| )*)([<>])($re)\n/o;
|
||||||
if ($2 eq '>') {
|
if ($2 eq '>') {
|
||||||
$skip=$1.$3 unless $skip;
|
$skip{$thd}=$1.$3 unless $skip{$thd};
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
next if $skip ne $1.$3;
|
next if $skip{$thd} ne $1.$3;
|
||||||
$skip='';
|
delete $skip{$thd};
|
||||||
print;
|
print;
|
||||||
}
|
}
|
||||||
|
@ -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,8 +777,8 @@ 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,21 +283,23 @@ DWord() {}
|
|||||||
word GetHighHalfAsBorrow() const {return 0-halfs_.high;}
|
word GetHighHalfAsBorrow() const {return 0-halfs_.high;}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
struct dword_struct
|
||||||
|
{
|
||||||
|
#ifdef LITTLE_ENDIAN_ORDER
|
||||||
|
word low;
|
||||||
|
word high;
|
||||||
|
#else
|
||||||
|
word high;
|
||||||
|
word low;
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
#ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
|
#ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
|
||||||
dword whole_;
|
dword whole_;
|
||||||
#endif
|
#endif
|
||||||
struct
|
struct dword_struct halfs_;
|
||||||
{
|
|
||||||
#ifdef LITTLE_ENDIAN_ORDER
|
|
||||||
word low;
|
|
||||||
word high;
|
|
||||||
#else
|
|
||||||
word high;
|
|
||||||
word low;
|
|
||||||
#endif
|
|
||||||
} 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);
|
||||||
|
@ -43,8 +43,9 @@ 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_auth.h.pp mysql/client_plugin.h.pp
|
|
||||||
|
EXTRA_DIST = mysql.h.pp mysql/plugin_auth.h.pp mysql/client_plugin.h.pp
|
||||||
|
|
||||||
# Remove built files and the symlinked directories
|
# Remove built files and the symlinked directories
|
||||||
CLEANFILES = $(BUILT_SOURCES) readline openssl
|
CLEANFILES = $(BUILT_SOURCES) readline openssl
|
||||||
@ -71,6 +72,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,20 +567,19 @@ 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 */
|
Deprecated workaround for false-positive uninitialized variables
|
||||||
|
warnings. Those should be silenced using tool-specific heuristics.
|
||||||
|
|
||||||
|
Enabled by default for g++ due to the bug referenced below.
|
||||||
|
*/
|
||||||
|
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || \
|
||||||
|
(defined(__GNUC__) && defined(__cplusplus))
|
||||||
|
#define LINT_INIT(var) var= 0
|
||||||
#else
|
#else
|
||||||
#define LINT_INIT(var)
|
#define LINT_INIT(var)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <my_valgrind.h>
|
|
||||||
|
|
||||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(HAVE_valgrind)
|
|
||||||
#define VALGRIND_OR_LINT_INIT(var) var=0
|
|
||||||
#else
|
|
||||||
#define VALGRIND_OR_LINT_INIT(var)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#define SO_EXT ".dll"
|
#define SO_EXT ".dll"
|
||||||
#elif defined(__APPLE__)
|
#elif defined(__APPLE__)
|
||||||
@ -589,19 +588,22 @@ int __void__;
|
|||||||
#define SO_EXT ".so"
|
#define SO_EXT ".so"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Suppress uninitialized variable warning without generating code.
|
Suppress uninitialized variable warning without generating code.
|
||||||
|
|
||||||
The _cplusplus is a temporary workaround for C++ code pending a fix
|
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).
|
for a g++ bug (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772).
|
||||||
*/
|
*/
|
||||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(__cplusplus) || \
|
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || \
|
||||||
!defined(__GNUC__)
|
defined(__cplusplus) || !defined(__GNUC__)
|
||||||
#define UNINIT_VAR(x) x= 0
|
#define UNINIT_VAR(x) x= 0
|
||||||
#else
|
#else
|
||||||
|
/* GCC specific self-initialization which inhibits the warning. */
|
||||||
#define UNINIT_VAR(x) x= x
|
#define UNINIT_VAR(x) x= x
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <my_valgrind.h>
|
||||||
|
|
||||||
/* Define some useful general macros */
|
/* Define some useful general macros */
|
||||||
#if !defined(max)
|
#if !defined(max)
|
||||||
#define max(a, b) ((a) > (b) ? (a) : (b))
|
#define max(a, b) ((a) > (b) ? (a) : (b))
|
||||||
@ -617,12 +619,12 @@ typedef unsigned short ushort;
|
|||||||
|
|
||||||
#define CMP_NUM(a,b) (((a) < (b)) ? -1 : ((a) == (b)) ? 0 : 1)
|
#define CMP_NUM(a,b) (((a) < (b)) ? -1 : ((a) == (b)) ? 0 : 1)
|
||||||
#define sgn(a) (((a) < 0) ? -1 : ((a) > 0) ? 1 : 0)
|
#define sgn(a) (((a) < 0) ? -1 : ((a) > 0) ? 1 : 0)
|
||||||
#define swap_variables(t, a, b) { t swap_dummy; swap_dummy= a; a= b; b= swap_dummy; }
|
#define swap_variables(t, a, b) { t dummy; dummy= a; a= b; b= dummy; }
|
||||||
#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 */
|
||||||
@ -643,7 +645,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,
|
||||||
@ -679,7 +681,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*/
|
||||||
@ -958,13 +960,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
|
||||||
|
@ -276,13 +276,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)
|
||||||
@ -757,7 +758,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"
|
||||||
|
@ -27,6 +27,10 @@
|
|||||||
#define NAME_LEN (NAME_CHAR_LEN*SYSTEM_CHARSET_MBMAXLEN)
|
#define NAME_LEN (NAME_CHAR_LEN*SYSTEM_CHARSET_MBMAXLEN)
|
||||||
#define USERNAME_LENGTH (USERNAME_CHAR_LENGTH*SYSTEM_CHARSET_MBMAXLEN)
|
#define USERNAME_LENGTH (USERNAME_CHAR_LENGTH*SYSTEM_CHARSET_MBMAXLEN)
|
||||||
|
|
||||||
|
#define MYSQL50_TABLE_NAME_PREFIX "#mysql50#"
|
||||||
|
#define MYSQL50_TABLE_NAME_PREFIX_LENGTH (sizeof(MYSQL50_TABLE_NAME_PREFIX)-1)
|
||||||
|
#define SAFE_NAME_LEN (NAME_LEN + MYSQL50_TABLE_NAME_PREFIX_LENGTH)
|
||||||
|
|
||||||
#define SERVER_VERSION_LENGTH 60
|
#define SERVER_VERSION_LENGTH 60
|
||||||
#define SQLSTATE_LENGTH 5
|
#define SQLSTATE_LENGTH 5
|
||||||
#define LIST_PROCESS_HOST_LEN 64
|
#define LIST_PROCESS_HOST_LEN 64
|
||||||
|
@ -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.%
|
|
||||||
|
@ -4373,6 +4373,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.%
|
|
||||||
|
@ -84,6 +84,10 @@ TEST_DIRS = t r include std_data std_data/parts collections \
|
|||||||
suite/binlog suite/binlog/t suite/binlog/r suite/binlog/std_data \
|
suite/binlog suite/binlog/t suite/binlog/r suite/binlog/std_data \
|
||||||
suite/bugs suite/bugs/data suite/bugs/t suite/bugs/r \
|
suite/bugs suite/bugs/data suite/bugs/t suite/bugs/r \
|
||||||
suite/federated \
|
suite/federated \
|
||||||
|
suite/pbxt/t suite/pbxt/r suite/pbxt \
|
||||||
|
suite/vcol suite/vcol/t suite/vcol/r suite/vcol/inc \
|
||||||
|
suite/oqgraph suite/oqgraph/t suite/oqgraph/r suite/oqgraph/include \
|
||||||
|
suite/percona \
|
||||||
suite/funcs_1 suite/funcs_1/bitdata \
|
suite/funcs_1 suite/funcs_1/bitdata \
|
||||||
suite/funcs_1/include suite/funcs_1/lib suite/funcs_1/r \
|
suite/funcs_1/include suite/funcs_1/lib suite/funcs_1/r \
|
||||||
suite/funcs_1/t suite/funcs_1/views suite/funcs_1/cursors \
|
suite/funcs_1/t suite/funcs_1/views suite/funcs_1/cursors \
|
||||||
@ -102,12 +106,9 @@ TEST_DIRS = t r include std_data std_data/parts collections \
|
|||||||
suite/ndb suite/ndb/t suite/ndb/r \
|
suite/ndb suite/ndb/t suite/ndb/r \
|
||||||
suite/rpl_ndb suite/rpl_ndb/t suite/rpl_ndb/r \
|
suite/rpl_ndb suite/rpl_ndb/t suite/rpl_ndb/r \
|
||||||
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/innodb suite/innodb/t suite/innodb/r suite/innodb/include \
|
suite/innodb suite/innodb/t suite/innodb/r suite/innodb/include \
|
||||||
suite/vcol suite/vcol/t suite/vcol/r suite/vcol/inc \
|
suite/innodb_plugin suite/innodb_plugin/t suite/innodb_plugin/r \
|
||||||
suite/oqgraph suite/oqgraph/t suite/oqgraph/r suite/oqgraph/include \
|
suite/innodb_plugin/include \
|
||||||
suite/innodb_plugin suite/innodb_plugin/t suite/innodb_plugin/r suite/innodb_plugin/include \
|
|
||||||
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 \
|
||||||
suite/engines/iuds/t suite/engines/rr_trx/include suite/engines/rr_trx/r \
|
suite/engines/iuds/t suite/engines/rr_trx/include suite/engines/rr_trx/r \
|
||||||
@ -148,6 +149,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.%
|
|
||||||
|
@ -20,11 +20,18 @@ subdirectories under the suitedir or directly in the suitedir
|
|||||||
(that is suitedir/t/*.test or suitedir/*.test, same for *.result))
|
(that is suitedir/t/*.test or suitedir/*.test, same for *.result))
|
||||||
|
|
||||||
==========================
|
==========================
|
||||||
A suite can contain a suite.opt file - at the same location where .test
|
A suite can contain a suite.opt file - at the same location where .test files
|
||||||
files are. As usual, the .opt file can use $-substitutions for the
|
are or in the suite directory. As usual, the .opt file can use $-substitutions
|
||||||
environment variables.
|
for the environment variables.
|
||||||
|
|
||||||
Usually, using my.cnf template (see below) is preferrable.
|
Usually, using my.cnf template (see below) is preferrable.
|
||||||
|
|
||||||
|
But command line options (.opt files and combinations file) get special
|
||||||
|
treatment - they can have special options that affect mtr behavior. cnf
|
||||||
|
files cannot. Special options are
|
||||||
|
--timezone, --plugin-load, --result-file, --config-file-template,
|
||||||
|
--default-time-zone, --force-restart
|
||||||
|
|
||||||
==========================
|
==========================
|
||||||
A suite can have suite.pm file in the suitedir. It must declare a
|
A suite can have suite.pm file in the suitedir. It must declare a
|
||||||
package that inherits from My::Suite.
|
package that inherits from My::Suite.
|
||||||
@ -108,8 +115,8 @@ Most probably a suite my.cnf will need to start from
|
|||||||
!include include/default_my.cnf
|
!include include/default_my.cnf
|
||||||
|
|
||||||
and then modify the configuration as necessary.
|
and then modify the configuration as necessary.
|
||||||
==========================
|
|
||||||
|
|
||||||
|
==========================
|
||||||
A suite can have combinations file in the suitedir. It uses my.cnf syntax
|
A suite can have combinations file in the suitedir. It uses my.cnf syntax
|
||||||
but it cannot use @-substitutions. Instead, it can use $-substitutions for
|
but it cannot use @-substitutions. Instead, it can use $-substitutions for
|
||||||
the environment variables. Because the combination options will not be
|
the environment variables. Because the combination options will not be
|
||||||
|
@ -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.
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
--disable_query_log
|
if (!`SELECT count(*) FROM information_schema.engines WHERE
|
||||||
--require r/true.require
|
(support = 'YES' OR support = 'DEFAULT') AND
|
||||||
select (support = 'YES' or support = 'DEFAULT') as `TRUE` from information_schema.engines where engine = 'archive';
|
engine = 'archive'`){
|
||||||
--enable_query_log
|
skip Need archive engine;
|
||||||
|
}
|
||||||
|
2
mysql-test/include/have_archive.opt
Normal file
2
mysql-test/include/have_archive.opt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
--loose-archive
|
||||||
|
--plugin-load=$HA_ARCHIVE_SO
|
2
mysql-test/include/have_blackhole.opt
Normal file
2
mysql-test/include/have_blackhole.opt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
--loose-blackhole
|
||||||
|
--plugin-load=$HA_BLACKHOLE_SO
|
@ -1 +1,2 @@
|
|||||||
--loose-innodb
|
--loose-innodb
|
||||||
|
--plugin-load=$HA_XTRADB_SO
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
disable_query_log;
|
if (!`SELECT count(*) FROM information_schema.engines WHERE
|
||||||
--require r/true.require
|
(support = 'YES' OR support = 'DEFAULT') AND
|
||||||
select (support = 'YES' or support = 'DEFAULT') as `TRUE` from information_schema.engines where engine = 'pbxt';
|
engine = 'pbxt'`){
|
||||||
enable_query_log;
|
skip Need PBXT engine;
|
||||||
|
}
|
||||||
|
1
mysql-test/include/percona_query_response_time_flush.inc
Normal file
1
mysql-test/include/percona_query_response_time_flush.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
FLUSH QUERY_RESPONSE_TIME;
|
7
mysql-test/include/percona_query_response_time_show.inc
Normal file
7
mysql-test/include/percona_query_response_time_show.inc
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
SELECT c.count,
|
||||||
|
(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
|
||||||
|
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as not_zero_region_count,
|
||||||
|
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
|
||||||
|
FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count > 0;
|
||||||
|
SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||||
|
SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
19
mysql-test/include/percona_query_response_time_sleep.inc
Normal file
19
mysql-test/include/percona_query_response_time_sleep.inc
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
SELECT SLEEP(0.31);
|
||||||
|
SELECT SLEEP(0.32);
|
||||||
|
SELECT SLEEP(0.33);
|
||||||
|
SELECT SLEEP(0.34);
|
||||||
|
SELECT SLEEP(0.35);
|
||||||
|
SELECT SLEEP(0.36);
|
||||||
|
SELECT SLEEP(0.37);
|
||||||
|
SELECT SLEEP(0.38);
|
||||||
|
SELECT SLEEP(0.39);
|
||||||
|
SELECT SLEEP(0.40);
|
||||||
|
SELECT SLEEP(1.1);
|
||||||
|
SELECT SLEEP(1.2);
|
||||||
|
SELECT SLEEP(1.3);
|
||||||
|
SELECT SLEEP(1.5);
|
||||||
|
SELECT SLEEP(1.4);
|
||||||
|
SELECT SLEEP(0.5);
|
||||||
|
SELECT SLEEP(2.1);
|
||||||
|
SELECT SLEEP(2.3);
|
||||||
|
SELECT SLEEP(2.5);
|
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;
|
||||||
|
}
|
@ -606,7 +606,7 @@ sub new_config {
|
|||||||
|
|
||||||
# add auto-options
|
# add auto-options
|
||||||
$config->insert('OPT', 'port' => sub { fix_port($self, $config) });
|
$config->insert('OPT', 'port' => sub { fix_port($self, $config) });
|
||||||
$config->insert('OPT', 'vardir' => sub { shift->{ARGS}->{vardir} });
|
$config->insert('OPT', 'vardir' => sub { $self->{ARGS}->{vardir} });
|
||||||
|
|
||||||
{
|
{
|
||||||
# Run pre rules
|
# Run pre rules
|
||||||
|
@ -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");
|
||||||
|
|
||||||
|
@ -325,12 +325,8 @@ sub collect_one_suite
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Read suite.opt file
|
# Read suite.opt file
|
||||||
my $suite_opt_file= "$testdir/suite.opt";
|
my $suite_opts= [ opts_from_file("$testdir/suite.opt") ];
|
||||||
my $suite_opts= [];
|
$suite_opts = [ opts_from_file("$suitedir/suite.opt") ] unless @$suite_opts;
|
||||||
if ( -f $suite_opt_file )
|
|
||||||
{
|
|
||||||
$suite_opts= opts_from_file($suite_opt_file);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( @$opt_cases )
|
if ( @$opt_cases )
|
||||||
{
|
{
|
||||||
@ -618,67 +614,81 @@ sub optimize_cases {
|
|||||||
# Read options from the given opt file and append them as an array
|
# Read options from the given opt file and append them as an array
|
||||||
# to $tinfo->{$opt_name}
|
# to $tinfo->{$opt_name}
|
||||||
#
|
#
|
||||||
sub process_opts_file {
|
sub process_opts {
|
||||||
my ($tinfo, $opt_file, $opt_name)= @_;
|
my ($tinfo, $opt_name)= @_;
|
||||||
|
|
||||||
if ( -f $opt_file )
|
my @opts= @{$tinfo->{$opt_name}};
|
||||||
|
$tinfo->{$opt_name} = [];
|
||||||
|
|
||||||
|
my @plugins;
|
||||||
|
my %seen;
|
||||||
|
|
||||||
|
foreach my $opt (@opts)
|
||||||
{
|
{
|
||||||
my $opts= opts_from_file($opt_file);
|
my $value;
|
||||||
|
|
||||||
foreach my $opt ( @$opts )
|
# The opt file is used both to send special options to the mysqld
|
||||||
|
# as well as pass special test case specific options to this
|
||||||
|
# script
|
||||||
|
|
||||||
|
$value= mtr_match_prefix($opt, "--timezone=");
|
||||||
|
if ( defined $value )
|
||||||
{
|
{
|
||||||
my $value;
|
$tinfo->{'timezone'}= $value;
|
||||||
|
next;
|
||||||
# The opt file is used both to send special options to the mysqld
|
|
||||||
# as well as pass special test case specific options to this
|
|
||||||
# script
|
|
||||||
|
|
||||||
$value= mtr_match_prefix($opt, "--timezone=");
|
|
||||||
if ( defined $value )
|
|
||||||
{
|
|
||||||
$tinfo->{'timezone'}= $value;
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
|
|
||||||
$value= mtr_match_prefix($opt, "--result-file=");
|
|
||||||
if ( defined $value )
|
|
||||||
{
|
|
||||||
# Specifies the file mysqltest should compare
|
|
||||||
# output against
|
|
||||||
$tinfo->{'result_file'}= "r/$value.result";
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
|
|
||||||
$value= mtr_match_prefix($opt, "--config-file-template=");
|
|
||||||
if ( defined $value)
|
|
||||||
{
|
|
||||||
# Specifies the configuration file to use for this test
|
|
||||||
$tinfo->{'template_path'}= dirname($tinfo->{path})."/$value";
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
|
|
||||||
# If we set default time zone, remove the one we have
|
|
||||||
$value= mtr_match_prefix($opt, "--default-time-zone=");
|
|
||||||
if ( defined $value )
|
|
||||||
{
|
|
||||||
# Set timezone for this test case to something different
|
|
||||||
$tinfo->{'timezone'}= "GMT-8";
|
|
||||||
# Fallthrough, add the --default-time-zone option
|
|
||||||
}
|
|
||||||
|
|
||||||
# The --restart option forces a restart even if no special
|
|
||||||
# option is set. If the options are the same as next testcase
|
|
||||||
# there is no need to restart after the testcase
|
|
||||||
# has completed
|
|
||||||
if ( $opt eq "--force-restart" )
|
|
||||||
{
|
|
||||||
$tinfo->{'force_restart'}= 1;
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Ok, this was a real option, add it
|
|
||||||
push(@{$tinfo->{$opt_name}}, $opt);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$value= mtr_match_prefix($opt, "--plugin-load=");
|
||||||
|
if (defined $value)
|
||||||
|
{
|
||||||
|
push @plugins, $value unless $seen{$value};
|
||||||
|
$seen{$value}=1;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
$value= mtr_match_prefix($opt, "--result-file=");
|
||||||
|
if ( defined $value )
|
||||||
|
{
|
||||||
|
# Specifies the file mysqltest should compare
|
||||||
|
# output against
|
||||||
|
$tinfo->{'result_file'}= "r/$value.result";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
$value= mtr_match_prefix($opt, "--config-file-template=");
|
||||||
|
if ( defined $value)
|
||||||
|
{
|
||||||
|
# Specifies the configuration file to use for this test
|
||||||
|
$tinfo->{'template_path'}= dirname($tinfo->{path})."/$value";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
# If we set default time zone, remove the one we have
|
||||||
|
$value= mtr_match_prefix($opt, "--default-time-zone=");
|
||||||
|
if ( defined $value )
|
||||||
|
{
|
||||||
|
# Set timezone for this test case to something different
|
||||||
|
$tinfo->{'timezone'}= "GMT-8";
|
||||||
|
# Fallthrough, add the --default-time-zone option
|
||||||
|
}
|
||||||
|
|
||||||
|
# The --restart option forces a restart even if no special
|
||||||
|
# option is set. If the options are the same as next testcase
|
||||||
|
# there is no need to restart after the testcase
|
||||||
|
# has completed
|
||||||
|
if ( $opt eq "--force-restart" )
|
||||||
|
{
|
||||||
|
$tinfo->{'force_restart'}= 1;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ok, this was a real option, add it
|
||||||
|
push(@{$tinfo->{$opt_name}}, $opt);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (@plugins) {
|
||||||
|
my $sep = (IS_WINDOWS) ? ';' : ':';
|
||||||
|
push @{$tinfo->{$opt_name}}, "--plugin-load=" . join($sep, @plugins);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1019,15 +1029,17 @@ sub collect_one_test_case {
|
|||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
for (@source_files) {
|
for (@source_files) {
|
||||||
s/\.\w+$//;
|
s/\.\w+$//;
|
||||||
process_opts_file($tinfo, "$_.opt", 'master_opt');
|
push @{$tinfo->{master_opt}}, opts_from_file("$_.opt");
|
||||||
process_opts_file($tinfo, "$_.opt", 'slave_opt');
|
push @{$tinfo->{slave_opt}}, opts_from_file("$_.opt");
|
||||||
process_opts_file($tinfo, "$_-master.opt", 'master_opt');
|
push @{$tinfo->{master_opt}}, opts_from_file("$_-master.opt");
|
||||||
process_opts_file($tinfo, "$_-slave.opt", 'slave_opt');
|
push @{$tinfo->{slave_opt}}, opts_from_file("$_-slave.opt");
|
||||||
}
|
}
|
||||||
|
|
||||||
push(@{$tinfo->{'master_opt'}}, @::opt_extra_mysqld_opt);
|
push(@{$tinfo->{'master_opt'}}, @::opt_extra_mysqld_opt);
|
||||||
push(@{$tinfo->{'slave_opt'}}, @::opt_extra_mysqld_opt);
|
push(@{$tinfo->{'slave_opt'}}, @::opt_extra_mysqld_opt);
|
||||||
|
|
||||||
|
process_opts($tinfo, 'master_opt');
|
||||||
|
process_opts($tinfo, 'slave_opt');
|
||||||
|
|
||||||
return $tinfo;
|
return $tinfo;
|
||||||
}
|
}
|
||||||
@ -1114,6 +1126,8 @@ sub opts_from_file ($) {
|
|||||||
my $file= shift;
|
my $file= shift;
|
||||||
local $_;
|
local $_;
|
||||||
|
|
||||||
|
return () unless -f $file;
|
||||||
|
|
||||||
open(FILE,"<",$file) or mtr_error("can't open file \"$file\": $!");
|
open(FILE,"<",$file) or mtr_error("can't open file \"$file\": $!");
|
||||||
my @args;
|
my @args;
|
||||||
while ( <FILE> )
|
while ( <FILE> )
|
||||||
@ -1154,7 +1168,7 @@ sub opts_from_file ($) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
close FILE;
|
close FILE;
|
||||||
return \@args;
|
return @args;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub print_testcases {
|
sub print_testcases {
|
||||||
|
@ -2959,7 +2959,7 @@ sub run_benchmarks ($) {
|
|||||||
|
|
||||||
if ( ! $benchmark )
|
if ( ! $benchmark )
|
||||||
{
|
{
|
||||||
mtr_add_arg($args, "--log");
|
mtr_add_arg($args, "--general-log");
|
||||||
mtr_run("$glob_mysql_bench_dir/run-all-tests", $args, "", "", "", "");
|
mtr_run("$glob_mysql_bench_dir/run-all-tests", $args, "", "", "", "");
|
||||||
# FIXME check result code?!
|
# FIXME check result code?!
|
||||||
}
|
}
|
||||||
|
@ -3561,8 +3561,9 @@ sub timezone {
|
|||||||
my ($tinfo)= @_;
|
my ($tinfo)= @_;
|
||||||
local $_ = $tinfo->{timezone};
|
local $_ = $tinfo->{timezone};
|
||||||
return 'DEFAULT' unless defined $_;
|
return 'DEFAULT' unless defined $_;
|
||||||
s/\$\{(\w+)\}/envsubst($1)/ge;
|
no warnings 'uninitialized';
|
||||||
s/\$(\w+)/envsubst($1)/ge;
|
s/\$\{(\w+)\}/$ENV{$1}/ge;
|
||||||
|
s/\$(\w+)/$ENV{$1}/ge;
|
||||||
$_;
|
$_;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4224,6 +4225,7 @@ sub extract_warning_lines ($) {
|
|||||||
qr/slave SQL thread aborted/,
|
qr/slave SQL thread aborted/,
|
||||||
qr/unknown option '--loose[-_]/,
|
qr/unknown option '--loose[-_]/,
|
||||||
qr/unknown variable 'loose[-_]/,
|
qr/unknown variable 'loose[-_]/,
|
||||||
|
qr/Invalid .*old.* table or database name/,
|
||||||
qr/Now setting lower_case_table_names to [02]/,
|
qr/Now setting lower_case_table_names to [02]/,
|
||||||
qr/Setting lower_case_table_names=2/,
|
qr/Setting lower_case_table_names=2/,
|
||||||
qr/You have forced lower_case_table_names to 0/,
|
qr/You have forced lower_case_table_names to 0/,
|
||||||
@ -5068,18 +5070,6 @@ sub started { return grep(defined $_, map($_->{proc}, @_)); }
|
|||||||
sub stopped { return grep(!defined $_, map($_->{proc}, @_)); }
|
sub stopped { return grep(!defined $_, map($_->{proc}, @_)); }
|
||||||
|
|
||||||
|
|
||||||
sub envsubst {
|
|
||||||
my $string= shift;
|
|
||||||
|
|
||||||
if ( ! defined $ENV{$string} )
|
|
||||||
{
|
|
||||||
mtr_error(".opt file references '$string' which is not set");
|
|
||||||
}
|
|
||||||
|
|
||||||
return $ENV{$string};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sub get_extra_opts {
|
sub get_extra_opts {
|
||||||
my ($mysqld, $tinfo)= @_;
|
my ($mysqld, $tinfo)= @_;
|
||||||
|
|
||||||
@ -5090,8 +5080,9 @@ sub get_extra_opts {
|
|||||||
# Expand environment variables
|
# Expand environment variables
|
||||||
foreach my $opt ( @$opts )
|
foreach my $opt ( @$opts )
|
||||||
{
|
{
|
||||||
$opt =~ s/\$\{(\w+)\}/envsubst($1)/ge;
|
no warnings 'uninitialized';
|
||||||
$opt =~ s/\$(\w+)/envsubst($1)/ge;
|
$opt =~ s/\$\{(\w+)\}/$ENV{$1}/ge;
|
||||||
|
$opt =~ s/\$(\w+)/$ENV{$1}/ge;
|
||||||
}
|
}
|
||||||
return $opts;
|
return $opts;
|
||||||
}
|
}
|
||||||
@ -5843,7 +5834,7 @@ sub time_format($) {
|
|||||||
my $num_tests;
|
my $num_tests;
|
||||||
|
|
||||||
sub xterm_stat {
|
sub xterm_stat {
|
||||||
if (-t STDOUT and $ENV{TERM} =~ /xterm/) {
|
if (-t STDOUT and defined $ENV{TERM} and $ENV{TERM} =~ /xterm/) {
|
||||||
my ($left) = @_;
|
my ($left) = @_;
|
||||||
|
|
||||||
# 2.5 -> best by test
|
# 2.5 -> best by test
|
||||||
|
@ -12725,8 +12725,7 @@ INSERT INTO t1 (col1, col2) VALUES (1, "value");
|
|||||||
ERROR HY000: Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
|
ERROR HY000: Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
|
||||||
REPAIR TABLE t1;
|
REPAIR TABLE t1;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t1 repair Error Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
|
test.t1 repair status OK
|
||||||
test.t1 repair error Corrupt
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# BUG#48757 - missing .ARZ file causes server crash
|
# BUG#48757 - missing .ARZ file causes server crash
|
||||||
@ -12756,3 +12755,12 @@ a
|
|||||||
1
|
1
|
||||||
2
|
2
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
select * from t1;
|
||||||
|
ERROR HY000: Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
|
||||||
|
repair table t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 repair status OK
|
||||||
|
select sum(length(a)),sum(b) from t1;
|
||||||
|
sum(length(a)) sum(b)
|
||||||
|
8670 187
|
||||||
|
drop table t1;
|
||||||
|
@ -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;
|
||||||
|
@ -115,9 +115,14 @@ create table `#mysql50#abc``def` ( id int );
|
|||||||
create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
|
create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
|
||||||
ERROR 42000: Incorrect table name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
ERROR 42000: Incorrect table name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||||
create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
|
create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
|
||||||
create table `#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
|
create table `#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1234` (a int);
|
||||||
create table `#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
|
create table `#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa12345` (a int);
|
||||||
ERROR 42000: Incorrect table name '#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
ERROR 42000: Incorrect table name '#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa12345'
|
||||||
|
show tables;
|
||||||
|
Tables_in_mysqltestbug26703
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1234
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
#mysql50#abc`def
|
||||||
use test;
|
use test;
|
||||||
drop database mysqltestbug26703;
|
drop database mysqltestbug26703;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
@ -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
|
||||||
|
@ -1425,7 +1425,7 @@ ERROR 42S02: Table 'db1.../db2/tb2' doesn't exist
|
|||||||
SELECT * FROM `../db2`.tb2;
|
SELECT * FROM `../db2`.tb2;
|
||||||
ERROR 42000: SELECT command denied to user 'testbug'@'localhost' for table 'tb2'
|
ERROR 42000: SELECT command denied to user 'testbug'@'localhost' for table 'tb2'
|
||||||
SELECT * FROM `#mysql50#/../db2/tb2`;
|
SELECT * FROM `#mysql50#/../db2/tb2`;
|
||||||
ERROR 42S02: Table 'db1.#mysql50#/../db2/tb2' doesn't exist
|
ERROR 42000: Incorrect table name '#mysql50#/../db2/tb2'
|
||||||
DROP USER 'testbug'@localhost;
|
DROP USER 'testbug'@localhost;
|
||||||
DROP TABLE db2.t1;
|
DROP TABLE db2.t1;
|
||||||
DROP DATABASE db1;
|
DROP DATABASE db1;
|
||||||
|
@ -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
|
||||||
|
@ -68,6 +68,7 @@ INNODB_LOCKS
|
|||||||
INNODB_LOCK_WAITS
|
INNODB_LOCK_WAITS
|
||||||
INNODB_RSEG
|
INNODB_RSEG
|
||||||
INNODB_SYS_INDEXES
|
INNODB_SYS_INDEXES
|
||||||
|
INNODB_SYS_STATS
|
||||||
INNODB_SYS_TABLES
|
INNODB_SYS_TABLES
|
||||||
INNODB_TABLE_STATS
|
INNODB_TABLE_STATS
|
||||||
INNODB_TRX
|
INNODB_TRX
|
||||||
@ -871,7 +872,6 @@ COLUMNS TABLE_NAME select
|
|||||||
COLUMN_PRIVILEGES TABLE_NAME select
|
COLUMN_PRIVILEGES TABLE_NAME select
|
||||||
FILES TABLE_NAME select
|
FILES TABLE_NAME select
|
||||||
INDEX_STATISTICS TABLE_NAME select
|
INDEX_STATISTICS TABLE_NAME select
|
||||||
INNODB_BUFFER_POOL_PAGES_INDEX table_name select
|
|
||||||
INNODB_INDEX_STATS table_name select
|
INNODB_INDEX_STATS table_name select
|
||||||
INNODB_TABLE_STATS table_name select
|
INNODB_TABLE_STATS table_name select
|
||||||
KEY_COLUMN_USAGE TABLE_NAME select
|
KEY_COLUMN_USAGE TABLE_NAME select
|
||||||
@ -1664,4 +1664,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.
|
||||||
|
@ -44,13 +44,14 @@ XTRADB_ADMIN_COMMAND
|
|||||||
INNODB_TRX
|
INNODB_TRX
|
||||||
INNODB_SYS_TABLES
|
INNODB_SYS_TABLES
|
||||||
INNODB_LOCK_WAITS
|
INNODB_LOCK_WAITS
|
||||||
INNODB_CMPMEM_RESET
|
INNODB_SYS_STATS
|
||||||
INNODB_LOCKS
|
INNODB_LOCKS
|
||||||
INNODB_CMPMEM
|
INNODB_CMPMEM
|
||||||
INNODB_TABLE_STATS
|
INNODB_TABLE_STATS
|
||||||
INNODB_SYS_INDEXES
|
INNODB_SYS_INDEXES
|
||||||
INNODB_CMP_RESET
|
INNODB_CMP_RESET
|
||||||
INNODB_BUFFER_POOL_PAGES_BLOB
|
INNODB_BUFFER_POOL_PAGES_BLOB
|
||||||
|
INNODB_CMPMEM_RESET
|
||||||
INNODB_INDEX_STATS
|
INNODB_INDEX_STATS
|
||||||
SELECT t.table_name, c1.column_name
|
SELECT t.table_name, c1.column_name
|
||||||
FROM information_schema.tables t
|
FROM information_schema.tables t
|
||||||
@ -105,18 +106,19 @@ PBXT_STATISTICS ID
|
|||||||
INNODB_CMP page_size
|
INNODB_CMP page_size
|
||||||
INNODB_RSEG rseg_id
|
INNODB_RSEG rseg_id
|
||||||
XTRADB_ENHANCEMENTS name
|
XTRADB_ENHANCEMENTS name
|
||||||
INNODB_BUFFER_POOL_PAGES_INDEX schema_name
|
INNODB_BUFFER_POOL_PAGES_INDEX index_id
|
||||||
XTRADB_ADMIN_COMMAND result_message
|
XTRADB_ADMIN_COMMAND result_message
|
||||||
INNODB_TRX trx_id
|
INNODB_TRX trx_id
|
||||||
INNODB_SYS_TABLES SCHEMA
|
INNODB_SYS_TABLES SCHEMA
|
||||||
INNODB_LOCK_WAITS requesting_trx_id
|
INNODB_LOCK_WAITS requesting_trx_id
|
||||||
INNODB_CMPMEM_RESET page_size
|
INNODB_SYS_STATS INDEX_ID
|
||||||
INNODB_LOCKS lock_id
|
INNODB_LOCKS lock_id
|
||||||
INNODB_CMPMEM page_size
|
INNODB_CMPMEM page_size
|
||||||
INNODB_TABLE_STATS table_schema
|
INNODB_TABLE_STATS table_schema
|
||||||
INNODB_SYS_INDEXES TABLE_ID
|
INNODB_SYS_INDEXES TABLE_ID
|
||||||
INNODB_CMP_RESET page_size
|
INNODB_CMP_RESET page_size
|
||||||
INNODB_BUFFER_POOL_PAGES_BLOB space_id
|
INNODB_BUFFER_POOL_PAGES_BLOB space_id
|
||||||
|
INNODB_CMPMEM_RESET page_size
|
||||||
INNODB_INDEX_STATS table_schema
|
INNODB_INDEX_STATS table_schema
|
||||||
SELECT t.table_name, c1.column_name
|
SELECT t.table_name, c1.column_name
|
||||||
FROM information_schema.tables t
|
FROM information_schema.tables t
|
||||||
@ -171,18 +173,19 @@ PBXT_STATISTICS ID
|
|||||||
INNODB_CMP page_size
|
INNODB_CMP page_size
|
||||||
INNODB_RSEG rseg_id
|
INNODB_RSEG rseg_id
|
||||||
XTRADB_ENHANCEMENTS name
|
XTRADB_ENHANCEMENTS name
|
||||||
INNODB_BUFFER_POOL_PAGES_INDEX schema_name
|
INNODB_BUFFER_POOL_PAGES_INDEX index_id
|
||||||
XTRADB_ADMIN_COMMAND result_message
|
XTRADB_ADMIN_COMMAND result_message
|
||||||
INNODB_TRX trx_id
|
INNODB_TRX trx_id
|
||||||
INNODB_SYS_TABLES SCHEMA
|
INNODB_SYS_TABLES SCHEMA
|
||||||
INNODB_LOCK_WAITS requesting_trx_id
|
INNODB_LOCK_WAITS requesting_trx_id
|
||||||
INNODB_CMPMEM_RESET page_size
|
INNODB_SYS_STATS INDEX_ID
|
||||||
INNODB_LOCKS lock_id
|
INNODB_LOCKS lock_id
|
||||||
INNODB_CMPMEM page_size
|
INNODB_CMPMEM page_size
|
||||||
INNODB_TABLE_STATS table_schema
|
INNODB_TABLE_STATS table_schema
|
||||||
INNODB_SYS_INDEXES TABLE_ID
|
INNODB_SYS_INDEXES TABLE_ID
|
||||||
INNODB_CMP_RESET page_size
|
INNODB_CMP_RESET page_size
|
||||||
INNODB_BUFFER_POOL_PAGES_BLOB space_id
|
INNODB_BUFFER_POOL_PAGES_BLOB space_id
|
||||||
|
INNODB_CMPMEM_RESET page_size
|
||||||
INNODB_INDEX_STATS table_schema
|
INNODB_INDEX_STATS table_schema
|
||||||
select 1 as f1 from information_schema.tables where "CHARACTER_SETS"=
|
select 1 as f1 from information_schema.tables where "CHARACTER_SETS"=
|
||||||
(select cast(table_name as char) from information_schema.tables
|
(select cast(table_name as char) from information_schema.tables
|
||||||
@ -229,6 +232,7 @@ INNODB_LOCKS information_schema.INNODB_LOCKS 1
|
|||||||
INNODB_LOCK_WAITS information_schema.INNODB_LOCK_WAITS 1
|
INNODB_LOCK_WAITS information_schema.INNODB_LOCK_WAITS 1
|
||||||
INNODB_RSEG information_schema.INNODB_RSEG 1
|
INNODB_RSEG information_schema.INNODB_RSEG 1
|
||||||
INNODB_SYS_INDEXES information_schema.INNODB_SYS_INDEXES 1
|
INNODB_SYS_INDEXES information_schema.INNODB_SYS_INDEXES 1
|
||||||
|
INNODB_SYS_STATS information_schema.INNODB_SYS_STATS 1
|
||||||
INNODB_SYS_TABLES information_schema.INNODB_SYS_TABLES 1
|
INNODB_SYS_TABLES information_schema.INNODB_SYS_TABLES 1
|
||||||
INNODB_TABLE_STATS information_schema.INNODB_TABLE_STATS 1
|
INNODB_TABLE_STATS information_schema.INNODB_TABLE_STATS 1
|
||||||
INNODB_TRX information_schema.INNODB_TRX 1
|
INNODB_TRX information_schema.INNODB_TRX 1
|
||||||
@ -302,13 +306,14 @@ Database: information_schema
|
|||||||
| INNODB_TRX |
|
| INNODB_TRX |
|
||||||
| INNODB_SYS_TABLES |
|
| INNODB_SYS_TABLES |
|
||||||
| INNODB_LOCK_WAITS |
|
| INNODB_LOCK_WAITS |
|
||||||
| INNODB_CMPMEM_RESET |
|
| INNODB_SYS_STATS |
|
||||||
| INNODB_LOCKS |
|
| INNODB_LOCKS |
|
||||||
| INNODB_CMPMEM |
|
| INNODB_CMPMEM |
|
||||||
| INNODB_TABLE_STATS |
|
| INNODB_TABLE_STATS |
|
||||||
| INNODB_SYS_INDEXES |
|
| INNODB_SYS_INDEXES |
|
||||||
| INNODB_CMP_RESET |
|
| INNODB_CMP_RESET |
|
||||||
| INNODB_BUFFER_POOL_PAGES_BLOB |
|
| INNODB_BUFFER_POOL_PAGES_BLOB |
|
||||||
|
| INNODB_CMPMEM_RESET |
|
||||||
| INNODB_INDEX_STATS |
|
| INNODB_INDEX_STATS |
|
||||||
+---------------------------------------+
|
+---------------------------------------+
|
||||||
Database: INFORMATION_SCHEMA
|
Database: INFORMATION_SCHEMA
|
||||||
@ -358,13 +363,14 @@ Database: INFORMATION_SCHEMA
|
|||||||
| INNODB_TRX |
|
| INNODB_TRX |
|
||||||
| INNODB_SYS_TABLES |
|
| INNODB_SYS_TABLES |
|
||||||
| INNODB_LOCK_WAITS |
|
| INNODB_LOCK_WAITS |
|
||||||
| INNODB_CMPMEM_RESET |
|
| INNODB_SYS_STATS |
|
||||||
| INNODB_LOCKS |
|
| INNODB_LOCKS |
|
||||||
| INNODB_CMPMEM |
|
| INNODB_CMPMEM |
|
||||||
| INNODB_TABLE_STATS |
|
| INNODB_TABLE_STATS |
|
||||||
| INNODB_SYS_INDEXES |
|
| INNODB_SYS_INDEXES |
|
||||||
| INNODB_CMP_RESET |
|
| INNODB_CMP_RESET |
|
||||||
| INNODB_BUFFER_POOL_PAGES_BLOB |
|
| INNODB_BUFFER_POOL_PAGES_BLOB |
|
||||||
|
| INNODB_CMPMEM_RESET |
|
||||||
| INNODB_INDEX_STATS |
|
| INNODB_INDEX_STATS |
|
||||||
+---------------------------------------+
|
+---------------------------------------+
|
||||||
Wildcard: inf_rmation_schema
|
Wildcard: inf_rmation_schema
|
||||||
@ -375,5 +381,5 @@ Wildcard: inf_rmation_schema
|
|||||||
+--------------------+
|
+--------------------+
|
||||||
SELECT table_schema, count(*) FROM information_schema.TABLES WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test', 'mysqltest') AND table_name<>'ndb_binlog_index' AND table_name<>'ndb_apply_status' GROUP BY TABLE_SCHEMA;
|
SELECT table_schema, count(*) FROM information_schema.TABLES WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test', 'mysqltest') AND table_name<>'ndb_binlog_index' AND table_name<>'ndb_apply_status' GROUP BY TABLE_SCHEMA;
|
||||||
table_schema count(*)
|
table_schema count(*)
|
||||||
information_schema 51
|
information_schema 52
|
||||||
mysql 22
|
mysql 22
|
||||||
|
@ -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
|
||||||
|
@ -11,15 +11,18 @@ Table Op Msg_type Msg_text
|
|||||||
test.bug49823 repair status OK
|
test.bug49823 repair status OK
|
||||||
RENAME TABLE general_log TO renamed_general_log;
|
RENAME TABLE general_log TO renamed_general_log;
|
||||||
RENAME TABLE test.bug49823 TO general_log;
|
RENAME TABLE test.bug49823 TO general_log;
|
||||||
|
Phase 1/3: Fixing table and database names
|
||||||
|
Phase 2/3: Checking and upgrading tables
|
||||||
|
Processing databases
|
||||||
|
information_schema
|
||||||
|
mtr
|
||||||
mtr.global_suppressions OK
|
mtr.global_suppressions OK
|
||||||
mtr.test_suppressions OK
|
mtr.test_suppressions OK
|
||||||
|
mysql
|
||||||
mysql.columns_priv OK
|
mysql.columns_priv OK
|
||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
mysql.general_log
|
|
||||||
Error : You can't use locks with log tables.
|
|
||||||
status : OK
|
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -31,9 +34,6 @@ mysql.proc OK
|
|||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.renamed_general_log OK
|
mysql.renamed_general_log OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log
|
|
||||||
Error : You can't use locks with log tables.
|
|
||||||
status : OK
|
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
mysql.time_zone OK
|
mysql.time_zone OK
|
||||||
mysql.time_zone_leap_second OK
|
mysql.time_zone_leap_second OK
|
||||||
@ -41,6 +41,9 @@ mysql.time_zone_name OK
|
|||||||
mysql.time_zone_transition OK
|
mysql.time_zone_transition OK
|
||||||
mysql.time_zone_transition_type OK
|
mysql.time_zone_transition_type OK
|
||||||
mysql.user OK
|
mysql.user OK
|
||||||
|
test
|
||||||
|
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||||
|
OK
|
||||||
DROP TABLE general_log;
|
DROP TABLE general_log;
|
||||||
RENAME TABLE renamed_general_log TO general_log;
|
RENAME TABLE renamed_general_log TO general_log;
|
||||||
SET GLOBAL general_log = @saved_general_log;
|
SET GLOBAL general_log = @saved_general_log;
|
||||||
|
@ -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;
|
||||||
|
@ -1,13 +1,16 @@
|
|||||||
Run mysql_upgrade once
|
Run mysql_upgrade once
|
||||||
|
Phase 1/3: Fixing table and database names
|
||||||
|
Phase 2/3: Checking and upgrading tables
|
||||||
|
Processing databases
|
||||||
|
information_schema
|
||||||
|
mtr
|
||||||
mtr.global_suppressions OK
|
mtr.global_suppressions OK
|
||||||
mtr.test_suppressions OK
|
mtr.test_suppressions OK
|
||||||
|
mysql
|
||||||
mysql.columns_priv OK
|
mysql.columns_priv OK
|
||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
mysql.general_log
|
|
||||||
Error : You can't use locks with log tables.
|
|
||||||
status : OK
|
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -18,9 +21,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log
|
|
||||||
Error : You can't use locks with log tables.
|
|
||||||
status : OK
|
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
mysql.time_zone OK
|
mysql.time_zone OK
|
||||||
mysql.time_zone_leap_second OK
|
mysql.time_zone_leap_second OK
|
||||||
@ -28,18 +28,24 @@ mysql.time_zone_name OK
|
|||||||
mysql.time_zone_transition OK
|
mysql.time_zone_transition OK
|
||||||
mysql.time_zone_transition_type OK
|
mysql.time_zone_transition_type OK
|
||||||
mysql.user OK
|
mysql.user OK
|
||||||
|
test
|
||||||
|
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||||
|
OK
|
||||||
Run it again - should say already completed
|
Run it again - should say already completed
|
||||||
This installation of MySQL is already upgraded to VERSION, use --force if you still need to run mysql_upgrade
|
This installation of MySQL is already upgraded to VERSION, use --force if you still need to run mysql_upgrade
|
||||||
Force should run it regardless of wether it's been run before
|
Force should run it regardless of wether it's been run before
|
||||||
|
Phase 1/3: Fixing table and database names
|
||||||
|
Phase 2/3: Checking and upgrading tables
|
||||||
|
Processing databases
|
||||||
|
information_schema
|
||||||
|
mtr
|
||||||
mtr.global_suppressions OK
|
mtr.global_suppressions OK
|
||||||
mtr.test_suppressions OK
|
mtr.test_suppressions OK
|
||||||
|
mysql
|
||||||
mysql.columns_priv OK
|
mysql.columns_priv OK
|
||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
mysql.general_log
|
|
||||||
Error : You can't use locks with log tables.
|
|
||||||
status : OK
|
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -50,9 +56,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log
|
|
||||||
Error : You can't use locks with log tables.
|
|
||||||
status : OK
|
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
mysql.time_zone OK
|
mysql.time_zone OK
|
||||||
mysql.time_zone_leap_second OK
|
mysql.time_zone_leap_second OK
|
||||||
@ -60,18 +63,24 @@ mysql.time_zone_name OK
|
|||||||
mysql.time_zone_transition OK
|
mysql.time_zone_transition OK
|
||||||
mysql.time_zone_transition_type OK
|
mysql.time_zone_transition_type OK
|
||||||
mysql.user OK
|
mysql.user OK
|
||||||
|
test
|
||||||
|
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||||
|
OK
|
||||||
CREATE USER mysqltest1@'%' IDENTIFIED by 'sakila';
|
CREATE USER mysqltest1@'%' IDENTIFIED by 'sakila';
|
||||||
GRANT ALL ON *.* TO mysqltest1@'%';
|
GRANT ALL ON *.* TO mysqltest1@'%';
|
||||||
Run mysql_upgrade with password protected account
|
Run mysql_upgrade with password protected account
|
||||||
|
Phase 1/3: Fixing table and database names
|
||||||
|
Phase 2/3: Checking and upgrading tables
|
||||||
|
Processing databases
|
||||||
|
information_schema
|
||||||
|
mtr
|
||||||
mtr.global_suppressions OK
|
mtr.global_suppressions OK
|
||||||
mtr.test_suppressions OK
|
mtr.test_suppressions OK
|
||||||
|
mysql
|
||||||
mysql.columns_priv OK
|
mysql.columns_priv OK
|
||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
mysql.general_log
|
|
||||||
Error : You can't use locks with log tables.
|
|
||||||
status : OK
|
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -82,9 +91,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log
|
|
||||||
Error : You can't use locks with log tables.
|
|
||||||
status : OK
|
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
mysql.time_zone OK
|
mysql.time_zone OK
|
||||||
mysql.time_zone_leap_second OK
|
mysql.time_zone_leap_second OK
|
||||||
@ -92,20 +98,27 @@ mysql.time_zone_name OK
|
|||||||
mysql.time_zone_transition OK
|
mysql.time_zone_transition OK
|
||||||
mysql.time_zone_transition_type OK
|
mysql.time_zone_transition_type OK
|
||||||
mysql.user OK
|
mysql.user OK
|
||||||
|
test
|
||||||
|
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||||
|
OK
|
||||||
DROP USER mysqltest1@'%';
|
DROP USER mysqltest1@'%';
|
||||||
Run mysql_upgrade with a non existing server socket
|
Run mysql_upgrade with a non existing server socket
|
||||||
|
Phase 1/3: Fixing table and database names
|
||||||
mysqlcheck: Got error: 2005: Unknown MySQL server host 'not_existing_host' (errno) when trying to connect
|
mysqlcheck: Got error: 2005: Unknown MySQL server host 'not_existing_host' (errno) when trying to connect
|
||||||
FATAL ERROR: Upgrade failed
|
FATAL ERROR: Upgrade failed
|
||||||
set GLOBAL sql_mode='STRICT_ALL_TABLES,ANSI_QUOTES,NO_ZERO_DATE';
|
set GLOBAL sql_mode='STRICT_ALL_TABLES,ANSI_QUOTES,NO_ZERO_DATE';
|
||||||
|
Phase 1/3: Fixing table and database names
|
||||||
|
Phase 2/3: Checking and upgrading tables
|
||||||
|
Processing databases
|
||||||
|
information_schema
|
||||||
|
mtr
|
||||||
mtr.global_suppressions OK
|
mtr.global_suppressions OK
|
||||||
mtr.test_suppressions OK
|
mtr.test_suppressions OK
|
||||||
|
mysql
|
||||||
mysql.columns_priv OK
|
mysql.columns_priv OK
|
||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
mysql.general_log
|
|
||||||
Error : You can't use locks with log tables.
|
|
||||||
status : OK
|
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -116,9 +129,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log
|
|
||||||
Error : You can't use locks with log tables.
|
|
||||||
status : OK
|
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
mysql.time_zone OK
|
mysql.time_zone OK
|
||||||
mysql.time_zone_leap_second OK
|
mysql.time_zone_leap_second OK
|
||||||
@ -126,6 +136,9 @@ mysql.time_zone_name OK
|
|||||||
mysql.time_zone_transition OK
|
mysql.time_zone_transition OK
|
||||||
mysql.time_zone_transition_type OK
|
mysql.time_zone_transition_type OK
|
||||||
mysql.user OK
|
mysql.user OK
|
||||||
|
test
|
||||||
|
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||||
|
OK
|
||||||
set GLOBAL sql_mode=default;
|
set GLOBAL sql_mode=default;
|
||||||
#
|
#
|
||||||
# Bug #41569 mysql_upgrade (ver 5.1) add 3 fields to mysql.proc table
|
# Bug #41569 mysql_upgrade (ver 5.1) add 3 fields to mysql.proc table
|
||||||
@ -135,15 +148,18 @@ CREATE PROCEDURE testproc() BEGIN END;
|
|||||||
UPDATE mysql.proc SET character_set_client = NULL WHERE name LIKE 'testproc';
|
UPDATE mysql.proc SET character_set_client = NULL WHERE name LIKE 'testproc';
|
||||||
UPDATE mysql.proc SET collation_connection = NULL WHERE name LIKE 'testproc';
|
UPDATE mysql.proc SET collation_connection = NULL WHERE name LIKE 'testproc';
|
||||||
UPDATE mysql.proc SET db_collation = NULL WHERE name LIKE 'testproc';
|
UPDATE mysql.proc SET db_collation = NULL WHERE name LIKE 'testproc';
|
||||||
|
Phase 1/3: Fixing table and database names
|
||||||
|
Phase 2/3: Checking and upgrading tables
|
||||||
|
Processing databases
|
||||||
|
information_schema
|
||||||
|
mtr
|
||||||
mtr.global_suppressions OK
|
mtr.global_suppressions OK
|
||||||
mtr.test_suppressions OK
|
mtr.test_suppressions OK
|
||||||
|
mysql
|
||||||
mysql.columns_priv OK
|
mysql.columns_priv OK
|
||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
mysql.general_log
|
|
||||||
Error : You can't use locks with log tables.
|
|
||||||
status : OK
|
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -154,9 +170,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log
|
|
||||||
Error : You can't use locks with log tables.
|
|
||||||
status : OK
|
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
mysql.time_zone OK
|
mysql.time_zone OK
|
||||||
mysql.time_zone_leap_second OK
|
mysql.time_zone_leap_second OK
|
||||||
@ -164,8 +177,56 @@ mysql.time_zone_name OK
|
|||||||
mysql.time_zone_transition OK
|
mysql.time_zone_transition OK
|
||||||
mysql.time_zone_transition_type OK
|
mysql.time_zone_transition_type OK
|
||||||
mysql.user OK
|
mysql.user OK
|
||||||
|
test
|
||||||
|
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||||
|
OK
|
||||||
CALL testproc();
|
CALL testproc();
|
||||||
DROP PROCEDURE testproc;
|
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
|
||||||
|
Phase 1/3: Fixing table and database names
|
||||||
|
Phase 2/3: Checking and upgrading tables
|
||||||
|
Processing databases
|
||||||
|
information_schema
|
||||||
|
mtr
|
||||||
|
mtr.global_suppressions OK
|
||||||
|
mtr.test_suppressions OK
|
||||||
|
mysql
|
||||||
|
mysql.columns_priv OK
|
||||||
|
mysql.db OK
|
||||||
|
mysql.event OK
|
||||||
|
mysql.func 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.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
|
||||||
|
test
|
||||||
|
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||||
|
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
|
||||||
|
@ -7,8 +7,6 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
mysql.general_log
|
|
||||||
note : The storage engine for the table doesn't support optimize
|
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -19,8 +17,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log
|
|
||||||
note : The storage engine for the table doesn't support optimize
|
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
mysql.time_zone OK
|
mysql.time_zone OK
|
||||||
mysql.time_zone_leap_second OK
|
mysql.time_zone_leap_second OK
|
||||||
@ -32,8 +28,6 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
mysql.general_log
|
|
||||||
note : The storage engine for the table doesn't support optimize
|
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -44,8 +38,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.slow_log
|
|
||||||
note : The storage engine for the table doesn't support optimize
|
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
mysql.time_zone OK
|
mysql.time_zone OK
|
||||||
mysql.time_zone_leap_second OK
|
mysql.time_zone_leap_second OK
|
||||||
|
@ -1,47 +1,47 @@
|
|||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
FLUSH TABLES;
|
FLUSH TABLES;
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
ERROR 42000: Unknown table engine 'partition'
|
ERROR 42000: Unknown table engine 'partition'
|
||||||
TRUNCATE TABLE t1;
|
TRUNCATE TABLE t1;
|
||||||
ERROR 42000: Unknown table engine 'partition'
|
ERROR 42000: Unknown table engine 'partition'
|
||||||
ANALYZE TABLE t1;
|
ANALYZE TABLE t1;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t1 analyze Error Unknown table engine 'partition'
|
test.t1 analyze Error Unknown table engine 'partition'
|
||||||
test.t1 analyze error Corrupt
|
test.t1 analyze error Corrupt
|
||||||
CHECK TABLE t1;
|
CHECK TABLE t1;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t1 check Error Unknown table engine 'partition'
|
test.t1 check Error Unknown table engine 'partition'
|
||||||
test.t1 check error Corrupt
|
test.t1 check error Corrupt
|
||||||
OPTIMIZE TABLE t1;
|
OPTIMIZE TABLE t1;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t1 optimize Error Unknown table engine 'partition'
|
test.t1 optimize Error Unknown table engine 'partition'
|
||||||
test.t1 optimize error Corrupt
|
test.t1 optimize error Corrupt
|
||||||
REPAIR TABLE t1;
|
REPAIR TABLE t1;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t1 repair Error Unknown table engine 'partition'
|
test.t1 repair Error Unknown table engine 'partition'
|
||||||
test.t1 repair error Corrupt
|
test.t1 repair error Corrupt
|
||||||
ALTER TABLE t1 REPAIR PARTITION ALL;
|
ALTER TABLE t1 REPAIR PARTITION ALL;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t1 repair Error Unknown table engine 'partition'
|
test.t1 repair Error Unknown table engine 'partition'
|
||||||
test.t1 repair error Corrupt
|
test.t1 repair error Corrupt
|
||||||
ALTER TABLE t1 CHECK PARTITION ALL;
|
ALTER TABLE t1 CHECK PARTITION ALL;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t1 check Error Unknown table engine 'partition'
|
test.t1 check Error Unknown table engine 'partition'
|
||||||
test.t1 check error Corrupt
|
test.t1 check error Corrupt
|
||||||
ALTER TABLE t1 OPTIMIZE PARTITION ALL;
|
ALTER TABLE t1 OPTIMIZE PARTITION ALL;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t1 optimize Error Unknown table engine 'partition'
|
test.t1 optimize Error Unknown table engine 'partition'
|
||||||
test.t1 optimize error Corrupt
|
test.t1 optimize error Corrupt
|
||||||
ALTER TABLE t1 ANALYZE PARTITION ALL;
|
ALTER TABLE t1 ANALYZE PARTITION ALL;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t1 analyze Error Unknown table engine 'partition'
|
test.t1 analyze Error Unknown table engine 'partition'
|
||||||
test.t1 analyze error Corrupt
|
test.t1 analyze error Corrupt
|
||||||
ALTER TABLE t1 REBUILD PARTITION ALL;
|
ALTER TABLE t1 REBUILD PARTITION ALL;
|
||||||
ERROR 42000: Unknown table engine 'partition'
|
ERROR 42000: Unknown table engine 'partition'
|
||||||
ALTER TABLE t1 ENGINE Memory;
|
ALTER TABLE t1 ENGINE Memory;
|
||||||
ERROR 42000: Unknown table engine 'partition'
|
ERROR 42000: Unknown table engine 'partition'
|
||||||
ALTER TABLE t1 ADD (new INT);
|
ALTER TABLE t1 ADD (new INT);
|
||||||
ERROR 42000: Unknown table engine 'partition'
|
ERROR 42000: Unknown table engine 'partition'
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
firstname VARCHAR(25) NOT NULL,
|
firstname VARCHAR(25) NOT NULL,
|
||||||
|
@ -977,7 +977,7 @@ NULL test t1 c NULL NO int NULL NULL int(11) PRI select,insert,update,reference
|
|||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
SHOW TABLES LIKE 't1';
|
SHOW TABLES LIKE 't1';
|
||||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
def TABLE_NAMES TABLE_NAME Tables_in_test (t1) 253 192 2 N 1 0 33
|
def TABLE_NAMES TABLE_NAME Tables_in_test (t1) 253 219 2 N 1 0 33
|
||||||
Tables_in_test (t1)
|
Tables_in_test (t1)
|
||||||
t1
|
t1
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
@ -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;
|
||||||
|
@ -139,4 +139,12 @@ USE `#mysql50#.`;
|
|||||||
ERROR 42000: Incorrect database name '#mysql50#.'
|
ERROR 42000: Incorrect database name '#mysql50#.'
|
||||||
USE `#mysql50#../blablabla`;
|
USE `#mysql50#../blablabla`;
|
||||||
ERROR 42000: Incorrect database name '#mysql50#../blablabla'
|
ERROR 42000: Incorrect database name '#mysql50#../blablabla'
|
||||||
|
show full tables;
|
||||||
|
Tables_in_test Table_type
|
||||||
|
#mysql50#ltoriaeinnovacionendesarrolloempres?9120761097220077376?cio_com BASE TABLE
|
||||||
|
rename table `#mysql50#ltoriaeinnovacionendesarrolloempres?9120761097220077376?cio_com` to `ltoriaeinnovacionendesarrolloempres?9120761097220077376?cio_com`;
|
||||||
|
show full tables;
|
||||||
|
Tables_in_test Table_type
|
||||||
|
ltoriaeinnovacionendesarrolloempres?9120761097220077376?cio_com BASE TABLE
|
||||||
|
drop table `ltoriaeinnovacionendesarrolloempres?9120761097220077376?cio_com`;
|
||||||
# End of 5.1 tests
|
# End of 5.1 tests
|
||||||
|
BIN
mysql-test/std_data/archive_5_0.ARM
Normal file
BIN
mysql-test/std_data/archive_5_0.ARM
Normal file
Binary file not shown.
BIN
mysql-test/std_data/archive_5_0.ARZ
Normal file
BIN
mysql-test/std_data/archive_5_0.ARZ
Normal file
Binary file not shown.
BIN
mysql-test/std_data/archive_5_0.frm
Normal file
BIN
mysql-test/std_data/archive_5_0.frm
Normal file
Binary file not shown.
BIN
mysql-test/std_data/long_table_name.MYD
Normal file
BIN
mysql-test/std_data/long_table_name.MYD
Normal file
Binary file not shown.
BIN
mysql-test/std_data/long_table_name.MYI
Normal file
BIN
mysql-test/std_data/long_table_name.MYI
Normal file
Binary file not shown.
BIN
mysql-test/std_data/long_table_name.frm
Normal file
BIN
mysql-test/std_data/long_table_name.frm
Normal file
Binary file not shown.
@ -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-----
|
||||||
|
@ -2,4 +2,6 @@
|
|||||||
# For both statement and row based bin logs 9/19/2005 [jbm]
|
# For both statement and row based bin logs 9/19/2005 [jbm]
|
||||||
|
|
||||||
-- source include/have_binlog_format_row.inc
|
-- source include/have_binlog_format_row.inc
|
||||||
-- source extra/binlog_tests/binlog.test
|
let collation=utf8_unicode_ci;
|
||||||
|
--source include/have_collation.inc
|
||||||
|
--source extra/binlog_tests/binlog.test
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
-- source include/not_embedded.inc
|
-- source include/not_embedded.inc
|
||||||
-- source include/have_binlog_format_mixed.inc
|
-- source include/have_binlog_format_mixed.inc
|
||||||
|
let collation=utf8_unicode_ci;
|
||||||
|
--source include/have_collation.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
|
@ -1 +0,0 @@
|
|||||||
--loose-innodb
|
|
@ -1 +0,0 @@
|
|||||||
--loose-innodb
|
|
@ -3,10 +3,8 @@
|
|||||||
|
|
||||||
[mysqld.1]
|
[mysqld.1]
|
||||||
log-bin= master-bin
|
log-bin= master-bin
|
||||||
loose-federated
|
|
||||||
|
|
||||||
[mysqld.2]
|
[mysqld.2]
|
||||||
loose-federated
|
|
||||||
|
|
||||||
[ENV]
|
[ENV]
|
||||||
MASTER_MYPORT= @mysqld.1.port
|
MASTER_MYPORT= @mysqld.1.port
|
||||||
|
2
mysql-test/suite/federated/suite.opt
Normal file
2
mysql-test/suite/federated/suite.opt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
--federated
|
||||||
|
--plugin-load=$HA_FEDERATEDX_SO
|
@ -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
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user