mysql-5.5 merge

This commit is contained in:
Sergei Golubchik 2012-01-16 20:16:35 +01:00
commit 38e3ae155d
321 changed files with 5432 additions and 3995 deletions

View File

@ -1,4 +1,4 @@
MYSQL_VERSION_MAJOR=5 MYSQL_VERSION_MAJOR=5
MYSQL_VERSION_MINOR=5 MYSQL_VERSION_MINOR=5
MYSQL_VERSION_PATCH=18 MYSQL_VERSION_PATCH=21
MYSQL_VERSION_EXTRA= MYSQL_VERSION_EXTRA=

View File

@ -929,19 +929,19 @@ static int check_access()
opt_datadir); opt_datadir);
goto exit; goto exit;
} }
if ((error= my_access(opt_plugin_ini, F_OK))) if (opt_plugin_ini && (error= my_access(opt_plugin_ini, F_OK)))
{ {
fprintf(stderr, "ERROR: Cannot access plugin config file at '%s'.\n", fprintf(stderr, "ERROR: Cannot access plugin config file at '%s'.\n",
opt_plugin_ini); opt_plugin_ini);
goto exit; goto exit;
} }
if ((error= my_access(opt_mysqld, F_OK))) if (opt_mysqld && (error= my_access(opt_mysqld, F_OK)))
{ {
fprintf(stderr, "ERROR: Cannot access mysqld path '%s'.\n", fprintf(stderr, "ERROR: Cannot access mysqld path '%s'.\n",
opt_mysqld); opt_mysqld);
goto exit; goto exit;
} }
if ((error= my_access(opt_my_print_defaults, F_OK))) if (opt_my_print_defaults && (error= my_access(opt_my_print_defaults, F_OK)))
{ {
fprintf(stderr, "ERROR: Cannot access my-print-defaults path '%s'.\n", fprintf(stderr, "ERROR: Cannot access my-print-defaults path '%s'.\n",
opt_my_print_defaults); opt_my_print_defaults);
@ -967,7 +967,7 @@ static int find_tool(const char *tool_name, char *tool_path)
int i= 0; int i= 0;
const char *paths[]= { const char *paths[]= {
opt_basedir, opt_mysqld, opt_my_print_defaults, "/usr", opt_mysqld, opt_basedir, opt_my_print_defaults, "/usr",
"/usr/local/mysql", "/usr/sbin", "/usr/share", "/extra", "/extra/debug", "/usr/local/mysql", "/usr/sbin", "/usr/share", "/extra", "/extra/debug",
"/extra/release", "/bin", "/usr/bin", "/mysql/bin" "/extra/release", "/bin", "/usr/bin", "/mysql/bin"
}; };
@ -1081,7 +1081,7 @@ static int build_bootstrap_file(char *operation, char *bootstrap)
else else
{ {
fprintf(file, fprintf(file,
"DELETE FROM mysql.plugin WHERE name = '%s';", plugin_data.name); "DELETE FROM mysql.plugin WHERE dl = '%s';", plugin_data.so_name);
if (opt_verbose) if (opt_verbose)
{ {
printf("# Disabling %s...\n", plugin_data.name); printf("# Disabling %s...\n", plugin_data.name);
@ -1124,7 +1124,7 @@ static int dump_bootstrap_file(char *bootstrap_file)
error= 1; error= 1;
goto exit; goto exit;
} }
printf("# Query: %s", query_str); printf("# Query: %s\n", query_str);
exit: exit:
if (file) if (file)
@ -1160,7 +1160,6 @@ static int bootstrap_server(char *server_path, char *bootstrap_file)
{ {
char bootstrap_cmd[FN_REFLEN]; char bootstrap_cmd[FN_REFLEN];
int error= 0; int error= 0;
int ret= 0;
#ifdef __WIN__ #ifdef __WIN__
char *format_str= 0; char *format_str= 0;
@ -1196,7 +1195,7 @@ static int bootstrap_server(char *server_path, char *bootstrap_file)
if (error) if (error)
fprintf(stderr, fprintf(stderr,
"ERROR: Unexpected result from bootstrap. Error code: %d.\n", "ERROR: Unexpected result from bootstrap. Error code: %d.\n",
ret); error);
return error; return error;
} }

View File

@ -303,10 +303,9 @@ get_one_option(int optid, const struct my_option *opt,
opt_verbose= 0; opt_verbose= 0;
add_option= 0; add_option= 0;
break; break;
case 's':
add_option= 0;
break;
case 'f': /* --force */ case 'f': /* --force */
case 's': /* --upgrade-system-tables */
case OPT_WRITE_BINLOG: /* --write-binlog */
add_option= FALSE; add_option= FALSE;
break; break;

View File

@ -564,6 +564,8 @@ static void verbose_msg(const char *fmt, ...)
vfprintf(stderr, fmt, args); vfprintf(stderr, fmt, args);
va_end(args); va_end(args);
fflush(stderr);
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
@ -4131,6 +4133,8 @@ static int dump_all_tables_in_db(char *database)
if (mysql_refresh(mysql, REFRESH_LOG)) if (mysql_refresh(mysql, REFRESH_LOG))
DB_error(mysql, "when doing refresh"); DB_error(mysql, "when doing refresh");
/* We shall continue here, if --force was given */ /* We shall continue here, if --force was given */
else
verbose_msg("-- dump_all_tables_in_db : logs flushed successfully!\n");
} }
while ((table= getTableName(0))) while ((table= getTableName(0)))
{ {
@ -4231,6 +4235,8 @@ static my_bool dump_all_views_in_db(char *database)
if (mysql_refresh(mysql, REFRESH_LOG)) if (mysql_refresh(mysql, REFRESH_LOG))
DB_error(mysql, "when doing refresh"); DB_error(mysql, "when doing refresh");
/* We shall continue here, if --force was given */ /* We shall continue here, if --force was given */
else
verbose_msg("-- dump_all_views_in_db : logs flushed successfully!\n");
} }
while ((table= getTableName(0))) while ((table= getTableName(0)))
{ {
@ -4369,6 +4375,8 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
DB_error(mysql, "when doing refresh"); DB_error(mysql, "when doing refresh");
} }
/* We shall countinue here, if --force was given */ /* We shall countinue here, if --force was given */
else
verbose_msg("-- dump_selected_tables : logs flushed successfully!\n");
} }
if (opt_xml) if (opt_xml)
print_xml_tag(md_result_file, "", "\n", "database", "name=", db, NullS); print_xml_tag(md_result_file, "", "\n", "database", "name=", db, NullS);
@ -4675,6 +4683,7 @@ static int purge_bin_logs_to(MYSQL *mysql_con, char* log_name)
static int start_transaction(MYSQL *mysql_con) static int start_transaction(MYSQL *mysql_con)
{ {
verbose_msg("-- Starting transaction...\n");
/* /*
We use BEGIN for old servers. --single-transaction --master-data will fail We use BEGIN for old servers. --single-transaction --master-data will fail
on old servers, but that's ok as it was already silently broken (it didn't on old servers, but that's ok as it was already silently broken (it didn't
@ -5284,25 +5293,39 @@ int main(int argc, char **argv)
consistent_binlog_pos= check_consistent_binlog_pos(NULL, NULL); consistent_binlog_pos= check_consistent_binlog_pos(NULL, NULL);
} }
if ((opt_lock_all_tables || (opt_master_data && !consistent_binlog_pos)) && if ((opt_lock_all_tables || (opt_master_data && !consistent_binlog_pos) ||
(opt_single_transaction && flush_logs)) &&
do_flush_tables_read_lock(mysql)) do_flush_tables_read_lock(mysql))
goto err; goto err;
if (opt_single_transaction && start_transaction(mysql))
goto err; /*
if (opt_delete_master_logs) Flush logs before starting transaction since
this causes implicit commit starting mysql-5.5.
*/
if (opt_lock_all_tables || opt_master_data ||
(opt_single_transaction && flush_logs) ||
opt_delete_master_logs)
{ {
if (mysql_refresh(mysql, REFRESH_LOG) || if (flush_logs || opt_delete_master_logs)
get_bin_log_name(mysql, bin_log_name, sizeof(bin_log_name))) {
if (mysql_refresh(mysql, REFRESH_LOG))
goto err; goto err;
verbose_msg("-- main : logs flushed successfully!\n");
}
/* Not anymore! That would not be sensible. */
flush_logs= 0; flush_logs= 0;
} }
if (opt_lock_all_tables || opt_master_data)
if (opt_delete_master_logs)
{ {
if (flush_logs && mysql_refresh(mysql, REFRESH_LOG)) if (get_bin_log_name(mysql, bin_log_name, sizeof(bin_log_name)))
goto err; goto err;
flush_logs= 0; /* not anymore; that would not be sensible */
} }
if (opt_single_transaction && start_transaction(mysql))
goto err;
/* Add 'STOP SLAVE to beginning of dump */ /* Add 'STOP SLAVE to beginning of dump */
if (opt_slave_apply && add_stop_slave()) if (opt_slave_apply && add_stop_slave())
goto err; goto err;

View File

@ -310,6 +310,7 @@ struct st_connection
pthread_mutex_t result_mutex; pthread_mutex_t result_mutex;
pthread_cond_t result_cond; pthread_cond_t result_cond;
int query_done; int query_done;
my_bool has_thread;
#endif /*EMBEDDED_LIBRARY*/ #endif /*EMBEDDED_LIBRARY*/
}; };
@ -525,6 +526,31 @@ struct st_command *curr_command= 0;
char builtin_echo[FN_REFLEN]; char builtin_echo[FN_REFLEN];
struct st_replace_regex
{
DYNAMIC_ARRAY regex_arr; /* stores a list of st_regex subsitutions */
/*
Temporary storage areas for substitutions. To reduce unnessary copying
and memory freeing/allocation, we pre-allocate two buffers, and alternate
their use, one for input/one for output, the roles changing on the next
st_regex substition. At the end of substitutions buf points to the
one containing the final result.
*/
char* buf;
char* even_buf;
char* odd_buf;
int even_buf_len;
int odd_buf_len;
};
struct st_replace_regex *glob_replace_regex= 0;
struct st_replace;
struct st_replace *glob_replace= 0;
void replace_strings_append(struct st_replace *rep, DYNAMIC_STRING* ds,
const char *from, int len);
static void cleanup_and_exit(int exit_code) __attribute__((noreturn)); static void cleanup_and_exit(int exit_code) __attribute__((noreturn));
void die(const char *fmt, ...) void die(const char *fmt, ...)
@ -554,6 +580,7 @@ void str_to_file2(const char *fname, char *str, int size, my_bool append);
void fix_win_paths(const char *val, int len); void fix_win_paths(const char *val, int len);
const char *get_errname_from_code (uint error_code); const char *get_errname_from_code (uint error_code);
int multi_reg_replace(struct st_replace_regex* r,char* val);
#ifdef __WIN__ #ifdef __WIN__
void free_tmp_sh_file(); void free_tmp_sh_file();
@ -2514,7 +2541,23 @@ void var_query_set(VAR *var, const char *query, const char** query_end)
if (row[i]) if (row[i])
{ {
/* Add column to tab separated string */ /* Add column to tab separated string */
dynstr_append_mem(&result, row[i], lengths[i]); char *val= row[i];
int len= lengths[i];
if (glob_replace_regex)
{
/* Regex replace */
if (!multi_reg_replace(glob_replace_regex, (char*)val))
{
val= glob_replace_regex->buf;
len= strlen(val);
}
}
if (glob_replace)
replace_strings_append(glob_replace, &result, val, len);
else
dynstr_append_mem(&result, val, len);
} }
dynstr_append_mem(&result, "\t", 1); dynstr_append_mem(&result, "\t", 1);
} }
@ -3443,8 +3486,9 @@ void do_copy_file(struct st_command *command)
' '); ' ');
DBUG_PRINT("info", ("Copy %s to %s", ds_from_file.str, ds_to_file.str)); DBUG_PRINT("info", ("Copy %s to %s", ds_from_file.str, ds_to_file.str));
/* MY_HOLD_ORIGINAL_MODES prevents attempts to chown the file */
error= (my_copy(ds_from_file.str, ds_to_file.str, error= (my_copy(ds_from_file.str, ds_to_file.str,
MYF(MY_DONT_OVERWRITE_FILE | MY_WME)) != 0); MYF(MY_DONT_OVERWRITE_FILE | MY_WME | MY_HOLD_ORIGINAL_MODES)) != 0);
handle_command_error(command, error, my_errno); handle_command_error(command, error, my_errno);
dynstr_free(&ds_from_file); dynstr_free(&ds_from_file);
dynstr_free(&ds_to_file); dynstr_free(&ds_to_file);
@ -4940,6 +4984,7 @@ void do_get_errcodes(struct st_command *command)
struct st_match_err *to= saved_expected_errors.err; struct st_match_err *to= saved_expected_errors.err;
char *p= command->first_argument; char *p= command->first_argument;
uint count= 0; uint count= 0;
char *next;
DBUG_ENTER("do_get_errcodes"); DBUG_ENTER("do_get_errcodes");
@ -4959,6 +5004,17 @@ void do_get_errcodes(struct st_command *command)
while (*end && *end != ',' && *end != ' ') while (*end && *end != ',' && *end != ' ')
end++; end++;
next=end;
/* code to handle variables passed to mysqltest */
if( *p == '$')
{
const char* fin;
VAR *var = var_get(p,&fin,0,0);
p=var->str_val;
end=p+var->str_val_len;
}
if (*p == 'S') if (*p == 'S')
{ {
char *to_ptr= to->code.sqlstate; char *to_ptr= to->code.sqlstate;
@ -5033,7 +5089,7 @@ void do_get_errcodes(struct st_command *command)
die("Too many errorcodes specified"); die("Too many errorcodes specified");
/* Set pointer to the end of the last error code */ /* Set pointer to the end of the last error code */
p= end; p= next;
/* Find next ',' */ /* Find next ',' */
while (*p && *p != ',') while (*p && *p != ',')
@ -9273,16 +9329,11 @@ typedef struct st_pointer_array { /* when using array-strings */
uint array_allocs,max_count,length,max_length; uint array_allocs,max_count,length,max_length;
} POINTER_ARRAY; } POINTER_ARRAY;
struct st_replace;
struct st_replace *init_replace(char * *from, char * *to, uint count, struct st_replace *init_replace(char * *from, char * *to, uint count,
char * word_end_chars); char * word_end_chars);
int insert_pointer_name(reg1 POINTER_ARRAY *pa,char * name); int insert_pointer_name(reg1 POINTER_ARRAY *pa,char * name);
void replace_strings_append(struct st_replace *rep, DYNAMIC_STRING* ds,
const char *from, int len);
void free_pointer_array(POINTER_ARRAY *pa); void free_pointer_array(POINTER_ARRAY *pa);
struct st_replace *glob_replace;
/* /*
Get arguments for replace. The syntax is: Get arguments for replace. The syntax is:
replace from to [from to ...] replace from to [from to ...]
@ -9426,26 +9477,6 @@ struct st_regex
int icase; /* true if the match is case insensitive */ int icase; /* true if the match is case insensitive */
}; };
struct st_replace_regex
{
DYNAMIC_ARRAY regex_arr; /* stores a list of st_regex subsitutions */
/*
Temporary storage areas for substitutions. To reduce unnessary copying
and memory freeing/allocation, we pre-allocate two buffers, and alternate
their use, one for input/one for output, the roles changing on the next
st_regex substition. At the end of substitutions buf points to the
one containing the final result.
*/
char* buf;
char* even_buf;
char* odd_buf;
int even_buf_len;
int odd_buf_len;
};
struct st_replace_regex *glob_replace_regex= 0;
int reg_replace(char** buf_p, int* buf_len_p, char *pattern, char *replace, int reg_replace(char** buf_p, int* buf_len_p, char *pattern, char *replace,
char *string, int icase); char *string, int icase);
@ -9644,7 +9675,13 @@ void do_get_replace_regex(struct st_command *command)
{ {
char *expr= command->first_argument; char *expr= command->first_argument;
free_replace_regex(); free_replace_regex();
if (!(glob_replace_regex=init_replace_regex(expr))) /* Allow variable for the *entire* list of replacements */
if (*expr == '$')
{
VAR *val= var_get(expr, NULL, 0, 1);
expr= val ? val->str_val : NULL;
}
if (expr && *expr && !(glob_replace_regex=init_replace_regex(expr)))
die("Could not init replace_regex"); die("Could not init replace_regex");
command->last_argument= command->end; command->last_argument= command->end;
} }

View File

@ -100,6 +100,11 @@ IF(NOT HAVE_FGETLN)
SET(LIBEDIT_EXTRA_SOURCES ${LIBEDIT_EXTRA_SOURCES} np/fgetln.c) SET(LIBEDIT_EXTRA_SOURCES ${LIBEDIT_EXTRA_SOURCES} np/fgetln.c)
ENDIF() ENDIF()
CHECK_FUNCTION_EXISTS(fgetln HAVE_WCSDUP)
IF(NOT HAVE_WCSDUP)
SET(LIBEDIT_EXTRA_SOURCES ${LIBEDIT_EXTRA_SOURCES} np/wcsdup.c)
ENDIF()
# Generate headers # Generate headers
FOREACH(SRCBASENAME vi emacs common) FOREACH(SRCBASENAME vi emacs common)
SET(SRC ${CMAKE_CURRENT_SOURCE_DIR}/${SRCBASENAME}.c) SET(SRC ${CMAKE_CURRENT_SOURCE_DIR}/${SRCBASENAME}.c)
@ -151,23 +156,27 @@ ${CURSES_INCLUDE_PATH}
SET(LIBEDIT_SOURCES SET(LIBEDIT_SOURCES
chared.c chared.c
chartype.c
el.c el.c
eln.c
history.c history.c
historyn.c
map.c map.c
prompt.c prompt.c
readline.c readline.c
search.c search.c
tokenizer.c tokenizer.c
tokenizern.c
vi.c vi.c
common.c common.c
emacs.c emacs.c
hist.c hist.c
key.c keymacro.c
parse.c parse.c
read.c read.c
refresh.c refresh.c
sig.c sig.c
term.c terminal.c
tty.c tty.c
filecomplete.c filecomplete.c
${CMAKE_CURRENT_BINARY_DIR}/help.c ${CMAKE_CURRENT_BINARY_DIR}/help.c

View File

@ -1,5 +1,5 @@
/* /*
Copyright (c) 2001, 2010, Oracle and/or its affiliates. Copyright (c) 2001, 2011, Oracle and/or its affiliates.
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
@ -78,6 +78,69 @@ const char *my_addr_resolve_init();
void my_write_core(int sig); void my_write_core(int sig);
#endif #endif
/**
Async-signal-safe utility functions used by signal handler routines.
Declared here in order to unit-test them.
These are not general-purpose, but tailored to the signal handling routines.
*/
/**
Converts a longlong value to string.
@param base 10 for decimal, 16 for hex values (0..9a..f)
@param val The value to convert
@param buf Assumed to point to the *end* of the buffer.
@returns Pointer to the first character of the converted string.
Negative values:
for base-10 the return string will be prepended with '-'
for base-16 the return string will contain 16 characters
Implemented with simplicity, and async-signal-safety in mind.
*/
char *my_safe_itoa(int base, longlong val, char *buf);
/**
Converts a ulonglong value to string.
@param base 10 for decimal, 16 for hex values (0..9a..f)
@param val The value to convert
@param buf Assumed to point to the *end* of the buffer.
@returns Pointer to the first character of the converted string.
Implemented with simplicity, and async-signal-safety in mind.
*/
char *my_safe_utoa(int base, ulonglong val, char *buf);
/**
A (very) limited version of snprintf.
@param to Destination buffer.
@param n Size of destination buffer.
@param fmt printf() style format string.
@returns Number of bytes written, including terminating '\0'
Supports 'd' 'i' 'u' 'x' 'p' 's' conversion.
Supports 'l' and 'll' modifiers for integral types.
Does not support any width/precision.
Implemented with simplicity, and async-signal-safety in mind.
*/
size_t my_safe_snprintf(char* to, size_t n, const char* fmt, ...)
ATTRIBUTE_FORMAT(printf, 3, 4);
/**
A (very) limited version of snprintf, which writes the result to STDERR.
@sa my_safe_snprintf
Implemented with simplicity, and async-signal-safety in mind.
@note Has an internal buffer capacity of 512 bytes,
which should suffice for our signal handling routines.
*/
size_t my_safe_printf_stderr(const char* fmt, ...)
ATTRIBUTE_FORMAT(printf, 1, 2);
/**
Writes up to count bytes from buffer to STDERR.
Implemented with simplicity, and async-signal-safety in mind.
@param buf Buffer containing data to be written.
@param count Number of bytes to write.
@returns Number of bytes written.
*/
size_t my_write_stderr(const void *buf, size_t count);
C_MODE_END C_MODE_END
#endif /* _my_stacktrace_h_ */ #endif /* _my_stacktrace_h_ */

View File

@ -45,6 +45,7 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
../sql/password.c ../sql/discover.cc ../sql/derror.cc ../sql/password.c ../sql/discover.cc ../sql/derror.cc
../sql/field.cc ../sql/field_conv.cc ../sql/field.cc ../sql/field_conv.cc
../sql/filesort.cc ../sql/gstream.cc ../sql/slave.cc ../sql/filesort.cc ../sql/gstream.cc ../sql/slave.cc
../sql/signal_handler.cc
../sql/handler.cc ../sql/hash_filo.cc ../sql/hostname.cc ../sql/handler.cc ../sql/hash_filo.cc ../sql/hostname.cc
../sql/init.cc ../sql/item_buff.cc ../sql/item_cmpfunc.cc ../sql/init.cc ../sql/item_buff.cc ../sql/item_cmpfunc.cc
../sql/item.cc ../sql/item_create.cc ../sql/item_func.cc ../sql/item.cc ../sql/item_create.cc ../sql/item_func.cc

View File

@ -1,4 +1,4 @@
# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
# #
# 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
@ -16,15 +16,23 @@
# Copy man pages # Copy man pages
FILE(GLOB MAN1_FILES *.1) FILE(GLOB MAN1_FILES *.1)
FILE(GLOB MAN1_EXCLUDE make_win_bin_dist.1) FILE(GLOB MAN1_EXCLUDE make_win_bin_dist.1)
FILE(GLOB MAN1_NDB ndb*.1)
FILE(GLOB MAN8_FILES *.8) FILE(GLOB MAN8_FILES *.8)
FILE(GLOB MAN8_NDB ndb*.8)
IF(MAN1_FILES) IF(MAN1_FILES)
IF(MAN1_EXCLUDE) IF(MAN1_EXCLUDE)
LIST(REMOVE_ITEM MAN1_FILES ${MAN1_EXCLUDE}) LIST(REMOVE_ITEM MAN1_FILES ${MAN1_EXCLUDE})
ENDIF() ENDIF()
IF(MAN1_NDB)
LIST(REMOVE_ITEM MAN1_FILES ${MAN1_NDB})
ENDIF()
INSTALL(FILES ${MAN1_FILES} DESTINATION ${INSTALL_MANDIR}/man1 INSTALL(FILES ${MAN1_FILES} DESTINATION ${INSTALL_MANDIR}/man1
COMPONENT ManPages) COMPONENT ManPages)
ENDIF() ENDIF()
IF(MAN8_FILES) IF(MAN8_FILES)
IF(MAN8_NDB)
LIST(REMOVE_ITEM MAN8_FILES ${MAN8_NDB})
ENDIF()
INSTALL(FILES ${MAN8_FILES} DESTINATION ${INSTALL_MANDIR}/man8 INSTALL(FILES ${MAN8_FILES} DESTINATION ${INSTALL_MANDIR}/man8
COMPONENT ManPages) COMPONENT ManPages)
ENDIF() ENDIF()

View File

@ -24,4 +24,6 @@ sys_vars.wait_timeout_func # Bug#11750645 2010-04-26 alik wai
sys_vars.ndb_log_update_as_write_basic sys_vars.ndb_log_update_as_write_basic
sys_vars.have_ndbcluster_basic sys_vars.have_ndbcluster_basic
sys_vars.ndb_log_updated_only_basic sys_vars.ndb_log_updated_only_basic
sys_vars.query_cache_size_basic_64 # Bug#11748572 - 36747: ALLOCATING A LARGE QUERY CACHE IS NOT DETERMINISTIC
sys_vars.query_cache_size_basic_32 # Bug#11748572 - 36747: ALLOCATING A LARGE QUERY CACHE IS NOT DETERMINISTIC
sys_vars.rpl_init_slave_func # Bug#12535301 2011-05-09 andrei sys_vars.rpl_init_slave_func mismatches in daily-5.5 sys_vars.rpl_init_slave_func # Bug#12535301 2011-05-09 andrei sys_vars.rpl_init_slave_func mismatches in daily-5.5

View File

@ -15,7 +15,6 @@ source include/show_binlog_events.inc;
# absolutely need variables names to be quoted and strings to be # absolutely need variables names to be quoted and strings to be
# escaped). # escaped).
flush logs; flush logs;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;
--exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000001 --exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000001
drop table t2; drop table t2;

View File

@ -48,6 +48,11 @@
# must be provided both for begin_include_file.inc and # must be provided both for begin_include_file.inc and
# end_include_file.inc. # end_include_file.inc.
# #
# $keep_include_silent
# This specifies whether it should be echoed to the result file
# the following string: include/$include_filename
# If not set, the string will be echoed.
#
# $rpl_debug # $rpl_debug
# If set, this script will print the following text: # If set, this script will print the following text:
# ==== BEGIN include/$include_filename.inc ==== # ==== BEGIN include/$include_filename.inc ====
@ -59,7 +64,10 @@
# recursively. # recursively.
if (!$_include_file_depth) if (!$_include_file_depth)
{ {
if (!$keep_include_silent)
{
--echo include/$include_filename --echo include/$include_filename
}
--let $_include_file_depth= 0 --let $_include_file_depth= 0
} }
--inc $_include_file_depth --inc $_include_file_depth

View File

@ -0,0 +1,137 @@
# ==== Purpose ====
#
# Relocates the relay logs and index file from
# a directory into another. The logs relocated
# are the one listed in the index file.
#
# ==== Usage ====
#
# [--let $relocate_disable_query_log= 1]
# [--let $rpl_debug= 1]
# [--let $relocate_is_windows= 0]
# [--let $relocate_recreate_index= 0]
# [--let $relocate_fix_relay_log_info= 0]
# --let $relocate_from= DIR
# --let $relocate_to= DIR
# --let $relocate_index_file= FNAME
# --source include/relocate_binlogs.inc
if ($relocate_disable_query_log)
{
--disable_query_log
}
--let $_path_separator=/
if ($relocate_is_windows)
{
--let $_path_separator=\
}
if ($relocate_index_file)
{
SET SQL_LOG_BIN=0;
CREATE TEMPORARY TABLE tmp(id INT AUTO_INCREMENT PRIMARY KEY, filename VARCHAR(1024));
--let $write_var=
--let $_index_file= $relocate_index_file
--let $_index_file_basename= `SELECT RIGHT(RTRIM("$_index_file"), LOCATE("$_path_separator",REVERSE(RTRIM("$_index_file"))) -1)`
--let $_from= $relocate_from
--let $_to= $relocate_into
# chmod to allow the following LOAD DATA
--chmod 0666 $_index_file
--eval LOAD DATA INFILE '$_index_file' INTO TABLE tmp (filename)
--let $count= `SELECT count(*) FROM tmp`
while ($count)
{
--let $_filename= `select filename from tmp where id=$count`
--let $_filename= `SELECT RIGHT(RTRIM("$_filename"), LOCATE("$_path_separator",REVERSE(RTRIM("$_filename"))) -1)`
--move_file $_from/$_filename $_to/$_filename
if ($relocate_recreate_index)
{
if ($relocate_is_windows)
{
--let $_write_var=$_to\$_filename\n
}
if (!$relocate_is_windows)
{
--let $_write_var=$_to/$_filename\n
}
if (!$write_var)
{
--let $write_var=$_write_var
}
if (!`SELECT STRCMP('$write_var', '$_write_var') = 0`)
{
--let $write_var=$_write_var$write_var
}
}
--dec $count
}
if (!$relocate_recreate_index)
{
--move_file $_index_file $_to/$_index_file_basename
}
if ($relocate_recreate_index)
{
--let $write_to_file= $_to/$_index_file_basename
--source include/write_var_to_file.inc
--remove_file $_index_file
}
DROP TEMPORARY TABLE tmp;
if ($relocate_fix_relay_log_info)
{
CREATE TEMPORARY TABLE tmp(id INT AUTO_INCREMENT PRIMARY KEY, entry VARCHAR(1024));
--let $write_var=
# chmod to allow the following LOAD DATA
--chmod 0666 $relocate_fix_relay_log_info
--eval LOAD DATA INFILE '$relocate_fix_relay_log_info' INTO TABLE tmp (entry)
--let $count= `SELECT count(*) FROM tmp`
--let $_curr_entry= `SELECT entry FROM tmp WHERE id=1`
--let $_curr_entry_basename= `SELECT RIGHT(RTRIM("$_curr_entry"), LOCATE("$_path_separator",REVERSE(RTRIM("$_curr_entry"))) -1)`
if ($relocate_is_windows)
{
--eval UPDATE tmp SET entry='$_to\$_curr_entry_basename' WHERE id=1
}
if (!$relocate_is_windows)
{
--eval UPDATE tmp SET entry='$_to/$_curr_entry_basename' WHERE id=1
}
--remove_file $relocate_fix_relay_log_info
while($count)
{
--let $_write_var= `SELECT entry FROM tmp WHERE id= $count`
--let $write_var=$_write_var\n$write_var
--dec $count
}
--let $write_to_file= $relocate_fix_relay_log_info
--source include/write_var_to_file.inc
DROP TEMPORARY TABLE tmp;
}
SET SQL_LOG_BIN=1;
}
if ($relocate_disable_query_log)
{
--enable_query_log
}

View File

@ -1,57 +1,77 @@
drop table if exists t1, t2; drop table if exists t1, t2;
set debug_sync='RESET';
create table t1 (n1 int, n2 int, n3 int, create table t1 (n1 int, n2 int, n3 int,
key (n1, n2, n3), key (n1, n2, n3),
key (n2, n3, n1), key (n2, n3, n1),
key (n3, n1, n2)); key (n3, n1, n2));
create table t2 (i int); create table t2 (i int);
alter table t1 disable keys; alter table t1 disable keys;
insert into t1 values (RAND()*1000, RAND()*1000, RAND()*1000); insert into t1 values (1, 2, 3);
reset master; reset master;
set session debug="+d,sleep_alter_enable_indexes"; set debug_sync='alter_table_enable_indexes SIGNAL parked WAIT_FOR go';
alter table t1 enable keys;; alter table t1 enable keys;;
set debug_sync='now WAIT_FOR parked';
insert into t2 values (1); insert into t2 values (1);
insert into t1 values (1, 1, 1); insert into t1 values (1, 1, 1);;
set session debug="-d,sleep_alter_enable_indexes"; set debug_sync='now SIGNAL go';
show binlog events from <binlog_start>; show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; insert into t2 values (1) master-bin.000001 # Query # # use `test`; insert into t2 values (1)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; alter table t1 enable keys master-bin.000001 # Query # # use `test`; alter table t1 enable keys
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; insert into t1 values (1, 1, 1) master-bin.000001 # Query # # use `test`; insert into t1 values (1, 1, 1)
master-bin.000001 # Query # # COMMIT
drop tables t1, t2; drop tables t1, t2;
set debug_sync='RESET';
End of 5.0 tests End of 5.0 tests
drop table if exists t1, t2, t3; drop table if exists t1, t2, t3;
create table t1 (i int); create table t1 (i int);
reset master; reset master;
set session debug="+d,sleep_alter_before_main_binlog"; set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
alter table t1 change i c char(10) default 'Test1';; alter table t1 change i c char(10) default 'Test1';;
insert into t1 values (); set debug_sync='now WAIT_FOR parked';
insert into t1 values ();;
set debug_sync='now SIGNAL go';
select * from t1; select * from t1;
c c
Test1 Test1
set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
alter table t1 change c vc varchar(100) default 'Test2';; alter table t1 change c vc varchar(100) default 'Test2';;
rename table t1 to t2; set debug_sync='now WAIT_FOR parked';
rename table t1 to t2;;
set debug_sync='now SIGNAL go';
drop table t2; drop table t2;
create table t1 (i int); create table t1 (i int);
set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
alter table t1 change i c char(10) default 'Test3', rename to t2;; alter table t1 change i c char(10) default 'Test3', rename to t2;;
insert into t2 values (); set debug_sync='now WAIT_FOR parked';
insert into t2 values();;
set debug_sync='now SIGNAL go';
select * from t2; select * from t2;
c c
Test3 Test3
alter table t2 change c vc varchar(100) default 'Test2', rename to t1;; alter table t2 change c vc varchar(100) default 'Test2', rename to t1;;
rename table t1 to t3; rename table t1 to t3;
drop table t3; drop table t3;
set session debug="-d,sleep_alter_before_main_binlog"; set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
set debug_sync='RESET';
show binlog events from <binlog_start>; show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; alter table t1 change i c char(10) default 'Test1' master-bin.000001 # Query # # use `test`; alter table t1 change i c char(10) default 'Test1'
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; insert into t1 values () master-bin.000001 # Query # # use `test`; insert into t1 values ()
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; alter table t1 change c vc varchar(100) default 'Test2' master-bin.000001 # Query # # use `test`; alter table t1 change c vc varchar(100) default 'Test2'
master-bin.000001 # Query # # use `test`; rename table t1 to t2 master-bin.000001 # Query # # use `test`; rename table t1 to t2
master-bin.000001 # Query # # use `test`; drop table t2 master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */
master-bin.000001 # Query # # use `test`; create table t1 (i int) master-bin.000001 # Query # # use `test`; create table t1 (i int)
master-bin.000001 # Query # # use `test`; alter table t1 change i c char(10) default 'Test3', rename to t2 master-bin.000001 # Query # # use `test`; alter table t1 change i c char(10) default 'Test3', rename to t2
master-bin.000001 # Query # # use `test`; insert into t2 values () master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; insert into t2 values()
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; alter table t2 change c vc varchar(100) default 'Test2', rename to t1 master-bin.000001 # Query # # use `test`; alter table t2 change c vc varchar(100) default 'Test2', rename to t1
master-bin.000001 # Query # # use `test`; rename table t1 to t3 master-bin.000001 # Query # # use `test`; rename table t1 to t3
master-bin.000001 # Query # # use `test`; drop table t3 master-bin.000001 # Query # # use `test`; DROP TABLE `t3` /* generated by server */
End of 5.1 tests End of 5.1 tests

View File

@ -12832,3 +12832,22 @@ a b c d e f
-1 b c d e 1 -1 b c d e 1
DROP TABLE t1; DROP TABLE t1;
SET sort_buffer_size=DEFAULT; SET sort_buffer_size=DEFAULT;
#
# BUG#11758979 - 51252: ARCHIVE TABLES STILL FAIL UNDER STRESS
# TESTS: CRASH, CORRUPTION, 4G MEMOR
# (to be executed with valgrind)
CREATE TABLE t1(a BLOB, b VARCHAR(200)) ENGINE=ARCHIVE;
INSERT INTO t1 VALUES(NULL, '');
FLUSH TABLE t1;
# we need this select to workaround BUG#11764364
SELECT * FROM t1;
a b
NULL
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 286155052
FLUSH TABLE t1;
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
DROP TABLE t1;

View File

@ -1,7 +1,10 @@
drop table if exists t1,t2,t3,t4,t5; drop table if exists t1,t2,t3,t4,t5;
set session debug="+d,sleep_create_select_before_create"; set debug_sync='RESET';
set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
create table t1 (j char(5)); set debug_sync='now WAIT_FOR parked';
create table t1 (j char(5));;
set debug_sync='now SIGNAL go';
ERROR 42S01: Table 't1' already exists ERROR 42S01: Table 't1' already exists
show create table t1; show create table t1;
Table Create Table Table Create Table
@ -9,8 +12,11 @@ t1 CREATE TABLE `t1` (
`i` int(1) NOT NULL DEFAULT '0' `i` int(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
create table t1 select "Test" as j; set debug_sync='now WAIT_FOR parked';
create table t1 select 'Test' as j;;
set debug_sync='now SIGNAL go';
ERROR 42S01: Table 't1' already exists ERROR 42S01: Table 't1' already exists
show create table t1; show create table t1;
Table Create Table Table Create Table
@ -19,8 +25,11 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
create table t3 (j char(5)); create table t3 (j char(5));
set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
create table t1 like t3; set debug_sync='now WAIT_FOR parked';
create table t1 like t3;;
set debug_sync='now SIGNAL go';
ERROR 42S01: Table 't1' already exists ERROR 42S01: Table 't1' already exists
show create table t1; show create table t1;
Table Create Table Table Create Table
@ -28,8 +37,11 @@ t1 CREATE TABLE `t1` (
`i` int(1) NOT NULL DEFAULT '0' `i` int(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
rename table t3 to t1; set debug_sync='now WAIT_FOR parked';
rename table t3 to t1;;
set debug_sync='now SIGNAL go';
ERROR 42S01: Table 't1' already exists ERROR 42S01: Table 't1' already exists
show create table t1; show create table t1;
Table Create Table Table Create Table
@ -37,82 +49,117 @@ t1 CREATE TABLE `t1` (
`i` int(1) NOT NULL DEFAULT '0' `i` int(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
set debug_sync='now WAIT_FOR parked';
alter table t3 rename to t1; alter table t3 rename to t1;
ERROR 42S01: Table 't1' already exists ERROR 42S01: Table 't1' already exists
set debug_sync='now SIGNAL go';
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`i` int(1) NOT NULL DEFAULT '0' `i` int(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
set debug_sync='now WAIT_FOR parked';
alter table t3 rename to t1, add k int; alter table t3 rename to t1, add k int;
ERROR 42S01: Table 't1' already exists ERROR 42S01: Table 't1' already exists
set debug_sync='now SIGNAL go';
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`i` int(1) NOT NULL DEFAULT '0' `i` int(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1, t3; drop table t1,t3;
set session debug="-d,sleep_create_select_before_create:+d,sleep_create_select_before_open"; set debug_sync='create_table_select_before_open SIGNAL parked WAIT_FOR go';
set debug_sync='create_table_select_before_open SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
drop table t1; set debug_sync='now WAIT_FOR parked';
drop table t1;;
set debug_sync='now SIGNAL go';
set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
rename table t1 to t2; set debug_sync='now WAIT_FOR parked';
rename table t1 to t2;;
set debug_sync='now SIGNAL go';
drop table t2; drop table t2;
set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
select * from t1; set debug_sync='now WAIT_FOR parked';
select * from t1;;
set debug_sync='now SIGNAL go';
i i
1 1
drop table t1; drop table t1;
set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
insert into t1 values (2); set debug_sync='now WAIT_FOR parked';
insert into t1 values (2);;
set debug_sync='now SIGNAL go';
select * from t1; select * from t1;
i i
1 1
2 2
drop table t1; drop table t1;
set @a:=0; set @a:=0;
set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
create trigger t1_bi before insert on t1 for each row set @a:=1; set debug_sync='now WAIT_FOR parked';
create trigger t1_bi before insert on t1 for each row set @a:=1;;
set debug_sync='now SIGNAL go';
select @a; select @a;
@a @a
0 0
drop table t1; drop table t1;
set session debug="-d,sleep_create_select_before_open:+d,sleep_create_select_before_lock"; set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
drop table t1; set debug_sync='now WAIT_FOR parked';
drop table t1;;
set debug_sync='now SIGNAL go';
set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
rename table t1 to t2; set debug_sync='now WAIT_FOR parked';
rename table t1 to t2;;
set debug_sync='now SIGNAL go';
drop table t2; drop table t2;
set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
select * from t1; set debug_sync='now WAIT_FOR parked';
select * from t1;;
set debug_sync='now SIGNAL go';
i i
1 1
drop table t1; drop table t1;
set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
insert into t1 values (2); set debug_sync='now WAIT_FOR parked';
insert into t1 values (2);;
set debug_sync='now SIGNAL go';
select * from t1; select * from t1;
i i
1 1
2 2
drop table t1; drop table t1;
set @a:=0; set @a:=0;
set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go';
create table t1 select 1 as i;; create table t1 select 1 as i;;
create trigger t1_bi before insert on t1 for each row set @a:=1; set debug_sync='now WAIT_FOR parked';
create trigger t1_bi before insert on t1 for each row set @a:=1;;
set debug_sync='now SIGNAL go';
select @a; select @a;
@a @a
0 0
drop table t1; drop table t1;
set session debug="-d,sleep_create_select_before_lock:+d,sleep_create_select_before_check_if_exists"; set debug_sync='create_table_select_before_check_if_exists SIGNAL parked WAIT_FOR go';
create table t1 (i int);
create table if not exists t1 select 1 as i;; create table if not exists t1 select 1 as i;;
drop table t1; set debug_sync='now WAIT_FOR parked';
Warnings: drop table t1;;
Note 1050 Table 't1' already exists set debug_sync='now SIGNAL go';
create table t1 (i int); create table t1 (i int);
set @a:=0; set @a:=0;
set debug_sync='create_table_select_before_check_if_exists SIGNAL parked WAIT_FOR go';
create table if not exists t1 select 1 as i;; create table if not exists t1 select 1 as i;;
create trigger t1_bi before insert on t1 for each row set @a:=1; create trigger t1_bi before insert on t1 for each row set @a:=1;
Warnings: Warnings:
@ -122,53 +169,17 @@ select @a;
0 0
select * from t1; select * from t1;
i i
1
drop table t1; drop table t1;
set session debug="-d,sleep_create_select_before_check_if_exists";
create table t2 (a int);
create table t4 (b int);
lock table t4 write;
select 1;
1
1
create table t3 as select * from t4;;
create table t1 select * from t2, t3;;
unlock tables;
select * from t1;
a b
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1, t3;
lock table t4 read;
select 1;
1
1
rename table t4 to t3;;
create table if not exists t1 select 1 as i from t2, t3;;
create table t5 (j int);
rename table t5 to t1;
unlock tables;
Warnings:
Note 1050 Table 't1' already exists
select * from t1;
j
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`j` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1, t2, t3;
drop table if exists t1,t2; drop table if exists t1,t2;
set debug_sync='RESET';
create table t1 (i int); create table t1 (i int);
set session debug="+d,sleep_create_like_before_check_if_exists"; set debug_sync='create_table_like_after_open SIGNAL parked WAIT_FOR go';
reset master; reset master;
create table t2 like t1;; create table t2 like t1;;
set debug_sync='now WAIT_FOR parked';
insert into t1 values (1); insert into t1 values (1);
drop table t1; drop table t1;;
set debug_sync='now SIGNAL go';
show create table t2; show create table t2;
Table Create Table Table Create Table
t2 CREATE TABLE `t2` ( t2 CREATE TABLE `t2` (
@ -177,71 +188,41 @@ t2 CREATE TABLE `t2` (
drop table t2; drop table t2;
show binlog events from <binlog_start>; show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; insert into t1 values (1) master-bin.000001 # Query # # use `test`; insert into t1 values (1)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; create table t2 like t1 master-bin.000001 # Query # # use `test`; create table t2 like t1
master-bin.000001 # Query # # use `test`; drop table t1 master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
master-bin.000001 # Query # # use `test`; drop table t2 master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */
create table t1 (i int); create table t1 (i int);
set session debug="-d,sleep_create_like_before_check_if_exists:+d,sleep_create_like_before_copy"; set debug_sync='create_table_like_before_binlog SIGNAL parked WAIT_FOR go';
create table t2 like t1;;
create table if not exists t2 (j int);
Warnings:
Note 1050 Table 't2' already exists
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`i` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t2;
reset master; reset master;
create table t2 like t1;; create table t2 like t1;;
drop table t1; set debug_sync='now WAIT_FOR parked';
drop table t2; insert into t2 values (1);;
show binlog events from <binlog_start>; set debug_sync='now SIGNAL go';
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; create table t2 like t1
master-bin.000001 # Query # # use `test`; drop table t1
master-bin.000001 # Query # # use `test`; drop table t2
create table t1 (i int);
set session debug="-d,sleep_create_like_before_copy:+d,sleep_create_like_before_ha_create";
reset master;
create table t2 like t1;;
insert into t2 values (1);
drop table t2;
create table t2 like t1;;
drop table t2;
create table t2 like t1;;
drop table t1;
drop table t2; drop table t2;
set debug_sync='create_table_like_before_binlog SIGNAL parked WAIT_FOR go';
create table t2 like t1;;
set debug_sync='now WAIT_FOR parked';
drop table t2;;
set debug_sync='now SIGNAL go';
set debug_sync='create_table_like_before_binlog SIGNAL parked WAIT_FOR go';
create table t2 like t1;;
set debug_sync='now WAIT_FOR parked';
drop table t1;;
set debug_sync='now SIGNAL go';
drop table t2;
set debug_sync='RESET';
show binlog events from <binlog_start>; show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; create table t2 like t1 master-bin.000001 # Query # # use `test`; create table t2 like t1
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; insert into t2 values (1) master-bin.000001 # Query # # use `test`; insert into t2 values (1)
master-bin.000001 # Query # # use `test`; drop table t2 master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */
master-bin.000001 # Query # # use `test`; create table t2 like t1 master-bin.000001 # Query # # use `test`; create table t2 like t1
master-bin.000001 # Query # # use `test`; drop table t2 master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */
master-bin.000001 # Query # # use `test`; create table t2 like t1 master-bin.000001 # Query # # use `test`; create table t2 like t1
master-bin.000001 # Query # # use `test`; drop table t1 master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
master-bin.000001 # Query # # use `test`; drop table t2 master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */
create table t1 (i int);
set session debug="-d,sleep_create_like_before_ha_create:+d,sleep_create_like_before_binlogging";
reset master;
create table t2 like t1;;
insert into t2 values (1);
drop table t2;
create table t2 like t1;;
drop table t2;
create table t2 like t1;;
drop table t1;
drop table t2;
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; create table t2 like t1
master-bin.000001 # Query # # use `test`; insert into t2 values (1)
master-bin.000001 # Query # # use `test`; drop table t2
master-bin.000001 # Query # # use `test`; create table t2 like t1
master-bin.000001 # Query # # use `test`; drop table t2
master-bin.000001 # Query # # use `test`; create table t2 like t1
master-bin.000001 # Query # # use `test`; drop table t1
master-bin.000001 # Query # # use `test`; drop table t2
set session debug="-d,sleep_create_like_before_binlogging";

View File

@ -1127,5 +1127,19 @@ NULL
Warnings: Warnings:
Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated Warning 1301 Result of repeat() was larger than max_allowed_packet (1048576) - truncated
# #
# Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT
#
SET NAMES utf8, @@character_set_connection=utf16;
SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l
FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body
UNION ALL
SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1
GROUP BY id
ORDER BY l DESC;
id l
a 512
Warnings:
Warning 1260 Row 1 was cut by GROUP_CONCAT()
#
# End of 5.5 tests # End of 5.5 tests
# #

View File

@ -1168,5 +1168,19 @@ CASE s1 WHEN 'a' THEN 'b' ELSE 'c' END
b b
DROP TABLE t1; DROP TABLE t1;
# #
# Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT
#
SET NAMES utf8, @@character_set_connection=utf32;
SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l
FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body
UNION ALL
SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1
GROUP BY id
ORDER BY l DESC;
id l
a 256
Warnings:
Warning 1260 Row 1 was cut by GROUP_CONCAT()
#
# End of 5.5 tests # End of 5.5 tests
# #

View File

@ -2792,7 +2792,7 @@ create table t1 as select group_concat(1,2,3) as c1;
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` varchar(342) CHARACTER SET utf8 DEFAULT NULL `c1` text CHARACTER SET utf8
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
create table t1 as select 1 as c1 union select 'a'; create table t1 as select 1 as c1 union select 'a';
@ -5014,5 +5014,19 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
Warnings: Warnings:
Note 1003 select 'abcdÁÂÃÄÅ' AS `abcdÁÂÃÄÅ`,_latin1'abcd\xC3\x81\xC3\x82\xC3\x83\xC3\x84\xC3\x85' AS `abcdÁÃÃÄÅ`,_utf8'abcd\xC3\x81\xC3\x82\xC3\x83\xC3\x84\xC3\x85' AS `abcdÁÂÃÄÅ` Note 1003 select 'abcdÁÂÃÄÅ' AS `abcdÁÂÃÄÅ`,_latin1'abcd\xC3\x81\xC3\x82\xC3\x83\xC3\x84\xC3\x85' AS `abcdÁÃÃÄÅ`,_utf8'abcd\xC3\x81\xC3\x82\xC3\x83\xC3\x84\xC3\x85' AS `abcdÁÂÃÄÅ`
# #
# Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT
#
SET NAMES utf8;
SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l
FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body
UNION ALL
SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1
GROUP BY id
ORDER BY l DESC;
id l
a 1024
Warnings:
Warning 1260 Row 2 was cut by GROUP_CONCAT()
#
# End of 5.5 tests # End of 5.5 tests
# #

View File

@ -203,3 +203,17 @@ c
NULL NULL
0 0
DROP TABLE t1; DROP TABLE t1;
#
# Bug#12532830
# SIGFPE OR ASSERTION (PRECISION <= ((9 * 9) - 8*2)) && (DEC <= 30)
#
select
sum(distinct(if('a',
(select adddate(elt(convert(9999999999999999999999999999999999999,decimal(64,0)),count(*)),
interval 1 day))
, .1))) as foo;
foo
0.1
Warnings:
Warning 1292 Truncated incorrect DOUBLE value: 'a'
Warning 1292 Truncated incorrect DOUBLE value: 'a'

View File

@ -2788,6 +2788,12 @@ format(123,2,'no_NO')
123,00 123,00
DROP TABLE t1; DROP TABLE t1;
# #
# Bug#11764310 conv function crashes, negative argument to memcpy
#
SELECT CONV(1,-2147483648,-2147483648);
CONV(1,-2147483648,-2147483648)
NULL
#
# Bug#12985030 SIMPLE QUERY WITH DECIMAL NUMBERS LEAKS MEMORY # Bug#12985030 SIMPLE QUERY WITH DECIMAL NUMBERS LEAKS MEMORY
# #
SELECT (rpad(1.0,2048,1)) IS NOT FALSE; SELECT (rpad(1.0,2048,1)) IS NOT FALSE;

View File

@ -1446,4 +1446,13 @@ Warning 1292 Incorrect datetime value: '\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00
Warning 1441 Datetime function: datetime field overflow Warning 1441 Datetime function: datetime field overflow
Warning 1292 Incorrect datetime value: '\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xF0?\x00\x00\x00\x00\x00\x00\x00@' Warning 1292 Incorrect datetime value: '\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xF0?\x00\x00\x00\x00\x00\x00\x00@'
DROP TABLE g1; DROP TABLE g1;
#
# Bug#13013970 MORE CRASHES IN FIELD_BLOB::GET_KEY_IMAGE
#
CREATE TABLE g1(a TEXT NOT NULL, KEY(a(255)));
INSERT INTO g1 VALUES ('a'),('a');
SELECT 1 FROM g1 WHERE a >= ANY
(SELECT 1 FROM g1 WHERE a = geomfromtext('') OR a) ;
1
DROP TABLE g1;
End of 5.5 tests End of 5.5 tests

View File

@ -94,3 +94,27 @@ pk
drop view v1; drop view v1;
drop table t1; drop table t1;
End of 5.1 tests End of 5.1 tests
#
# Bug#12540545 61101: ASSERTION FAILURE IN THREAD 1256741184 IN
# FILE /BUILDDIR/BUILD/BUILD/MYSQ
#
CREATE TABLE t1 (a CHAR(1), b CHAR(1), PRIMARY KEY (a,b)) ENGINE=InnoDB;
INSERT INTO t1 VALUES ('a', 'b'), ('c', 'd');
EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 WHERE b = 'b';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL PRIMARY 2 NULL 2 Using where; Using index
SELECT COUNT(DISTINCT a) FROM t1 WHERE b = 'b';
COUNT(DISTINCT a)
1
DROP TABLE t1;
CREATE TABLE t1 (a CHAR(1) NOT NULL, b CHAR(1) NOT NULL, UNIQUE KEY (a,b))
ENGINE=InnoDB;
INSERT INTO t1 VALUES ('a', 'b'), ('c', 'd');
EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 WHERE b = 'b';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL a 2 NULL 2 Using where; Using index
SELECT COUNT(DISTINCT a) FROM t1 WHERE b = 'b';
COUNT(DISTINCT a)
1
DROP TABLE t1;
End of 5.5 tests

View File

@ -13,10 +13,32 @@ FILES
GLOBAL_STATUS GLOBAL_STATUS
GLOBAL_VARIABLES GLOBAL_VARIABLES
INDEX_STATISTICS INDEX_STATISTICS
INNODB_BUFFER_POOL_PAGES
INNODB_BUFFER_POOL_PAGES_BLOB
INNODB_BUFFER_POOL_PAGES_INDEX
INNODB_CMP
INNODB_CMPMEM
INNODB_CMPMEM_RESET
INNODB_CMP_RESET
INNODB_INDEX_STATS
INNODB_LOCKS
INNODB_LOCK_WAITS
INNODB_RSEG
INNODB_SYS_COLUMNS
INNODB_SYS_FIELDS
INNODB_SYS_FOREIGN
INNODB_SYS_FOREIGN_COLS
INNODB_SYS_INDEXES
INNODB_SYS_STATS
INNODB_SYS_TABLES
INNODB_SYS_TABLESTATS
INNODB_TABLE_STATS
INNODB_TRX
KEY_CACHES KEY_CACHES
KEY_COLUMN_USAGE KEY_COLUMN_USAGE
PARAMETERS PARAMETERS
PARTITIONS PARTITIONS
PBXT_STATISTICS
PLUGINS PLUGINS
PROCESSLIST PROCESSLIST
PROFILING PROFILING
@ -36,29 +58,7 @@ TRIGGERS
USER_PRIVILEGES USER_PRIVILEGES
USER_STATISTICS USER_STATISTICS
VIEWS VIEWS
INNODB_CMPMEM_RESET
PBXT_STATISTICS
INNODB_CMPMEM
INNODB_RSEG
INNODB_SYS_TABLESTATS
INNODB_LOCK_WAITS
INNODB_INDEX_STATS
INNODB_CMP
INNODB_SYS_FOREIGN_COLS
INNODB_CMP_RESET
INNODB_BUFFER_POOL_PAGES
INNODB_TRX
INNODB_BUFFER_POOL_PAGES_INDEX
INNODB_LOCKS
INNODB_BUFFER_POOL_PAGES_BLOB
INNODB_SYS_TABLES
INNODB_SYS_FIELDS
INNODB_SYS_COLUMNS
INNODB_SYS_STATS
INNODB_SYS_FOREIGN
INNODB_SYS_INDEXES
XTRADB_ADMIN_COMMAND XTRADB_ADMIN_COMMAND
INNODB_TABLE_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
INNER JOIN INNER JOIN
@ -72,7 +72,7 @@ FROM information_schema.columns c2
WHERE c2.table_schema = t.table_schema AND WHERE c2.table_schema = t.table_schema AND
c2.table_name = t.table_name AND c2.table_name = t.table_name AND
c2.column_name LIKE '%SCHEMA%' c2.column_name LIKE '%SCHEMA%'
); ) order by t.table_name;
table_name column_name table_name column_name
CHARACTER_SETS CHARACTER_SET_NAME CHARACTER_SETS CHARACTER_SET_NAME
CLIENT_STATISTICS CLIENT CLIENT_STATISTICS CLIENT
@ -86,10 +86,32 @@ FILES TABLE_SCHEMA
GLOBAL_STATUS VARIABLE_NAME GLOBAL_STATUS VARIABLE_NAME
GLOBAL_VARIABLES VARIABLE_NAME GLOBAL_VARIABLES VARIABLE_NAME
INDEX_STATISTICS TABLE_SCHEMA INDEX_STATISTICS TABLE_SCHEMA
INNODB_BUFFER_POOL_PAGES page_type
INNODB_BUFFER_POOL_PAGES_BLOB space_id
INNODB_BUFFER_POOL_PAGES_INDEX index_id
INNODB_CMP page_size
INNODB_CMPMEM page_size
INNODB_CMPMEM_RESET page_size
INNODB_CMP_RESET page_size
INNODB_INDEX_STATS table_schema
INNODB_LOCKS lock_id
INNODB_LOCK_WAITS requesting_trx_id
INNODB_RSEG rseg_id
INNODB_SYS_COLUMNS TABLE_ID
INNODB_SYS_FIELDS INDEX_ID
INNODB_SYS_FOREIGN ID
INNODB_SYS_FOREIGN_COLS ID
INNODB_SYS_INDEXES INDEX_ID
INNODB_SYS_STATS INDEX_ID
INNODB_SYS_TABLES SCHEMA
INNODB_SYS_TABLESTATS SCHEMA
INNODB_TABLE_STATS table_schema
INNODB_TRX trx_id
KEY_CACHES KEY_CACHE_NAME KEY_CACHES KEY_CACHE_NAME
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
PARAMETERS SPECIFIC_SCHEMA PARAMETERS SPECIFIC_SCHEMA
PARTITIONS TABLE_SCHEMA PARTITIONS TABLE_SCHEMA
PBXT_STATISTICS ID
PLUGINS PLUGIN_NAME PLUGINS PLUGIN_NAME
PROCESSLIST ID PROCESSLIST ID
PROFILING QUERY_ID PROFILING QUERY_ID
@ -109,29 +131,7 @@ TRIGGERS TRIGGER_SCHEMA
USER_PRIVILEGES GRANTEE USER_PRIVILEGES GRANTEE
USER_STATISTICS USER USER_STATISTICS USER
VIEWS TABLE_SCHEMA VIEWS TABLE_SCHEMA
INNODB_CMPMEM_RESET page_size
PBXT_STATISTICS ID
INNODB_CMPMEM page_size
INNODB_RSEG rseg_id
INNODB_SYS_TABLESTATS SCHEMA
INNODB_LOCK_WAITS requesting_trx_id
INNODB_INDEX_STATS table_schema
INNODB_CMP page_size
INNODB_SYS_FOREIGN_COLS ID
INNODB_CMP_RESET page_size
INNODB_BUFFER_POOL_PAGES page_type
INNODB_TRX trx_id
INNODB_BUFFER_POOL_PAGES_INDEX index_id
INNODB_LOCKS lock_id
INNODB_BUFFER_POOL_PAGES_BLOB space_id
INNODB_SYS_TABLES SCHEMA
INNODB_SYS_FIELDS INDEX_ID
INNODB_SYS_COLUMNS TABLE_ID
INNODB_SYS_STATS INDEX_ID
INNODB_SYS_FOREIGN ID
INNODB_SYS_INDEXES INDEX_ID
XTRADB_ADMIN_COMMAND result_message XTRADB_ADMIN_COMMAND result_message
INNODB_TABLE_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
INNER JOIN INNER JOIN
@ -145,7 +145,7 @@ FROM information_schema.columns c2
WHERE c2.table_schema = 'information_schema' AND WHERE c2.table_schema = 'information_schema' AND
c2.table_name = t.table_name AND c2.table_name = t.table_name AND
c2.column_name LIKE '%SCHEMA%' c2.column_name LIKE '%SCHEMA%'
); ) order by t.table_name;
table_name column_name table_name column_name
CHARACTER_SETS CHARACTER_SET_NAME CHARACTER_SETS CHARACTER_SET_NAME
CLIENT_STATISTICS CLIENT CLIENT_STATISTICS CLIENT
@ -159,10 +159,32 @@ FILES TABLE_SCHEMA
GLOBAL_STATUS VARIABLE_NAME GLOBAL_STATUS VARIABLE_NAME
GLOBAL_VARIABLES VARIABLE_NAME GLOBAL_VARIABLES VARIABLE_NAME
INDEX_STATISTICS TABLE_SCHEMA INDEX_STATISTICS TABLE_SCHEMA
INNODB_BUFFER_POOL_PAGES page_type
INNODB_BUFFER_POOL_PAGES_BLOB space_id
INNODB_BUFFER_POOL_PAGES_INDEX index_id
INNODB_CMP page_size
INNODB_CMPMEM page_size
INNODB_CMPMEM_RESET page_size
INNODB_CMP_RESET page_size
INNODB_INDEX_STATS table_schema
INNODB_LOCKS lock_id
INNODB_LOCK_WAITS requesting_trx_id
INNODB_RSEG rseg_id
INNODB_SYS_COLUMNS TABLE_ID
INNODB_SYS_FIELDS INDEX_ID
INNODB_SYS_FOREIGN ID
INNODB_SYS_FOREIGN_COLS ID
INNODB_SYS_INDEXES INDEX_ID
INNODB_SYS_STATS INDEX_ID
INNODB_SYS_TABLES SCHEMA
INNODB_SYS_TABLESTATS SCHEMA
INNODB_TABLE_STATS table_schema
INNODB_TRX trx_id
KEY_CACHES KEY_CACHE_NAME KEY_CACHES KEY_CACHE_NAME
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
PARAMETERS SPECIFIC_SCHEMA PARAMETERS SPECIFIC_SCHEMA
PARTITIONS TABLE_SCHEMA PARTITIONS TABLE_SCHEMA
PBXT_STATISTICS ID
PLUGINS PLUGIN_NAME PLUGINS PLUGIN_NAME
PROCESSLIST ID PROCESSLIST ID
PROFILING QUERY_ID PROFILING QUERY_ID
@ -182,29 +204,7 @@ TRIGGERS TRIGGER_SCHEMA
USER_PRIVILEGES GRANTEE USER_PRIVILEGES GRANTEE
USER_STATISTICS USER USER_STATISTICS USER
VIEWS TABLE_SCHEMA VIEWS TABLE_SCHEMA
INNODB_CMPMEM_RESET page_size
PBXT_STATISTICS ID
INNODB_CMPMEM page_size
INNODB_RSEG rseg_id
INNODB_SYS_TABLESTATS SCHEMA
INNODB_LOCK_WAITS requesting_trx_id
INNODB_INDEX_STATS table_schema
INNODB_CMP page_size
INNODB_SYS_FOREIGN_COLS ID
INNODB_CMP_RESET page_size
INNODB_BUFFER_POOL_PAGES page_type
INNODB_TRX trx_id
INNODB_BUFFER_POOL_PAGES_INDEX index_id
INNODB_LOCKS lock_id
INNODB_BUFFER_POOL_PAGES_BLOB space_id
INNODB_SYS_TABLES SCHEMA
INNODB_SYS_FIELDS INDEX_ID
INNODB_SYS_COLUMNS TABLE_ID
INNODB_SYS_STATS INDEX_ID
INNODB_SYS_FOREIGN ID
INNODB_SYS_INDEXES INDEX_ID
XTRADB_ADMIN_COMMAND result_message XTRADB_ADMIN_COMMAND result_message
INNODB_TABLE_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
order by table_name limit 1) limit 1; order by table_name limit 1) limit 1;
@ -283,10 +283,11 @@ TRIGGERS information_schema.TRIGGERS 1
USER_PRIVILEGES information_schema.USER_PRIVILEGES 1 USER_PRIVILEGES information_schema.USER_PRIVILEGES 1
USER_STATISTICS information_schema.USER_STATISTICS 1 USER_STATISTICS information_schema.USER_STATISTICS 1
VIEWS information_schema.VIEWS 1 VIEWS information_schema.VIEWS 1
+---------------------------------------+
+---------------------------------------+
+---------------------------------------+
Database: information_schema Database: information_schema
+---------------------------------------+
| Tables | | Tables |
+---------------------------------------+
| CHARACTER_SETS | | CHARACTER_SETS |
| CLIENT_STATISTICS | | CLIENT_STATISTICS |
| COLLATIONS | | COLLATIONS |
@ -299,10 +300,32 @@ Database: information_schema
| GLOBAL_STATUS | | GLOBAL_STATUS |
| GLOBAL_VARIABLES | | GLOBAL_VARIABLES |
| INDEX_STATISTICS | | INDEX_STATISTICS |
| INNODB_BUFFER_POOL_PAGES |
| INNODB_BUFFER_POOL_PAGES_BLOB |
| INNODB_BUFFER_POOL_PAGES_INDEX |
| INNODB_CMP |
| INNODB_CMPMEM |
| INNODB_CMPMEM_RESET |
| INNODB_CMP_RESET |
| INNODB_INDEX_STATS |
| INNODB_LOCKS |
| INNODB_LOCK_WAITS |
| INNODB_RSEG |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_FIELDS |
| INNODB_SYS_FOREIGN |
| INNODB_SYS_FOREIGN_COLS |
| INNODB_SYS_INDEXES |
| INNODB_SYS_STATS |
| INNODB_SYS_TABLES |
| INNODB_SYS_TABLESTATS |
| INNODB_TABLE_STATS |
| INNODB_TRX |
| KEY_CACHES | | KEY_CACHES |
| KEY_COLUMN_USAGE | | KEY_COLUMN_USAGE |
| PARAMETERS | | PARAMETERS |
| PARTITIONS | | PARTITIONS |
| PBXT_STATISTICS |
| PLUGINS | | PLUGINS |
| PROCESSLIST | | PROCESSLIST |
| PROFILING | | PROFILING |
@ -322,34 +345,12 @@ Database: information_schema
| USER_PRIVILEGES | | USER_PRIVILEGES |
| USER_STATISTICS | | USER_STATISTICS |
| VIEWS | | VIEWS |
| INNODB_CMPMEM_RESET |
| PBXT_STATISTICS |
| INNODB_CMPMEM |
| INNODB_RSEG |
| INNODB_SYS_TABLESTATS |
| INNODB_LOCK_WAITS |
| INNODB_INDEX_STATS |
| INNODB_CMP |
| INNODB_SYS_FOREIGN_COLS |
| INNODB_CMP_RESET |
| INNODB_BUFFER_POOL_PAGES |
| INNODB_TRX |
| INNODB_BUFFER_POOL_PAGES_INDEX |
| INNODB_LOCKS |
| INNODB_BUFFER_POOL_PAGES_BLOB |
| INNODB_SYS_TABLES |
| INNODB_SYS_FIELDS |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_STATS |
| INNODB_SYS_FOREIGN |
| INNODB_SYS_INDEXES |
| XTRADB_ADMIN_COMMAND | | XTRADB_ADMIN_COMMAND |
| INNODB_TABLE_STATS | +---------------------------------------+
+---------------------------------------+
+---------------------------------------+ +---------------------------------------+
Database: INFORMATION_SCHEMA Database: INFORMATION_SCHEMA
+---------------------------------------+
| Tables | | Tables |
+---------------------------------------+
| CHARACTER_SETS | | CHARACTER_SETS |
| CLIENT_STATISTICS | | CLIENT_STATISTICS |
| COLLATIONS | | COLLATIONS |
@ -362,10 +363,32 @@ Database: INFORMATION_SCHEMA
| GLOBAL_STATUS | | GLOBAL_STATUS |
| GLOBAL_VARIABLES | | GLOBAL_VARIABLES |
| INDEX_STATISTICS | | INDEX_STATISTICS |
| INNODB_BUFFER_POOL_PAGES |
| INNODB_BUFFER_POOL_PAGES_BLOB |
| INNODB_BUFFER_POOL_PAGES_INDEX |
| INNODB_CMP |
| INNODB_CMPMEM |
| INNODB_CMPMEM_RESET |
| INNODB_CMP_RESET |
| INNODB_INDEX_STATS |
| INNODB_LOCKS |
| INNODB_LOCK_WAITS |
| INNODB_RSEG |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_FIELDS |
| INNODB_SYS_FOREIGN |
| INNODB_SYS_FOREIGN_COLS |
| INNODB_SYS_INDEXES |
| INNODB_SYS_STATS |
| INNODB_SYS_TABLES |
| INNODB_SYS_TABLESTATS |
| INNODB_TABLE_STATS |
| INNODB_TRX |
| KEY_CACHES | | KEY_CACHES |
| KEY_COLUMN_USAGE | | KEY_COLUMN_USAGE |
| PARAMETERS | | PARAMETERS |
| PARTITIONS | | PARTITIONS |
| PBXT_STATISTICS |
| PLUGINS | | PLUGINS |
| PROCESSLIST | | PROCESSLIST |
| PROFILING | | PROFILING |
@ -385,36 +408,13 @@ Database: INFORMATION_SCHEMA
| USER_PRIVILEGES | | USER_PRIVILEGES |
| USER_STATISTICS | | USER_STATISTICS |
| VIEWS | | VIEWS |
| INNODB_CMPMEM_RESET |
| PBXT_STATISTICS |
| INNODB_CMPMEM |
| INNODB_RSEG |
| INNODB_SYS_TABLESTATS |
| INNODB_LOCK_WAITS |
| INNODB_INDEX_STATS |
| INNODB_CMP |
| INNODB_SYS_FOREIGN_COLS |
| INNODB_CMP_RESET |
| INNODB_BUFFER_POOL_PAGES |
| INNODB_TRX |
| INNODB_BUFFER_POOL_PAGES_INDEX |
| INNODB_LOCKS |
| INNODB_BUFFER_POOL_PAGES_BLOB |
| INNODB_SYS_TABLES |
| INNODB_SYS_FIELDS |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_STATS |
| INNODB_SYS_FOREIGN |
| INNODB_SYS_INDEXES |
| XTRADB_ADMIN_COMMAND | | XTRADB_ADMIN_COMMAND |
| INNODB_TABLE_STATS | +--------------------+
+---------------------------------------+ +--------------------+
+--------------------+
Wildcard: inf_rmation_schema Wildcard: inf_rmation_schema
+--------------------+
| Databases | | Databases |
+--------------------+
| information_schema | | information_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 58 information_schema 58

View File

@ -20,6 +20,8 @@ hex(a)
616263 616263
set GLOBAL init_connect="adsfsdfsdfs"; set GLOBAL init_connect="adsfsdfsdfs";
select @a; select @a;
ERROR 08S01: Aborted connection to db: 'test' user: 'user_1' host: 'localhost' (init_connect command failed)
select @a;
Got one of the listed errors Got one of the listed errors
drop table t1; drop table t1;
End of 4.1 tests End of 4.1 tests

View File

@ -1,24 +1,34 @@
# #
# Ensure the plugin isn't loaded. # Ensure the plugin isn't loaded.
# #
SELECT * FROM mysql.plugin WHERE name = 'daemon_example' ORDER BY name; SELECT * FROM mysql.plugin WHERE dl like 'libdaemon%' ORDER BY name;
name dl name dl
# #
# Enable the plugin... # Enable the plugin...
# #
# #
# Simulate loading a plugin libary with multiple entry points.
# This will test the DISABLE to ensure all rows are removed.
#
INSERT INTO mysql.plugin VALUES ('wicky', 'libdaemon_example.so');
INSERT INTO mysql.plugin VALUES ('wacky', 'libdaemon_example.so');
INSERT INTO mysql.plugin VALUES ('wonky', 'libdaemon_example.so');
#
# Ensure the plugin is now loaded. # Ensure the plugin is now loaded.
# #
SELECT * FROM mysql.plugin WHERE name = 'daemon_example' ORDER BY name; SELECT * FROM mysql.plugin WHERE dl like 'libdaemon%' ORDER BY name;
name dl name dl
daemon_example libdaemon_example.so daemon_example libdaemon_example.so
wacky libdaemon_example.so
wicky libdaemon_example.so
wonky libdaemon_example.so
# #
# Disable the plugin... # Disable the plugin...
# #
# #
# Ensure the plugin isn't loaded. # Ensure the plugin isn't loaded.
# #
SELECT * FROM mysql.plugin WHERE name = 'daemon_example' ORDER BY name; SELECT * FROM mysql.plugin WHERE dl like 'libdaemon%' ORDER BY name;
name dl name dl
# #
# Attempt to load non-existant plugin # Attempt to load non-existant plugin

View File

@ -245,3 +245,44 @@ End of 5.1 tests
The --upgrade-system-tables option was used, databases won't be touched. The --upgrade-system-tables option was used, databases won't be touched.
Phase 3/3: Running 'mysql_fix_privilege_tables'... Phase 3/3: Running 'mysql_fix_privilege_tables'...
OK OK
#
# Bug#11827359 60223: MYSQL_UPGRADE PROBLEM WITH OPTION
# SKIP-WRITE-BINLOG
#
# Droping the previously created mysql_upgrade_info file..
# Running mysql_upgrade with --skip-write-binlog..
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.proxies_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
performance_schema
test
Phase 3/3: Running 'mysql_fix_privilege_tables'...
OK
End of tests

View File

@ -400,6 +400,8 @@ The following options may be given as the first argument:
After this many write locks, allow some read locks to run After this many write locks, allow some read locks to run
in between in between
--memlock Lock mysqld in memory. --memlock Lock mysqld in memory.
--metadata-locks-cache-size=#
Size of unused metadata locks cache
--min-examined-row-limit=# --min-examined-row-limit=#
Don't write queries to slow log that examine fewer rows Don't write queries to slow log that examine fewer rows
than that than that
@ -956,6 +958,7 @@ max-tmp-tables 32
max-user-connections 0 max-user-connections 0
max-write-lock-count 18446744073709551615 max-write-lock-count 18446744073709551615
memlock FALSE memlock FALSE
metadata-locks-cache-size 1024
min-examined-row-limit 0 min-examined-row-limit 0
mrr-buffer-size 262144 mrr-buffer-size 262144
multi-range-count 256 multi-range-count 256

View File

@ -399,6 +399,8 @@ The following options may be given as the first argument:
After this many write locks, allow some read locks to run After this many write locks, allow some read locks to run
in between in between
--memlock Lock mysqld in memory. --memlock Lock mysqld in memory.
--metadata-locks-cache-size=#
Size of unused metadata locks cache
--min-examined-row-limit=# --min-examined-row-limit=#
Don't write queries to slow log that examine fewer rows Don't write queries to slow log that examine fewer rows
than that than that
@ -760,6 +762,10 @@ The following options may be given as the first argument:
Log slow queries to given log file. Defaults logging to Log slow queries to given log file. Defaults logging to
'hostname'-slow.log. Must be enabled to activate other 'hostname'-slow.log. Must be enabled to activate other
slow log options slow log options
--slow-start-timeout=#
Maximum number of milliseconds that the service control
manager should wait before trying to kill the windows
service during startup(Default: 15000).
--socket=name Socket file to use for connection --socket=name Socket file to use for connection
--sort-buffer-size=# --sort-buffer-size=#
Each thread that needs to do a sort allocates a buffer of Each thread that needs to do a sort allocates a buffer of
@ -959,6 +965,7 @@ max-tmp-tables 32
max-user-connections 0 max-user-connections 0
max-write-lock-count 18446744073709551615 max-write-lock-count 18446744073709551615
memlock FALSE memlock FALSE
metadata-locks-cache-size 1024
min-examined-row-limit 0 min-examined-row-limit 0
mrr-buffer-size 262144 mrr-buffer-size 262144
multi-range-count 256 multi-range-count 256
@ -1053,6 +1060,7 @@ slave-transaction-retries 10
slave-type-conversions slave-type-conversions
slow-launch-time 2 slow-launch-time 2
slow-query-log FALSE slow-query-log FALSE
slow-start-timeout 15000
sort-buffer-size 2097152 sort-buffer-size 2097152
sql-mode sql-mode
stack-trace TRUE stack-trace TRUE

View File

@ -4747,3 +4747,107 @@ UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
DROP TABLE t1; DROP TABLE t1;
#
# Bug#12809202 61854: MYSQLDUMP --SINGLE-TRANSACTION --FLUSH-LOG BREAKS
# CONSISTENCY
#
DROP DATABASE IF EXISTS b12809202_db;
CREATE DATABASE b12809202_db;
CREATE TABLE b12809202_db.t1 (c1 INT);
CREATE TABLE b12809202_db.t2 (c1 INT);
INSERT INTO b12809202_db.t1 VALUES (1), (2), (3);
INSERT INTO b12809202_db.t2 VALUES (1), (2), (3);
# Starting mysqldump with --single-transaction & --flush-log options..
# Note : In the following dump the transaction
# should start only after the logs are
# flushed, as 'flush logs' causes implicit
# commit starting 5.5.
#### Dump starts here ####
-- Connecting to localhost...
-- main : logs flushed successfully!
-- Starting transaction...
-- Retrieving table structure for table t1...
-- Sending SELECT query...
-- Retrieving rows...
--
-- Host: localhost Database: b12809202_db
-- ------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `t1`
--
DROP TABLE IF EXISTS `t1`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
`c1` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `t1`
--
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES (1),(2),(3);
-- Retrieving table structure for table t2...
-- Sending SELECT query...
-- Retrieving rows...
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `t2`
--
DROP TABLE IF EXISTS `t2`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t2` (
`c1` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `t2`
--
LOCK TABLES `t2` WRITE;
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
INSERT INTO `t2` VALUES (1),(2),(3);
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
UNLOCK TABLES;
-- Disconnecting from localhost...
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed
#### Dump ends here ####
DROP TABLE b12809202_db.t1;
DROP TABLE b12809202_db.t2;
DROP DATABASE b12809202_db;
#
# Delete all existing binary logs.
#
RESET MASTER;

View File

@ -557,6 +557,7 @@ mysqltest: At line 1: Wrong column number to replace_column in 'replace_column 1
select "LONG_STRING" as x; select "LONG_STRING" as x;
x x
LONG_STRING LONG_STRING
dog
mysqltest: At line 1: Invalid integer argument "10!" mysqltest: At line 1: Invalid integer argument "10!"
mysqltest: At line 1: Invalid integer argument "a" mysqltest: At line 1: Invalid integer argument "a"
mysqltest: At line 1: Missing required argument 'connection name' to command 'connect' mysqltest: At line 1: Missing required argument 'connection name' to command 'connect'
@ -674,6 +675,22 @@ a D
1 1 1 1
1 4 1 4
drop table t1; drop table t1;
y
txt
b is b and more is more
txt
a is a and less is more
create table t2 ( a char(10));
garbage;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'garbage' at line 1
garbage;
Got one of the listed errors
garbage;
Got one of the listed errors
insert into t1 values ("Abcd");
Got one of the listed errors
garbage;
drop table t2;
create table t1 ( f1 char(10)); create table t1 ( f1 char(10));
insert into t1 values ("Abcd"); insert into t1 values ("Abcd");
select * from t1; select * from t1;

View File

@ -1,8 +1,8 @@
# #
# Bug#11766879/Bug#60106: DIFF BETWEEN # OF INDEXES IN MYSQL VS INNODB, # Bug#11766879/Bug#60106: DIFF BETWEEN # OF INDEXES IN MYSQL VS INNODB,
# PARTITONING, ON INDEX CREATE # PARTITONING, ON INDEX CREATE
# Bug#12696518: MEMORY LEAKS IN HA_PARTITION (VALGRIND TESTS ON TRUNK)
# #
call mtr.add_suppression("contains 2 indexes inside InnoDB, which is different from the number of indexes 1 defined in the MySQL");
CREATE TABLE t1 ( CREATE TABLE t1 (
id bigint NOT NULL AUTO_INCREMENT, id bigint NOT NULL AUTO_INCREMENT,
time date, time date,
@ -20,6 +20,17 @@ ERROR 23000: Duplicate entry '2011-07-25-1' for key 'uk_time_id2'
SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t1;
COUNT(*) COUNT(*)
3 3
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`time` date NOT NULL DEFAULT '0000-00-00',
`id2` bigint(20) NOT NULL,
PRIMARY KEY (`id`,`time`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (TO_DAYS(time))
(PARTITION p10 VALUES LESS THAN (734708) ENGINE = InnoDB,
PARTITION p20 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
DROP TABLE t1; DROP TABLE t1;
call mtr.add_suppression("InnoDB: Error: table `test`.`t1` .* InnoDB internal"); call mtr.add_suppression("InnoDB: Error: table `test`.`t1` .* InnoDB internal");
# #

View File

@ -1596,7 +1596,63 @@ set global query_cache_type=0;
show status like 'Qcache_free_blocks'; show status like 'Qcache_free_blocks';
Variable_name Value Variable_name Value
Qcache_free_blocks 0 Qcache_free_blocks 0
set global query_cache_size=102400;
ERROR HY000: Query cache is disabled; set query_cache_type to ON or DEMAND to enable it
set global query_cache_type=on;
set session query_cache_type=on;
Restore default values. Restore default values.
drop database if exists db1;
drop database if exists db2;
set GLOBAL query_cache_size=15*1024*1024;
create database db1;
use db1;
create table t1(c1 int)engine=myisam;
insert into t1(c1) values (1);
select * from db1.t1 f;
c1
1
show status like 'Qcache_queries_in_cache';
Variable_name Value
Qcache_queries_in_cache 1
create database db2;
rename table db1.t1 to db2.t2;
drop database db1;
show status like 'Qcache_queries_in_cache';
Variable_name Value
Qcache_queries_in_cache 0
drop database db2;
set global query_cache_size=default;
drop database if exists db1;
drop database if exists db3;
set GLOBAL query_cache_size=15*1024*1024;
create database db1;
create database db3;
use db1;
create table t1(c1 int) engine=myisam;
use db3;
create table t1(c1 int) engine=myisam;
use db1;
insert into t1(c1) values (1);
use test;
select * from db1.t1;
c1
1
select c1+1 from db1.t1;
c1+1
2
select * from db3.t1;
c1
show status like 'Qcache_queries_in_cache';
Variable_name Value
Qcache_queries_in_cache 3
create database db2;
rename table db1.t1 to db2.t2;
drop database db1;
show status like 'Qcache_queries_in_cache';
Variable_name Value
Qcache_queries_in_cache 1
drop database db2;
drop database db3;
set GLOBAL query_cache_type=default; set GLOBAL query_cache_type=default;
set GLOBAL query_cache_limit=default; set GLOBAL query_cache_limit=default;
set GLOBAL query_cache_min_res_unit=default; set GLOBAL query_cache_min_res_unit=default;

View File

@ -5234,6 +5234,7 @@ avg(distinct(t1.a))
0 0
DROP TABLE t1; DROP TABLE t1;
# End of test BUG#57203 # End of test BUG#57203
#
# lp:822760 Wrong result with view + invalid dates # lp:822760 Wrong result with view + invalid dates
# #
CREATE TABLE t1 (f1 date); CREATE TABLE t1 (f1 date);
@ -5270,4 +5271,22 @@ Warning 1292 Incorrect datetime value: 'zz'
Warning 1292 Incorrect datetime value: 'aa' Warning 1292 Incorrect datetime value: 'aa'
DROP TABLE t1; DROP TABLE t1;
DROP VIEW v1; DROP VIEW v1;
#
# Bug#63020: Function "format"'s 'locale' argument is not considered
# when creating a "view'
#
CREATE TABLE t1 (f1 DECIMAL(10,2));
INSERT INTO t1 VALUES (11.67),(17865.3),(12345678.92);
CREATE VIEW view_t1 AS SELECT FORMAT(f1,1,'sk_SK') AS f1 FROM t1;
SHOW CREATE VIEW view_t1;
View Create View character_set_client collation_connection
view_t1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `view_t1` AS select format(`t1`.`f1`,1,'sk_SK') AS `f1` from `t1` latin1 latin1_swedish_ci
SELECT * FROM view_t1;
f1
11,7
17 865,3
12 345 678,9
DROP TABLE t1;
DROP VIEW view_t1;
# End of test BUG#63020
SET optimizer_switch=@save_optimizer_switch; SET optimizer_switch=@save_optimizer_switch;

View File

@ -5245,6 +5245,7 @@ avg(distinct(t1.a))
0 0
DROP TABLE t1; DROP TABLE t1;
# End of test BUG#57203 # End of test BUG#57203
#
# lp:822760 Wrong result with view + invalid dates # lp:822760 Wrong result with view + invalid dates
# #
CREATE TABLE t1 (f1 date); CREATE TABLE t1 (f1 date);
@ -5281,6 +5282,24 @@ Warning 1292 Incorrect datetime value: 'zz'
Warning 1292 Incorrect datetime value: 'aa' Warning 1292 Incorrect datetime value: 'aa'
DROP TABLE t1; DROP TABLE t1;
DROP VIEW v1; DROP VIEW v1;
#
# Bug#63020: Function "format"'s 'locale' argument is not considered
# when creating a "view'
#
CREATE TABLE t1 (f1 DECIMAL(10,2));
INSERT INTO t1 VALUES (11.67),(17865.3),(12345678.92);
CREATE VIEW view_t1 AS SELECT FORMAT(f1,1,'sk_SK') AS f1 FROM t1;
SHOW CREATE VIEW view_t1;
View Create View character_set_client collation_connection
view_t1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `view_t1` AS select format(`t1`.`f1`,1,'sk_SK') AS `f1` from `t1` latin1 latin1_swedish_ci
SELECT * FROM view_t1;
f1
11,7
17 865,3
12 345 678,9
DROP TABLE t1;
DROP VIEW view_t1;
# End of test BUG#63020
SET optimizer_switch=@save_optimizer_switch; SET optimizer_switch=@save_optimizer_switch;
set join_cache_level=default; set join_cache_level=default;
show variables like 'join_cache_level'; show variables like 'join_cache_level';

View File

@ -5234,6 +5234,7 @@ avg(distinct(t1.a))
0 0
DROP TABLE t1; DROP TABLE t1;
# End of test BUG#57203 # End of test BUG#57203
#
# lp:822760 Wrong result with view + invalid dates # lp:822760 Wrong result with view + invalid dates
# #
CREATE TABLE t1 (f1 date); CREATE TABLE t1 (f1 date);
@ -5270,4 +5271,22 @@ Warning 1292 Incorrect datetime value: 'zz'
Warning 1292 Incorrect datetime value: 'aa' Warning 1292 Incorrect datetime value: 'aa'
DROP TABLE t1; DROP TABLE t1;
DROP VIEW v1; DROP VIEW v1;
#
# Bug#63020: Function "format"'s 'locale' argument is not considered
# when creating a "view'
#
CREATE TABLE t1 (f1 DECIMAL(10,2));
INSERT INTO t1 VALUES (11.67),(17865.3),(12345678.92);
CREATE VIEW view_t1 AS SELECT FORMAT(f1,1,'sk_SK') AS f1 FROM t1;
SHOW CREATE VIEW view_t1;
View Create View character_set_client collation_connection
view_t1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `view_t1` AS select format(`t1`.`f1`,1,'sk_SK') AS `f1` from `t1` latin1 latin1_swedish_ci
SELECT * FROM view_t1;
f1
11,7
17 865,3
12 345 678,9
DROP TABLE t1;
DROP VIEW view_t1;
# End of test BUG#63020
SET optimizer_switch=@save_optimizer_switch; SET optimizer_switch=@save_optimizer_switch;

View File

@ -2772,20 +2772,23 @@ userid
drop procedure bug8116| drop procedure bug8116|
drop table t3| drop table t3|
drop procedure if exists bug6857| drop procedure if exists bug6857|
create procedure bug6857(counter int) create procedure bug6857()
begin begin
declare t0, t1 int; declare t0, t1 int;
declare plus bool default 0; declare plus bool default 0;
set t0 = current_time(); set t0 = unix_timestamp();
while counter > 0 do select sleep(1.1);
set counter = counter - 1; set t1 = unix_timestamp();
end while;
set t1 = current_time();
if t1 > t0 then if t1 > t0 then
set plus = 1; set plus = 1;
end if; end if;
select plus; select plus;
end| end|
call bug6857()|
sleep(1.1)
0
plus
1
drop procedure bug6857| drop procedure bug6857|
drop procedure if exists bug8757| drop procedure if exists bug8757|
create procedure bug8757() create procedure bug8757()
@ -7435,17 +7438,17 @@ ERROR 42000: Undeclared variable: a
# Try to use data types not allowed in LIMIT # Try to use data types not allowed in LIMIT
# #
create procedure p1(p1 date, p2 date) select * from t1 limit p1, p2; create procedure p1(p1 date, p2 date) select * from t1 limit p1, p2;
ERROR HY000: A variable of a non-integer type in LIMIT clause ERROR HY000: A variable of a non-integer based type in LIMIT clause
create procedure p1(p1 integer, p2 float) select * from t1 limit p1, p2; create procedure p1(p1 integer, p2 float) select * from t1 limit p1, p2;
ERROR HY000: A variable of a non-integer type in LIMIT clause ERROR HY000: A variable of a non-integer based type in LIMIT clause
create procedure p1(p1 integer, p2 char(1)) select * from t1 limit p1, p2; create procedure p1(p1 integer, p2 char(1)) select * from t1 limit p1, p2;
ERROR HY000: A variable of a non-integer type in LIMIT clause ERROR HY000: A variable of a non-integer based type in LIMIT clause
create procedure p1(p1 varchar(5), p2 char(1)) select * from t1 limit p1, p2; create procedure p1(p1 varchar(5), p2 char(1)) select * from t1 limit p1, p2;
ERROR HY000: A variable of a non-integer type in LIMIT clause ERROR HY000: A variable of a non-integer based type in LIMIT clause
create procedure p1(p1 decimal, p2 decimal) select * from t1 limit p1, p2; create procedure p1(p1 decimal, p2 decimal) select * from t1 limit p1, p2;
ERROR HY000: A variable of a non-integer type in LIMIT clause ERROR HY000: A variable of a non-integer based type in LIMIT clause
create procedure p1(p1 double, p2 double) select * from t1 limit p1, p2; create procedure p1(p1 double, p2 double) select * from t1 limit p1, p2;
ERROR HY000: A variable of a non-integer type in LIMIT clause ERROR HY000: A variable of a non-integer based type in LIMIT clause
# #
# Finally, test the valid case. # Finally, test the valid case.
# #
@ -7481,9 +7484,117 @@ call p1(3, 2);
c1 c1
4 4
5 5
# Try to create a function that
# refers to non-existing variables.
create function f1(p1 integer, p2 integer)
returns int
begin
declare a int;
set a = (select count(*) from t1 limit a, b);
return a;
end|
ERROR 42000: Undeclared variable: b
create function f1()
returns int
begin
declare a, b, c int;
set a = (select count(*) from t1 limit b, c);
return a;
end|
# How do we handle NULL limit values?
select f1();
f1()
NULL
drop function f1;
#
# Try to use data types not allowed in LIMIT
#
create function f1(p1 date, p2 date)
returns int
begin
declare a int;
set a = (select count(*) from t1 limit p1, p2);
return a;
end|
ERROR HY000: A variable of a non-integer based type in LIMIT clause
create function f1(p1 integer, p2 float)
returns int
begin
declare a int;
set a = (select count(*) from t1 limit p1, p2);
return a;
end|
ERROR HY000: A variable of a non-integer based type in LIMIT clause
create function f1(p1 integer, p2 char(1))
returns int
begin
declare a int;
set a = (select count(*) from t1 limit p1, p2);
return a;
end|
ERROR HY000: A variable of a non-integer based type in LIMIT clause
create function f1(p1 varchar(5), p2 char(1))
returns int
begin
declare a int;
set a = (select count(*) from t1 limit p1, p2);
return a;
end|
ERROR HY000: A variable of a non-integer based type in LIMIT clause
create function f1(p1 decimal, p2 decimal)
returns int
begin
declare a int;
set a = (select count(*) from t1 limit p1, p2);
return a;
end|
ERROR HY000: A variable of a non-integer based type in LIMIT clause
create function f1(p1 double, p2 double)
returns int
begin
declare a int;
set a = (select count(*) from t1 limit p1, p2);
return a;
end|
ERROR HY000: A variable of a non-integer based type in LIMIT clause
#
# Finally, test the valid case.
#
create function f1(p1 integer, p2 integer)
returns int
begin
declare count int;
set count= (select count(*) from (select * from t1 limit p1, p2) t_1);
return count;
end|
select f1(0, 0);
f1(0, 0)
0
select f1(0, -1);
f1(0, -1)
5
select f1(-1, 0);
f1(-1, 0)
0
select f1(-1, -1);
f1(-1, -1)
0
select f1(0, 1);
f1(0, 1)
1
select f1(1, 0);
f1(1, 0)
0
select f1(1, 5);
f1(1, 5)
4
select f1(3, 2);
f1(3, 2)
2
# Cleanup # Cleanup
drop table t1; drop table t1;
drop procedure p1; drop procedure p1;
drop function f1;
# #
# BUG#11766234: 59299: ASSERT (TABLE_REF->TABLE || TABLE_REF->VIEW) # BUG#11766234: 59299: ASSERT (TABLE_REF->TABLE || TABLE_REF->VIEW)
# FAILS IN SET_FIELD_ITERATOR # FAILS IN SET_FIELD_ITERATOR
@ -7604,4 +7715,34 @@ b
DROP TABLE t1; DROP TABLE t1;
DROP PROCEDURE p1; DROP PROCEDURE p1;
#
# Bug#12621017 - Crash if a sp variable is used in the
# limit clause of a set statement
#
DROP TABLE IF EXISTS t1;
DROP PROCEDURE IF EXISTS p1;
DROP PROCEDURE IF EXISTS p2;
CREATE TABLE t1 (c1 INT);
INSERT INTO t1 VALUES (1);
CREATE PROCEDURE p1()
BEGIN
DECLARE foo, cnt INT UNSIGNED DEFAULT 1;
SET foo = (SELECT MIN(c1) FROM t1 LIMIT cnt);
END|
CREATE PROCEDURE p2()
BEGIN
DECLARE iLimit INT;
DECLARE iVal INT;
DECLARE cur1 CURSOR FOR
SELECT c1 FROM t1
LIMIT iLimit;
SET iLimit=1;
OPEN cur1;
FETCH cur1 INTO iVal;
END|
CALL p1();
CALL p2();
DROP PROCEDURE p1;
DROP PROCEDURE p2;
DROP TABLE t1;
# End of 5.5 test # End of 5.5 test

View File

@ -109,6 +109,9 @@ ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for tabl
explain select c from mysqltest.v5; explain select c from mysqltest.v5;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v5' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v5'
show create view mysqltest.v5; show create view mysqltest.v5;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v5'
grant select on mysqltest.v5 to mysqltest_1@localhost;
show create view mysqltest.v5;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
v5 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v5` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1` latin1 latin1_swedish_ci v5 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v5` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1` latin1 latin1_swedish_ci
explain select c from mysqltest.v1; explain select c from mysqltest.v1;
@ -117,6 +120,7 @@ show create view mysqltest.v1;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v1' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v1'
grant show view on mysqltest.v1 to mysqltest_1@localhost; grant show view on mysqltest.v1 to mysqltest_1@localhost;
grant select on mysqltest.t1 to mysqltest_1@localhost; grant select on mysqltest.t1 to mysqltest_1@localhost;
revoke select on mysqltest.v5 from mysqltest_1@localhost;
explain select c from mysqltest.v1; explain select c from mysqltest.v1;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found 1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
@ -137,9 +141,6 @@ show create view mysqltest.v4;
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v4' ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v4'
explain select c from mysqltest.v5; explain select c from mysqltest.v5;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v5' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v5'
show create view mysqltest.v5;
View Create View character_set_client collation_connection
v5 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v5` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1` latin1 latin1_swedish_ci
grant show view on mysqltest.* to mysqltest_1@localhost; grant show view on mysqltest.* to mysqltest_1@localhost;
explain select c from mysqltest.v1; explain select c from mysqltest.v1;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra

View File

@ -4,8 +4,6 @@
# #
# should work with embedded server after mysqltest is fixed
--source include/not_embedded.inc
--source federated.inc --source federated.inc
--source have_federatedx.inc --source have_federatedx.inc

View File

@ -1045,20 +1045,6 @@ COMMIT;
UPDATE bug12547647 SET c = REPEAT('b',16928); UPDATE bug12547647 SET c = REPEAT('b',16928);
ERROR HY000: Undo log record is too big. ERROR HY000: Undo log record is too big.
DROP TABLE bug12547647; DROP TABLE bug12547647;
SET @r=REPEAT('a',500);
CREATE TABLE t1(a INT,
v1 VARCHAR(500), v2 VARCHAR(500), v3 VARCHAR(500),
v4 VARCHAR(500), v5 VARCHAR(500), v6 VARCHAR(500),
v7 VARCHAR(500), v8 VARCHAR(500), v9 VARCHAR(500),
v10 VARCHAR(500), v11 VARCHAR(500), v12 VARCHAR(500),
v13 VARCHAR(500), v14 VARCHAR(500), v15 VARCHAR(500),
v16 VARCHAR(500), v17 VARCHAR(500), v18 VARCHAR(500)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
CREATE INDEX idx1 ON t1(a,v1);
INSERT INTO t1 VALUES(9,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
UPDATE t1 SET a=1000;
DELETE FROM t1;
DROP TABLE t1;
set global innodb_file_per_table=0; set global innodb_file_per_table=0;
set global innodb_file_format=Antelope; set global innodb_file_format=Antelope;
set global innodb_file_format_max=Antelope; set global innodb_file_format_max=Antelope;

View File

@ -3130,3 +3130,14 @@ Handler_update 1
Variable_name Value Variable_name Value
Handler_delete 1 Handler_delete 1
DROP TABLE bug58912; DROP TABLE bug58912;
create table t1 (f1 integer primary key) engine=innodb;
flush status;
show status like "handler_read_key";
Variable_name Value
Handler_read_key 0
select f1 from t1;
f1
show status like "handler_read_key";
Variable_name Value
Handler_read_key 0
drop table t1;

View File

@ -1,2 +1,9 @@
CREATE TEMPORARY TABLE table_54044 ENGINE = INNODB CREATE TEMPORARY TABLE table_54044 ENGINE = INNODB
AS SELECT IF(NULL IS NOT NULL, NULL, NULL); AS SELECT IF(NULL IS NOT NULL, NULL, NULL);
SHOW CREATE TABLE table_54044;
Table Create Table
table_54044 CREATE TEMPORARY TABLE `table_54044` (
`IF(NULL IS NOT NULL, NULL, NULL)` binary(0) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TEMPORARY TABLE tmp1 ENGINE = INNODB AS SELECT COALESCE(NULL, NULL, NULL);
CREATE TEMPORARY TABLE tmp2 ENGINE = INNODB AS SELECT GREATEST(NULL, NULL);

View File

@ -0,0 +1,26 @@
CREATE TABLE PERSON (
PERSON_ID VARCHAR(50) NOT NULL,
DOB VARCHAR(50) NOT NULL,
NAME NVARCHAR(255) NOT NULL,
CONSTRAINT PK_PERSON PRIMARY KEY (PERSON_ID, DOB)
)Engine=InnoDB;
CREATE TABLE PHOTO (
PERSON_ID VARCHAR(50) NOT NULL,
DOB VARCHAR(50) NOT NULL,
PHOTO_DETAILS VARCHAR(50) NULL,
CONSTRAINT PK_PHOTO PRIMARY KEY (PERSON_ID, DOB),
CONSTRAINT FK_PHOTO_2_PERSON FOREIGN KEY (PERSON_ID, DOB) REFERENCES PERSON (PERSON_ID, DOB)
)Engine=InnoDB;
CREATE TABLE ADDRESS (
PERSON_ID VARCHAR(50) NOT NULL,
DOB VARCHAR(50) NOT NULL,
ADDRESS_ID VARCHAR(50) NOT NULL,
ADDRESS_DETAILS NVARCHAR(250) NULL,
CONSTRAINT PK_ADDRESS PRIMARY KEY (PERSON_ID, DOB, ADDRESS_ID),
CONSTRAINT FK_ADDRESS_2_PERSON FOREIGN KEY (PERSON_ID, DOB) REFERENCES PERSON (PERSON_ID, DOB) ON DELETE CASCADE
)Engine=InnoDB;
INSERT INTO PERSON VALUES("10", "11011999", "John");
INSERT INTO PHOTO VALUES("10", "11011999", "new photo");
DROP TABLE PHOTO;
DROP TABLE ADDRESS;
DROP TABLE PERSON;

View File

@ -0,0 +1,14 @@
set global innodb_file_per_table=on;
set global innodb_file_format=`1`;
create table t1(a text) engine=innodb key_block_size=8;
SELECT page_size FROM information_schema.innodb_cmpmem WHERE pages_used > 0;
page_size
8192
drop table t1;
SELECT page_size FROM information_schema.innodb_cmpmem WHERE pages_used > 0;
page_size
8192
create table t2(a text) engine=innodb;
SELECT page_size FROM information_schema.innodb_cmpmem WHERE pages_used > 0;
page_size
drop table t2;

View File

@ -97,8 +97,6 @@ insert into t1 values (1,1), (2,null), (3,1), (4,1),
# Demonstrate that for the SELECT statement # Demonstrate that for the SELECT statement
# used later in the test JT_EQ_REF access method is used. # used later in the test JT_EQ_REF access method is used.
# #
set @tmp_optimizer_switch=@@optimizer_switch;
set optimizer_switch='derived_merge=off,derived_with_keys=off';
explain explain
select 1 from t1 natural join (select 2 as a, 1 as b union all select 1 from t1 natural join (select 2 as a, 1 as b union all
select 2 as a, 2 as b) as t2 for update; select 2 as a, 2 as b) as t2 for update;
@ -106,7 +104,7 @@ id 1
select_type PRIMARY select_type PRIMARY
table <derived2> table <derived2>
type ALL type ALL
possible_keys NULL possible_keys key0
key NULL key NULL
key_len NULL key_len NULL
ref NULL ref NULL
@ -121,7 +119,7 @@ key PRIMARY
key_len 4 key_len 4
ref t2.a ref t2.a
rows 1 rows 1
Extra Using index condition; Using where Extra Using where
id 2 id 2
select_type DERIVED select_type DERIVED
table NULL table NULL
@ -152,7 +150,6 @@ key_len NULL
ref NULL ref NULL
rows NULL rows NULL
Extra Extra
set optimizer_switch=@tmp_optimizer_switch;
# #
# Demonstrate that the reported SELECT statement # Demonstrate that the reported SELECT statement
# no longer produces warnings. # no longer produces warnings.
@ -304,8 +301,6 @@ begin;
# is retreived and processed first. # is retreived and processed first.
# #
# Verify that JT_EQ_REF is used. # Verify that JT_EQ_REF is used.
set @tmp_optimizer_switch=@@optimizer_switch;
set optimizer_switch='derived_merge=off,derived_with_keys=off';
explain explain
select 1 from t1 natural join (select 3 as a, 2 as b union all select 1 from t1 natural join (select 3 as a, 2 as b union all
select 3 as a, 1 as b) as t2 for update; select 3 as a, 1 as b) as t2 for update;
@ -313,7 +308,7 @@ id 1
select_type PRIMARY select_type PRIMARY
table <derived2> table <derived2>
type ALL type ALL
possible_keys NULL possible_keys key0
key NULL key NULL
key_len NULL key_len NULL
ref NULL ref NULL
@ -328,7 +323,7 @@ key PRIMARY
key_len 4 key_len 4
ref t2.a ref t2.a
rows 1 rows 1
Extra Using index condition; Using where Extra Using where
id 2 id 2
select_type DERIVED select_type DERIVED
table NULL table NULL
@ -359,7 +354,6 @@ key_len NULL
ref NULL ref NULL
rows NULL rows NULL
Extra Extra
set optimizer_switch=@tmp_optimizer_switch;
# Lock the record. # Lock the record.
select 1 from t1 natural join (select 3 as a, 2 as b union all select 1 from t1 natural join (select 3 as a, 2 as b union all
select 3 as a, 1 as b) as t2 for update; select 3 as a, 1 as b) as t2 for update;

View File

@ -1,77 +0,0 @@
#
#Bug#11759688 52020: InnoDB can still deadlock
#on just INSERT...ON DUPLICATE KEY
#a.k.a. Bug#7975 deadlock without any locking, simple select and update
#
CREATE TABLE t1 (a INT PRIMARY KEY, b INT NOT NULL) ENGINE=InnoDB;
INSERT INTO t1 VALUES(3,1);
BEGIN;
SET DEBUG_SYNC='write_row_noreplace SIGNAL insert1 WAIT_FOR select1';
INSERT INTO t1 VALUES(3,2);
SET DEBUG_SYNC='now WAIT_FOR insert1';
SELECT * FROM t1 LOCK IN SHARE MODE;
a b
3 1
SELECT * FROM t1 FOR UPDATE;
SET DEBUG_SYNC='now SIGNAL select1';
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
INSERT INTO t1 VALUES(3,3) ON DUPLICATE KEY UPDATE b=b+10;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
COMMIT;
SET DEBUG_SYNC='write_row_replace SIGNAL insert2 WAIT_FOR select2';
REPLACE INTO t1 VALUES(3,4);
SET DEBUG_SYNC='now WAIT_FOR insert2';
SELECT * FROM t1;
a b
3 11
SELECT * FROM t1 LOCK IN SHARE MODE;
SET DEBUG_SYNC='now SIGNAL select2';
SET DEBUG_SYNC='write_row_replace SIGNAL insert3 WAIT_FOR select3';
INSERT INTO t1 VALUES(3,5) ON DUPLICATE KEY UPDATE b=b+20;
a b
3 4
SET DEBUG_SYNC='now WAIT_FOR insert3';
SELECT b FROM t1 LOCK IN SHARE MODE;
SET DEBUG_SYNC='now SIGNAL select3';
b
24
SET DEBUG_SYNC='write_row_noreplace SIGNAL insert4 WAIT_FOR select4';
LOAD DATA INFILE '../../std_data/loaddata5.dat' INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (a, b);
SET DEBUG_SYNC='now WAIT_FOR insert4';
SELECT b FROM t1 WHERE a=3 LOCK IN SHARE MODE;
b
24
SELECT b FROM t1 WHERE a=3 FOR UPDATE;
SET DEBUG_SYNC='now SIGNAL select4';
b
24
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
SET DEBUG_SYNC='write_row_noreplace SIGNAL insert5 WAIT_FOR select5';
LOAD DATA INFILE '../../std_data/loaddata5.dat' IGNORE INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (a, b);
SET DEBUG_SYNC='now WAIT_FOR insert5';
SELECT * FROM t1;
a b
3 24
SELECT * FROM t1 WHERE a=3 LOCK IN SHARE MODE;
a b
3 24
SELECT * FROM t1 WHERE a=3 FOR UPDATE;
SET DEBUG_SYNC='now SIGNAL select5';
a b
3 24
SET DEBUG_SYNC='write_row_replace SIGNAL insert6 WAIT_FOR select6';
LOAD DATA INFILE '../../std_data/loaddata5.dat' REPLACE INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (a, b);
SET DEBUG_SYNC='now WAIT_FOR insert6';
SELECT * FROM t1;
a b
1 2
3 24
5 6
SELECT a,b FROM t1 LOCK IN SHARE MODE;
SET DEBUG_SYNC='now SIGNAL select6';
a b
1 2
3 4
5 6
SET DEBUG_SYNC='RESET';
DROP TABLE t1;

View File

@ -530,24 +530,6 @@ COMMIT;
--error ER_UNDO_RECORD_TOO_BIG --error ER_UNDO_RECORD_TOO_BIG
UPDATE bug12547647 SET c = REPEAT('b',16928); UPDATE bug12547647 SET c = REPEAT('b',16928);
DROP TABLE bug12547647; DROP TABLE bug12547647;
# Bug#12637786
SET @r=REPEAT('a',500);
CREATE TABLE t1(a INT,
v1 VARCHAR(500), v2 VARCHAR(500), v3 VARCHAR(500),
v4 VARCHAR(500), v5 VARCHAR(500), v6 VARCHAR(500),
v7 VARCHAR(500), v8 VARCHAR(500), v9 VARCHAR(500),
v10 VARCHAR(500), v11 VARCHAR(500), v12 VARCHAR(500),
v13 VARCHAR(500), v14 VARCHAR(500), v15 VARCHAR(500),
v16 VARCHAR(500), v17 VARCHAR(500), v18 VARCHAR(500)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
CREATE INDEX idx1 ON t1(a,v1);
INSERT INTO t1 VALUES(9,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
UPDATE t1 SET a=1000;
DELETE FROM t1;
# Let the purge thread clean up this file.
-- sleep 10
DROP TABLE t1;
eval set global innodb_file_per_table=$per_table; eval set global innodb_file_per_table=$per_table;
eval set global innodb_file_format=$format; eval set global innodb_file_format=$format;

View File

@ -2541,6 +2541,17 @@ SET GLOBAL innodb_thread_concurrency = @innodb_thread_concurrency_orig;
# Clean up after the Bug#55284/Bug#58912 test case. # Clean up after the Bug#55284/Bug#58912 test case.
DROP TABLE bug58912; DROP TABLE bug58912;
#
# Test fix for bug 13117023. InnoDB increments HA_READ_KEY_COUNT (aka
# HANDLER_READ_KEY) when it should not.
#
create table t1 (f1 integer primary key) engine=innodb;
flush status;
show status like "handler_read_key";
select f1 from t1;
show status like "handler_read_key";
drop table t1;
####################################################################### #######################################################################
# # # #
# Please, DO NOT TOUCH this file as well as the innodb.result file. # # Please, DO NOT TOUCH this file as well as the innodb.result file. #

View File

@ -2,6 +2,10 @@
# during create table, so it will not trigger assertion failure. # during create table, so it will not trigger assertion failure.
# This 'create table' operation no longer uses the NULL datatype.
CREATE TEMPORARY TABLE table_54044 ENGINE = INNODB CREATE TEMPORARY TABLE table_54044 ENGINE = INNODB
AS SELECT IF(NULL IS NOT NULL, NULL, NULL); AS SELECT IF(NULL IS NOT NULL, NULL, NULL);
SHOW CREATE TABLE table_54044;
CREATE TEMPORARY TABLE tmp1 ENGINE = INNODB AS SELECT COALESCE(NULL, NULL, NULL);
CREATE TEMPORARY TABLE tmp2 ENGINE = INNODB AS SELECT GREATEST(NULL, NULL);

View File

@ -0,0 +1 @@
--lower_case_table_names=0

View File

@ -0,0 +1,39 @@
#
# Bug #13083023 - 60229: BROKEN COMPATIBILITY: ERROR WHILE CREATE TABLE
# WITH FOREIGN KEY CONSTRAINT.
-- source include/have_innodb.inc
CREATE TABLE PERSON (
PERSON_ID VARCHAR(50) NOT NULL,
DOB VARCHAR(50) NOT NULL,
NAME NVARCHAR(255) NOT NULL,
CONSTRAINT PK_PERSON PRIMARY KEY (PERSON_ID, DOB)
)Engine=InnoDB;
CREATE TABLE PHOTO (
PERSON_ID VARCHAR(50) NOT NULL,
DOB VARCHAR(50) NOT NULL,
PHOTO_DETAILS VARCHAR(50) NULL,
CONSTRAINT PK_PHOTO PRIMARY KEY (PERSON_ID, DOB),
CONSTRAINT FK_PHOTO_2_PERSON FOREIGN KEY (PERSON_ID, DOB) REFERENCES PERSON (PERSON_ID, DOB)
)Engine=InnoDB;
CREATE TABLE ADDRESS (
PERSON_ID VARCHAR(50) NOT NULL,
DOB VARCHAR(50) NOT NULL,
ADDRESS_ID VARCHAR(50) NOT NULL,
ADDRESS_DETAILS NVARCHAR(250) NULL,
CONSTRAINT PK_ADDRESS PRIMARY KEY (PERSON_ID, DOB, ADDRESS_ID),
CONSTRAINT FK_ADDRESS_2_PERSON FOREIGN KEY (PERSON_ID, DOB) REFERENCES PERSON (PERSON_ID, DOB) ON DELETE CASCADE
)Engine=InnoDB;
INSERT INTO PERSON VALUES("10", "11011999", "John");
INSERT INTO PHOTO VALUES("10", "11011999", "new photo");
DROP TABLE PHOTO;
DROP TABLE ADDRESS;
DROP TABLE PERSON;

View File

@ -0,0 +1 @@
--innodb-buffer-pool-size=8M

View File

@ -0,0 +1,58 @@
let $per_table=`select @@innodb_file_per_table`;
let $format=`select @@innodb_file_format`;
-- let $query_i_s = SELECT page_size FROM information_schema.innodb_cmpmem WHERE pages_used > 0
set global innodb_file_per_table=on;
set global innodb_file_format=`1`;
create table t1(a text) engine=innodb key_block_size=8;
-- disable_query_log
# insert some rows so we are using compressed pages
-- let $i = 10
while ($i)
{
insert into t1 values(repeat('abcdefghijklmnopqrstuvwxyz',100));
dec $i;
}
-- enable_query_log
# we should be using some 8K pages
-- eval $query_i_s
drop table t1;
# because of lazy eviction at drop table in 5.5 there should be some
# used 8K pages
-- eval $query_i_s
# create a non-compressed table and insert enough into it to evict
# compressed pages
create table t2(a text) engine=innodb;
-- disable_query_log
-- let $i = 400
while ($i)
{
insert into t2 values(repeat('abcdefghijklmnopqrstuvwxyz',1000));
dec $i;
}
-- enable_query_log
# now there should be no 8K pages in the buffer pool
-- eval $query_i_s
drop table t2;
#
# restore environment to the state it was before this test execution
#
-- disable_query_log
eval set global innodb_file_format=$format;
eval set global innodb_file_per_table=$per_table;

View File

@ -3,6 +3,10 @@
# #
-- source include/have_innodb.inc -- source include/have_innodb.inc
# Issues with innodb_change_buffering_debug on Windows, so the test scenario
# cannot be created on windows
--source include/not_windows.inc
# This test needs debug server # This test needs debug server
--source include/have_debug.inc --source include/have_debug.inc

View File

@ -139,12 +139,10 @@ insert into t1 values (1,1), (2,null), (3,1), (4,1),
--echo # used later in the test JT_EQ_REF access method is used. --echo # used later in the test JT_EQ_REF access method is used.
--echo # --echo #
--vertical_results --vertical_results
set @tmp_optimizer_switch=@@optimizer_switch; --replace_result "Using index condition; Using where" "Using where"
set optimizer_switch='derived_merge=off,derived_with_keys=off';
explain explain
select 1 from t1 natural join (select 2 as a, 1 as b union all select 1 from t1 natural join (select 2 as a, 1 as b union all
select 2 as a, 2 as b) as t2 for update; select 2 as a, 2 as b) as t2 for update;
set optimizer_switch=@tmp_optimizer_switch;
--horizontal_results --horizontal_results
--echo # --echo #
--echo # Demonstrate that the reported SELECT statement --echo # Demonstrate that the reported SELECT statement
@ -238,12 +236,10 @@ begin;
--echo # --echo #
--echo # Verify that JT_EQ_REF is used. --echo # Verify that JT_EQ_REF is used.
--vertical_results --vertical_results
set @tmp_optimizer_switch=@@optimizer_switch; --replace_result "Using index condition; Using where" "Using where"
set optimizer_switch='derived_merge=off,derived_with_keys=off';
explain explain
select 1 from t1 natural join (select 3 as a, 2 as b union all select 1 from t1 natural join (select 3 as a, 2 as b union all
select 3 as a, 1 as b) as t2 for update; select 3 as a, 1 as b) as t2 for update;
set optimizer_switch=@tmp_optimizer_switch;
--horizontal_results --horizontal_results
--echo # Lock the record. --echo # Lock the record.
select 1 from t1 natural join (select 3 as a, 2 as b union all select 1 from t1 natural join (select 3 as a, 2 as b union all

View File

@ -1,186 +0,0 @@
--source include/have_innodb.inc
--source include/have_debug_sync.inc
--echo #
--echo #Bug#11759688 52020: InnoDB can still deadlock
--echo #on just INSERT...ON DUPLICATE KEY
--echo #a.k.a. Bug#7975 deadlock without any locking, simple select and update
--echo #
CREATE TABLE t1 (a INT PRIMARY KEY, b INT NOT NULL) ENGINE=InnoDB;
INSERT INTO t1 VALUES(3,1);
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
connection con1;
BEGIN;
# normal INSERT of a duplicate should only S-lock the existing record (3,1)
SET DEBUG_SYNC='write_row_noreplace SIGNAL insert1 WAIT_FOR select1';
--send
INSERT INTO t1 VALUES(3,2);
connection default;
SET DEBUG_SYNC='now WAIT_FOR insert1';
# this should S-lock (3,1); no conflict
SELECT * FROM t1 LOCK IN SHARE MODE;
# this should X-lock (3,1), conflicting with con1
--send
SELECT * FROM t1 FOR UPDATE;
connection con2;
# Check that the above SELECT is blocked
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = 'Sending data' and
info = 'SELECT * FROM t1 FOR UPDATE';
--source include/wait_condition.inc
SET DEBUG_SYNC='now SIGNAL select1';
connection con1;
--error ER_DUP_ENTRY
reap;
# We are still holding an S-lock on (3,1) after the failed INSERT.
# The following will upgrade it to an X-lock, causing a deadlock.
# InnoDB should resolve the deadlock by aborting the blocked SELECT.
INSERT INTO t1 VALUES(3,3) ON DUPLICATE KEY UPDATE b=b+10;
connection default;
--error ER_LOCK_DEADLOCK
reap;
connection con1;
COMMIT;
SET DEBUG_SYNC='write_row_replace SIGNAL insert2 WAIT_FOR select2';
--send
REPLACE INTO t1 VALUES(3,4);
connection default;
SET DEBUG_SYNC='now WAIT_FOR insert2';
SELECT * FROM t1;
--send
SELECT * FROM t1 LOCK IN SHARE MODE;
connection con2;
# Check that the above SELECT is blocked because of X lock.
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = 'Sending data' and
info = 'SELECT * FROM t1 LOCK IN SHARE MODE';
--source include/wait_condition.inc
SET DEBUG_SYNC='now SIGNAL select2';
connection con1;
reap;
SET DEBUG_SYNC='write_row_replace SIGNAL insert3 WAIT_FOR select3';
--send
INSERT INTO t1 VALUES(3,5) ON DUPLICATE KEY UPDATE b=b+20;
connection default;
reap;
SET DEBUG_SYNC='now WAIT_FOR insert3';
--send
SELECT b FROM t1 LOCK IN SHARE MODE;
connection con2;
# Check that the above SELECT is blocked because of X lock.
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = 'Sending data' and
info = 'SELECT b FROM t1 LOCK IN SHARE MODE';
--source include/wait_condition.inc
SET DEBUG_SYNC='now SIGNAL select3';
connection default;
reap;
connection con1;
reap;
SET DEBUG_SYNC='write_row_noreplace SIGNAL insert4 WAIT_FOR select4';
--send
LOAD DATA INFILE '../../std_data/loaddata5.dat' INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (a, b);
connection default;
SET DEBUG_SYNC='now WAIT_FOR insert4';
# this should S-lock (3,1); no conflict
SELECT b FROM t1 WHERE a=3 LOCK IN SHARE MODE;
# this should X-lock (3,1), conflicting with con1
--send
SELECT b FROM t1 WHERE a=3 FOR UPDATE;
connection con2;
# Check that the above SELECT is blocked
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = 'statistics' and
info = 'SELECT b FROM t1 WHERE a=3 FOR UPDATE';
--source include/wait_condition.inc
SET DEBUG_SYNC='now SIGNAL select4';
connection default;
reap;
connection con1;
--error ER_DUP_ENTRY
reap;
SET DEBUG_SYNC='write_row_noreplace SIGNAL insert5 WAIT_FOR select5';
--send
LOAD DATA INFILE '../../std_data/loaddata5.dat' IGNORE INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (a, b);
connection default;
SET DEBUG_SYNC='now WAIT_FOR insert5';
SELECT * FROM t1;
# this should S-lock; no conflict
SELECT * FROM t1 WHERE a=3 LOCK IN SHARE MODE;
# this should X-lock, conflicting with the S-lock of the IGNORE in con1
--send
SELECT * FROM t1 WHERE a=3 FOR UPDATE;
connection con2;
# Check that the above SELECT is blocked
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = 'statistics' and
info = 'SELECT * FROM t1 WHERE a=3 FOR UPDATE';
--source include/wait_condition.inc
SET DEBUG_SYNC='now SIGNAL select5';
connection con1;
reap;
connection default;
reap;
connection con1;
SET DEBUG_SYNC='write_row_replace SIGNAL insert6 WAIT_FOR select6';
--send
LOAD DATA INFILE '../../std_data/loaddata5.dat' REPLACE INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (a, b);
connection default;
SET DEBUG_SYNC='now WAIT_FOR insert6';
SELECT * FROM t1;
# this should conflict with the X-lock acquired by the REPLACE
--send
SELECT a,b FROM t1 LOCK IN SHARE MODE;
connection con2;
# Check that the above SELECT is blocked
let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = 'Sending data' and
info = 'SELECT a,b FROM t1 LOCK IN SHARE MODE';
--source include/wait_condition.inc
SET DEBUG_SYNC='now SIGNAL select6';
connection con1;
reap;
connection default;
reap;
disconnect con1;
disconnect con2;
connection default;
SET DEBUG_SYNC='RESET';
DROP TABLE t1;

View File

@ -1,4 +1,75 @@
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
#
# Bug#12696518/Bug#11766879/60106:DIFF BETWEEN # OF INDEXES IN MYSQL
# VS INNODB, PARTITONING, ON INDEX CREATE
#
CREATE TABLE t1
(a INT PRIMARY KEY,
b VARCHAR(64))
ENGINE = InnoDB
PARTITION BY HASH (a) PARTITIONS 3;
INSERT INTO t1 VALUES (0, 'first row'), (1, 'second row'), (2, 'Third row');
INSERT INTO t1 VALUES (3, 'row id 3'), (4, '4 row'), (5, 'row5');
INSERT INTO t1 VALUES (6, 'X 6 row'), (7, 'Seventh row'), (8, 'Last row');
ALTER TABLE t1 ADD INDEX new_b_index (b);
ALTER TABLE t1 DROP INDEX new_b_index;
SET SESSION debug_dbug = "+d,ha_partition_fail_final_add_index";
ALTER TABLE t1 ADD INDEX (b);
ERROR HY000: Table has no partition for value 0
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL,
`b` varchar(64) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (a)
PARTITIONS 3 */
SELECT * FROM t1;
a b
0 first row
1 second row
2 Third row
3 row id 3
4 4 row
5 row5
6 X 6 row
7 Seventh row
8 Last row
FLUSH TABLES;
CREATE INDEX new_index ON t1 (b);
ERROR HY000: Table has no partition for value 0
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL,
`b` varchar(64) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (a)
PARTITIONS 3 */
SELECT * FROM t1;
a b
0 first row
1 second row
2 Third row
3 row id 3
4 4 row
5 row5
6 X 6 row
7 Seventh row
8 Last row
SET SESSION debug_dbug = "-d,ha_partition_fail_final_add_index";
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL,
`b` varchar(64) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (a)
PARTITIONS 3 */
DROP TABLE t1;
call mtr.add_suppression("InnoDB: Warning: allocated tablespace .*, old maximum was"); call mtr.add_suppression("InnoDB: Warning: allocated tablespace .*, old maximum was");
call mtr.add_suppression("InnoDB: Error: table .* does not exist in the InnoDB internal"); call mtr.add_suppression("InnoDB: Error: table .* does not exist in the InnoDB internal");
call mtr.add_suppression("InnoDB: Warning: MySQL is trying to drop table "); call mtr.add_suppression("InnoDB: Warning: MySQL is trying to drop table ");

View File

@ -13,6 +13,41 @@ DROP TABLE IF EXISTS t1;
--let $DATADIR= `SELECT @@datadir;` --let $DATADIR= `SELECT @@datadir;`
--echo #
--echo # Bug#12696518/Bug#11766879/60106:DIFF BETWEEN # OF INDEXES IN MYSQL
--echo # VS INNODB, PARTITONING, ON INDEX CREATE
--echo #
CREATE TABLE t1
(a INT PRIMARY KEY,
b VARCHAR(64))
ENGINE = InnoDB
PARTITION BY HASH (a) PARTITIONS 3;
INSERT INTO t1 VALUES (0, 'first row'), (1, 'second row'), (2, 'Third row');
INSERT INTO t1 VALUES (3, 'row id 3'), (4, '4 row'), (5, 'row5');
INSERT INTO t1 VALUES (6, 'X 6 row'), (7, 'Seventh row'), (8, 'Last row');
ALTER TABLE t1 ADD INDEX new_b_index (b);
ALTER TABLE t1 DROP INDEX new_b_index;
SET SESSION debug_dbug = "+d,ha_partition_fail_final_add_index";
--error ER_NO_PARTITION_FOR_GIVEN_VALUE
ALTER TABLE t1 ADD INDEX (b);
SHOW CREATE TABLE t1;
--sorted_result
SELECT * FROM t1;
FLUSH TABLES;
--error ER_NO_PARTITION_FOR_GIVEN_VALUE
CREATE INDEX new_index ON t1 (b);
SHOW CREATE TABLE t1;
--sorted_result
SELECT * FROM t1;
SET SESSION debug_dbug = "-d,ha_partition_fail_final_add_index";
SHOW CREATE TABLE t1;
DROP TABLE t1;
# Checking with #innodb what this is... # Checking with #innodb what this is...
call mtr.add_suppression("InnoDB: Warning: allocated tablespace .*, old maximum was"); call mtr.add_suppression("InnoDB: Warning: allocated tablespace .*, old maximum was");
# If there is a crash or failure between the ddl_log is written and the # If there is a crash or failure between the ddl_log is written and the

View File

@ -1176,7 +1176,7 @@ EXPLAIN SELECT 1 FROM t1 WHERE a IN
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index PRIMARY,i2 PRIMARY 4 NULL 144 Using index 1 PRIMARY t1 index PRIMARY,i2 PRIMARY 4 NULL 144 Using index
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
2 SUBQUERY t1 ALL NULL NULL NULL NULL 144 2 MATERIALIZED t1 ALL NULL NULL NULL NULL 144
CREATE TABLE t2 (a INT, b INT, KEY(a)); CREATE TABLE t2 (a INT, b INT, KEY(a));
INSERT INTO t2 VALUES (1, 1), (2, 2), (3,3), (4,4); INSERT INTO t2 VALUES (1, 1), (2, 2), (3,3), (4,4);
EXPLAIN SELECT a, SUM(b) FROM t2 GROUP BY a LIMIT 2; EXPLAIN SELECT a, SUM(b) FROM t2 GROUP BY a LIMIT 2;
@ -1190,5 +1190,5 @@ EXPLAIN SELECT 1 FROM t2 WHERE a IN
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 index a a 5 NULL 4 Using index 1 PRIMARY t2 index a a 5 NULL 4 Using index
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
2 SUBQUERY t1 ALL NULL NULL NULL NULL 144 2 MATERIALIZED t1 ALL NULL NULL NULL NULL 144
DROP TABLE t1, t2; DROP TABLE t1, t2;

View File

@ -75,10 +75,11 @@ Database: test
2 rows in set. 2 rows in set.
DROP TABLE t1, t2; DROP TABLE t1, t2;
+---------------------------------------+
+---------------------------------------+
+---------------------------------------+
Database: information_schema Database: information_schema
+---------------------------------------+
| Tables | | Tables |
+---------------------------------------+
| CHARACTER_SETS | | CHARACTER_SETS |
| CLIENT_STATISTICS | | CLIENT_STATISTICS |
| COLLATIONS | | COLLATIONS |
@ -91,10 +92,32 @@ Database: information_schema
| GLOBAL_STATUS | | GLOBAL_STATUS |
| GLOBAL_VARIABLES | | GLOBAL_VARIABLES |
| INDEX_STATISTICS | | INDEX_STATISTICS |
| INNODB_BUFFER_POOL_PAGES |
| INNODB_BUFFER_POOL_PAGES_BLOB |
| INNODB_BUFFER_POOL_PAGES_INDEX |
| INNODB_CMP |
| INNODB_CMPMEM |
| INNODB_CMPMEM_RESET |
| INNODB_CMP_RESET |
| INNODB_INDEX_STATS |
| INNODB_LOCKS |
| INNODB_LOCK_WAITS |
| INNODB_RSEG |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_FIELDS |
| INNODB_SYS_FOREIGN |
| INNODB_SYS_FOREIGN_COLS |
| INNODB_SYS_INDEXES |
| INNODB_SYS_STATS |
| INNODB_SYS_TABLES |
| INNODB_SYS_TABLESTATS |
| INNODB_TABLE_STATS |
| INNODB_TRX |
| KEY_CACHES | | KEY_CACHES |
| KEY_COLUMN_USAGE | | KEY_COLUMN_USAGE |
| PARAMETERS | | PARAMETERS |
| PARTITIONS | | PARTITIONS |
| PBXT_STATISTICS |
| PLUGINS | | PLUGINS |
| PROCESSLIST | | PROCESSLIST |
| PROFILING | | PROFILING |
@ -114,34 +137,12 @@ Database: information_schema
| USER_PRIVILEGES | | USER_PRIVILEGES |
| USER_STATISTICS | | USER_STATISTICS |
| VIEWS | | VIEWS |
| INNODB_CMPMEM_RESET |
| PBXT_STATISTICS |
| INNODB_CMPMEM |
| INNODB_RSEG |
| INNODB_SYS_TABLESTATS |
| INNODB_LOCK_WAITS |
| INNODB_INDEX_STATS |
| INNODB_CMP |
| INNODB_SYS_FOREIGN_COLS |
| INNODB_CMP_RESET |
| INNODB_BUFFER_POOL_PAGES |
| INNODB_TRX |
| INNODB_BUFFER_POOL_PAGES_INDEX |
| INNODB_LOCKS |
| INNODB_BUFFER_POOL_PAGES_BLOB |
| INNODB_SYS_TABLES |
| INNODB_SYS_FIELDS |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_STATS |
| INNODB_SYS_FOREIGN |
| INNODB_SYS_INDEXES |
| XTRADB_ADMIN_COMMAND | | XTRADB_ADMIN_COMMAND |
| INNODB_TABLE_STATS | +---------------------------------------+
+---------------------------------------+
+---------------------------------------+ +---------------------------------------+
Database: INFORMATION_SCHEMA Database: INFORMATION_SCHEMA
+---------------------------------------+
| Tables | | Tables |
+---------------------------------------+
| CHARACTER_SETS | | CHARACTER_SETS |
| CLIENT_STATISTICS | | CLIENT_STATISTICS |
| COLLATIONS | | COLLATIONS |
@ -154,10 +155,32 @@ Database: INFORMATION_SCHEMA
| GLOBAL_STATUS | | GLOBAL_STATUS |
| GLOBAL_VARIABLES | | GLOBAL_VARIABLES |
| INDEX_STATISTICS | | INDEX_STATISTICS |
| INNODB_BUFFER_POOL_PAGES |
| INNODB_BUFFER_POOL_PAGES_BLOB |
| INNODB_BUFFER_POOL_PAGES_INDEX |
| INNODB_CMP |
| INNODB_CMPMEM |
| INNODB_CMPMEM_RESET |
| INNODB_CMP_RESET |
| INNODB_INDEX_STATS |
| INNODB_LOCKS |
| INNODB_LOCK_WAITS |
| INNODB_RSEG |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_FIELDS |
| INNODB_SYS_FOREIGN |
| INNODB_SYS_FOREIGN_COLS |
| INNODB_SYS_INDEXES |
| INNODB_SYS_STATS |
| INNODB_SYS_TABLES |
| INNODB_SYS_TABLESTATS |
| INNODB_TABLE_STATS |
| INNODB_TRX |
| KEY_CACHES | | KEY_CACHES |
| KEY_COLUMN_USAGE | | KEY_COLUMN_USAGE |
| PARAMETERS | | PARAMETERS |
| PARTITIONS | | PARTITIONS |
| PBXT_STATISTICS |
| PLUGINS | | PLUGINS |
| PROCESSLIST | | PROCESSLIST |
| PROFILING | | PROFILING |
@ -177,30 +200,7 @@ Database: INFORMATION_SCHEMA
| USER_PRIVILEGES | | USER_PRIVILEGES |
| USER_STATISTICS | | USER_STATISTICS |
| VIEWS | | VIEWS |
| INNODB_CMPMEM_RESET |
| PBXT_STATISTICS |
| INNODB_CMPMEM |
| INNODB_RSEG |
| INNODB_SYS_TABLESTATS |
| INNODB_LOCK_WAITS |
| INNODB_INDEX_STATS |
| INNODB_CMP |
| INNODB_SYS_FOREIGN_COLS |
| INNODB_CMP_RESET |
| INNODB_BUFFER_POOL_PAGES |
| INNODB_TRX |
| INNODB_BUFFER_POOL_PAGES_INDEX |
| INNODB_LOCKS |
| INNODB_BUFFER_POOL_PAGES_BLOB |
| INNODB_SYS_TABLES |
| INNODB_SYS_FIELDS |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_STATS |
| INNODB_SYS_FOREIGN |
| INNODB_SYS_INDEXES |
| XTRADB_ADMIN_COMMAND | | XTRADB_ADMIN_COMMAND |
| INNODB_TABLE_STATS |
+---------------------------------------+
Wildcard: inf_rmation_schema Wildcard: inf_rmation_schema
+--------------------+ +--------------------+
| Databases | | Databases |

View File

@ -1,18 +1,3 @@
# Copyright (c) 2009, 2011, 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,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
RESET MASTER; RESET MASTER;

View File

@ -1,18 +1,3 @@
# Copyright (c) 2009, 2011, 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
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA

View File

@ -1,18 +1,3 @@
# Copyright (c) 2009, 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
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--disable_warnings --disable_warnings

View File

@ -1,18 +1,3 @@
# Copyright (c) 2009, 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,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;

View File

@ -1,18 +1,3 @@
# Copyright (c) 2008, 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
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
show databases; show databases;

View File

@ -1,18 +1,3 @@
# 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
# Routine to be called by pfs_upgrade.test # Routine to be called by pfs_upgrade.test
# $out_file and $err_file must be set within pfs_upgrade.test. # $out_file and $err_file must be set within pfs_upgrade.test.
# #

View File

@ -1,18 +1,3 @@
# Copyright (C) 2009-2010 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
# Verify that statistics aggregated by different criteria are consistent. # Verify that statistics aggregated by different criteria are consistent.

View File

@ -1,18 +1,3 @@
# Copyright (c) 2009, 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,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
# Check error handling for invalid server start options # Check error handling for invalid server start options

View File

@ -1,18 +1,3 @@
# Copyright (c) 2009, 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,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
# Check error handling for ambiguous server start options # Check error handling for ambiguous server start options

View File

@ -1,18 +1,3 @@
# 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,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
# Check error handling for invalid server start options # Check error handling for invalid server start options

View File

@ -1,18 +1,3 @@
# 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,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
# Check error handling for invalid server start options # Check error handling for invalid server start options

View File

@ -1,18 +1,3 @@
# 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,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
# Check error handling for invalid server start options # Check error handling for invalid server start options

View File

@ -1,18 +1,3 @@
# Copyright (c) 2009, 2011, 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,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/have_log_bin.inc --source include/have_log_bin.inc

View File

@ -1,18 +1,3 @@
# Copyright (c) 2009, 2011, 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,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/have_log_bin.inc --source include/have_log_bin.inc

View File

@ -1,18 +1,3 @@
# Copyright (c) 2009, 2011, 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,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/have_log_bin.inc --source include/have_log_bin.inc

View File

@ -1,18 +1,3 @@
# 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,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (c) 2009, 2010 Sun Microsystems, Inc.
#
# 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
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
# Check server start options, read from a .cnf file # Check server start options, read from a .cnf file

View File

@ -1,18 +1,3 @@
# Copyright (C) 2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
# Check server start options, read from a .cnf file # Check server start options, read from a .cnf file

View File

@ -1,18 +1,3 @@
# Copyright (C) 2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
# Test how columns privileges can be used on performance schema tables, # Test how columns privileges can be used on performance schema tables,
# for very fine control. # for very fine control.

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (c) 2009, 2010 Sun Microsystems, Inc.
#
# 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
############################################################################## ##############################################################################
# #
# List the test cases that are to be disabled temporarily. # List the test cases that are to be disabled temporarily.

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -1,18 +1,3 @@
# Copyright (C) 2008-2009 Sun Microsystems, Inc
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Tests for PERFORMANCE_SCHEMA # Tests for PERFORMANCE_SCHEMA
--source include/not_embedded.inc --source include/not_embedded.inc

Some files were not shown because too many files have changed in this diff Show More