mirror of
https://github.com/MariaDB/server.git
synced 2025-01-24 07:44:22 +01:00
Automerge with 5.1
This commit is contained in:
commit
b16c389248
525 changed files with 12292 additions and 4751 deletions
File diff suppressed because it is too large
Load diff
|
@ -16,12 +16,14 @@ check_cpu () {
|
|||
# on Linux (and others?) we can get detailed CPU information out of /proc
|
||||
cpuinfo="cat $CPUINFO"
|
||||
|
||||
# detect CPU architecture
|
||||
cpu_arch=`$cpuinfo | grep 'arch' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
|
||||
|
||||
# detect CPU family
|
||||
cpu_family=`$cpuinfo | grep 'family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
|
||||
if test -z "$cpu_family" ; then
|
||||
cpu_family=`$cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
|
||||
fi
|
||||
|
||||
# detect CPU vendor and model
|
||||
cpu_vendor=`$cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
|
||||
model_name=`$cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -1`
|
||||
|
@ -56,8 +58,8 @@ check_cpu () {
|
|||
fi
|
||||
;;
|
||||
*)
|
||||
cpu_family=`uname -m`;
|
||||
model_name=`uname -p`;
|
||||
cpu_family=`uname -p`;
|
||||
model_name=`uname -m`;
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
@ -65,9 +67,10 @@ check_cpu () {
|
|||
# detect CPU shortname as used by gcc options
|
||||
# this list is not complete, feel free to add further entries
|
||||
cpu_arg=""
|
||||
case "$cpu_family--$model_name" in
|
||||
low_cpu_arg=""
|
||||
case "$cpu_vendor--$cpu_family--$model_name--$cpu_arch" in
|
||||
# DEC Alpha
|
||||
Alpha*EV6*)
|
||||
*Alpha*EV6*)
|
||||
cpu_arg="ev6";
|
||||
;;
|
||||
#Core 2 Duo
|
||||
|
@ -96,6 +99,13 @@ check_cpu () {
|
|||
*Pentium*4*Mobile*)
|
||||
cpu_arg="pentium4m"
|
||||
;;
|
||||
*Pentium\(R\)*\ M*)
|
||||
cpu_arg="pentium-m"
|
||||
low_cpu_arg="pentium3"
|
||||
;;
|
||||
*Pentium\(R\)*\ D*)
|
||||
cpu_arg="prescott"
|
||||
;;
|
||||
*Pentium*4*)
|
||||
cpu_arg="pentium4"
|
||||
;;
|
||||
|
@ -120,6 +130,12 @@ check_cpu () {
|
|||
*Celeron*)
|
||||
cpu_arg="pentium2"
|
||||
;;
|
||||
*Atom*)
|
||||
cpu_arg="prescott"
|
||||
;;
|
||||
*GenuineIntel*)
|
||||
cpu_arg="pentium"
|
||||
;;
|
||||
*Turion*)
|
||||
cpu_arg="athlon64"
|
||||
;;
|
||||
|
@ -129,9 +145,30 @@ check_cpu () {
|
|||
*Athlon*)
|
||||
cpu_arg="athlon"
|
||||
;;
|
||||
*AMD-K7*)
|
||||
cpu_arg="athlon"
|
||||
;;
|
||||
*Athlon*XP\ *)
|
||||
cpu_arg="athlon-xp"
|
||||
;;
|
||||
*AMD*Sempron\(tm\)*)
|
||||
cpu_arg="athlon-mp"
|
||||
;;
|
||||
*AMD*Athlon\(tm\)\ 64*)
|
||||
cpu_arg="k8"
|
||||
;;
|
||||
*Opteron*)
|
||||
cpu_arg="opteron"
|
||||
;;
|
||||
*Phenom*)
|
||||
cpu_arg="k8"
|
||||
;;
|
||||
*AuthenticAMD*)
|
||||
cpu_arg="k6"
|
||||
;;
|
||||
*VIA\ *)
|
||||
cpu_arg="i686"
|
||||
;;
|
||||
# MacOSX / Intel
|
||||
*i386*i486*)
|
||||
cpu_arg="pentium-m"
|
||||
|
@ -143,8 +180,11 @@ check_cpu () {
|
|||
*Itanium*)
|
||||
cpu_arg="itanium"
|
||||
;;
|
||||
*IA-64*)
|
||||
cpu_arg="itanium"
|
||||
;;
|
||||
# Solaris Sparc
|
||||
*sparc*sun4u*)
|
||||
*sparc*sun4[uv]*)
|
||||
cpu_arg="sparc"
|
||||
;;
|
||||
# Power PC
|
||||
|
@ -160,6 +200,10 @@ check_cpu () {
|
|||
;;
|
||||
esac
|
||||
|
||||
if test "x$low_cpu_arg" = "x" ; then
|
||||
low_cpu_arg="$cpu_arg"
|
||||
fi
|
||||
|
||||
if test -z "$cpu_arg" ; then
|
||||
if test "$CPUINFO" != " " ; then
|
||||
# fallback to uname if necessary
|
||||
|
@ -198,7 +242,7 @@ check_cpu () {
|
|||
case `gcc -dumpmachine` in
|
||||
i?86-* | x86_64-*)
|
||||
if test "$cc_comp" -lt 304 ; then
|
||||
check_cpu_cflags="-mcpu=${cpu_arg}"
|
||||
check_cpu_cflags="-mcpu=${low_cpu_arg}"
|
||||
elif test "$cc_comp" -ge 402 ; then
|
||||
check_cpu_cflags="-mtune=native"
|
||||
else
|
||||
|
|
|
@ -74,8 +74,7 @@ mysqlimport_SOURCES= mysqlimport.c
|
|||
mysqlimport_CFLAGS= -DTHREAD -UUNDEF_THREADS_HACK
|
||||
mysqlimport_LDADD = $(CXXLDFLAGS) $(CLIENT_THREAD_LIBS) \
|
||||
@CLIENT_EXTRA_LDFLAGS@ \
|
||||
$(LIBMYSQLCLIENT_LA) \
|
||||
$(top_builddir)/mysys/libmysys.a
|
||||
$(LIBMYSQLCLIENT_LA)
|
||||
|
||||
mysqlshow_SOURCES= mysqlshow.c
|
||||
|
||||
|
@ -83,16 +82,15 @@ mysqlslap_SOURCES= mysqlslap.c
|
|||
mysqlslap_CFLAGS= -DTHREAD -UMYSQL_CLIENT_NO_THREADS
|
||||
mysqlslap_LDADD = $(CXXLDFLAGS) $(CLIENT_THREAD_LIBS) \
|
||||
@CLIENT_EXTRA_LDFLAGS@ \
|
||||
$(LIBMYSQLCLIENT_LA) \
|
||||
$(top_builddir)/mysys/libmysys.a
|
||||
$(LIBMYSQLCLIENT_LA)
|
||||
|
||||
mysqltest_SOURCES= mysqltest.cc
|
||||
mysqltest_CXXFLAGS= -DTHREAD -UMYSQL_CLIENT_NO_THREADS
|
||||
mysqltest_LDADD = $(CXXLDFLAGS) $(CLIENT_THREAD_LIBS) \
|
||||
@CLIENT_EXTRA_LDFLAGS@ \
|
||||
$(LIBMYSQLCLIENT_LA) \
|
||||
$(top_builddir)/mysys/libmysys.a \
|
||||
$(top_builddir)/regex/libregex.a \
|
||||
$(LIBMYSQLCLIENT_LA) \
|
||||
$(top_builddir)/regex/libregex.la
|
||||
$(CLIENT_THREAD_LIBS)
|
||||
|
||||
mysql_upgrade_SOURCES= mysql_upgrade.c \
|
||||
|
|
|
@ -4082,7 +4082,7 @@ static int com_source(String *buffer, char *line)
|
|||
If we got an error during source operation, don't abort the client
|
||||
if ignore_errors is set
|
||||
*/
|
||||
if (error && !batch_abort_on_error && ignore_errors)
|
||||
if (error && ignore_errors)
|
||||
error= -1; // Ignore error
|
||||
return error;
|
||||
}
|
||||
|
|
|
@ -109,6 +109,7 @@ static my_bool parsing_disabled= 0;
|
|||
static my_bool display_result_vertically= FALSE, display_result_lower= FALSE,
|
||||
display_metadata= FALSE, display_result_sorted= FALSE;
|
||||
static my_bool disable_query_log= 0, disable_result_log= 0;
|
||||
static my_bool disable_connect_log= 1;
|
||||
static my_bool disable_warnings= 0;
|
||||
static my_bool prepare_warnings_enabled= 0;
|
||||
static my_bool disable_info= 1;
|
||||
|
@ -202,6 +203,8 @@ static int replace(DYNAMIC_STRING *ds_str,
|
|||
const char *search_str, ulong search_len,
|
||||
const char *replace_str, ulong replace_len);
|
||||
|
||||
static uint opt_protocol=0;
|
||||
|
||||
DYNAMIC_ARRAY q_lines;
|
||||
|
||||
#include "sslopt-vars.h"
|
||||
|
@ -253,7 +256,9 @@ struct st_connection
|
|||
int cur_query_len;
|
||||
pthread_mutex_t mutex;
|
||||
pthread_cond_t cond;
|
||||
pthread_t tid;
|
||||
int query_done;
|
||||
my_bool has_thread;
|
||||
#endif /*EMBEDDED_LIBRARY*/
|
||||
};
|
||||
|
||||
|
@ -284,6 +289,7 @@ enum enum_commands {
|
|||
Q_DISABLE_RPL_PARSE, Q_EVAL_RESULT,
|
||||
Q_ENABLE_QUERY_LOG, Q_DISABLE_QUERY_LOG,
|
||||
Q_ENABLE_RESULT_LOG, Q_DISABLE_RESULT_LOG,
|
||||
Q_ENABLE_CONNECT_LOG, Q_DISABLE_CONNECT_LOG,
|
||||
Q_WAIT_FOR_SLAVE_TO_STOP,
|
||||
Q_ENABLE_WARNINGS, Q_DISABLE_WARNINGS,
|
||||
Q_ENABLE_INFO, Q_DISABLE_INFO,
|
||||
|
@ -352,6 +358,8 @@ const char *command_names[]=
|
|||
/* Enable/disable that the _result_ from a query is logged to result file */
|
||||
"enable_result_log",
|
||||
"disable_result_log",
|
||||
"enable_connect_log",
|
||||
"disable_connect_log",
|
||||
"wait_for_slave_to_stop",
|
||||
"enable_warnings",
|
||||
"disable_warnings",
|
||||
|
@ -607,14 +615,14 @@ public:
|
|||
lines++;
|
||||
|
||||
int show_offset= 0;
|
||||
char buf[256];
|
||||
char buf[256+1]; /* + zero termination for DBUG_PRINT */
|
||||
size_t bytes;
|
||||
bool found_bof= false;
|
||||
|
||||
/* Search backward in file until "lines" newline has been found */
|
||||
while (lines && !found_bof)
|
||||
{
|
||||
show_offset-= sizeof(buf);
|
||||
show_offset-= sizeof(buf)-1;
|
||||
while(fseek(m_file, show_offset, SEEK_END) != 0 && show_offset < 0)
|
||||
{
|
||||
found_bof= true;
|
||||
|
@ -622,13 +630,17 @@ public:
|
|||
show_offset++;
|
||||
}
|
||||
|
||||
if ((bytes= fread(buf, 1, sizeof(buf), m_file)) <= 0)
|
||||
if ((bytes= fread(buf, 1, sizeof(buf)-1, m_file)) <= 0)
|
||||
{
|
||||
fprintf(stderr, "Failed to read from '%s', errno: %d\n",
|
||||
m_file_name, errno);
|
||||
// ferror=0 will happen here if no queries executed yet
|
||||
if (ferror(m_file))
|
||||
fprintf(stderr,
|
||||
"Failed to read from '%s', errno: %d, feof:%d, ferror:%d\n",
|
||||
m_file_name, errno, feof(m_file), ferror(m_file));
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
IF_DBUG(buf[bytes]= '\0';)
|
||||
DBUG_PRINT("info", ("Read %lu bytes from file, buf: %s",
|
||||
(unsigned long)bytes, buf));
|
||||
|
||||
|
@ -673,8 +685,8 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
while ((bytes= fread(buf, 1, sizeof(buf), m_file)) > 0)
|
||||
if (fwrite(buf, 1, bytes, stderr))
|
||||
while ((bytes= fread(buf, 1, sizeof(buf)-1, m_file)) > 0)
|
||||
if (bytes != fwrite(buf, 1, bytes, stderr))
|
||||
die("Failed to write to '%s', errno: %d",
|
||||
m_file_name, errno);
|
||||
|
||||
|
@ -717,6 +729,10 @@ void handle_no_error(struct st_command*);
|
|||
|
||||
#ifdef EMBEDDED_LIBRARY
|
||||
|
||||
/* workaround for MySQL BUG#57491 */
|
||||
#undef MY_WME
|
||||
#define MY_WME 0
|
||||
|
||||
/* attributes of the query thread */
|
||||
pthread_attr_t cn_thd_attrib;
|
||||
|
||||
|
@ -746,8 +762,6 @@ pthread_handler_t send_one_query(void *arg)
|
|||
static int do_send_query(struct st_connection *cn, const char *q, int q_len,
|
||||
int flags)
|
||||
{
|
||||
pthread_t tid;
|
||||
|
||||
if (flags & QUERY_REAP_FLAG)
|
||||
return mysql_send_query(&cn->mysql, q, q_len);
|
||||
|
||||
|
@ -758,9 +772,10 @@ static int do_send_query(struct st_connection *cn, const char *q, int q_len,
|
|||
cn->cur_query= q;
|
||||
cn->cur_query_len= q_len;
|
||||
cn->query_done= 0;
|
||||
if (pthread_create(&tid, &cn_thd_attrib, send_one_query, (void*)cn))
|
||||
if (pthread_create(&cn->tid, &cn_thd_attrib, send_one_query, (void*)cn))
|
||||
die("Cannot start new thread for query");
|
||||
|
||||
cn->has_thread= TRUE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -773,6 +788,14 @@ static void wait_query_thread_end(struct st_connection *con)
|
|||
pthread_cond_wait(&con->cond, &con->mutex);
|
||||
pthread_mutex_unlock(&con->mutex);
|
||||
}
|
||||
if (con->has_thread)
|
||||
{
|
||||
#ifndef __WIN__
|
||||
/* May hang on Windows, but the problem it solves is not seen there */
|
||||
pthread_join(con->tid, NULL);
|
||||
#endif
|
||||
con->has_thread= FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
#else /*EMBEDDED_LIBRARY*/
|
||||
|
@ -1079,7 +1102,8 @@ void check_command_args(struct st_command *command,
|
|||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
void handle_command_error(struct st_command *command, uint error)
|
||||
void handle_command_error(struct st_command *command, uint error,
|
||||
int sys_errno)
|
||||
{
|
||||
DBUG_ENTER("handle_command_error");
|
||||
DBUG_PRINT("enter", ("error: %d", error));
|
||||
|
@ -1095,12 +1119,14 @@ void handle_command_error(struct st_command *command, uint error)
|
|||
|
||||
if (i >= 0)
|
||||
{
|
||||
DBUG_PRINT("info", ("command \"%.*s\" failed with expected error: %d",
|
||||
command->first_word_len, command->query, error));
|
||||
DBUG_PRINT("info", ("command \"%.*s\" failed with expected error: %u, errno: %d",
|
||||
command->first_word_len, command->query, error,
|
||||
sys_errno));
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
die("command \"%.*s\" failed with wrong error: %d",
|
||||
command->first_word_len, command->query, error);
|
||||
if (command->expected_errors.count > 0)
|
||||
die("command \"%.*s\" failed with wrong error: %u, errno: %d",
|
||||
command->first_word_len, command->query, error, sys_errno);
|
||||
}
|
||||
else if (command->expected_errors.err[0].type == ERR_ERRNO &&
|
||||
command->expected_errors.err[0].code.errnum != 0)
|
||||
|
@ -1241,15 +1267,6 @@ void die(const char *fmt, ...)
|
|||
DBUG_ENTER("die");
|
||||
DBUG_PRINT("enter", ("start_lineno: %d", start_lineno));
|
||||
|
||||
/*
|
||||
Protect against dying twice
|
||||
first time 'die' is called, try to write log files
|
||||
second time, just exit
|
||||
*/
|
||||
if (dying)
|
||||
cleanup_and_exit(1);
|
||||
dying= 1;
|
||||
|
||||
/* Print the error message */
|
||||
fprintf(stderr, "mysqltest: ");
|
||||
if (cur_file && cur_file != file_stack)
|
||||
|
@ -1268,6 +1285,15 @@ void die(const char *fmt, ...)
|
|||
fprintf(stderr, "\n");
|
||||
fflush(stderr);
|
||||
|
||||
/*
|
||||
Protect against dying twice
|
||||
first time 'die' is called, try to write log files
|
||||
second time, just exit
|
||||
*/
|
||||
if (dying)
|
||||
cleanup_and_exit(1);
|
||||
dying= 1;
|
||||
|
||||
log_file.show_tail(opt_tail_lines);
|
||||
|
||||
/*
|
||||
|
@ -1371,14 +1397,14 @@ void log_msg(const char *fmt, ...)
|
|||
|
||||
*/
|
||||
|
||||
void cat_file(DYNAMIC_STRING* ds, const char* filename)
|
||||
int cat_file(DYNAMIC_STRING* ds, const char* filename)
|
||||
{
|
||||
int fd;
|
||||
size_t len;
|
||||
char buff[512];
|
||||
|
||||
if ((fd= my_open(filename, O_RDONLY, MYF(0))) < 0)
|
||||
die("Failed to open file '%s'", filename);
|
||||
return 1;
|
||||
while((len= my_read(fd, (uchar*)&buff,
|
||||
sizeof(buff), MYF(0))) > 0)
|
||||
{
|
||||
|
@ -1402,6 +1428,7 @@ void cat_file(DYNAMIC_STRING* ds, const char* filename)
|
|||
dynstr_append_mem(ds, start, p-start);
|
||||
}
|
||||
my_close(fd, MYF(0));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1809,7 +1836,7 @@ int dyn_string_cmp(DYNAMIC_STRING* ds, const char *fname)
|
|||
{
|
||||
my_close(fd, MYF(0));
|
||||
/* Remove the temporary file */
|
||||
my_delete(temp_file_path, MYF(0));
|
||||
my_delete(temp_file_path, MYF(MY_WME));
|
||||
die("Failed to write file '%s'", temp_file_path);
|
||||
}
|
||||
|
||||
|
@ -1817,7 +1844,7 @@ int dyn_string_cmp(DYNAMIC_STRING* ds, const char *fname)
|
|||
|
||||
my_close(fd, MYF(0));
|
||||
/* Remove the temporary file */
|
||||
my_delete(temp_file_path, MYF(0));
|
||||
my_delete(temp_file_path, MYF(MY_WME));
|
||||
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
@ -1861,7 +1888,7 @@ void check_result()
|
|||
if (access(reject_file, W_OK) == 0)
|
||||
{
|
||||
/* Result file directory is writable, save reject file there */
|
||||
fn_format(reject_file, result_file_name, NULL,
|
||||
fn_format(reject_file, result_file_name, "",
|
||||
".reject", MY_REPLACE_EXT);
|
||||
}
|
||||
else
|
||||
|
@ -2208,8 +2235,14 @@ void var_query_set(VAR *var, const char *query, const char** query_end)
|
|||
DBUG_ENTER("var_query_set");
|
||||
LINT_INIT(res);
|
||||
|
||||
/* Only white space or ) allowed past ending ` */
|
||||
while (end > query && *end != '`')
|
||||
{
|
||||
if (*end && (*end != ' ' && *end != '\t' && *end != '\n' && *end != ')'))
|
||||
die("Spurious text after `query` expression");
|
||||
--end;
|
||||
}
|
||||
|
||||
if (query == end)
|
||||
die("Syntax error in query, missing '`'");
|
||||
++query;
|
||||
|
@ -2416,6 +2449,9 @@ void eval_expr(VAR *v, const char *p, const char **p_end)
|
|||
if ((vp= var_get(p, p_end, 0, 0)))
|
||||
var_copy(v, vp);
|
||||
|
||||
/* Apparently it is not safe to assume null-terminated string */
|
||||
v->str_val[v->str_val_len]= 0;
|
||||
|
||||
/* Make sure there was just a $variable and nothing else */
|
||||
const char* end= *p_end + 1;
|
||||
if (end < expected_end)
|
||||
|
@ -2762,8 +2798,9 @@ void do_exec(struct st_command *command)
|
|||
else
|
||||
{
|
||||
dynstr_free(&ds_cmd);
|
||||
die("command \"%s\" failed with wrong error: %d",
|
||||
command->first_argument, status);
|
||||
if (command->expected_errors.count > 0)
|
||||
die("command \"%s\" failed with wrong error: %d",
|
||||
command->first_argument, status);
|
||||
}
|
||||
}
|
||||
else if (command->expected_errors.err[0].type == ERR_ERRNO &&
|
||||
|
@ -2907,6 +2944,41 @@ void do_system(struct st_command *command)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
SYNOPSIS
|
||||
set_wild_chars
|
||||
set true to set * etc. as wild char, false to reset
|
||||
|
||||
DESCRIPTION
|
||||
Auxiliary function to set "our" wild chars before calling wild_compare
|
||||
This is needed because the default values are changed to SQL syntax
|
||||
in mysqltest_embedded.
|
||||
*/
|
||||
|
||||
void set_wild_chars (my_bool set)
|
||||
{
|
||||
static char old_many= 0, old_one, old_prefix;
|
||||
|
||||
if (set)
|
||||
{
|
||||
if (wild_many == '*') return; // No need
|
||||
old_many= wild_many;
|
||||
old_one= wild_one;
|
||||
old_prefix= wild_prefix;
|
||||
wild_many= '*';
|
||||
wild_one= '?';
|
||||
wild_prefix= 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (! old_many) return; // Was not set
|
||||
wild_many= old_many;
|
||||
wild_one= old_one;
|
||||
wild_prefix= old_prefix;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
SYNOPSIS
|
||||
do_remove_file
|
||||
|
@ -2931,8 +3003,8 @@ void do_remove_file(struct st_command *command)
|
|||
' ');
|
||||
|
||||
DBUG_PRINT("info", ("removing file: %s", ds_filename.str));
|
||||
error= my_delete(ds_filename.str, MYF(0)) != 0;
|
||||
handle_command_error(command, error);
|
||||
error= my_delete(ds_filename.str, MYF(disable_warnings ? 0 : MY_WME)) != 0;
|
||||
handle_command_error(command, error, my_errno);
|
||||
dynstr_free(&ds_filename);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
@ -2950,7 +3022,7 @@ void do_remove_file(struct st_command *command)
|
|||
|
||||
void do_remove_files_wildcard(struct st_command *command)
|
||||
{
|
||||
int error= 0;
|
||||
int error= 0, sys_errno= 0;
|
||||
uint i;
|
||||
MY_DIR *dir_info;
|
||||
FILEINFO *file;
|
||||
|
@ -2974,15 +3046,20 @@ void do_remove_files_wildcard(struct st_command *command)
|
|||
|
||||
DBUG_PRINT("info", ("listing directory: %s", dirname));
|
||||
/* Note that my_dir sorts the list if not given any flags */
|
||||
if (!(dir_info= my_dir(dirname, MYF(MY_DONT_SORT | MY_WANT_STAT))))
|
||||
if (!(dir_info= my_dir(dirname, MYF(MY_DONT_SORT | MY_WANT_STAT | MY_WME))))
|
||||
{
|
||||
error= 1;
|
||||
sys_errno= my_errno;
|
||||
goto end;
|
||||
}
|
||||
init_dynamic_string(&ds_file_to_remove, dirname, 1024, 1024);
|
||||
dir_separator[0]= FN_LIBCHAR;
|
||||
dir_separator[1]= 0;
|
||||
dynstr_append(&ds_file_to_remove, dir_separator);
|
||||
|
||||
/* Set default wild chars for wild_compare, is changed in embedded mode */
|
||||
set_wild_chars(1);
|
||||
|
||||
for (i= 0; i < (uint) dir_info->number_off_files; i++)
|
||||
{
|
||||
file= dir_info->dir_entry + i;
|
||||
|
@ -2998,14 +3075,16 @@ void do_remove_files_wildcard(struct st_command *command)
|
|||
ds_file_to_remove.str[ds_directory.length + 1]= 0;
|
||||
dynstr_append(&ds_file_to_remove, file->name);
|
||||
DBUG_PRINT("info", ("removing file: %s", ds_file_to_remove.str));
|
||||
error= my_delete(ds_file_to_remove.str, MYF(0)) != 0;
|
||||
if ((error= (my_delete(ds_file_to_remove.str, MYF(MY_WME)) != 0)))
|
||||
sys_errno= my_errno;
|
||||
if (error)
|
||||
break;
|
||||
}
|
||||
set_wild_chars(0);
|
||||
my_dirend(dir_info);
|
||||
|
||||
end:
|
||||
handle_command_error(command, error);
|
||||
handle_command_error(command, error, sys_errno);
|
||||
dynstr_free(&ds_directory);
|
||||
dynstr_free(&ds_wild);
|
||||
dynstr_free(&ds_file_to_remove);
|
||||
|
@ -3043,8 +3122,8 @@ void do_copy_file(struct st_command *command)
|
|||
|
||||
DBUG_PRINT("info", ("Copy %s to %s", ds_from_file.str, ds_to_file.str));
|
||||
error= (my_copy(ds_from_file.str, ds_to_file.str,
|
||||
MYF(MY_DONT_OVERWRITE_FILE)) != 0);
|
||||
handle_command_error(command, error);
|
||||
MYF(MY_DONT_OVERWRITE_FILE | MY_WME)) != 0);
|
||||
handle_command_error(command, error, my_errno);
|
||||
dynstr_free(&ds_from_file);
|
||||
dynstr_free(&ds_to_file);
|
||||
DBUG_VOID_RETURN;
|
||||
|
@ -3079,8 +3158,8 @@ void do_move_file(struct st_command *command)
|
|||
|
||||
DBUG_PRINT("info", ("Move %s to %s", ds_from_file.str, ds_to_file.str));
|
||||
error= (my_rename(ds_from_file.str, ds_to_file.str,
|
||||
MYF(0)) != 0);
|
||||
handle_command_error(command, error);
|
||||
MYF(disable_warnings ? 0 : MY_WME)) != 0);
|
||||
handle_command_error(command, error, my_errno);
|
||||
dynstr_free(&ds_from_file);
|
||||
dynstr_free(&ds_to_file);
|
||||
DBUG_VOID_RETURN;
|
||||
|
@ -3100,6 +3179,7 @@ void do_move_file(struct st_command *command)
|
|||
|
||||
void do_chmod_file(struct st_command *command)
|
||||
{
|
||||
int error;
|
||||
long mode= 0;
|
||||
static DYNAMIC_STRING ds_mode;
|
||||
static DYNAMIC_STRING ds_file;
|
||||
|
@ -3120,7 +3200,10 @@ void do_chmod_file(struct st_command *command)
|
|||
die("You must write a 4 digit octal number for mode");
|
||||
|
||||
DBUG_PRINT("info", ("chmod %o %s", (uint)mode, ds_file.str));
|
||||
handle_command_error(command, chmod(ds_file.str, mode));
|
||||
error= 0;
|
||||
if (chmod(ds_file.str, mode))
|
||||
error= 1;
|
||||
handle_command_error(command, error, errno);
|
||||
dynstr_free(&ds_mode);
|
||||
dynstr_free(&ds_file);
|
||||
DBUG_VOID_RETURN;
|
||||
|
@ -3153,7 +3236,7 @@ void do_file_exist(struct st_command *command)
|
|||
|
||||
DBUG_PRINT("info", ("Checking for existence of file: %s", ds_filename.str));
|
||||
error= (access(ds_filename.str, F_OK) != 0);
|
||||
handle_command_error(command, error);
|
||||
handle_command_error(command, error, errno);
|
||||
dynstr_free(&ds_filename);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
@ -3183,8 +3266,8 @@ void do_mkdir(struct st_command *command)
|
|||
' ');
|
||||
|
||||
DBUG_PRINT("info", ("creating directory: %s", ds_dirname.str));
|
||||
error= my_mkdir(ds_dirname.str, 0777, MYF(0)) != 0;
|
||||
handle_command_error(command, error);
|
||||
error= my_mkdir(ds_dirname.str, 0777, MYF(MY_WME)) != 0;
|
||||
handle_command_error(command, error, my_errno);
|
||||
dynstr_free(&ds_dirname);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
@ -3214,7 +3297,7 @@ void do_rmdir(struct st_command *command)
|
|||
|
||||
DBUG_PRINT("info", ("removing directory: %s", ds_dirname.str));
|
||||
error= rmdir(ds_dirname.str) != 0;
|
||||
handle_command_error(command, error);
|
||||
handle_command_error(command, error, errno);
|
||||
dynstr_free(&ds_dirname);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
@ -3243,6 +3326,7 @@ static int get_list_files(DYNAMIC_STRING *ds, const DYNAMIC_STRING *ds_dirname,
|
|||
/* Note that my_dir sorts the list if not given any flags */
|
||||
if (!(dir_info= my_dir(ds_dirname->str, MYF(0))))
|
||||
DBUG_RETURN(1);
|
||||
set_wild_chars(1);
|
||||
for (i= 0; i < (uint) dir_info->number_off_files; i++)
|
||||
{
|
||||
file= dir_info->dir_entry + i;
|
||||
|
@ -3256,6 +3340,7 @@ static int get_list_files(DYNAMIC_STRING *ds, const DYNAMIC_STRING *ds_dirname,
|
|||
dynstr_append(ds, file->name);
|
||||
dynstr_append(ds, "\n");
|
||||
}
|
||||
set_wild_chars(0);
|
||||
my_dirend(dir_info);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
@ -3288,7 +3373,7 @@ static void do_list_files(struct st_command *command)
|
|||
sizeof(list_files_args)/sizeof(struct command_arg), ' ');
|
||||
|
||||
error= get_list_files(&ds_res, &ds_dirname, &ds_wild);
|
||||
handle_command_error(command, error);
|
||||
handle_command_error(command, error, my_errno);
|
||||
dynstr_free(&ds_dirname);
|
||||
dynstr_free(&ds_wild);
|
||||
DBUG_VOID_RETURN;
|
||||
|
@ -3330,7 +3415,7 @@ static void do_list_files_write_file_command(struct st_command *command,
|
|||
|
||||
init_dynamic_string(&ds_content, "", 1024, 1024);
|
||||
error= get_list_files(&ds_content, &ds_dirname, &ds_wild);
|
||||
handle_command_error(command, error);
|
||||
handle_command_error(command, error, my_errno);
|
||||
str_to_file2(ds_filename.str, ds_content.str, ds_content.length, append);
|
||||
dynstr_free(&ds_content);
|
||||
dynstr_free(&ds_filename);
|
||||
|
@ -3538,6 +3623,7 @@ void do_append_file(struct st_command *command)
|
|||
|
||||
void do_cat_file(struct st_command *command)
|
||||
{
|
||||
int error;
|
||||
static DYNAMIC_STRING ds_filename;
|
||||
const struct command_arg cat_file_args[] = {
|
||||
{ "filename", ARG_STRING, TRUE, &ds_filename, "File to read from" }
|
||||
|
@ -3552,8 +3638,8 @@ void do_cat_file(struct st_command *command)
|
|||
|
||||
DBUG_PRINT("info", ("Reading from, file: %s", ds_filename.str));
|
||||
|
||||
cat_file(&ds_res, ds_filename.str);
|
||||
|
||||
error= cat_file(&ds_res, ds_filename.str);
|
||||
handle_command_error(command, error, my_errno);
|
||||
dynstr_free(&ds_filename);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
@ -3612,7 +3698,7 @@ void do_diff_files(struct st_command *command)
|
|||
|
||||
dynstr_free(&ds_filename);
|
||||
dynstr_free(&ds_filename2);
|
||||
handle_command_error(command, error);
|
||||
handle_command_error(command, error, -1);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
@ -3817,10 +3903,22 @@ void do_perl(struct st_command *command)
|
|||
}
|
||||
error= pclose(res_file);
|
||||
|
||||
/* Remove the temporary file */
|
||||
my_delete(temp_file_path, MYF(0));
|
||||
/* Remove the temporary file, but keep it if perl failed */
|
||||
if (!error)
|
||||
my_delete(temp_file_path, MYF(MY_WME));
|
||||
|
||||
handle_command_error(command, WEXITSTATUS(error));
|
||||
/* Check for error code that indicates perl could not be started */
|
||||
int exstat= WEXITSTATUS(error);
|
||||
#ifdef __WIN__
|
||||
if (exstat == 1)
|
||||
/* Text must begin 'perl not found' as mtr looks for it */
|
||||
abort_not_supported_test("perl not found in path or did not start");
|
||||
#else
|
||||
if (exstat == 127)
|
||||
abort_not_supported_test("perl not found in path");
|
||||
#endif
|
||||
else
|
||||
handle_command_error(command, WEXITSTATUS(error), my_errno);
|
||||
}
|
||||
dynstr_free(&ds_delimiter);
|
||||
DBUG_VOID_RETURN;
|
||||
|
@ -4764,6 +4862,16 @@ void select_connection_name(const char *name)
|
|||
|
||||
set_current_connection(con);
|
||||
|
||||
/* Connection logging if enabled */
|
||||
if (!disable_connect_log && !disable_query_log)
|
||||
{
|
||||
DYNAMIC_STRING *ds= &ds_res;
|
||||
|
||||
dynstr_append_mem(ds, "connection ", 11);
|
||||
replace_dynstr_append(ds, name);
|
||||
dynstr_append_mem(ds, ";\n", 2);
|
||||
}
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
@ -4850,6 +4958,17 @@ void do_close_connection(struct st_command *command)
|
|||
var_set_int("$mysql_get_server_version", 0xFFFFFFFF);
|
||||
var_set_string("$CURRENT_CONNECTION", con->name);
|
||||
}
|
||||
|
||||
/* Connection logging if enabled */
|
||||
if (!disable_connect_log && !disable_query_log)
|
||||
{
|
||||
DYNAMIC_STRING *ds= &ds_res;
|
||||
|
||||
dynstr_append_mem(ds, "disconnect ", 11);
|
||||
replace_dynstr_append(ds, ds_connection.str);
|
||||
dynstr_append_mem(ds, ";\n", 2);
|
||||
}
|
||||
|
||||
dynstr_free(&ds_connection);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
@ -4961,7 +5080,7 @@ int connect_n_handle_errors(struct st_command *command,
|
|||
ds= &ds_res;
|
||||
|
||||
/* Only log if an error is expected */
|
||||
if (!command->abort_on_error &&
|
||||
if (command->expected_errors.count > 0 &&
|
||||
!disable_query_log)
|
||||
{
|
||||
/*
|
||||
|
@ -4985,6 +5104,13 @@ int connect_n_handle_errors(struct st_command *command,
|
|||
dynstr_append_mem(ds, delimiter, delimiter_length);
|
||||
dynstr_append_mem(ds, "\n", 1);
|
||||
}
|
||||
/* Simlified logging if enabled */
|
||||
if (!disable_connect_log && !disable_query_log)
|
||||
{
|
||||
replace_dynstr_append(ds, command->query);
|
||||
dynstr_append_mem(ds, ";\n", 2);
|
||||
}
|
||||
|
||||
while (!mysql_real_connect(con, host, user, pass, db, port, sock ? sock: 0,
|
||||
CLIENT_MULTI_STATEMENTS))
|
||||
{
|
||||
|
@ -5175,6 +5301,7 @@ void do_connect(struct st_command *command)
|
|||
|
||||
#ifdef EMBEDDED_LIBRARY
|
||||
con_slot->query_done= 1;
|
||||
con_slot->has_thread= FALSE;
|
||||
#endif
|
||||
if (!mysql_init(&con_slot->mysql))
|
||||
die("Failed on mysql_init()");
|
||||
|
@ -5207,11 +5334,13 @@ void do_connect(struct st_command *command)
|
|||
#ifdef __WIN__
|
||||
if (con_pipe)
|
||||
{
|
||||
uint protocol= MYSQL_PROTOCOL_PIPE;
|
||||
mysql_options(&con_slot->mysql, MYSQL_OPT_PROTOCOL, &protocol);
|
||||
opt_protocol= MYSQL_PROTOCOL_PIPE;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (opt_protocol)
|
||||
mysql_options(&con_slot->mysql, MYSQL_OPT_PROTOCOL, (char*) &opt_protocol);
|
||||
|
||||
#ifdef HAVE_SMEM
|
||||
if (con_shm)
|
||||
{
|
||||
|
@ -5382,8 +5511,20 @@ void do_block(enum block_cmd cmd, struct st_command* command)
|
|||
/* Define inner block */
|
||||
cur_block++;
|
||||
cur_block->cmd= cmd;
|
||||
cur_block->ok= (v.int_val ? TRUE : FALSE);
|
||||
if (v.int_val)
|
||||
{
|
||||
cur_block->ok= TRUE;
|
||||
} else
|
||||
/* Any non-empty string which does not begin with 0 is also TRUE */
|
||||
{
|
||||
p= v.str_val;
|
||||
/* First skip any leading white space or unary -+ */
|
||||
while (*p && ((my_isspace(charset_info, *p) || *p == '-' || *p == '+')))
|
||||
p++;
|
||||
|
||||
cur_block->ok= (*p && *p != '0') ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
if (not_expr)
|
||||
cur_block->ok = !cur_block->ok;
|
||||
|
||||
|
@ -5483,6 +5624,8 @@ int read_line(char *buf, int size)
|
|||
char c, UNINIT_VAR(last_quote);
|
||||
char *p= buf, *buf_end= buf + size - 1;
|
||||
int skip_char= 0;
|
||||
my_bool have_slash= FALSE;
|
||||
|
||||
enum {R_NORMAL, R_Q, R_SLASH_IN_Q,
|
||||
R_COMMENT, R_LINE_START} state= R_LINE_START;
|
||||
DBUG_ENTER("read_line");
|
||||
|
@ -5554,9 +5697,13 @@ int read_line(char *buf, int size)
|
|||
}
|
||||
else if (c == '\'' || c == '"' || c == '`')
|
||||
{
|
||||
last_quote= c;
|
||||
state= R_Q;
|
||||
if (! have_slash)
|
||||
{
|
||||
last_quote= c;
|
||||
state= R_Q;
|
||||
}
|
||||
}
|
||||
have_slash= (c == '\\');
|
||||
break;
|
||||
|
||||
case R_COMMENT:
|
||||
|
@ -5932,6 +6079,8 @@ static struct my_option my_long_options[] =
|
|||
GET_INT, REQUIRED_ARG, 128, 8, 5120, 0, 0, 0},
|
||||
{"password", 'p', "Password to use when connecting to server.",
|
||||
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
|
@ -6071,7 +6220,7 @@ void read_embedded_server_arguments(const char *name)
|
|||
|
||||
|
||||
static my_bool
|
||||
get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||
get_one_option(int optid, const struct my_option *opt,
|
||||
char *argument)
|
||||
{
|
||||
switch(optid) {
|
||||
|
@ -6160,6 +6309,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||
case 'V':
|
||||
print_version();
|
||||
exit(0);
|
||||
case OPT_MYSQL_PROTOCOL:
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib,
|
||||
opt->name);
|
||||
#endif
|
||||
break;
|
||||
case '?':
|
||||
usage();
|
||||
exit(0);
|
||||
|
@ -7292,11 +7447,13 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
|
|||
(flags & QUERY_REAP_FLAG));
|
||||
DBUG_ENTER("run_query");
|
||||
|
||||
init_dynamic_string(&ds_warnings, NULL, 0, 256);
|
||||
|
||||
if (cn->pending && (flags & QUERY_SEND_FLAG))
|
||||
die ("Cannot run query on connection between send and reap");
|
||||
|
||||
if (!(flags & QUERY_SEND_FLAG) && !cn->pending)
|
||||
die ("Cannot reap on a connection without pending send");
|
||||
|
||||
init_dynamic_string(&ds_warnings, NULL, 0, 256);
|
||||
/*
|
||||
Evaluate query if this is an eval command
|
||||
*/
|
||||
|
@ -7638,9 +7795,6 @@ void get_command_type(struct st_command* command)
|
|||
sizeof(saved_expected_errors));
|
||||
DBUG_PRINT("info", ("There are %d expected errors",
|
||||
command->expected_errors.count));
|
||||
command->abort_on_error= (command->expected_errors.count == 0 &&
|
||||
abort_on_error);
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
@ -7927,6 +8081,9 @@ int main(int argc, char **argv)
|
|||
mysql_options(&con->mysql, MYSQL_SET_CHARSET_DIR,
|
||||
opt_charsets_dir);
|
||||
|
||||
if (opt_protocol)
|
||||
mysql_options(&con->mysql,MYSQL_OPT_PROTOCOL,(char*)&opt_protocol);
|
||||
|
||||
#ifdef HAVE_OPENSSL
|
||||
|
||||
if (opt_use_ssl)
|
||||
|
@ -7986,6 +8143,10 @@ int main(int argc, char **argv)
|
|||
command->type= Q_COMMENT;
|
||||
}
|
||||
|
||||
/* (Re-)set abort_on_error for this command */
|
||||
command->abort_on_error= (command->expected_errors.count == 0 &&
|
||||
abort_on_error);
|
||||
|
||||
/* delimiter needs to be executed so we can continue to parse */
|
||||
ok_to_do= cur_block->ok || command->type == Q_DELIMITER;
|
||||
/*
|
||||
|
@ -8033,6 +8194,8 @@ int main(int argc, char **argv)
|
|||
case Q_DISABLE_ABORT_ON_ERROR: abort_on_error=0; break;
|
||||
case Q_ENABLE_RESULT_LOG: disable_result_log=0; break;
|
||||
case Q_DISABLE_RESULT_LOG: disable_result_log=1; break;
|
||||
case Q_ENABLE_CONNECT_LOG: disable_connect_log=0; break;
|
||||
case Q_DISABLE_CONNECT_LOG: disable_connect_log=1; break;
|
||||
case Q_ENABLE_WARNINGS: disable_warnings=0; break;
|
||||
case Q_DISABLE_WARNINGS: disable_warnings=1; break;
|
||||
case Q_ENABLE_PREPARE_WARNINGS: prepare_warnings_enabled=1; break;
|
||||
|
@ -8199,12 +8362,12 @@ int main(int argc, char **argv)
|
|||
command->last_argument= command->end;
|
||||
break;
|
||||
case Q_PING:
|
||||
handle_command_error(command, mysql_ping(&cur_con->mysql));
|
||||
handle_command_error(command, mysql_ping(&cur_con->mysql), -1);
|
||||
break;
|
||||
case Q_SEND_SHUTDOWN:
|
||||
handle_command_error(command,
|
||||
mysql_shutdown(&cur_con->mysql,
|
||||
SHUTDOWN_DEFAULT));
|
||||
SHUTDOWN_DEFAULT), -1);
|
||||
break;
|
||||
case Q_SHUTDOWN_SERVER:
|
||||
do_shutdown_server(command);
|
||||
|
@ -8363,16 +8526,6 @@ int main(int argc, char **argv)
|
|||
check_result();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
No result_file_name specified, the result
|
||||
has been printed to stdout, exit with error
|
||||
unless script has called "exit" to indicate success
|
||||
*/
|
||||
if (abort_flag == 0)
|
||||
die("Exit with failure! Call 'exit' in script to return with sucess");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -16,7 +16,7 @@ AC_DEFUN([MY_MAINTAINER_MODE], [
|
|||
AC_DEFUN([MY_MAINTAINER_MODE_WARNINGS], [
|
||||
# Setup GCC warning options.
|
||||
AS_IF([test "$GCC" = "yes"], [
|
||||
C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Werror"
|
||||
C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror"
|
||||
CXX_WARNINGS="${C_WARNINGS} -Wno-unused-parameter"
|
||||
])
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ AC_DEFUN([MYSQL_PLUGIN],[
|
|||
[__MYSQL_PLUGIN_]AS_TR_CPP([$1])[__],
|
||||
m4_default([$2], [$1 plugin]),
|
||||
m4_default([$3], [plugin for $1]),
|
||||
m4_default([$4], []),
|
||||
m4_default([[$4]], []),
|
||||
)
|
||||
])
|
||||
|
||||
|
@ -60,7 +60,7 @@ dnl
|
|||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_STORAGE_ENGINE],[
|
||||
MYSQL_PLUGIN([$1], [$3], [$4], [[$5]])
|
||||
MYSQL_PLUGIN([$1], [$3], [$4], [$5])
|
||||
MYSQL_PLUGIN_DEFINE([$1], [WITH_]AS_TR_CPP([$1])[_STORAGE_ENGINE])
|
||||
ifelse([$2],[no],[],[
|
||||
_MYSQL_LEGACY_STORAGE_ENGINE(
|
||||
|
@ -115,18 +115,32 @@ dnl ---------------------------------------------------------------------------
|
|||
dnl Macro: MYSQL_PLUGIN_STATIC
|
||||
dnl
|
||||
dnl SYNOPSIS
|
||||
dnl MYSQL_PLUGIN_STATIC([name],[libmyplugin.a])
|
||||
dnl MYSQL_PLUGIN_STATIC([name],[libmyplugin.a],[libmyplugin_embedded.a])
|
||||
dnl
|
||||
dnl DESCRIPTION
|
||||
dnl Declare the name for the static library
|
||||
dnl Declare the name for the static library
|
||||
dnl
|
||||
dnl Third argument is optional, only needed for special plugins that depend
|
||||
dnl on server internals and have source files that must be compiled specially
|
||||
dnl with -DEMBEDDED_LIBRARY for embedded server. If specified, the third
|
||||
dnl argument is used to link embedded server instead of the second.
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_PLUGIN_STATIC],[
|
||||
MYSQL_REQUIRE_PLUGIN([$1])
|
||||
m4_define([MYSQL_PLUGIN_STATIC_]AS_TR_CPP([$1]), [$2])
|
||||
ifelse($#, 3, [
|
||||
m4_define([MYSQL_PLUGIN_EMBEDDED_]AS_TR_CPP([$1]), [$3])
|
||||
])
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Substitution variable to use to compile source files specially for
|
||||
dnl embedded server.
|
||||
dnl To be used by plugins that have sources that depend on server internals.
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_SUBST([plugin_embedded_defs], ["-DEMBEDDED_LIBRARY -DMYSQL_SERVER"])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_PLUGIN_DYNAMIC
|
||||
|
@ -253,28 +267,6 @@ AC_DEFUN([MYSQL_PLUGIN_ACTIONS],[
|
|||
])
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS
|
||||
dnl
|
||||
dnl SYNOPSIS
|
||||
dnl MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS([name],[file name])
|
||||
dnl
|
||||
dnl DESCRIPTION
|
||||
dnl Some modules in plugins keep dependance on structures
|
||||
dnl declared in sql/ (THD class usually)
|
||||
dnl That has to be fixed in the future, but until then
|
||||
dnl we have to recompile these modules when we want to
|
||||
dnl to compile server parts with the different #defines
|
||||
dnl Normally it happens when we compile the embedded server
|
||||
dnl Thus one should mark such files in his handler using this macro
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS],[
|
||||
MYSQL_REQUIRE_PLUGIN([$1])
|
||||
m4_define([MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS_]AS_TR_CPP([$1]), [$2])
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_CONFIGURE_PLUGINS
|
||||
dnl
|
||||
|
@ -335,11 +327,25 @@ AC_DEFUN([_MYSQL_EMIT_CHECK_PLUGIN],[
|
|||
[MYSQL_PLUGIN_DYNAMIC_]AS_TR_CPP([$1]),
|
||||
[MYSQL_PLUGIN_MANDATORY_]AS_TR_CPP([$1]),
|
||||
[MYSQL_PLUGIN_DISABLED_]AS_TR_CPP([$1]),
|
||||
[MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS_]AS_TR_CPP([$1]),
|
||||
[MYSQL_PLUGIN_EMBEDDED_]AS_TR_CPP([$1]),
|
||||
[MYSQL_PLUGIN_ACTIONS_]AS_TR_CPP([$1])
|
||||
)
|
||||
])
|
||||
|
||||
dnl __MYSQL_EMIT_CHECK_PLUGIN arguments:
|
||||
dnl
|
||||
dnl 1 - plugin identifying name
|
||||
dnl 2 - plugin identifying name, with `-' replaced by `_'
|
||||
dnl 3 - plugin long name
|
||||
dnl 4 - plugin description
|
||||
dnl 5 - mysql_plugin_define (eg. WITH_xxx_STORAGE_ENGINE)
|
||||
dnl 6 - directory
|
||||
dnl 7 - static target (if supports static build)
|
||||
dnl 8 - dynamic target (if supports dynamic build)
|
||||
dnl 9 - mandatory flag
|
||||
dnl 10 - disabled flag
|
||||
dnl 11 - static target for libmysqld (if different from $7)
|
||||
dnl 12 - actions
|
||||
AC_DEFUN([__MYSQL_EMIT_CHECK_PLUGIN],[
|
||||
m4_ifdef([$5],[
|
||||
AH_TEMPLATE($5, [Include ]$4[ into mysqld])
|
||||
|
@ -390,6 +396,14 @@ AC_DEFUN([__MYSQL_EMIT_CHECK_PLUGIN],[
|
|||
fi
|
||||
;;
|
||||
esac
|
||||
# Similarly, disable shared plugins when configured with --disable-shared
|
||||
# as libtool will not be able to produce them
|
||||
if test "X[$enable_shared]" = Xno; then
|
||||
if test "X[$mysql_plugin_]$2" != Xyes -a \
|
||||
"X[$with_plugin_]$2" != Xyes; then
|
||||
[with_plugin_]$2=no
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
|
@ -406,6 +420,7 @@ AC_DEFUN([__MYSQL_EMIT_CHECK_PLUGIN],[
|
|||
])
|
||||
AC_SUBST([plugin_]$2[_shared_target], "$8")
|
||||
AC_SUBST([plugin_]$2[_static_target], [""])
|
||||
AC_SUBST([plugin_]$2[_embedded_static_target], [""])
|
||||
[with_plugin_]$2=yes
|
||||
AC_MSG_RESULT([plugin])
|
||||
m4_ifdef([$6],[
|
||||
|
@ -420,32 +435,47 @@ AC_DEFUN([__MYSQL_EMIT_CHECK_PLUGIN],[
|
|||
])
|
||||
else
|
||||
m4_ifdef([$7],[
|
||||
ifelse(m4_bregexp($7, [^lib[^.]+\.a$]), -2, [
|
||||
dnl change above "-2" to "0" to enable this section
|
||||
dnl Although this is "pretty", it breaks libmysqld build
|
||||
m4_ifdef([$6],[
|
||||
mysql_use_plugin_dir="$6"
|
||||
mysql_plugin_libs="$mysql_plugin_libs -L[\$(top_builddir)]/$6"
|
||||
])
|
||||
mysql_plugin_libs="$mysql_plugin_libs dnl
|
||||
[-l]m4_bregexp($7, [^lib\([^.]+\)], [\1])"
|
||||
], m4_bregexp($7, [^\\\$]), 0, [
|
||||
ifelse(m4_bregexp($7, [^\\\$]), 0, [
|
||||
m4_ifdef([$6],[
|
||||
mysql_use_plugin_dir="$6"
|
||||
])
|
||||
mysql_plugin_libs="$mysql_plugin_libs $7"
|
||||
m4_ifdef([$11],[
|
||||
mysql_embedded_plugin_libs="$mysql_embedded_plugin_libs $11"
|
||||
],[
|
||||
mysql_embedded_plugin_libs="$mysql_embedded_plugin_libs $7"
|
||||
])
|
||||
], [
|
||||
m4_ifdef([$6],[
|
||||
mysql_use_plugin_dir="$6"
|
||||
mysql_plugin_libs="$mysql_plugin_libs \$(top_builddir)/$6/$7"
|
||||
m4_ifdef([$11],[
|
||||
mysql_embedded_plugin_libs="$mysql_embedded_plugin_libs \$(top_builddir)/$6/$11"
|
||||
],[
|
||||
mysql_embedded_plugin_libs="$mysql_embedded_plugin_libs \$(top_builddir)/$6/$7"
|
||||
])
|
||||
],[
|
||||
mysql_plugin_libs="$mysql_plugin_libs $7"
|
||||
m4_ifdef([$11],[
|
||||
mysql_embedded_plugin_libs="$mysql_embedded_plugin_libs $11"
|
||||
],[
|
||||
mysql_embedded_plugin_libs="$mysql_embedded_plugin_libs $7"
|
||||
])
|
||||
])
|
||||
])
|
||||
m4_ifdef([$5],[
|
||||
AC_DEFINE($5)
|
||||
])
|
||||
AC_SUBST([plugin_]$2[_static_target], "$7")
|
||||
m4_ifdef([$11], [
|
||||
if test "$with_embedded_server" = "yes"; then
|
||||
AC_SUBST([plugin_]$2[_embedded_static_target], "$11")
|
||||
else
|
||||
AC_SUBST([plugin_]$2[_embedded_static_target], [""])
|
||||
fi
|
||||
], [
|
||||
AC_SUBST([plugin_]$2[_embedded_static_target], [""])
|
||||
])
|
||||
AC_SUBST([plugin_]$2[_shared_target], [""])
|
||||
],[
|
||||
m4_ifdef([$6],[
|
||||
|
@ -462,14 +492,6 @@ dnl Although this is "pretty", it breaks libmysqld build
|
|||
mysql_plugin_defs="$mysql_plugin_defs, [builtin_]$2[_plugin]"
|
||||
[with_plugin_]$2=yes
|
||||
AC_MSG_RESULT([yes])
|
||||
m4_ifdef([$11], [
|
||||
m4_foreach([plugin], [$11], [
|
||||
condition_dependent_plugin_modules="$condition_dependent_plugin_modules m4_bregexp(plugin, [[^/]+$], [\&])"
|
||||
condition_dependent_plugin_objects="$condition_dependent_plugin_objects m4_bregexp(plugin, [[^/]+\.], [\&o])"
|
||||
condition_dependent_plugin_links="$condition_dependent_plugin_links $6/plugin"
|
||||
condition_dependent_plugin_includes="$condition_dependent_plugin_includes -I[\$(top_srcdir)]/$6/m4_bregexp(plugin, [^.+[/$]], [\&])"
|
||||
])
|
||||
])
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
11
configure.in
11
configure.in
|
@ -12,7 +12,7 @@ dnl
|
|||
dnl When changing the major version number please also check the switch
|
||||
dnl statement in mysqlbinlog::check_master_version(). You may also need
|
||||
dnl to update version.c in ndb.
|
||||
AC_INIT([MariaDB Server], [5.1.50-MariaDB], [], [mysql])
|
||||
AC_INIT([MariaDB Server], [5.1.52-MariaDB], [], [mysql])
|
||||
|
||||
AC_CONFIG_SRCDIR([sql/mysqld.cc])
|
||||
AC_CANONICAL_SYSTEM
|
||||
|
@ -250,7 +250,7 @@ AC_PROG_LIBTOOL
|
|||
|
||||
# Ensure that we have --preserve-dup-deps defines, otherwise we get link
|
||||
# problems of 'mysql' with CXX=g++
|
||||
LIBTOOL="$LIBTOOL --preserve-dup-deps"
|
||||
#LIBTOOL="$LIBTOOL --preserve-dup-deps"
|
||||
AC_SUBST(LIBTOOL)dnl
|
||||
|
||||
AC_SUBST(NM)dnl
|
||||
|
@ -2521,9 +2521,8 @@ MYSQL_CHECK_LIBEVENT
|
|||
MYSQL_STORAGE_ENGINE(myisam,no, [MyISAM Storage Engine],
|
||||
[Traditional non-transactional MySQL tables])
|
||||
MYSQL_PLUGIN_DIRECTORY(myisam, [storage/myisam])
|
||||
MYSQL_PLUGIN_STATIC(myisam, [libmyisam.a])
|
||||
MYSQL_PLUGIN_STATIC(myisam, [libmyisam_s.la], [libmyisam_embedded.la])
|
||||
MYSQL_PLUGIN_MANDATORY(myisam) dnl Default
|
||||
MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS(myisam, [ha_myisam.cc])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(partition, partition, [Partition Support],
|
||||
[MySQL Partitioning Support], [max,max-no-ndb])
|
||||
|
@ -2846,9 +2845,6 @@ if test "$with_server" != "no" -o "$THREAD_SAFE_CLIENT" != "no"
|
|||
then
|
||||
AC_DEFINE([THREAD], [1],
|
||||
[Define if you want to have threaded code. This may be undef on client code])
|
||||
# Avoid _PROGRAMS names
|
||||
THREAD_LOBJECTS="thr_alarm.o thr_lock.o thr_mutex.o thr_rwlock.o my_pthread.o my_thr_init.o mf_keycache.o mf_keycaches.o waiting_threads.o"
|
||||
AC_SUBST(THREAD_LOBJECTS)
|
||||
fi
|
||||
AM_CONDITIONAL(NEED_THREAD, test "$with_server" != "no" -o "$THREAD_SAFE_CLIENT" != "no")
|
||||
|
||||
|
@ -2877,6 +2873,7 @@ AC_SUBST(server_scripts)
|
|||
|
||||
AC_SUBST(mysql_plugin_dirs)
|
||||
AC_SUBST(mysql_plugin_libs)
|
||||
AC_SUBST(mysql_embedded_plugin_libs)
|
||||
AC_SUBST(mysql_plugin_defs)
|
||||
|
||||
|
||||
|
|
|
@ -16,10 +16,11 @@
|
|||
# MA 02111-1307, USA
|
||||
|
||||
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
LDADD = libdbug.a ../mysys/libmysys.a ../strings/libmystrings.a
|
||||
LDADD = libdbug.a $(top_builddir)/mysys/libmysys.a $(top_builddir)/strings/libmystrings.a
|
||||
pkglib_LIBRARIES = libdbug.a
|
||||
noinst_LTLIBRARIES = libdbug.la
|
||||
noinst_HEADERS = dbug_long.h
|
||||
libdbug_a_SOURCES = dbug.c sanity.c
|
||||
libdbug_la_SOURCES = dbug.c sanity.c
|
||||
EXTRA_DIST = CMakeLists.txt example1.c example2.c example3.c \
|
||||
user.r monty.doc dbug_add_tags.pl \
|
||||
my_main.c main.c factorial.c dbug_analyze.c \
|
||||
|
@ -65,3 +66,7 @@ output5.r: factorial
|
|||
# a hack to have executable in builddir, not in srcdir
|
||||
tests-t: tests-t.pl
|
||||
cp -f $(srcdir)/tests-t.pl ./tests-t
|
||||
|
||||
libdbug_a_SOURCES=
|
||||
libdbug.a: libdbug.la
|
||||
$(CP) .libs/libdbug.a $@
|
||||
|
|
30
dbug/dbug.c
30
dbug/dbug.c
|
@ -286,7 +286,7 @@ typedef struct _db_code_state_ {
|
|||
#define ListDel(A,B,C) ListAddDel(A,B,C,EXCLUDE)
|
||||
static struct link *ListAddDel(struct link *, const char *, const char *, int);
|
||||
static struct link *ListCopy(struct link *);
|
||||
static int InList(struct link *linkp,const char *cp);
|
||||
static int InList(struct link *linkp,const char *cp, int exact_match);
|
||||
static uint ListFlags(struct link *linkp);
|
||||
static void FreeList(struct link *linkp);
|
||||
|
||||
|
@ -982,7 +982,7 @@ void _db_pop_()
|
|||
} while (0)
|
||||
#define str_to_buf(S) do { \
|
||||
char_to_buf(','); \
|
||||
buf=strnmov(buf, (S), len+1); \
|
||||
buf=strnmov(buf, (S), (uint) (end-buf)); \
|
||||
if (buf >= end) goto overflow; \
|
||||
} while (0)
|
||||
#define list_to_buf(l, f) do { \
|
||||
|
@ -1581,13 +1581,13 @@ static struct link *ListCopy(struct link *orig)
|
|||
*
|
||||
*/
|
||||
|
||||
static int InList(struct link *linkp, const char *cp)
|
||||
static int InList(struct link *linkp, const char *cp, int exact_match)
|
||||
{
|
||||
int result;
|
||||
|
||||
for (result=MATCHED; linkp != NULL; linkp= linkp->next_link)
|
||||
{
|
||||
if (!fnmatch(linkp->str, cp, 0))
|
||||
if (!(exact_match ? strcmp(linkp->str,cp) : fnmatch(linkp->str, cp, 0)))
|
||||
return linkp->flags;
|
||||
if (!(linkp->flags & EXCLUDE))
|
||||
result=NOT_MATCHED;
|
||||
|
@ -1637,8 +1637,8 @@ static void PushState(CODE_STATE *cs)
|
|||
struct settings *new_malloc;
|
||||
|
||||
new_malloc= (struct settings *) DbugMalloc(sizeof(struct settings));
|
||||
bzero(new_malloc, sizeof(struct settings));
|
||||
new_malloc->next= cs->stack;
|
||||
new_malloc->out_file= NULL;
|
||||
cs->stack= new_malloc;
|
||||
}
|
||||
|
||||
|
@ -1752,8 +1752,8 @@ void _db_end_()
|
|||
static int DoTrace(CODE_STATE *cs)
|
||||
{
|
||||
if ((cs->stack->maxdepth == 0 || cs->level <= cs->stack->maxdepth) &&
|
||||
InList(cs->stack->processes, cs->process) & (MATCHED|INCLUDE))
|
||||
switch(InList(cs->stack->functions, cs->func)) {
|
||||
InList(cs->stack->processes, cs->process, 0) & (MATCHED|INCLUDE))
|
||||
switch(InList(cs->stack->functions, cs->func, 0)) {
|
||||
case INCLUDE|SUBDIR: return ENABLE_TRACE;
|
||||
case INCLUDE: return DO_TRACE;
|
||||
case MATCHED|SUBDIR:
|
||||
|
@ -1790,10 +1790,10 @@ static int DoTrace(CODE_STATE *cs)
|
|||
#ifndef THREAD
|
||||
static BOOLEAN DoProfile(CODE_STATE *cs)
|
||||
{
|
||||
return PROFILING &&
|
||||
cs->level <= cs->stack->maxdepth &&
|
||||
InList(cs->stack->p_functions, cs->func) & (INCLUDE|MATCHED) &&
|
||||
InList(cs->stack->processes, cs->process) & (INCLUDE|MATCHED);
|
||||
return (PROFILING &&
|
||||
cs->level <= cs->stack->maxdepth &&
|
||||
InList(cs->stack->p_functions, cs->func, 0) & (INCLUDE|MATCHED) &&
|
||||
InList(cs->stack->processes, cs->process, 0) & (INCLUDE|MATCHED));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1826,11 +1826,11 @@ FILE *_db_fp_(void)
|
|||
|
||||
BOOLEAN _db_keyword_(CODE_STATE *cs, const char *keyword, int strict)
|
||||
{
|
||||
int match= strict ? INCLUDE : INCLUDE|MATCHED;
|
||||
get_code_state_if_not_set_or_return FALSE;
|
||||
strict=strict ? INCLUDE : INCLUDE|MATCHED;
|
||||
|
||||
return DEBUGGING && DoTrace(cs) & DO_TRACE &&
|
||||
InList(cs->stack->keywords, keyword) & strict;
|
||||
return (DEBUGGING && DoTrace(cs) & DO_TRACE &&
|
||||
InList(cs->stack->keywords, keyword, strict) & match);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2121,7 +2121,7 @@ static FILE *OpenProfile(CODE_STATE *cs, const char *name)
|
|||
|
||||
static void DBUGCloseFile(CODE_STATE *cs, FILE *fp)
|
||||
{
|
||||
if (fp != stderr && fp != stdout && fclose(fp) == EOF)
|
||||
if (fp != NULL && fp != stderr && fp != stdout && fclose(fp) == EOF)
|
||||
{
|
||||
if (!cs->locked)
|
||||
pthread_mutex_lock(&THR_LOCK_dbug);
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
|
||||
die <<EEE unless @ARGV;
|
||||
Usage: $0 func1 [func2 [ ...] ]
|
||||
|
||||
|
@ -11,16 +10,16 @@ DBUG_ENTER() and DBUG_POP(); right before DBUG_RETURN in every such a function.
|
|||
EEE
|
||||
|
||||
$re=join('|', @ARGV);
|
||||
$skip='';
|
||||
|
||||
while(<STDIN>) {
|
||||
print unless $skip;
|
||||
($thd) = /^(T@\d+)/;
|
||||
print unless $skip{$thd};
|
||||
next unless /^(?:.*: )*((?:\| )*)([<>])($re)\n/o;
|
||||
if ($2 eq '>') {
|
||||
$skip=$1.$3 unless $skip;
|
||||
$skip{$thd}=$1.$3 unless $skip{$thd};
|
||||
next;
|
||||
}
|
||||
next if $skip ne $1.$3;
|
||||
$skip='';
|
||||
next if $skip{$thd} ne $1.$3;
|
||||
delete $skip{$thd};
|
||||
print;
|
||||
}
|
||||
|
|
|
@ -15,8 +15,10 @@
|
|||
|
||||
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/sql
|
||||
LDADD = @CLIENT_EXTRA_LDFLAGS@ ../mysys/libmysys.a \
|
||||
../dbug/libdbug.a ../strings/libmystrings.a \
|
||||
LDADD = @CLIENT_EXTRA_LDFLAGS@ \
|
||||
$(top_builddir)/mysys/libmysys.a \
|
||||
$(top_builddir)/strings/libmystrings.a \
|
||||
$(top_builddir)/dbug/libdbug.a \
|
||||
$(ZLIB_LIBS)
|
||||
BUILT_SOURCES= $(top_builddir)/include/mysqld_error.h \
|
||||
$(top_builddir)/include/sql_state.h \
|
||||
|
|
|
@ -1085,7 +1085,7 @@ static int convert_file(REPLACE *rep, char * name)
|
|||
my_fclose(in,MYF(0)); my_fclose(out,MYF(0));
|
||||
|
||||
if (updated && ! error)
|
||||
my_redel(org_name,tempname,MYF(MY_WME | MY_LINK_WARNING));
|
||||
my_redel(org_name, tempname, 0, MYF(MY_WME | MY_LINK_WARNING));
|
||||
else
|
||||
my_delete(tempname,MYF(MY_WME));
|
||||
if (!silent && ! error)
|
||||
|
|
|
@ -26,7 +26,8 @@ pkginclude_HEADERS = $(HEADERS_ABI) my_dbug.h m_string.h my_sys.h \
|
|||
decimal.h errmsg.h my_global.h my_valgrind.h my_net.h \
|
||||
my_getopt.h sslopt-longopts.h my_dir.h \
|
||||
sslopt-vars.h sslopt-case.h sql_common.h keycache.h \
|
||||
m_ctype.h my_attribute.h $(HEADERS_GEN_CONFIGURE) \
|
||||
m_ctype.h my_attribute.h my_compiler.h \
|
||||
$(HEADERS_GEN_CONFIGURE) \
|
||||
$(HEADERS_GEN_MAKE)
|
||||
|
||||
noinst_HEADERS = config-win.h config-netware.h lf.h my_bit.h \
|
||||
|
@ -40,7 +41,7 @@ noinst_HEADERS = config-win.h config-netware.h lf.h my_bit.h \
|
|||
my_vle.h my_user.h my_atomic.h atomic/nolock.h \
|
||||
atomic/rwlock.h atomic/x86-gcc.h atomic/generic-msvc.h \
|
||||
atomic/gcc_builtins.h my_libwrap.h my_stacktrace.h \
|
||||
wqueue.h waiting_threads.h my_compiler.h
|
||||
wqueue.h waiting_threads.h
|
||||
|
||||
EXTRA_DIST = mysql.h.pp mysql/plugin.h.pp
|
||||
|
||||
|
|
|
@ -430,7 +430,8 @@ int maria_repair_by_sort(HA_CHECK *param, MARIA_HA *info,
|
|||
int maria_repair_parallel(HA_CHECK *param, register MARIA_HA *info,
|
||||
const char *name, my_bool rep_quick);
|
||||
int maria_change_to_newfile(const char *filename, const char *old_ext,
|
||||
const char *new_ext, myf myflags);
|
||||
const char *new_ext, time_t backup_time,
|
||||
myf myflags);
|
||||
void maria_lock_memory(HA_CHECK *param);
|
||||
int maria_update_state_info(HA_CHECK *param, MARIA_HA *info, uint update);
|
||||
void maria_update_key_parts(MARIA_KEYDEF *keyinfo, double *rec_per_key_part,
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
#define HA_OPEN_COPY 256 /* Open copy (for repair) */
|
||||
/* Internal temp table, used for temporary results */
|
||||
#define HA_OPEN_INTERNAL_TABLE 512
|
||||
#define HA_OPEN_MERGE_TABLE 1024
|
||||
|
||||
/* The following is parameter to ha_rkey() how to use key */
|
||||
|
||||
|
@ -196,6 +197,7 @@ enum ha_extra_function {
|
|||
*/
|
||||
HA_EXTRA_ATTACH_CHILDREN,
|
||||
HA_EXTRA_DETACH_CHILDREN,
|
||||
HA_EXTRA_DETACH_CHILD,
|
||||
/* Inform handler we will force a close as part of flush */
|
||||
HA_EXTRA_PREPARE_FOR_FORCED_CLOSE
|
||||
};
|
||||
|
|
|
@ -25,8 +25,6 @@ typedef uint32 my_bitmap_map;
|
|||
typedef struct st_bitmap
|
||||
{
|
||||
my_bitmap_map *bitmap;
|
||||
uint n_bits; /* number of bits occupied by the above */
|
||||
my_bitmap_map last_word_mask;
|
||||
my_bitmap_map *last_word_ptr;
|
||||
/*
|
||||
mutex will be acquired for the duration of each bitmap operation if
|
||||
|
@ -36,6 +34,8 @@ typedef struct st_bitmap
|
|||
#ifdef THREAD
|
||||
pthread_mutex_t *mutex;
|
||||
#endif
|
||||
my_bitmap_map last_word_mask;
|
||||
uint32 n_bits; /* number of bits occupied by the above */
|
||||
} MY_BITMAP;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -568,44 +568,34 @@ int __void__;
|
|||
#endif /* DONT_DEFINE_VOID */
|
||||
|
||||
/*
|
||||
Try to suppress warning for not initialized variables.
|
||||
Deprecated workaround for false-positive uninitialized variables
|
||||
warnings. Those should be silenced using tool-specific heuristics.
|
||||
|
||||
With gcc when using C, we suppress the uninitialized variable warning
|
||||
without generating code. We can't do this with C++
|
||||
for a g++ bug (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772).
|
||||
Enabled by default for g++ due to the bug referenced below.
|
||||
*/
|
||||
|
||||
#if defined(FORCE_INIT_OF_VARS)
|
||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || \
|
||||
(defined(__GNUC__) && defined(__cplusplus))
|
||||
#define LINT_INIT(var) var= 0
|
||||
#if defined(__cplusplus) || !defined(__GNUC__)
|
||||
#else
|
||||
#define LINT_INIT(var)
|
||||
#endif
|
||||
|
||||
/*
|
||||
Suppress uninitialized variable warning without generating code.
|
||||
|
||||
The _cplusplus is a temporary workaround for C++ code pending a fix
|
||||
for a g++ bug (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772).
|
||||
*/
|
||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || \
|
||||
defined(__cplusplus) || !defined(__GNUC__)
|
||||
#define UNINIT_VAR(x) x= 0
|
||||
#else
|
||||
/* GCC specific self-initialization which inhibits the warning. */
|
||||
#define UNINIT_VAR(x) x= x
|
||||
#endif
|
||||
#else /* !FORCE_INIT_OF_VARS */
|
||||
#define LINT_INIT(var)
|
||||
#if !defined(__cplusplus) && !defined(__GNUC__)
|
||||
/* GCC specific self-initialization which inhibits the warning. */
|
||||
#define UNINIT_VAR(x) x= x
|
||||
#else
|
||||
#define UNINIT_VAR(x) x
|
||||
#endif
|
||||
#endif /* FORCE_INIT_OF_VARS */
|
||||
|
||||
#include <my_valgrind.h>
|
||||
|
||||
/*
|
||||
The following is to force some unitialized variables to 0 if we are
|
||||
running valgrind. This is needed when the compiler may access the variable
|
||||
even if the value of it is never used.
|
||||
*/
|
||||
#if defined(HAVE_valgrind)
|
||||
#define VALGRIND_OR_LINT_INIT(var) var=0
|
||||
#else
|
||||
#define VALGRIND_OR_LINT_INIT(var) LINT_INIT(var)
|
||||
#endif
|
||||
|
||||
/* Define some useful general macros */
|
||||
#if !defined(max)
|
||||
#define max(a, b) ((a) > (b) ? (a) : (b))
|
||||
|
@ -621,7 +611,7 @@ typedef unsigned short ushort;
|
|||
|
||||
#define CMP_NUM(a,b) (((a) < (b)) ? -1 : ((a) == (b)) ? 0 : 1)
|
||||
#define sgn(a) (((a) < 0) ? -1 : ((a) > 0) ? 1 : 0)
|
||||
#define swap_variables(t, a, b) { t swap_dummy; swap_dummy= a; a= b; b= swap_dummy; }
|
||||
#define swap_variables(t, a, b) { t dummy; dummy= a; a= b; b= dummy; }
|
||||
#define test(a) ((a) ? 1 : 0)
|
||||
#define set_if_bigger(a,b) do { if ((a) < (b)) (a)=(b); } while(0)
|
||||
#define set_if_smaller(a,b) do { if ((a) > (b)) (a)=(b); } while(0)
|
||||
|
|
|
@ -135,6 +135,9 @@ extern int NEAR my_errno; /* Last error in mysys */
|
|||
#define GETDATE_GMT 8
|
||||
#define GETDATE_FIXEDLENGTH 16
|
||||
|
||||
/* Extra length needed for filename if one calls my_create_backup_name */
|
||||
#define MY_BACKUP_NAME_EXTRA_LENGTH 17
|
||||
|
||||
/* defines when allocating data */
|
||||
#ifdef SAFEMALLOC
|
||||
#define my_malloc(SZ,FLAG) _mymalloc((SZ), __FILE__, __LINE__, FLAG )
|
||||
|
@ -685,7 +688,10 @@ extern int my_message_no_curses(uint my_err, const char *str,myf MyFlags);
|
|||
extern int my_message_curses(uint my_err, const char *str,myf MyFlags);
|
||||
extern my_bool my_init(void);
|
||||
extern void my_end(int infoflag);
|
||||
extern int my_redel(const char *from, const char *to, int MyFlags);
|
||||
extern int my_redel(const char *from, const char *to, time_t backup_time_stamp,
|
||||
myf MyFlags);
|
||||
void my_create_backup_name(char *to, const char *from,
|
||||
time_t backup_time_stamp);
|
||||
extern int my_copystat(const char *from, const char *to, int MyFlags);
|
||||
extern char * my_filename(File fd);
|
||||
|
||||
|
|
|
@ -295,6 +295,8 @@ extern int mi_is_changed(struct st_myisam_info *info);
|
|||
extern int mi_delete_all_rows(struct st_myisam_info *info);
|
||||
extern ulong _mi_calc_blob_length(uint length , const uchar *pos);
|
||||
extern uint mi_get_pointer_length(ulonglong file_length, uint def);
|
||||
extern int mi_make_backup_of_index(struct st_myisam_info *info,
|
||||
time_t backup_time, myf flags);
|
||||
|
||||
#define MEMMAP_EXTRA_MARGIN 7 /* Write this as a suffix for mmap file */
|
||||
/* this is used to pass to mysql_myisamchk_table */
|
||||
|
@ -390,7 +392,8 @@ int mi_repair_by_sort(HA_CHECK *param, register MI_INFO *info,
|
|||
int mi_repair_parallel(HA_CHECK *param, register MI_INFO *info,
|
||||
const char * name, int rep_quick);
|
||||
int change_to_newfile(const char * filename, const char * old_ext,
|
||||
const char * new_ext, uint raid_chunks,
|
||||
const char * new_ext, time_t backup_time,
|
||||
uint raid_chunks,
|
||||
myf myflags);
|
||||
int lock_file(HA_CHECK *param, File file, my_off_t start, int lock_type,
|
||||
const char *filetype, const char *filename);
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
#define TT_USEFRM 1
|
||||
#define TT_FOR_UPGRADE 2
|
||||
|
||||
#define O_NEW_INDEX 1 /* Bits set in out_flag */
|
||||
/* Bits set in out_flag */
|
||||
#define O_NEW_DATA 2
|
||||
#define O_DATA_LOST 4
|
||||
|
||||
|
@ -141,6 +141,7 @@ typedef struct st_handler_check_param
|
|||
ulonglong use_buffers; /* Used as param to getopt() */
|
||||
size_t read_buffer_length, write_buffer_length;
|
||||
size_t sort_buffer_length, sort_key_blocks;
|
||||
time_t backup_time; /* To sign backup files */
|
||||
ulong rec_per_key_part[HA_MAX_KEY_SEG * HA_MAX_POSSIBLE_KEY];
|
||||
double new_rec_per_key_part[HA_MAX_KEY_SEG * HA_MAX_POSSIBLE_KEY];
|
||||
uint out_flag, warning_printed, error_printed, verbose;
|
||||
|
|
|
@ -224,7 +224,8 @@ struct st_mysql_options {
|
|||
|
||||
enum mysql_status
|
||||
{
|
||||
MYSQL_STATUS_READY,MYSQL_STATUS_GET_RESULT,MYSQL_STATUS_USE_RESULT
|
||||
MYSQL_STATUS_READY, MYSQL_STATUS_GET_RESULT, MYSQL_STATUS_USE_RESULT,
|
||||
MYSQL_STATUS_STATEMENT_GET_RESULT
|
||||
};
|
||||
|
||||
enum mysql_protocol_type
|
||||
|
|
|
@ -292,7 +292,8 @@ struct st_mysql_options {
|
|||
};
|
||||
enum mysql_status
|
||||
{
|
||||
MYSQL_STATUS_READY,MYSQL_STATUS_GET_RESULT,MYSQL_STATUS_USE_RESULT
|
||||
MYSQL_STATUS_READY, MYSQL_STATUS_GET_RESULT, MYSQL_STATUS_USE_RESULT,
|
||||
MYSQL_STATUS_STATEMENT_GET_RESULT
|
||||
};
|
||||
enum mysql_protocol_type
|
||||
{
|
||||
|
|
|
@ -6,12 +6,13 @@
|
|||
|
||||
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
|
||||
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 */
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
This is the header file for code which implements the Secure
|
||||
|
@ -25,6 +26,38 @@
|
|||
Please read the file sha1.c for more information.
|
||||
|
||||
Modified 2002 by Peter Zaitsev to better follow MySQL standards
|
||||
|
||||
Original Source from: http://www.faqs.org/rfcs/rfc3174.html
|
||||
|
||||
Copyright (C) The Internet Society (2001). All Rights Reserved.
|
||||
|
||||
This document and translations of it may be copied and furnished to
|
||||
others, and derivative works that comment on or otherwise explain it
|
||||
or assist in its implementation may be prepared, copied, published
|
||||
and distributed, in whole or in part, without restriction of any
|
||||
kind, provided that the above copyright notice and this paragraph are
|
||||
included on all such copies and derivative works. However, this
|
||||
document itself may not be modified in any way, such as by removing
|
||||
the copyright notice or references to the Internet Society or other
|
||||
Internet organizations, except as needed for the purpose of
|
||||
developing Internet standards in which case the procedures for
|
||||
copyrights defined in the Internet Standards process must be
|
||||
followed, or as required to translate it into languages other than
|
||||
English.
|
||||
|
||||
The limited permissions granted above are perpetual and will not be
|
||||
revoked by the Internet Society or its successors or assigns.
|
||||
|
||||
This document and the information contained herein is provided on an
|
||||
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
|
||||
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
|
||||
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
Acknowledgement
|
||||
Funding for the RFC Editor function is currently provided by the
|
||||
Internet Society.
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
@ -82,6 +82,12 @@ enum enum_thr_lock_result { THR_LOCK_SUCCESS= 0, THR_LOCK_ABORTED= 1,
|
|||
THR_LOCK_WAIT_TIMEOUT= 2, THR_LOCK_DEADLOCK= 3 };
|
||||
|
||||
|
||||
/* Priority for locks */
|
||||
#define THR_LOCK_LATE_PRIV 1 /* For locks to be merged with org lock */
|
||||
#define THR_LOCK_MERGE_PRIV 2 /* For merge tables */
|
||||
|
||||
#define THR_UNLOCK_UPDATE_STATUS 1
|
||||
|
||||
extern ulong max_write_lock_count;
|
||||
extern ulong table_lock_wait_timeout;
|
||||
extern my_bool thr_lock_inited;
|
||||
|
@ -116,9 +122,10 @@ typedef struct st_thr_lock_data {
|
|||
struct st_thr_lock_data *next,**prev;
|
||||
struct st_thr_lock *lock;
|
||||
pthread_cond_t *cond;
|
||||
enum thr_lock_type type;
|
||||
void *status_param; /* Param to status functions */
|
||||
void *debug_print_param;
|
||||
enum thr_lock_type type;
|
||||
uint priority;
|
||||
} THR_LOCK_DATA;
|
||||
|
||||
struct st_lock_list {
|
||||
|
@ -138,8 +145,10 @@ typedef struct st_thr_lock {
|
|||
void (*get_status)(void*, my_bool); /* When one gets a lock */
|
||||
void (*copy_status)(void*,void*);
|
||||
void (*update_status)(void*); /* Before release of write */
|
||||
void (*restore_status)(void*); /* Before release of read */
|
||||
void (*restore_status)(void*); /* Before release of read */
|
||||
my_bool (*start_trans)(void*); /* When all locks are taken */
|
||||
my_bool (*check_status)(void *);
|
||||
void (*fix_status)(void *, void *);/* For thr_merge_locks() */
|
||||
my_bool allow_multiple_concurrent_insert;
|
||||
} THR_LOCK;
|
||||
|
||||
|
@ -154,13 +163,11 @@ void thr_lock_init(THR_LOCK *lock);
|
|||
void thr_lock_delete(THR_LOCK *lock);
|
||||
void thr_lock_data_init(THR_LOCK *lock,THR_LOCK_DATA *data,
|
||||
void *status_param);
|
||||
enum enum_thr_lock_result thr_lock(THR_LOCK_DATA *data,
|
||||
THR_LOCK_OWNER *owner,
|
||||
enum thr_lock_type lock_type);
|
||||
void thr_unlock(THR_LOCK_DATA *data);
|
||||
void thr_unlock(THR_LOCK_DATA *data, uint unlock_flags);
|
||||
enum enum_thr_lock_result thr_multi_lock(THR_LOCK_DATA **data,
|
||||
uint count, THR_LOCK_OWNER *owner);
|
||||
void thr_multi_unlock(THR_LOCK_DATA **data,uint count);
|
||||
void thr_multi_unlock(THR_LOCK_DATA **data,uint count, uint unlock_flags);
|
||||
void thr_merge_locks(THR_LOCK_DATA **data, uint org_count, uint new_count);
|
||||
void thr_abort_locks(THR_LOCK *lock, my_bool upgrade_lock);
|
||||
my_bool thr_abort_locks_for_thread(THR_LOCK *lock, my_thread_id thread);
|
||||
void thr_print_locks(void); /* For debugging */
|
||||
|
|
|
@ -2516,6 +2516,8 @@ static my_bool execute(MYSQL_STMT *stmt, char *packet, ulong length)
|
|||
set_stmt_errmsg(stmt, net);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
else if (mysql->status == MYSQL_STATUS_GET_RESULT)
|
||||
stmt->mysql->status= MYSQL_STATUS_STATEMENT_GET_RESULT;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
@ -2654,7 +2656,7 @@ static int stmt_read_row_unbuffered(MYSQL_STMT *stmt, unsigned char **row)
|
|||
set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate, NULL);
|
||||
return 1;
|
||||
}
|
||||
if (mysql->status != MYSQL_STATUS_GET_RESULT)
|
||||
if (mysql->status != MYSQL_STATUS_STATEMENT_GET_RESULT)
|
||||
{
|
||||
set_stmt_error(stmt, stmt->unbuffered_fetch_cancelled ?
|
||||
CR_FETCH_CANCELED : CR_COMMANDS_OUT_OF_SYNC,
|
||||
|
@ -4860,7 +4862,7 @@ int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt)
|
|||
DBUG_RETURN(1);
|
||||
}
|
||||
}
|
||||
else if (mysql->status != MYSQL_STATUS_GET_RESULT)
|
||||
else if (mysql->status != MYSQL_STATUS_STATEMENT_GET_RESULT)
|
||||
{
|
||||
set_stmt_error(stmt, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate, NULL);
|
||||
DBUG_RETURN(1);
|
||||
|
|
|
@ -34,10 +34,10 @@ INCLUDES= -I$(top_builddir)/include -I$(top_srcdir)/include \
|
|||
-I$(top_srcdir)/sql/examples \
|
||||
-I$(top_srcdir)/regex \
|
||||
$(openssl_includes) @ZLIB_INCLUDES@ \
|
||||
@condition_dependent_plugin_includes@
|
||||
@condition_dependent_plugin_includes@ \
|
||||
@ndbcluster_includes@
|
||||
|
||||
noinst_LIBRARIES = libmysqld_int.a
|
||||
pkglib_LIBRARIES = libmysqld.a
|
||||
pkglib_LTLIBRARIES = libmysqld.la
|
||||
SUBDIRS = . examples
|
||||
libmysqld_sources= libmysqld.c lib_sql.cc emb_qcache.cc
|
||||
libmysqlsources = errmsg.c get_password.c libmysql.c client.c pack.c \
|
||||
|
@ -79,104 +79,28 @@ sqlsources = derror.cc field.cc field_conv.cc strfunc.cc filesort.cc \
|
|||
rpl_injector.cc my_user.c partition_info.cc \
|
||||
sql_servers.cc event_parse_data.cc opt_table_elimination.cc
|
||||
|
||||
libmysqld_int_a_SOURCES= $(libmysqld_sources)
|
||||
nodist_libmysqld_int_a_SOURCES= $(libmysqlsources) $(sqlsources)
|
||||
libmysqld_a_SOURCES=
|
||||
|
||||
sqlstoragesources = $(EXTRA_libmysqld_a_SOURCES)
|
||||
storagesources = @condition_dependent_plugin_modules@
|
||||
storageobjects = @condition_dependent_plugin_objects@
|
||||
storagesourceslinks = @condition_dependent_plugin_links@
|
||||
|
||||
# automake misses these
|
||||
sql_yacc.cc sql_yacc.h: $(top_srcdir)/sql/sql_yacc.yy
|
||||
|
||||
# The following libraries should be included in libmysqld.a
|
||||
INC_LIB= $(top_builddir)/regex/libregex.a \
|
||||
$(top_builddir)/mysys/libmysys.a \
|
||||
$(top_builddir)/strings/libmystrings.a \
|
||||
$(top_builddir)/dbug/libdbug.a \
|
||||
$(top_builddir)/vio/libvio.a \
|
||||
@NDB_SCI_LIBS@ \
|
||||
@mysql_plugin_libs@ \
|
||||
INC_LIB= $(top_builddir)/regex/libregex.la \
|
||||
$(top_builddir)/mysys/libmysys.la \
|
||||
$(top_builddir)/strings/libmystrings.la \
|
||||
$(top_builddir)/dbug/libdbug.la \
|
||||
$(top_builddir)/vio/libvio.la \
|
||||
@ndbcluster_libs@ @NDB_SCI_LIBS@ \
|
||||
@mysql_embedded_plugin_libs@ \
|
||||
$(libevent_inc_libs) \
|
||||
$(yassl_inc_libs)
|
||||
|
||||
if HAVE_YASSL
|
||||
yassl_inc_libs= $(top_builddir)/extra/yassl/src/.libs/libyassl.a \
|
||||
$(top_builddir)/extra/yassl/taocrypt/src/.libs/libtaocrypt.a
|
||||
yassl_inc_libs= $(top_builddir)/extra/yassl/src/libyassl.la \
|
||||
$(top_builddir)/extra/yassl/taocrypt/src/libtaocrypt.la
|
||||
endif
|
||||
|
||||
# Storage engine specific compilation options
|
||||
ha_ndbcluster.o:ha_ndbcluster.cc
|
||||
$(CXXCOMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
|
||||
|
||||
ha_ndbcluster_cond.o:ha_ndbcluster_cond.cc
|
||||
$(CXXCOMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
|
||||
|
||||
ha_ndbcluster_binlog.o: ha_ndbcluster_binlog.cc
|
||||
$(CXXCOMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
|
||||
|
||||
# Until we can remove dependency on ha_ndbcluster.h
|
||||
handler.o: handler.cc
|
||||
$(CXXCOMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
|
||||
|
||||
# We need rules to compile these as no good way
|
||||
# found to append fileslists that collected by configure
|
||||
# to the sources list
|
||||
|
||||
ha_federatedx.o:ha_federatedx.cc
|
||||
$(CXXCOMPILE) $(LM_CFLAGS) -c $<
|
||||
|
||||
ha_heap.o:ha_heap.cc
|
||||
$(CXXCOMPILE) $(LM_CFLAGS) -c $<
|
||||
|
||||
ha_innodb.o:ha_innodb.cc
|
||||
$(CXXCOMPILE) $(LM_CFLAGS) -c $<
|
||||
|
||||
ha_myisam.o:ha_myisam.cc
|
||||
$(CXXCOMPILE) $(LM_CFLAGS) -c $<
|
||||
|
||||
ha_myisammrg.o:ha_myisammrg.cc
|
||||
$(CXXCOMPILE) $(LM_CFLAGS) -c $<
|
||||
|
||||
#
|
||||
# To make it easy for the end user to use the embedded library we
|
||||
# generate a total libmysqld.a from all library files,
|
||||
|
||||
# note - InnoDB libraries have circular dependencies, so in INC_LIB
|
||||
# few libraries are present two times. Metrowerks linker doesn't like
|
||||
# it at all. Traditional ar has no problems with it, but still there's no
|
||||
# need to add the same file twice to the library, so 'sort -u' save us
|
||||
# some time and spares unnecessary work.
|
||||
|
||||
libmysqld.a: libmysqld_int.a $(INC_LIB) $(libmysqld_a_DEPENDENCIES) $(storageobjects)
|
||||
if DARWIN_MWCC
|
||||
mwld -lib -o $@ libmysqld_int.a `echo $(INC_LIB) | sort -u` $(storageobjects)
|
||||
else
|
||||
-rm -f libmysqld.a
|
||||
if test "$(host_os)" = "netware" ; \
|
||||
then \
|
||||
$(libmysqld_a_AR) libmysqld.a $(INC_LIB) libmysqld_int.a $(storageobjects); \
|
||||
else \
|
||||
current_dir=`pwd`; \
|
||||
rm -rf tmp; mkdir tmp; \
|
||||
(for arc in $(INC_LIB) ./libmysqld_int.a; do \
|
||||
arpath=`echo $$arc|sed 's|[^/]*$$||'|sed 's|\.libs/$$||'`; \
|
||||
artmp=`echo $$arc|sed 's|^.*/|tmp/lib-|'`; \
|
||||
for F in `$(AR) t $$arc | grep -v SYMDEF`; do \
|
||||
if test -e "$$arpath/$$F" ; then echo "$$arpath/$$F"; else \
|
||||
mkdir $$artmp; cd $$artmp > /dev/null; \
|
||||
$(AR) x ../../$$arc; \
|
||||
cd $$current_dir > /dev/null; \
|
||||
ls $$artmp/* | grep -v SYMDEF; \
|
||||
continue 2; fi; done; \
|
||||
done; echo $(libmysqld_a_DEPENDENCIES) ) | sort -u | xargs $(AR) cq libmysqld.a ; \
|
||||
$(AR) r libmysqld.a $(storageobjects); \
|
||||
$(RANLIB) libmysqld.a ; \
|
||||
rm -rf tmp; \
|
||||
fi
|
||||
endif
|
||||
libmysqld_la_SOURCES= $(libmysqld_sources)
|
||||
nodist_libmysqld_la_SOURCES= $(libmysqlsources) $(sqlsources)
|
||||
libmysqld_la_LIBADD = $(INC_LIB)
|
||||
|
||||
## XXX: any time the client interface changes, we'll need to bump
|
||||
## the version info for libmysqld; however, it's possible for the
|
||||
|
@ -184,7 +108,7 @@ endif
|
|||
## libmysqlclient interface. Should we make a separate version
|
||||
## string for the two?
|
||||
#libmysqld_la_LDFLAGS = -version-info @SHARED_LIB_VERSION@
|
||||
#CLEANFILES = $(libmysqld_la_LIBADD) libmysqld.la
|
||||
#CLEANFILES = libmysqld.la
|
||||
|
||||
BUILT_SOURCES = link_sources
|
||||
|
||||
|
@ -209,20 +133,6 @@ link_sources:
|
|||
@LN_CP_F@ $(top_builddir)/libmysql/$$f $$f; \
|
||||
fi ; \
|
||||
done; \
|
||||
if test -n "$(sqlstoragesources)" ; \
|
||||
then \
|
||||
for f in "$(sqlstoragesources)"; do \
|
||||
rm -f "$$f"; \
|
||||
@LN_CP_F@ `find $(srcdir)/../sql -name "$$f"` "$$f"; \
|
||||
done; \
|
||||
fi; \
|
||||
if test -n "$(storagesources)" ; \
|
||||
then \
|
||||
rm -f $(storagesources); \
|
||||
for f in $(storagesourceslinks); do \
|
||||
@LN_CP_F@ $(top_srcdir)/$$f . ; \
|
||||
done; \
|
||||
fi; \
|
||||
rm -f client_settings.h; \
|
||||
@LN_CP_F@ $(top_srcdir)/libmysql/client_settings.h \
|
||||
client_settings.h; \
|
||||
|
@ -230,5 +140,5 @@ link_sources:
|
|||
|
||||
|
||||
clean-local:
|
||||
rm -f `echo $(sqlsources) $(libmysqlsources) $(sqlstoragesources) $(storagesources) | sed "s;\.lo;.c;g"`; \
|
||||
rm -f `echo $(sqlsources) $(libmysqlsources) | sed "s;\.lo;.c;g"`; \
|
||||
rm -f client_settings.h
|
||||
|
|
|
@ -37,12 +37,13 @@ INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir) \
|
|||
-I$(top_srcdir) -I$(top_srcdir)/client -I$(top_srcdir)/regex \
|
||||
$(openssl_includes)
|
||||
LIBS = @LIBS@ @WRAPLIBS@ @CLIENT_LIBS@ $(yassl_libs)
|
||||
LDADD = @CLIENT_EXTRA_LDFLAGS@ ../libmysqld.a @LIBDL@ $(CXXLDFLAGS) \
|
||||
@NDB_SCI_LIBS@
|
||||
LDADD = @CLIENT_EXTRA_LDFLAGS@ \
|
||||
$(top_builddir)/libmysqld/libmysqld.la @LIBDL@ $(CXXLDFLAGS) \
|
||||
@ndbcluster_libs@ @NDB_SCI_LIBS@
|
||||
|
||||
mysqltest_embedded_LINK = $(CXXLINK)
|
||||
nodist_mysqltest_embedded_SOURCES = mysqltest.cc
|
||||
mysqltest_embedded_LDADD = $(LDADD) $(top_builddir)/regex/libregex.a \
|
||||
mysqltest_embedded_LDADD = $(LDADD) $(top_builddir)/regex/libregex.la \
|
||||
@MYSQLD_EXTRA_LDFLAGS@
|
||||
|
||||
nodist_mysql_SOURCES = mysql.cc readline.cc completion_hash.cc \
|
||||
|
|
|
@ -32,6 +32,16 @@ files cannot. Special options are
|
|||
--timezone, --plugin-load, --result-file, --config-file-template,
|
||||
--default-time-zone, --force-restart
|
||||
|
||||
In particular, all --plugin-load instances on the command line (on the
|
||||
combined command line, assembled from different .opt and combinations
|
||||
files) are merged into one. That is, if, say, test-master.opt file contains
|
||||
--plugin-load=aaa.so and suite.opt has --plugin-load=bbb.so that mysqld
|
||||
will get --plugin-load=aaa.so:bbb.so. Also, empty --plugin-load options are
|
||||
removed from the command line. Which means that one can safely specify
|
||||
--plugin-load=$AAA_SO and if aaa.so was not built (perhaps, the plugin was
|
||||
statically linked into the server), the .opt file will not result in the
|
||||
invalid command line option that can cause the server to refuse to start.
|
||||
|
||||
==========================
|
||||
A suite can have suite.pm file in the suitedir. It must declare a
|
||||
package that inherits from My::Suite.
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
perl mysql-test-run.pl --timer --force --comment=rpl_ndb_row --vardir=var-rpl_ndb_row --suite=rpl_ndb,ndb --mysqld=--binlog-format=row --experimental=collections/default.experimental
|
||||
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --experimental=collections/default.experimental
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --comment=ps_row --vardir=var-ps_row --ps-protocol --mysqld=--binlog-format=row --experimental=collections/default.experimental
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --comment=embedded --vardir=var-emebbed --embedded --experimental=collections/default.experimental
|
||||
|
|
|
@ -12,9 +12,10 @@ funcs_1.ndb* # joro : NDB tests marked as experiment
|
|||
|
||||
funcs_2.ndb_charset # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
|
||||
innodb_plugin.* @solaris # Bug#56063 InnoDB Plugin mysql-tests fail on Solaris
|
||||
|
||||
main.ctype_gbk_binlog @solaris # Bug#46010: main.ctype_gbk_binlog fails sporadically : Table 't2' already exists
|
||||
main.func_str @solaris # joro: Bug#40928
|
||||
main.plugin_load @solaris # Bug#42144
|
||||
main.sp @solaris # joro : Bug#54138
|
||||
main.outfile_loaddata @solaris # joro : Bug #46895
|
||||
|
||||
|
@ -44,3 +45,6 @@ parts.partition_syntax_ndb # joro : NDB tests marked as experiment
|
|||
parts.partition_value_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
main.mysqlhotcopy_myisam # horst: due to bug#54129
|
||||
main.mysqlhotcopy_archive # horst: due to bug#54129
|
||||
main.gis-rtree # svoj: due to BUG#38965
|
||||
main.type_float # svoj: due to BUG#38965
|
||||
main.type_newdecimal # svoj: due to BUG#38965
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Requires statement logging
|
||||
-- source include/have_binlog_format_mixed_or_statement.inc
|
||||
-- source include/have_binlog_format_statement.inc
|
||||
|
||||
# See if replication of a "LOAD DATA in an autoincrement column"
|
||||
# Honours autoincrement values
|
||||
|
|
235
mysql-test/extra/rpl_tests/rpl_stm_create_if_not_exists.test
Normal file
235
mysql-test/extra/rpl_tests/rpl_stm_create_if_not_exists.test
Normal file
|
@ -0,0 +1,235 @@
|
|||
--echo
|
||||
--echo
|
||||
connection master;
|
||||
|
||||
if ($is_temporary)
|
||||
{
|
||||
--let $_temporary=TEMPORARY
|
||||
}
|
||||
|
||||
CREATE TABLE t2(c1 INT, c2 char(10));
|
||||
INSERT INTO t2 VALUES(1, 'abc'), (2, 'abc');
|
||||
|
||||
--echo
|
||||
--echo # The original query should be binlogged if the table does not exist.
|
||||
--echo # ------------------------------------------------------------------
|
||||
--echo
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
eval CREATE $_temporary TABLE IF NOT EXISTS t1 (c1 INT , c2 INT, c3 char(10), c4 INT KEY)
|
||||
SELECT 'abc' AS c3, 1 AS c4;
|
||||
source include/show_binlog_events.inc;
|
||||
|
||||
if (!$is_temporary)
|
||||
{
|
||||
let $diff_table= test.t1;
|
||||
source include/rpl_diff_tables.inc;
|
||||
}
|
||||
|
||||
--echo
|
||||
--echo # The statement should be binlogged as two events. one is
|
||||
--echo # 'CREATE $_temporary TABLE IF NOT EXISTS ..', another one is
|
||||
--echo # 'INSERT ... SELECT'.
|
||||
--echo # ------------------------------------------------------------------
|
||||
--echo
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
eval CREATE $_temporary TABLE IF NOT EXISTS t1
|
||||
SELECT 'abc', 2;
|
||||
source include/show_binlog_events.inc;
|
||||
|
||||
if (!$is_temporary)
|
||||
{
|
||||
let $diff_table= test.t1;
|
||||
source include/rpl_diff_tables.inc;
|
||||
}
|
||||
|
||||
--echo
|
||||
--echo # Verify if it can be binlogged with right database name when the table
|
||||
--echo # is not in the default database
|
||||
--echo
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db1;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db1;
|
||||
USE db1;
|
||||
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
eval CREATE $_temporary TABLE IF NOT EXISTS test.t1
|
||||
SELECT 'abc', 20;
|
||||
source include/show_binlog_events.inc;
|
||||
|
||||
if (!$is_temporary)
|
||||
{
|
||||
let $diff_table= test.t1;
|
||||
source include/rpl_diff_tables.inc;
|
||||
}
|
||||
USE test;
|
||||
DROP DATABASE db1;
|
||||
|
||||
--echo
|
||||
--echo # It should be binlogged as 'REPLACE ... SELECT'
|
||||
--echo # if the original statement has option REPLACE
|
||||
--echo
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
eval CREATE $_temporary TABLE IF NOT EXISTS t1
|
||||
REPLACE SELECT '123', 2;
|
||||
source include/show_binlog_events.inc;
|
||||
|
||||
if (!$is_temporary)
|
||||
{
|
||||
let $diff_table= test.t1;
|
||||
source include/rpl_diff_tables.inc;
|
||||
}
|
||||
|
||||
--echo
|
||||
--echo # It should be binlogged as 'INSERT IGNORE... SELECT'
|
||||
--echo # if the original statement has option IGNORE
|
||||
--echo
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
eval CREATE $_temporary TABLE IF NOT EXISTS t1
|
||||
IGNORE SELECT '123', 2;
|
||||
source include/show_binlog_events.inc;
|
||||
|
||||
if (!$is_temporary)
|
||||
{
|
||||
let $diff_table= test.t1;
|
||||
source include/rpl_diff_tables.inc;
|
||||
}
|
||||
|
||||
--echo
|
||||
--echo # Nothing should be binlogged if error happens and no any row is inserted
|
||||
--echo
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
--error ER_DUP_ENTRY
|
||||
eval CREATE $_temporary TABLE IF NOT EXISTS t1
|
||||
SELECT '123', 2;
|
||||
source include/show_binlog_events.inc;
|
||||
if (!$is_temporary)
|
||||
{
|
||||
let $diff_table= test.t1;
|
||||
source include/rpl_diff_tables.inc;
|
||||
}
|
||||
|
||||
--echo
|
||||
--echo # Verify it can binlog well when there are some braces('(')
|
||||
--echo
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
eval CREATE $_temporary TABLE IF NOT EXISTS t1
|
||||
(SELECT '123', 3) UNION (SELECT '123', 4);
|
||||
eval CREATE $_temporary TABLE IF NOT EXISTS t1
|
||||
REPLACE (SELECT 'abc', 3) UNION (SELECT 'abc', 4);
|
||||
eval CREATE $_temporary TABLE IF NOT EXISTS t1
|
||||
IGNORE (SELECT '123', 3) UNION (SELECT '123', 4);
|
||||
source include/show_binlog_events.inc;
|
||||
|
||||
if (!$is_temporary)
|
||||
{
|
||||
let $diff_table= test.t1;
|
||||
source include/rpl_diff_tables.inc;
|
||||
}
|
||||
|
||||
if (!$is_temporary)
|
||||
{
|
||||
--echo
|
||||
--echo # Throw a warning that table already exists and don't insert anything
|
||||
--echo
|
||||
CREATE VIEW t3 AS SELECT * FROM t2;
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS t3
|
||||
SELECT '123', 2;
|
||||
source include/show_binlog_events.inc;
|
||||
DROP VIEW t3;
|
||||
}
|
||||
|
||||
--echo
|
||||
--echo # The statement can be binlogged correctly when it is in a SP/EVENT/TRIGGER
|
||||
--echo
|
||||
|
||||
--disable_warnings
|
||||
DROP PROCEDURE IF EXISTS p1;
|
||||
--enable_warnings
|
||||
eval CREATE PROCEDURE p1(IN a INT)
|
||||
CREATE $_temporary TABLE IF NOT EXISTS t1 SELECT '123', a;
|
||||
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
call p1(500);
|
||||
call p1(600);
|
||||
source include/show_binlog_events.inc;
|
||||
if (!$is_temporary)
|
||||
{
|
||||
let $diff_table= test.t1;
|
||||
source include/rpl_diff_tables.inc;
|
||||
}
|
||||
DROP PROCEDURE p1;
|
||||
|
||||
--echo
|
||||
--echo # The statement can be binlogged correctly when it is in a prepared statement
|
||||
--echo
|
||||
eval PREPARE stm FROM "CREATE $_temporary TABLE IF NOT EXISTS t1 SELECT '123', ?";
|
||||
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
SET @a= 700;
|
||||
EXECUTE stm USING @a;
|
||||
SET @a= 800;
|
||||
EXECUTE stm USING @a;
|
||||
source include/show_binlog_events.inc;
|
||||
if (!$is_temporary)
|
||||
{
|
||||
let $diff_table= test.t1;
|
||||
source include/rpl_diff_tables.inc;
|
||||
}
|
||||
|
||||
--echo
|
||||
--echo # The statement can be binlogged correctly when it is in a conditional comment
|
||||
--echo
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
|
||||
--echo # The whole statement in a conditional comment
|
||||
eval /*!CREATE $_temporary TABLE IF NOT EXISTS t1
|
||||
SELECT 'abc', 900*/;
|
||||
source include/show_binlog_events.inc;
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
|
||||
--echo
|
||||
--echo # There is an long comment before SELECT
|
||||
eval /*!CREATE $_temporary /*blabla*/ TABLE IF NOT EXISTS t1
|
||||
SELECT 'abc', 901*/;
|
||||
source include/show_binlog_events.inc;
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
|
||||
--echo
|
||||
--echo # Conditional comment starts just from SELECT
|
||||
eval CREATE $_temporary TABLE IF NOT EXISTS t1
|
||||
/*!SELECT 'abc',*/ 902;
|
||||
source include/show_binlog_events.inc;
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
|
||||
--echo
|
||||
--echo # Only SELECT keyword is in the conditional comment
|
||||
eval CREATE $_temporary TABLE IF NOT EXISTS t1
|
||||
/*!SELECT*/ /*!'abc',*/ 904;
|
||||
source include/show_binlog_events.inc;
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
|
||||
--echo
|
||||
--echo # Conditional comment is after SELECT keyword
|
||||
eval CREATE $_temporary TABLE IF NOT EXISTS t1
|
||||
SELECT /*!'abc',*/ 903;
|
||||
source include/show_binlog_events.inc;
|
||||
let binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
|
||||
--echo
|
||||
--echo # Conditional comment ends just before SELECT keyword
|
||||
eval /*!CREATE $_temporary TABLE IF NOT EXISTS t1
|
||||
*/SELECT 'abc', 905;
|
||||
source include/show_binlog_events.inc;
|
||||
|
||||
if (!$is_temporary)
|
||||
{
|
||||
let $diff_table= test.t1;
|
||||
source include/rpl_diff_tables.inc;
|
||||
}
|
||||
|
||||
DROP TABLE t2;
|
||||
eval DROP $_temporary TABLE t1;
|
||||
|
|
@ -9,8 +9,10 @@
|
|||
--echo Cleaning up after setup_fake_relay_log.inc
|
||||
|
||||
# Remove files.
|
||||
--disable_warnings
|
||||
remove_file $_fake_relay_log;
|
||||
remove_file $_fake_relay_index;
|
||||
--enable_warnings
|
||||
--disable_query_log
|
||||
eval SET @@global.relay_log_purge= $_fake_relay_log_purge;
|
||||
--enable_query_log
|
||||
|
|
|
@ -54,11 +54,12 @@
|
|||
|
||||
--echo Comparing tables $diff_table_1 and $diff_table_2
|
||||
disable_query_log;
|
||||
|
||||
disable_warnings;
|
||||
--error 0,1
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/diff_table_1
|
||||
--error 0,1
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/diff_table_2
|
||||
enable_warnings;
|
||||
|
||||
let $_diff_table=$diff_table_2;
|
||||
let $_diff_i=2;
|
||||
|
|
|
@ -126,3 +126,19 @@ WHERE
|
|||
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#50402 Optimizer producing wrong results when using Index Merge on InnoDB
|
||||
--echo #
|
||||
CREATE TABLE t1 (f1 INT, PRIMARY KEY (f1));
|
||||
INSERT INTO t1 VALUES (2);
|
||||
CREATE TABLE t2 (f1 INT, f2 INT, f3 char(1),
|
||||
PRIMARY KEY (f1), KEY (f2), KEY (f3) );
|
||||
INSERT INTO t2 VALUES (1, 1, 'h'), (2, 3, 'h'), (3, 2, ''), (4, 2, '');
|
||||
|
||||
SELECT t1.f1 FROM t1
|
||||
WHERE (SELECT COUNT(*) FROM t2 WHERE t2.f3 = 'h' AND t2.f2 = t1.f1) = 0 AND t1.f1 = 2;
|
||||
|
||||
EXPLAIN SELECT t1.f1 FROM t1
|
||||
WHERE (SELECT COUNT(*) FROM t2 WHERE t2.f3 = 'h' AND t2.f2 = t1.f1) = 0 AND t1.f1 = 2;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
|
|
@ -24,6 +24,7 @@ EOF
|
|||
|
||||
--source include/mysqladmin_shutdown.inc
|
||||
|
||||
--disable_warnings
|
||||
if (!$mel_keep_control_file)
|
||||
{
|
||||
--error 0,1
|
||||
|
@ -73,6 +74,7 @@ remove_file $MYSQLD_DATADIR/$MARIA_LOG/maria_log.00000020;
|
|||
|
||||
-- error 0,1
|
||||
remove_file $MYSQLD_DATADIR/maria_recovery.trace;
|
||||
--enable_warnings
|
||||
|
||||
append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
|
||||
restart-maria_empty_logs.inc
|
||||
|
|
|
@ -26,12 +26,16 @@ if ($mms_copy)
|
|||
if ($mms_reverse_copy)
|
||||
{
|
||||
# do not call this without flushing target table first!
|
||||
--disable_warnings
|
||||
--echo * copied $mms_tname$mms_table_to_use back for $mms_purpose
|
||||
-- error 0,1
|
||||
remove_file $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAD;
|
||||
--enable_warnings
|
||||
copy_file $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAD $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAD;
|
||||
--disable_warnings
|
||||
-- error 0,1
|
||||
remove_file $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAI;
|
||||
--enable_warnings
|
||||
copy_file $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAI $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAI;
|
||||
}
|
||||
|
||||
|
|
|
@ -31,8 +31,10 @@ while ($mms_table_to_use)
|
|||
let $mms_copy=0;
|
||||
|
||||
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||
--disable_warnings
|
||||
-- error 0,1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mms_for_$mms_purpose.maria_log_control;
|
||||
--enable_warnings
|
||||
copy_file $MYSQLD_DATADIR/$MARIA_LOG/maria_log_control $MYSQLTEST_VARDIR/tmp/mms_for_$mms_purpose.maria_log_control;
|
||||
|
||||
connection default;
|
||||
|
|
|
@ -1910,7 +1910,7 @@ select hex(s1) from t4;
|
|||
drop table t1,t2,t3,t4;
|
||||
}
|
||||
|
||||
if (test_foreign_keys)
|
||||
if ($test_foreign_keys)
|
||||
{
|
||||
eval create table t1 (a int primary key,s1 varbinary(3) not null unique) engine=$engine_type;
|
||||
eval create table t2 (s1 binary(2) not null, constraint c foreign key(s1) references t1(s1) on update cascade) engine=$engine_type;
|
||||
|
@ -2405,7 +2405,7 @@ drop table t1, t2, t3, t5, t6, t8, t9;
|
|||
}
|
||||
# End transactional tests
|
||||
|
||||
if (test_foreign_keys)
|
||||
if ($test_foreign_keys)
|
||||
{
|
||||
# bug 18934, "InnoDB crashes when table uses column names like DB_ROW_ID"
|
||||
--error 1005
|
||||
|
|
|
@ -75,7 +75,9 @@ USE hotcopy_test;
|
|||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--list_files $MYSQLTEST_VARDIR/tmp/hotcopy_test
|
||||
#--exec rm -rf $MYSQLTEST_VARDIR/tmp/hotcopy_test
|
||||
--disable_warnings
|
||||
--remove_files_wildcard $MYSQLTEST_VARDIR/tmp/hotcopy_test *
|
||||
--enable_warnings
|
||||
--rmdir $MYSQLTEST_VARDIR/tmp/hotcopy_test
|
||||
|
||||
# backup without full index files
|
||||
|
|
|
@ -18,8 +18,10 @@ CREATE TABLE helper1(c1 VARCHAR(20));
|
|||
# dump raw data to file
|
||||
let $ndb_backup_file1= $MYSQLTEST_VARDIR/ndb_backup_tmp.dat;
|
||||
let $ndb_backup_file2= $MYSQLTEST_VARDIR/tmp.dat;
|
||||
--disable_warnings
|
||||
--error 0,1
|
||||
--remove_file $ndb_backup_file1
|
||||
--enable_warnings
|
||||
--exec $NDB_TOOLS_DIR/ndb_select_all --ndb-connectstring="$NDB_CONNECTSTRING" -d sys --delimiter=',' SYSTAB_0 > $ndb_backup_file1
|
||||
# load the table from the raw data file
|
||||
eval LOAD DATA INFILE '$ndb_backup_file1' INTO TABLE helper1;
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults $ndb_restore_opts -b $the_backup_id -n 1 $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id $ndb_restore_filter > $MYSQLTEST_VARDIR/tmp/tmp.dat
|
||||
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults $ndb_restore_opts -b $the_backup_id -n 2 $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id $ndb_restore_filter >> $MYSQLTEST_VARDIR/tmp/tmp.dat
|
||||
--exec sort $MYSQLTEST_VARDIR/tmp/tmp.dat
|
||||
--disable_warnings
|
||||
--error 0,1
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/tmp.dat
|
||||
--enable_warnings
|
||||
--let ndb_restore_opts=
|
||||
--let ndb_restore_filter=
|
||||
|
|
5
mysql-test/include/not_blackhole.inc
Normal file
5
mysql-test/include/not_blackhole.inc
Normal file
|
@ -0,0 +1,5 @@
|
|||
if (`SELECT count(*) FROM information_schema.engines WHERE
|
||||
(support = 'YES' OR support = 'DEFAULT') AND
|
||||
engine = 'blackhole'`){
|
||||
skip Blackhole engine enabled;
|
||||
}
|
|
@ -1,7 +1,8 @@
|
|||
SELECT c.count,
|
||||
SELECT d.count,
|
||||
(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
|
||||
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as not_zero_region_count,
|
||||
(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
|
||||
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
|
||||
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
|
||||
FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count > 0;
|
||||
FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
|
||||
SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
|
||||
|
|
|
@ -33,3 +33,4 @@ while (`SELECT "XX$_servers" <> "XX"`)
|
|||
--source include/diff_tables.inc
|
||||
connection $_slave;
|
||||
}
|
||||
connection $_master;
|
||||
|
|
|
@ -72,7 +72,7 @@ copy_file $fake_relay_log $_fake_relay_log;
|
|||
|
||||
if (`SELECT LENGTH(@@secure_file_priv) > 0`)
|
||||
{
|
||||
-- let $_file_priv_dir= `SELECT @@secure_file_priv`;
|
||||
-- let $_file_priv_dir= `SELECT @@secure_file_priv`
|
||||
-- let $_suffix= `SELECT UUID()`
|
||||
-- let $_tmp_file= $_file_priv_dir/fake-index.$_suffix
|
||||
|
||||
|
|
|
@ -246,6 +246,8 @@ sub new {
|
|||
|
||||
while ( my $line= <$F> ) {
|
||||
chomp($line);
|
||||
# Remove any trailing CR from Windows edited files
|
||||
$line=~ s/\cM$//;
|
||||
|
||||
# [group]
|
||||
if ( $line =~ /^\[(.*)\]/ ) {
|
||||
|
|
|
@ -30,6 +30,13 @@ sub get_basedir {
|
|||
return $basedir;
|
||||
}
|
||||
|
||||
sub get_testdir {
|
||||
my ($self, $group)= @_;
|
||||
my $testdir= $group->if_exist('testdir') ||
|
||||
$self->{ARGS}->{testdir};
|
||||
return $testdir;
|
||||
}
|
||||
|
||||
|
||||
sub fix_charset_dir {
|
||||
my ($self, $config, $group_name, $group)= @_;
|
||||
|
@ -138,7 +145,9 @@ sub fix_secure_file_priv {
|
|||
|
||||
sub fix_std_data {
|
||||
my ($self, $config, $group_name, $group)= @_;
|
||||
return "$::opt_vardir/std_data";
|
||||
#return "$::opt_vardir/std_data";
|
||||
my $testdir= $self->get_testdir($group);
|
||||
return "$testdir/std_data";
|
||||
}
|
||||
|
||||
sub ssl_supported {
|
||||
|
|
|
@ -60,11 +60,12 @@ use My::Platform;
|
|||
|
||||
my %running;
|
||||
my $_verbose= 0;
|
||||
my $start_exit= 0;
|
||||
|
||||
END {
|
||||
# Kill any children still running
|
||||
for my $proc (values %running){
|
||||
if ( $proc->is_child($$) ){
|
||||
if ( $proc->is_child($$) and ! $start_exit){
|
||||
#print "Killing: $proc\n";
|
||||
if ($proc->wait_one(0)){
|
||||
$proc->kill();
|
||||
|
@ -149,6 +150,11 @@ sub new {
|
|||
|
||||
push(@safe_args, "--");
|
||||
push(@safe_args, $path); # The program safe_process should execute
|
||||
|
||||
if ($start_exit) { # Bypass safe_process instead, start program directly
|
||||
@safe_args= ();
|
||||
$safe_path= $path;
|
||||
}
|
||||
push(@safe_args, @$$args);
|
||||
|
||||
print "### safe_path: ", $safe_path, " ", join(" ", @safe_args), "\n"
|
||||
|
@ -534,6 +540,13 @@ sub wait_all {
|
|||
}
|
||||
}
|
||||
|
||||
#
|
||||
# Set global flag to tell all safe_process to exit after starting child
|
||||
#
|
||||
|
||||
sub start_exit {
|
||||
$start_exit= 1;
|
||||
}
|
||||
|
||||
#
|
||||
# Check if any process has exited, but don't wait.
|
||||
|
|
|
@ -252,15 +252,11 @@ sub collect_one_suite
|
|||
}
|
||||
else
|
||||
{
|
||||
$suitedir= my_find_dir($::basedir,
|
||||
["mysql-test/suite",
|
||||
"mysql-test",
|
||||
"share/mysql-test/suite",
|
||||
"share/mysql-test",
|
||||
"share/mysql/mysql-test/suite",
|
||||
"share/mysql/mysql-test",
|
||||
$suitedir= my_find_dir($suitedir,
|
||||
["suite",
|
||||
".",
|
||||
# Look in storage engine specific suite dirs
|
||||
"storage/*/mysql-test-suites"
|
||||
"../storage/*/mysql-test-suites"
|
||||
],
|
||||
[$suite]);
|
||||
}
|
||||
|
@ -573,7 +569,7 @@ sub optimize_cases {
|
|||
# Check that engine selected by
|
||||
# --default-storage-engine=<engine> is supported
|
||||
# =======================================================
|
||||
my %builtin_engines = ('myisam' => 1, 'memory' => 1);
|
||||
my %builtin_engines = ('myisam' => 1, 'memory' => 1, 'csv' => 1);
|
||||
|
||||
foreach my $opt ( @{$tinfo->{master_opt}} ) {
|
||||
my $default_engine=
|
||||
|
@ -682,6 +678,13 @@ sub process_opts {
|
|||
next;
|
||||
}
|
||||
|
||||
$value= mtr_match_prefix($opt, "--testcase-timeout=");
|
||||
if ( defined $value ) {
|
||||
# Overrides test case timeout for this test
|
||||
$tinfo->{'case-timeout'}= $value;
|
||||
next;
|
||||
}
|
||||
|
||||
# Ok, this was a real option, add it
|
||||
push(@{$tinfo->{$opt_name}}, $opt);
|
||||
}
|
||||
|
@ -692,6 +695,7 @@ sub process_opts {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# Collect information about a single test case
|
||||
|
@ -904,7 +908,7 @@ sub collect_one_test_case {
|
|||
{
|
||||
# Ndb is not supported, skip it
|
||||
$tinfo->{'skip'}= 1;
|
||||
$tinfo->{'comment'}= "No ndbcluster support";
|
||||
$tinfo->{'comment'}= "No ndbcluster support or ndb tests not enabled";
|
||||
return $tinfo;
|
||||
}
|
||||
elsif ( $::opt_skip_ndbcluster )
|
||||
|
|
|
@ -120,7 +120,7 @@ sub mtr_report_test ($) {
|
|||
my $timest = format_time();
|
||||
my $fail = "fail";
|
||||
|
||||
if ( $::opt_experimental )
|
||||
if ( @$::experimental_test_cases )
|
||||
{
|
||||
# Find out if this test case is an experimental one, so we can treat
|
||||
# the failure as an expected failure instead of a regression.
|
||||
|
|
|
@ -111,12 +111,24 @@ my $path_vardir_trace; # unix formatted opt_vardir for trace files
|
|||
my $opt_tmpdir; # Path to use for tmp/ dir
|
||||
my $opt_tmpdir_pid;
|
||||
|
||||
my $opt_start;
|
||||
my $opt_start_dirty;
|
||||
my $opt_start_exit;
|
||||
my $start_only;
|
||||
|
||||
END {
|
||||
if ( defined $opt_tmpdir_pid and $opt_tmpdir_pid == $$ )
|
||||
{
|
||||
# Remove the tempdir this process has created
|
||||
mtr_verbose("Removing tmpdir '$opt_tmpdir");
|
||||
rmtree($opt_tmpdir);
|
||||
if (!$opt_start_exit)
|
||||
{
|
||||
# Remove the tempdir this process has created
|
||||
mtr_verbose("Removing tmpdir $opt_tmpdir");
|
||||
rmtree($opt_tmpdir);
|
||||
}
|
||||
else
|
||||
{
|
||||
mtr_warning("tmpdir $opt_tmpdir should be removed after the server has finished");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -191,8 +203,8 @@ our $opt_client_debugger;
|
|||
my $config; # The currently running config
|
||||
my $current_config_name; # The currently running config file template
|
||||
|
||||
our $opt_experimental;
|
||||
our $experimental_test_cases;
|
||||
our @opt_experimentals;
|
||||
our $experimental_test_cases= [];
|
||||
|
||||
my $baseport;
|
||||
# $opt_build_thread may later be set from $opt_port_base
|
||||
|
@ -216,18 +228,16 @@ my $opt_suite_timeout = $ENV{MTR_SUITE_TIMEOUT} || 360; # minutes
|
|||
my $opt_shutdown_timeout= $ENV{MTR_SHUTDOWN_TIMEOUT} || 10; # seconds
|
||||
my $opt_start_timeout = $ENV{MTR_START_TIMEOUT} || 180; # seconds
|
||||
|
||||
sub testcase_timeout { return $opt_testcase_timeout * 60; };
|
||||
sub suite_timeout { return $opt_suite_timeout * 60; };
|
||||
sub check_timeout { return $opt_testcase_timeout * 6; };
|
||||
|
||||
my $opt_start;
|
||||
my $opt_start_dirty;
|
||||
my $start_only;
|
||||
my $opt_wait_all;
|
||||
my $opt_user_args;
|
||||
my $opt_repeat= 1;
|
||||
my $opt_retry= 1;
|
||||
my $opt_retry_failure= env_or_val(MTR_RETRY_FAILURE => 2);
|
||||
my $opt_reorder= 1;
|
||||
my $opt_force_restart= 0;
|
||||
|
||||
my $opt_strace_client;
|
||||
|
||||
|
@ -245,9 +255,21 @@ my $opt_callgrind;
|
|||
my %mysqld_logs;
|
||||
my $opt_debug_sync_timeout= 300; # Default timeout for WAIT_FOR actions.
|
||||
|
||||
sub testcase_timeout ($) {
|
||||
my ($tinfo)= @_;
|
||||
if (exists $tinfo->{'case-timeout'}) {
|
||||
# Return test specific timeout if *longer* that the general timeout
|
||||
my $test_to= $tinfo->{'case-timeout'};
|
||||
$test_to*= 10 if $opt_valgrind;
|
||||
return $test_to * 60 if $test_to > $opt_testcase_timeout;
|
||||
}
|
||||
return $opt_testcase_timeout * 60;
|
||||
}
|
||||
|
||||
our $opt_warnings= 1;
|
||||
|
||||
our $opt_skip_ndbcluster= 0;
|
||||
our $opt_include_ndbcluster= 0;
|
||||
our $opt_skip_ndbcluster= 1;
|
||||
|
||||
my $exe_ndbd;
|
||||
my $exe_ndb_mgmd;
|
||||
|
@ -375,6 +397,12 @@ sub main {
|
|||
mtr_report("Using parallel: $opt_parallel");
|
||||
}
|
||||
|
||||
if ($opt_parallel > 1 && $opt_start_exit) {
|
||||
mtr_warning("Parallel and --start-and-exit cannot be combined\n" .
|
||||
"Setting parallel to 1");
|
||||
$opt_parallel= 1;
|
||||
}
|
||||
|
||||
# Create server socket on any free port
|
||||
my $server = new IO::Socket::INET
|
||||
(
|
||||
|
@ -415,6 +443,8 @@ sub main {
|
|||
my ($prefix, $fail, $completed, $extra_warnings)=
|
||||
run_test_server($server, $tests, $opt_parallel);
|
||||
|
||||
exit(0) if $opt_start_exit;
|
||||
|
||||
# Send Ctrl-C to any children still running
|
||||
kill("INT", keys(%children));
|
||||
|
||||
|
@ -893,6 +923,7 @@ sub command_line_setup {
|
|||
# Control what test suites or cases to run
|
||||
'force' => \$opt_force,
|
||||
'with-ndbcluster-only' => \&collect_option,
|
||||
'include-ndbcluster' => \$opt_include_ndbcluster,
|
||||
'skip-ndbcluster|skip-ndb' => \$opt_skip_ndbcluster,
|
||||
'suite|suites=s' => \$opt_suites,
|
||||
'skip-rpl' => \&collect_option,
|
||||
|
@ -902,7 +933,7 @@ sub command_line_setup {
|
|||
'big-test' => \$opt_big_test,
|
||||
'combination=s' => \@opt_combinations,
|
||||
'skip-combinations' => \&collect_option,
|
||||
'experimental=s' => \$opt_experimental,
|
||||
'experimental=s' => \@opt_experimentals,
|
||||
'skip-im' => \&ignore_option,
|
||||
'staging-run' => \$opt_staging_run,
|
||||
|
||||
|
@ -976,13 +1007,16 @@ sub command_line_setup {
|
|||
'report-features' => \$opt_report_features,
|
||||
'comment=s' => \$opt_comment,
|
||||
'fast' => \$opt_fast,
|
||||
'force-restart' => \$opt_force_restart,
|
||||
'reorder!' => \$opt_reorder,
|
||||
'enable-disabled' => \&collect_option,
|
||||
'verbose+' => \$opt_verbose,
|
||||
'verbose-restart' => \&report_option,
|
||||
'sleep=i' => \$opt_sleep,
|
||||
'start-dirty' => \$opt_start_dirty,
|
||||
'start-and-exit' => \$opt_start_exit,
|
||||
'start' => \$opt_start,
|
||||
'user-args' => \$opt_user_args,
|
||||
'wait-all' => \$opt_wait_all,
|
||||
'print-testcases' => \&collect_option,
|
||||
'repeat=i' => \$opt_repeat,
|
||||
|
@ -1088,43 +1122,47 @@ sub command_line_setup {
|
|||
mtr_print_thick_line('#');
|
||||
}
|
||||
|
||||
if ( $opt_experimental )
|
||||
if ( @opt_experimentals )
|
||||
{
|
||||
# $^O on Windows considered not generic enough
|
||||
my $plat= (IS_WINDOWS) ? 'windows' : $^O;
|
||||
|
||||
# read the list of experimental test cases from the file specified on
|
||||
# read the list of experimental test cases from the files specified on
|
||||
# the command line
|
||||
open(FILE, "<", $opt_experimental) or mtr_error("Can't read experimental file: $opt_experimental");
|
||||
mtr_report("Using experimental file: $opt_experimental");
|
||||
$experimental_test_cases = [];
|
||||
while(<FILE>) {
|
||||
chomp;
|
||||
# remove comments (# foo) at the beginning of the line, or after a
|
||||
# blank at the end of the line
|
||||
s/( +|^)#.*$//;
|
||||
# If @ platform specifier given, use this entry only if it contains
|
||||
# @<platform> or @!<xxx> where xxx != platform
|
||||
if (/\@.*/)
|
||||
{
|
||||
next if (/\@!$plat/);
|
||||
next unless (/\@$plat/ or /\@!/);
|
||||
# Then remove @ and everything after it
|
||||
s/\@.*$//;
|
||||
foreach my $exp_file (@opt_experimentals)
|
||||
{
|
||||
open(FILE, "<", $exp_file)
|
||||
or mtr_error("Can't read experimental file: $exp_file");
|
||||
mtr_report("Using experimental file: $exp_file");
|
||||
while(<FILE>) {
|
||||
chomp;
|
||||
# remove comments (# foo) at the beginning of the line, or after a
|
||||
# blank at the end of the line
|
||||
s/( +|^)#.*$//;
|
||||
# If @ platform specifier given, use this entry only if it contains
|
||||
# @<platform> or @!<xxx> where xxx != platform
|
||||
if (/\@.*/)
|
||||
{
|
||||
next if (/\@!$plat/);
|
||||
next unless (/\@$plat/ or /\@!/);
|
||||
# Then remove @ and everything after it
|
||||
s/\@.*$//;
|
||||
}
|
||||
# remove whitespace
|
||||
s/^ +//;
|
||||
s/ +$//;
|
||||
# if nothing left, don't need to remember this line
|
||||
if ( $_ eq "" ) {
|
||||
next;
|
||||
}
|
||||
# remember what is left as the name of another test case that should be
|
||||
# treated as experimental
|
||||
print " - $_\n";
|
||||
push @$experimental_test_cases, $_;
|
||||
}
|
||||
# remove whitespace
|
||||
s/^ +//;
|
||||
s/ +$//;
|
||||
# if nothing left, don't need to remember this line
|
||||
if ( $_ eq "" ) {
|
||||
next;
|
||||
}
|
||||
# remember what is left as the name of another test case that should be
|
||||
# treated as experimental
|
||||
print " - $_\n";
|
||||
push @$experimental_test_cases, $_;
|
||||
close FILE;
|
||||
}
|
||||
close FILE;
|
||||
}
|
||||
|
||||
foreach my $arg ( @ARGV )
|
||||
|
@ -1398,7 +1436,7 @@ sub command_line_setup {
|
|||
# --------------------------------------------------------------------------
|
||||
# Modified behavior with --start options
|
||||
# --------------------------------------------------------------------------
|
||||
if ($opt_start or $opt_start_dirty) {
|
||||
if ($opt_start or $opt_start_dirty or $opt_start_exit) {
|
||||
collect_option ('quick-collect', 1);
|
||||
$start_only= 1;
|
||||
}
|
||||
|
@ -1410,13 +1448,24 @@ sub command_line_setup {
|
|||
$opt_retry_failure= 1;
|
||||
}
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Check use of user-args
|
||||
# --------------------------------------------------------------------------
|
||||
|
||||
if ($opt_user_args) {
|
||||
mtr_error("--user-args only valid with --start options")
|
||||
unless $start_only;
|
||||
mtr_error("--user-args cannot be combined with named suites or tests")
|
||||
if $opt_suites || @opt_cases;
|
||||
}
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Check use of wait-all
|
||||
# --------------------------------------------------------------------------
|
||||
|
||||
if ($opt_wait_all && ! $start_only)
|
||||
{
|
||||
mtr_error("--wait-all can only be used with --start or --start-dirty");
|
||||
mtr_error("--wait-all can only be used with --start options");
|
||||
}
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
|
@ -2154,6 +2203,12 @@ sub environment_setup {
|
|||
# Create an environment variable to make it possible
|
||||
# to detect that valgrind is being used from test cases
|
||||
$ENV{'VALGRIND_TEST'}= $opt_valgrind;
|
||||
|
||||
# Add dir of this perl to aid mysqltest in finding perl
|
||||
my $perldir= dirname($^X);
|
||||
my $pathsep= ":";
|
||||
$pathsep= ";" if IS_WINDOWS && ! IS_CYGWIN;
|
||||
$ENV{'PATH'}= "$ENV{'PATH'}".$pathsep.$perldir;
|
||||
}
|
||||
|
||||
|
||||
|
@ -2478,6 +2533,11 @@ sub fix_vs_config_dir () {
|
|||
sub check_ndbcluster_support ($) {
|
||||
my $mysqld_variables= shift;
|
||||
|
||||
if ($opt_include_ndbcluster)
|
||||
{
|
||||
$opt_skip_ndbcluster= 0;
|
||||
}
|
||||
|
||||
if ($opt_skip_ndbcluster)
|
||||
{
|
||||
mtr_report(" - skipping ndbcluster");
|
||||
|
@ -2987,6 +3047,7 @@ sub default_mysqld {
|
|||
my $config= My::ConfigFactory->new_config
|
||||
( {
|
||||
basedir => $basedir,
|
||||
testdir => $glob_mysql_test_dir,
|
||||
template_path => "include/default_my.cnf",
|
||||
vardir => $opt_vardir,
|
||||
tmpdir => $opt_tmpdir,
|
||||
|
@ -3262,7 +3323,8 @@ sub check_testcase($$)
|
|||
my %started;
|
||||
foreach my $mysqld ( mysqlds() )
|
||||
{
|
||||
if ( defined $mysqld->{'proc'} )
|
||||
# Skip if server has been restarted with additional options
|
||||
if ( defined $mysqld->{'proc'} && ! exists $mysqld->{'restart_opts'} )
|
||||
{
|
||||
my $proc= start_check_testcase($tinfo, $mode, $mysqld);
|
||||
$started{$proc->pid()}= $proc;
|
||||
|
@ -3712,6 +3774,7 @@ sub run_testcase ($$) {
|
|||
$config= My::ConfigFactory->new_config
|
||||
( {
|
||||
basedir => $basedir,
|
||||
testdir => $glob_mysql_test_dir,
|
||||
template_path => $tinfo->{template_path},
|
||||
extra_template_path => $tinfo->{extra_template_path},
|
||||
vardir => $opt_vardir,
|
||||
|
@ -3755,6 +3818,11 @@ sub run_testcase ($$) {
|
|||
# Write start of testcase to log
|
||||
mark_log($path_current_testlog, $tinfo);
|
||||
|
||||
# Make sure the safe_process also exits from now on
|
||||
if ($opt_start_exit) {
|
||||
My::SafeProcess->start_exit();
|
||||
}
|
||||
|
||||
if (start_servers($tinfo))
|
||||
{
|
||||
report_failure_and_restart($tinfo);
|
||||
|
@ -3779,6 +3847,18 @@ sub run_testcase ($$) {
|
|||
mtr_print ($mysqld->name() . " " . $mysqld->value('port') .
|
||||
" " . $mysqld->value('socket'));
|
||||
}
|
||||
if ( $opt_start_exit )
|
||||
{
|
||||
mtr_print("Server(s) started, not waiting for them to finish");
|
||||
if (IS_WINDOWS)
|
||||
{
|
||||
POSIX::_exit(0); # exit hangs here in ActiveState Perl
|
||||
}
|
||||
else
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
mtr_print("Waiting for server(s) to exit...");
|
||||
if ( $opt_wait_all ) {
|
||||
My::SafeProcess->wait_all();
|
||||
|
@ -3797,7 +3877,7 @@ sub run_testcase ($$) {
|
|||
}
|
||||
}
|
||||
|
||||
my $test_timeout= start_timer(testcase_timeout());
|
||||
my $test_timeout= start_timer(testcase_timeout($tinfo));
|
||||
|
||||
do_before_run_mysqltest($tinfo);
|
||||
|
||||
|
@ -3902,6 +3982,9 @@ sub run_testcase ($$) {
|
|||
# Try to get reason from test log file
|
||||
find_testcase_skipped_reason($tinfo);
|
||||
mtr_report_test_skipped($tinfo);
|
||||
# Restart if skipped due to missing perl, it may have had side effects
|
||||
stop_all_servers($opt_shutdown_timeout)
|
||||
if ($tinfo->{'comment'} =~ /^perl not found/);
|
||||
}
|
||||
elsif ( $res == 65 )
|
||||
{
|
||||
|
@ -4008,7 +4091,7 @@ sub run_testcase ($$) {
|
|||
{
|
||||
my $log_file_name= $opt_vardir."/log/".$tinfo->{shortname}.".log";
|
||||
$tinfo->{comment}=
|
||||
"Test case timeout after ".testcase_timeout().
|
||||
"Test case timeout after ".testcase_timeout($tinfo).
|
||||
" seconds\n\n";
|
||||
# Add 20 last executed commands from test case log file
|
||||
if (-e $log_file_name)
|
||||
|
@ -4017,7 +4100,7 @@ sub run_testcase ($$) {
|
|||
"== $log_file_name == \n".
|
||||
mtr_lastlinesfromfile($log_file_name, 20)."\n";
|
||||
}
|
||||
$tinfo->{'timeout'}= testcase_timeout(); # Mark as timeout
|
||||
$tinfo->{'timeout'}= testcase_timeout($tinfo); # Mark as timeout
|
||||
run_on_all($tinfo, 'analyze-timeout');
|
||||
|
||||
report_failure_and_restart($tinfo);
|
||||
|
@ -4035,7 +4118,7 @@ sub run_testcase ($$) {
|
|||
sub _preserve_error_log_names {
|
||||
my ($mysqld)= @_;
|
||||
my $error_log_file= $mysqld->if_exist('#log-error');
|
||||
return unless $error_log_file and -r $error_log_file;
|
||||
return (undef, undef) unless $error_log_file;
|
||||
my $error_log_dir= dirname($error_log_file);
|
||||
my $save_name= $error_log_dir ."/../". $mysqld->name() .".error.log";
|
||||
return ($error_log_file, $save_name);
|
||||
|
@ -4237,6 +4320,7 @@ sub extract_warning_lines ($) {
|
|||
qr/Slave SQL thread retried transaction/,
|
||||
qr/Slave \(additional info\)/,
|
||||
qr/Incorrect information in file/,
|
||||
qr/Incorrect key file for table .*crashed.*/,
|
||||
qr/Slave I\/O: Get master SERVER_ID failed with error:.*/,
|
||||
qr/Slave I\/O: Get master clock failed with error:.*/,
|
||||
qr/Slave I\/O: Get master COLLATION_SERVER failed with error:.*/,
|
||||
|
@ -4250,7 +4334,8 @@ sub extract_warning_lines ($) {
|
|||
qr/Slave: Operation DROP USER failed for 'create_rout_db'/,
|
||||
qr|Checking table: '\./mtr/test_suppressions'|,
|
||||
qr|Table \./test/bug53592 has a primary key in InnoDB data dictionary, but not in MySQL|,
|
||||
qr|mysqld: Table '\./mtr/test_suppressions' is marked as crashed and should be repaired|
|
||||
qr|mysqld: Table '\./mtr/test_suppressions' is marked as crashed and should be repaired|,
|
||||
qr|InnoDB: Error: table 'test/bug39438'|,
|
||||
);
|
||||
|
||||
my $matched_lines= [];
|
||||
|
@ -4496,6 +4581,16 @@ sub check_expected_crash_and_restart {
|
|||
next;
|
||||
}
|
||||
|
||||
# If last line begins "restart:", the rest of the line is read as
|
||||
# extra command line options to add to the restarted mysqld.
|
||||
# Anything other than 'wait' or 'restart:' (with a colon) will
|
||||
# result in a restart with original mysqld options.
|
||||
if ($last_line =~ /restart:(.+)/) {
|
||||
my @rest_opt= split(' ', $1);
|
||||
$mysqld->{'restart_opts'}= \@rest_opt;
|
||||
} else {
|
||||
delete $mysqld->{'restart_opts'};
|
||||
}
|
||||
unlink($expect_file);
|
||||
|
||||
# Start server with same settings as last time
|
||||
|
@ -4734,7 +4829,7 @@ sub mysqld_arguments ($$$) {
|
|||
|
||||
mtr_add_arg($args, "%s--disable-sync-frm");
|
||||
|
||||
if (!using_extern() and $mysql_version_id >= 50106 )
|
||||
if (!using_extern() and $mysql_version_id >= 50106 && !$opt_user_args)
|
||||
{
|
||||
# Turn on logging to file and tables
|
||||
mtr_add_arg($args, "%s--log-output=table,file");
|
||||
|
@ -4772,7 +4867,7 @@ sub mysqld_arguments ($$$) {
|
|||
}
|
||||
}
|
||||
$opt_skip_core = $found_skip_core;
|
||||
if ( !$found_skip_core )
|
||||
if ( !$found_skip_core && !$opt_user_args )
|
||||
{
|
||||
mtr_add_arg($args, "%s", "--core-file");
|
||||
}
|
||||
|
@ -4780,7 +4875,7 @@ sub mysqld_arguments ($$$) {
|
|||
# Enable the debug sync facility, set default wait timeout.
|
||||
# Facility stays disabled if timeout value is zero.
|
||||
mtr_add_arg($args, "--loose-debug-sync-timeout=%s",
|
||||
$opt_debug_sync_timeout);
|
||||
$opt_debug_sync_timeout) unless $opt_user_args;
|
||||
|
||||
return $args;
|
||||
}
|
||||
|
@ -4812,7 +4907,13 @@ sub mysqld_start ($$) {
|
|||
}
|
||||
|
||||
mtr_add_arg($args, "--defaults-group-suffix=%s", $mysqld->after('mysqld'));
|
||||
mysqld_arguments($args,$mysqld,$extra_opts);
|
||||
|
||||
# Add any additional options from an in-test restart
|
||||
my @all_opts= @$extra_opts;
|
||||
if (exists $mysqld->{'restart_opts'}) {
|
||||
push (@all_opts, @{$mysqld->{'restart_opts'}});
|
||||
}
|
||||
mysqld_arguments($args,$mysqld,\@all_opts);
|
||||
|
||||
if ( $opt_debug )
|
||||
{
|
||||
|
@ -4955,6 +5056,11 @@ sub server_need_restart {
|
|||
return 1;
|
||||
}
|
||||
|
||||
if ( $opt_force_restart ) {
|
||||
mtr_verbose_restart($server, "forced restart turned on");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ( $tinfo->{template_path} ne $current_config_name)
|
||||
{
|
||||
mtr_verbose_restart($server, "using different config file");
|
||||
|
@ -5005,7 +5111,10 @@ sub server_need_restart {
|
|||
my $extra_opts= get_extra_opts($server, $tinfo);
|
||||
my $started_opts= $server->{'started_opts'};
|
||||
|
||||
if (!My::Options::same($started_opts, $extra_opts) )
|
||||
# Also, always restart if server had been restarted with additional
|
||||
# options within test.
|
||||
if (!My::Options::same($started_opts, $extra_opts) ||
|
||||
exists $server->{'restart_opts'})
|
||||
{
|
||||
my $use_dynamic_option_switch= 0;
|
||||
if (!$use_dynamic_option_switch)
|
||||
|
@ -5074,6 +5183,9 @@ sub stopped { return grep(!defined $_, map($_->{proc}, @_)); }
|
|||
|
||||
|
||||
sub get_extra_opts {
|
||||
# No extra options if --user-args
|
||||
return \@opt_extra_mysqld_opt if $opt_user_args;
|
||||
|
||||
my ($mysqld, $tinfo)= @_;
|
||||
|
||||
my $opts=
|
||||
|
@ -5655,7 +5767,8 @@ Options to control what test suites or cases to run
|
|||
|
||||
force Continue to run the suite after failure
|
||||
with-ndbcluster-only Run only tests that include "ndb" in the filename
|
||||
skip-ndb[cluster] Skip all tests that need cluster
|
||||
skip-ndb[cluster] Skip all tests that need cluster. Default.
|
||||
include-ndb[cluster] Enable all tests that need cluster
|
||||
do-test=PREFIX or REGEX
|
||||
Run test cases which name are prefixed with PREFIX
|
||||
or fulfills REGEX
|
||||
|
@ -5768,13 +5881,19 @@ Misc options
|
|||
startup settings for the first specified test case
|
||||
Example:
|
||||
$0 --start alias &
|
||||
start-and-exit Same as --start, but mysql-test-run terminates and
|
||||
leaves just the server running
|
||||
start-dirty Only start the servers (without initialization) for
|
||||
the first specified test case
|
||||
user-args In combination with start* and no test name, drops
|
||||
arguments to mysqld except those speficied with
|
||||
--mysqld (if any)
|
||||
wait-all If --start or --start-dirty option is used, wait for all
|
||||
servers to exit before finishing the process
|
||||
fast Run as fast as possible, dont't wait for servers
|
||||
to shutdown etc.
|
||||
parallel=N Run tests in N parallel threads (default 1)
|
||||
force-restart Always restart servers between tests
|
||||
parallel=N Run tests in N parallel threads (default=1)
|
||||
Use parallel=auto for auto-setting of N
|
||||
repeat=N Run each test N number of times
|
||||
retry=N Retry tests that fail up to N times (default $opt_retry).
|
||||
|
|
6
mysql-test/r/alter_table_trans.result
Normal file
6
mysql-test/r/alter_table_trans.result
Normal file
|
@ -0,0 +1,6 @@
|
|||
drop table if exists t1,t2;
|
||||
CREATE TABLE t1 (a INT, INDEX(a)) engine=innodb;
|
||||
ALTER TABLE t1 RENAME TO t2, DISABLE KEYS;
|
||||
Warnings:
|
||||
Note 1031 Table storage engine for 't1' doesn't have this option
|
||||
DROP TABLE t2;
|
|
@ -5138,7 +5138,7 @@ insert t1 values (1),(2),(3),(4),(5);
|
|||
truncate table t1;
|
||||
affected rows: 0
|
||||
drop table t1;
|
||||
create table t1 (v varchar(32) not null);
|
||||
create table t1 (v varchar(32) not null) engine=csv;
|
||||
insert into t1 values ('def'),('abc'),('hij'),('3r4f');
|
||||
select * from t1;
|
||||
v
|
||||
|
@ -5146,14 +5146,14 @@ def
|
|||
abc
|
||||
hij
|
||||
3r4f
|
||||
alter table t1 change v v2 varchar(32);
|
||||
alter table t1 change v v2 varchar(32) not null;
|
||||
select * from t1;
|
||||
v2
|
||||
def
|
||||
abc
|
||||
hij
|
||||
3r4f
|
||||
alter table t1 change v2 v varchar(64);
|
||||
alter table t1 change v2 v varchar(64) not null;
|
||||
select * from t1;
|
||||
v
|
||||
def
|
||||
|
@ -5163,35 +5163,34 @@ hij
|
|||
update t1 set v = 'lmn' where v = 'hij';
|
||||
select * from t1;
|
||||
v
|
||||
lmn
|
||||
def
|
||||
abc
|
||||
lmn
|
||||
3r4f
|
||||
alter table t1 add i int auto_increment not null primary key first;
|
||||
alter table t1 add i int not null first;
|
||||
select * from t1;
|
||||
i v
|
||||
1 def
|
||||
2 abc
|
||||
3 lmn
|
||||
4 3r4f
|
||||
update t1 set i=5 where i=3;
|
||||
0 lmn
|
||||
0 def
|
||||
0 abc
|
||||
0 3r4f
|
||||
update t1 set i=3 where v = 'abc';
|
||||
select * from t1;
|
||||
i v
|
||||
1 def
|
||||
2 abc
|
||||
5 lmn
|
||||
4 3r4f
|
||||
alter table t1 change i i bigint;
|
||||
3 abc
|
||||
0 lmn
|
||||
0 def
|
||||
0 3r4f
|
||||
alter table t1 change i i bigint not null;
|
||||
select * from t1;
|
||||
i v
|
||||
1 def
|
||||
2 abc
|
||||
5 lmn
|
||||
4 3r4f
|
||||
alter table t1 add unique key (i, v);
|
||||
select * from t1 where i between 2 and 4 and v in ('def','3r4f','lmn');
|
||||
3 abc
|
||||
0 lmn
|
||||
0 def
|
||||
0 3r4f
|
||||
select * from t1 where i between 2 and 4 and v in ('def','3r4f','abc');
|
||||
i v
|
||||
4 3r4f
|
||||
3 abc
|
||||
drop table t1;
|
||||
create table bug15205 (val int(11) not null) engine=csv;
|
||||
create table bug15205_2 (val int(11) not null) engine=csv;
|
||||
|
|
|
@ -358,4 +358,13 @@ INDEX(a), INDEX(b), INDEX(c));
|
|||
INSERT INTO t1 VALUES (1,2,3), (4,5,6), (7,8,9);
|
||||
DELETE FROM t1 WHERE a = 10 OR b = 20 ORDER BY c LIMIT 1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #53034: Multiple-table DELETE statements not accepting
|
||||
# "Access compatibility" syntax
|
||||
#
|
||||
CREATE TABLE t1 (id INT);
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
CREATE TABLE t3 LIKE t1;
|
||||
DELETE FROM t1.*, test.t2.*, a.* USING t1, t2, t3 AS a;
|
||||
DROP TABLE t1, t2, t3;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -1713,4 +1713,15 @@ f1 f2 f3 f4 f1 = f2
|
|||
NULL NULL NULL NULL NULL
|
||||
drop table t1;
|
||||
#
|
||||
# Bug #54465: assert: field_types == 0 || field_types[field_pos] ==
|
||||
# MYSQL_TYPE_LONGLONG
|
||||
#
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1), (2);
|
||||
SELECT MAX((SELECT 1 FROM t1 ORDER BY @var LIMIT 1)) m FROM t1 t2, t1
|
||||
ORDER BY t1.a;
|
||||
m
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -194,7 +194,7 @@ date("1997-12-31 23:59:59.000001") as f8,
|
|||
time("1997-12-31 23:59:59.000001") as f9;
|
||||
describe t1;
|
||||
Field Type Null Key Default Extra
|
||||
f1 date NO 0000-00-00
|
||||
f1 date YES NULL
|
||||
f2 datetime YES NULL
|
||||
f3 time YES NULL
|
||||
f4 time YES NULL
|
||||
|
|
|
@ -1335,4 +1335,12 @@ date_sub("0069-01-01 00:00:01",INTERVAL 2 SECOND)
|
|||
select date_sub("0169-01-01 00:00:01",INTERVAL 2 SECOND);
|
||||
date_sub("0169-01-01 00:00:01",INTERVAL 2 SECOND)
|
||||
0168-12-31 23:59:59
|
||||
CREATE TABLE t1(a DOUBLE NOT NULL);
|
||||
INSERT INTO t1 VALUES (0),(9.216e-096);
|
||||
# should not crash
|
||||
SELECT 1 FROM t1 ORDER BY @x:=makedate(a,a);
|
||||
1
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -707,10 +707,7 @@ numgeometries(b) IS NULL, numinteriorrings(b) IS NULL, numpoints(b) IS NULL,
|
|||
area(b) IS NULL, glength(b) IS NULL, srid(b) IS NULL, x(b) IS NULL,
|
||||
y(b) IS NULL
|
||||
from t1;
|
||||
geometryfromtext(b) IS NULL geometryfromwkb(b) IS NULL astext(b) IS NULL aswkb(b) IS NULL geometrytype(b) IS NULL centroid(b) IS NULL envelope(b) IS NULL startpoint(b) IS NULL endpoint(b) IS NULL exteriorring(b) IS NULL pointn(b, 1) IS NULL geometryn(b, 1) IS NULL interiorringn(b, 1) IS NULL multipoint(b) IS NULL isempty(b) IS NULL issimple(b) IS NULL isclosed(b) IS NULL dimension(b) IS NULL numgeometries(b) IS NULL numinteriorrings(b) IS NULL numpoints(b) IS NULL area(b) IS NULL glength(b) IS NULL srid(b) IS NULL x(b) IS NULL y(b) IS NULL
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||
ERROR 22007: Illegal non geometric '`test`.`t1`.`b`' value found during parsing
|
||||
select
|
||||
within(b, b) IS NULL, contains(b, b) IS NULL, overlaps(b, b) IS NULL,
|
||||
equals(b, b) IS NULL, disjoint(b, b) IS NULL, touches(b, b) IS NULL,
|
||||
|
@ -725,10 +722,7 @@ point(b, b) IS NULL, linestring(b) IS NULL, polygon(b) IS NULL, multipoint(b) IS
|
|||
multilinestring(b) IS NULL, multipolygon(b) IS NULL,
|
||||
geometrycollection(b) IS NULL
|
||||
from t1;
|
||||
point(b, b) IS NULL linestring(b) IS NULL polygon(b) IS NULL multipoint(b) IS NULL multilinestring(b) IS NULL multipolygon(b) IS NULL geometrycollection(b) IS NULL
|
||||
0 1 1 1 1 1 1
|
||||
1 1 1 1 1 1 1
|
||||
0 1 1 1 1 1 1
|
||||
ERROR 22007: Illegal non geometric '`test`.`t1`.`b`' value found during parsing
|
||||
drop table t1;
|
||||
CREATE TABLE t1(a POINT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
|
@ -1010,51 +1004,14 @@ f5 datetime YES NULL
|
|||
drop view v1;
|
||||
drop table t1;
|
||||
SELECT MultiPoint(12345,'');
|
||||
MultiPoint(12345,'')
|
||||
NULL
|
||||
SELECT MultiPoint(123451,'');
|
||||
MultiPoint(123451,'')
|
||||
NULL
|
||||
SELECT MultiPoint(1234512,'');
|
||||
MultiPoint(1234512,'')
|
||||
NULL
|
||||
SELECT MultiPoint(12345123,'');
|
||||
MultiPoint(12345123,'')
|
||||
NULL
|
||||
SELECT MultiLineString(12345,'');
|
||||
MultiLineString(12345,'')
|
||||
NULL
|
||||
SELECT MultiLineString(123451,'');
|
||||
MultiLineString(123451,'')
|
||||
NULL
|
||||
SELECT MultiLineString(1234512,'');
|
||||
MultiLineString(1234512,'')
|
||||
NULL
|
||||
SELECT MultiLineString(12345123,'');
|
||||
MultiLineString(12345123,'')
|
||||
NULL
|
||||
SELECT LineString(12345,'');
|
||||
LineString(12345,'')
|
||||
NULL
|
||||
SELECT LineString(123451,'');
|
||||
LineString(123451,'')
|
||||
NULL
|
||||
SELECT LineString(1234512,'');
|
||||
LineString(1234512,'')
|
||||
NULL
|
||||
SELECT LineString(12345123,'');
|
||||
LineString(12345123,'')
|
||||
NULL
|
||||
SELECT Polygon(12345,'');
|
||||
Polygon(12345,'')
|
||||
NULL
|
||||
SELECT Polygon(123451,'');
|
||||
Polygon(123451,'')
|
||||
NULL
|
||||
SELECT Polygon(1234512,'');
|
||||
Polygon(1234512,'')
|
||||
NULL
|
||||
SELECT Polygon(12345123,'');
|
||||
Polygon(12345123,'')
|
||||
NULL
|
||||
ERROR 22007: Illegal non geometric '12345' value found during parsing
|
||||
SELECT 1 FROM (SELECT GREATEST(1,GEOMETRYCOLLECTION('00000','00000')) b FROM DUAL) AS d WHERE (LINESTRING(d.b));
|
||||
ERROR 22007: Illegal non geometric ''00000'' value found during parsing
|
||||
#
|
||||
# BUG#51875: crash when loading data into geometry function polyfromwkb
|
||||
#
|
||||
SET @a=0x00000000030000000100000000000000000000000000144000000000000014400000000000001840000000000000184000000000000014400000000000001440;
|
||||
SET @a=POLYFROMWKB(@a);
|
||||
SET @a=0x00000000030000000000000000000000000000000000144000000000000014400000000000001840000000000000184000000000000014400000000000001440;
|
||||
SET @a=POLYFROMWKB(@a);
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -470,9 +470,10 @@ WHERE table2.f1 = 2
|
|||
GROUP BY table1.f1, table2.f2
|
||||
HAVING (table2.f2 = 8 AND table1.f1 >= 6);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible HAVING noticed after reading const tables
|
||||
1 SIMPLE table2 const PRIMARY PRIMARY 4 const 1 100.00 Using filesort
|
||||
1 SIMPLE table1 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`table1`.`f1` AS `f1`,'7' AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where ((`test`.`table1`.`f3` = '9')) group by `test`.`table1`.`f1`,'7' having 0
|
||||
Note 1003 select `test`.`table1`.`f1` AS `f1`,'7' AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where ((`test`.`table1`.`f3` = '9')) group by `test`.`table1`.`f1`,'7' having (('7' = 8) and (`test`.`table1`.`f1` >= 6))
|
||||
EXPLAIN EXTENDED
|
||||
SELECT table1.f1, table2.f2
|
||||
FROM t1 AS table1
|
||||
|
@ -481,9 +482,10 @@ WHERE table2.f1 = 2
|
|||
GROUP BY table1.f1, table2.f2
|
||||
HAVING (table2.f2 = 8);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible HAVING noticed after reading const tables
|
||||
1 SIMPLE table2 const PRIMARY PRIMARY 4 const 1 100.00 Using filesort
|
||||
1 SIMPLE table1 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`table1`.`f1` AS `f1`,'7' AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where ((`test`.`table1`.`f3` = '9')) group by `test`.`table1`.`f1`,'7' having 0
|
||||
Note 1003 select `test`.`table1`.`f1` AS `f1`,'7' AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where ((`test`.`table1`.`f3` = '9')) group by `test`.`table1`.`f1`,'7' having ('7' = 8)
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#52336 Segfault / crash in 5.1 copy_fields (param=0x9872980) at sql_select.cc:15355
|
||||
|
|
|
@ -581,3 +581,76 @@ WHERE
|
|||
`RUNID`= '' AND `SUBMITNR`= '' AND `ORDERNR`='' AND `PROGRAMM`='' AND
|
||||
`TESTID`='' AND `UCCHECK`='';
|
||||
drop table t1;
|
||||
#
|
||||
# Bug#50402 Optimizer producing wrong results when using Index Merge on InnoDB
|
||||
#
|
||||
CREATE TABLE t1 (f1 INT, PRIMARY KEY (f1));
|
||||
INSERT INTO t1 VALUES (2);
|
||||
CREATE TABLE t2 (f1 INT, f2 INT, f3 char(1),
|
||||
PRIMARY KEY (f1), KEY (f2), KEY (f3) );
|
||||
INSERT INTO t2 VALUES (1, 1, 'h'), (2, 3, 'h'), (3, 2, ''), (4, 2, '');
|
||||
SELECT t1.f1 FROM t1
|
||||
WHERE (SELECT COUNT(*) FROM t2 WHERE t2.f3 = 'h' AND t2.f2 = t1.f1) = 0 AND t1.f1 = 2;
|
||||
f1
|
||||
2
|
||||
EXPLAIN SELECT t1.f1 FROM t1
|
||||
WHERE (SELECT COUNT(*) FROM t2 WHERE t2.f3 = 'h' AND t2.f2 = t1.f1) = 0 AND t1.f1 = 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 const PRIMARY PRIMARY 4 const 1 Using index
|
||||
2 DEPENDENT SUBQUERY t2 index_merge f2,f3 f3,f2 2,5 NULL 1 Using intersect(f3,f2); Using where; Using index
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# BUG#56862/640419: Wrong result with sort_union index merge when one
|
||||
# of the merged index scans is the primary key scan
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
a int,
|
||||
b int,
|
||||
INDEX idx(a))
|
||||
ENGINE=INNODB;
|
||||
INSERT INTO t1(a,b) VALUES
|
||||
(11, 1100), (2, 200), (1, 100), (14, 1400), (5, 500),
|
||||
(3, 300), (17, 1700), (4, 400), (12, 1200), (8, 800),
|
||||
(6, 600), (18, 1800), (9, 900), (10, 1000), (7, 700),
|
||||
(13, 1300), (15, 1500), (19, 1900), (16, 1600), (20, 2000);
|
||||
INSERT INTO t1(a,b) SELECT a+20, b+2000 FROM t1;
|
||||
INSERT INTO t1(a,b) SELECT a+40, b+4000 FROM t1;
|
||||
INSERT INTO t1(a,b) SELECT a+80, b+8000 FROM t1;
|
||||
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
||||
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
||||
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
||||
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
||||
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
||||
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
||||
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
||||
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
||||
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
||||
INSERT INTO t1(a,b) SELECT a,b FROM t1;
|
||||
INSERT INTO t1 VALUES (1000000, 0, 0);
|
||||
SET SESSION sort_buffer_size = 1024*36;
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM
|
||||
(SELECT * FROM t1
|
||||
WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||
2 DERIVED t1 index_merge PRIMARY,idx idx,PRIMARY 5,4 NULL 11419 Using sort_union(idx,PRIMARY); Using where
|
||||
SELECT COUNT(*) FROM
|
||||
(SELECT * FROM t1
|
||||
WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
|
||||
COUNT(*)
|
||||
6145
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM
|
||||
(SELECT * FROM t1 IGNORE INDEX(idx)
|
||||
WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY NULL NULL NULL NULL NULL NULL # Select tables optimized away
|
||||
2 DERIVED t1 ALL PRIMARY NULL NULL NULL # Using where
|
||||
SELECT COUNT(*) FROM
|
||||
(SELECT * FROM t1 IGNORE INDEX(idx)
|
||||
WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
|
||||
COUNT(*)
|
||||
6145
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -1416,6 +1416,24 @@ WHERE
|
|||
`TESTID`='' AND `UCCHECK`='';
|
||||
drop table t1;
|
||||
#
|
||||
# Bug#50402 Optimizer producing wrong results when using Index Merge on InnoDB
|
||||
#
|
||||
CREATE TABLE t1 (f1 INT, PRIMARY KEY (f1));
|
||||
INSERT INTO t1 VALUES (2);
|
||||
CREATE TABLE t2 (f1 INT, f2 INT, f3 char(1),
|
||||
PRIMARY KEY (f1), KEY (f2), KEY (f3) );
|
||||
INSERT INTO t2 VALUES (1, 1, 'h'), (2, 3, 'h'), (3, 2, ''), (4, 2, '');
|
||||
SELECT t1.f1 FROM t1
|
||||
WHERE (SELECT COUNT(*) FROM t2 WHERE t2.f3 = 'h' AND t2.f2 = t1.f1) = 0 AND t1.f1 = 2;
|
||||
f1
|
||||
2
|
||||
EXPLAIN SELECT t1.f1 FROM t1
|
||||
WHERE (SELECT COUNT(*) FROM t2 WHERE t2.f3 = 'h' AND t2.f2 = t1.f1) = 0 AND t1.f1 = 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 system PRIMARY NULL NULL NULL 1
|
||||
2 DEPENDENT SUBQUERY t2 ref f2,f3 f2 5 1 Using where
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# Generic @@optimizer_switch tests (move those into a separate file if
|
||||
# we get another @@optimizer_switch user)
|
||||
#
|
||||
|
|
|
@ -639,3 +639,18 @@ CREATE TABLE t2(f1 CHAR(1));
|
|||
INSERT INTO t2 SELECT f1 FROM t1;
|
||||
DROP TABLE t1, t2;
|
||||
End of 5.0 tests.
|
||||
#
|
||||
# Bug#54106 assert in Protocol::end_statement,
|
||||
# INSERT IGNORE ... SELECT ... UNION SELECT ...
|
||||
#
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 (a, a) VALUES (1, 1);
|
||||
ERROR 42000: Column 'a' specified twice
|
||||
INSERT IGNORE t1 (a, a) VALUES (1, 1);
|
||||
ERROR 42000: Column 'a' specified twice
|
||||
INSERT IGNORE t1 (a, a) SELECT 1,1;
|
||||
ERROR 42000: Column 'a' specified twice
|
||||
INSERT IGNORE t1 (a, a) SELECT 1,1 UNION SELECT 2,2;
|
||||
ERROR 42000: Column 'a' specified twice
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -1184,4 +1184,40 @@ NULL
|
|||
NULL
|
||||
1
|
||||
DROP TABLE t1, t2, mm1;
|
||||
#
|
||||
# Bug #54468: crash after item's print() function when ordering/grouping
|
||||
# by subquery
|
||||
#
|
||||
CREATE TABLE t1(a INT, b INT);
|
||||
INSERT INTO t1 VALUES (), ();
|
||||
SELECT 1 FROM t1
|
||||
GROUP BY
|
||||
GREATEST(t1.a,
|
||||
(SELECT 1 FROM
|
||||
(SELECT t1.b FROM t1,t1 t2
|
||||
ORDER BY t1.a, t1.a LIMIT 1) AS d)
|
||||
);
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #53544: Server hangs during JOIN query in stored procedure called
|
||||
# twice in a row
|
||||
#
|
||||
CREATE TABLE t1(c INT);
|
||||
INSERT INTO t1 VALUES (1), (2);
|
||||
PREPARE stmt FROM "SELECT t2.c AS f1 FROM t1 LEFT JOIN
|
||||
t1 t2 ON t1.c=t2.c RIGHT JOIN
|
||||
t1 t3 ON t1.c=t3.c
|
||||
GROUP BY f1;";
|
||||
EXECUTE stmt;
|
||||
f1
|
||||
1
|
||||
2
|
||||
EXECUTE stmt;
|
||||
f1
|
||||
1
|
||||
2
|
||||
DEALLOCATE PREPARE stmt;
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -232,7 +232,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using join buffer
|
||||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t7`.`b` = `test`.`t8`.`b`) and (`test`.`t6`.`b` < 10))) where 1
|
||||
Note 1003 select `test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t8`.`b` = `test`.`t7`.`b`))) where 1
|
||||
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
||||
FROM (t6, t7)
|
||||
LEFT JOIN
|
||||
|
@ -553,7 +553,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00
|
||||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) where ((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)))
|
||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) where ((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)))
|
||||
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
|
||||
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
||||
FROM t0,t1
|
||||
|
@ -649,7 +649,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
SELECT t9.a,t9.b
|
||||
FROM t9;
|
||||
a b
|
||||
|
@ -840,7 +840,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00
|
||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t1` join `test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) where (`test`.`t1`.`a` <= 2)
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t1` join `test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`))) where (`test`.`t1`.`a` <= 2)
|
||||
CREATE INDEX idx_b ON t2(b);
|
||||
EXPLAIN EXTENDED
|
||||
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
|
||||
|
@ -854,7 +854,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2 100.00
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t3` join `test`.`t4` left join (`test`.`t1` join `test`.`t2`) on(((`test`.`t3`.`a` = 1) and (`test`.`t3`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` = `test`.`t4`.`b`))) where 1
|
||||
Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t3` join `test`.`t4` left join (`test`.`t1` join `test`.`t2`) on(((`test`.`t3`.`a` = 1) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`b`)))) where 1
|
||||
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
|
||||
FROM (t3,t4)
|
||||
LEFT JOIN
|
||||
|
@ -916,7 +916,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
CREATE INDEX idx_b ON t4(b);
|
||||
CREATE INDEX idx_b ON t5(b);
|
||||
EXPLAIN EXTENDED
|
||||
|
@ -966,7 +966,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
CREATE INDEX idx_b ON t8(b);
|
||||
EXPLAIN EXTENDED
|
||||
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
|
||||
|
@ -1015,7 +1015,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
CREATE INDEX idx_b ON t1(b);
|
||||
CREATE INDEX idx_a ON t0(a);
|
||||
EXPLAIN EXTENDED
|
||||
|
@ -1065,7 +1065,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
|
||||
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
|
||||
FROM t0,t1
|
||||
|
@ -1463,9 +1463,9 @@ join t5 on t5.a=t3.b) on t3.a=t2.b;
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL X
|
||||
1 SIMPLE t3 ref a a 5 test.t2.b X
|
||||
1 SIMPLE t4 ref a a 5 test.t3.b X
|
||||
1 SIMPLE t6 ref a a 5 test.t4.b X
|
||||
1 SIMPLE t5 ref a a 5 test.t3.b X
|
||||
1 SIMPLE t4 ref a a 5 test.t5.a X
|
||||
1 SIMPLE t6 ref a a 5 test.t4.b X
|
||||
drop table t0, t1, t2, t3, t4, t5, t6, t7;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
|
@ -1479,7 +1479,7 @@ on (t1.a = t2.a);
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10
|
||||
1 SIMPLE t2 ref a a 5 test.t1.a 1
|
||||
1 SIMPLE t3 ref a a 5 test.t2.a 1
|
||||
1 SIMPLE t3 ref a a 5 test.t1.a 1
|
||||
drop table t1, t2, t3;
|
||||
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, type varchar(10));
|
||||
CREATE TABLE t2 (pid int NOT NULL PRIMARY KEY, type varchar(10));
|
||||
|
@ -1743,4 +1743,62 @@ ON t4.carrier = t1.carrier;
|
|||
COUNT(*)
|
||||
6
|
||||
DROP TABLE t1,t2,t3,t4,t5;
|
||||
CREATE TABLE t1 (
|
||||
pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
a int DEFAULT NULL,
|
||||
KEY idx(a)
|
||||
);
|
||||
CREATE TABLE t2 (
|
||||
pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
a int DEFAULT NULL,
|
||||
KEY idx(a)
|
||||
);
|
||||
CREATE TABLE t3 (
|
||||
pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
a int DEFAULT NULL,
|
||||
KEY idx(a)
|
||||
);
|
||||
INSERT INTO t1 VALUES
|
||||
(1,2), (2,7), (3,5), (4,7), (5,5), (6,NULL), (7,NULL), (8,9);
|
||||
INSERT INTO t2 VALUES
|
||||
(1,NULL), (4,2), (5,2), (3,4), (2,8);
|
||||
INSERT INTO t3 VALUES
|
||||
(1,9), (2,2), (3,5), (4,2), (5,7), (6,0), (7,5);
|
||||
SELECT t1.pk, t1.a, t2.pk, t2.a,t3.pk, t3.a
|
||||
FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t3.a=t2.a) ON t2.a=t1.a;
|
||||
pk a pk a pk a
|
||||
1 2 4 2 2 2
|
||||
1 2 4 2 4 2
|
||||
1 2 5 2 2 2
|
||||
1 2 5 2 4 2
|
||||
2 7 NULL NULL NULL NULL
|
||||
3 5 NULL NULL NULL NULL
|
||||
4 7 NULL NULL NULL NULL
|
||||
5 5 NULL NULL NULL NULL
|
||||
6 NULL NULL NULL NULL NULL
|
||||
7 NULL NULL NULL NULL NULL
|
||||
8 9 NULL NULL NULL NULL
|
||||
SELECT t1.pk, t1.a, t2.pk, t2.a,t3.pk, t3.a
|
||||
FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t3.a=t2.a) ON t2.a=t1.a
|
||||
WHERE t2.pk IS NULL;
|
||||
pk a pk a pk a
|
||||
2 7 NULL NULL NULL NULL
|
||||
3 5 NULL NULL NULL NULL
|
||||
4 7 NULL NULL NULL NULL
|
||||
5 5 NULL NULL NULL NULL
|
||||
6 NULL NULL NULL NULL NULL
|
||||
7 NULL NULL NULL NULL NULL
|
||||
8 9 NULL NULL NULL NULL
|
||||
SELECT t1.pk, t1.a, t2.pk, t2.a,t3.pk, t3.a
|
||||
FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t3.a=t2.a) ON t2.a=t1.a
|
||||
WHERE t3.pk IS NULL;
|
||||
pk a pk a pk a
|
||||
2 7 NULL NULL NULL NULL
|
||||
3 5 NULL NULL NULL NULL
|
||||
4 7 NULL NULL NULL NULL
|
||||
5 5 NULL NULL NULL NULL
|
||||
6 NULL NULL NULL NULL NULL
|
||||
7 NULL NULL NULL NULL NULL
|
||||
8 9 NULL NULL NULL NULL
|
||||
DROP TABLE t1, t2, t3;
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -1397,4 +1397,115 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
Warnings:
|
||||
Note 1003 select straight_join `test`.`jt1`.`f1` AS `f1` from `test`.`t1` `jt6` left join (`test`.`t1` `jt3` join `test`.`t1` `jt4` left join `test`.`t1` `jt5` on(1) left join `test`.`t1` `jt2` on(1)) on((`test`.`jt6`.`f1` and 1)) left join `test`.`t1` `jt1` on(1) where 1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#49600: outer join of two single-row tables with joining attributes
|
||||
# evaluated to nulls
|
||||
create table t1 (a int, b int);
|
||||
create table t2 (a int, b int);
|
||||
insert into t1 values (1, NULL);
|
||||
insert into t2 values (2, NULL);
|
||||
select * from t1 left join t2 on t1.b=t2.b;
|
||||
a b a b
|
||||
1 NULL NULL NULL
|
||||
select * from t1 left join t2 on t1.b=t2.b where 1=1;
|
||||
a b a b
|
||||
1 NULL NULL NULL
|
||||
drop table t1,t2;
|
||||
#
|
||||
# Bug#53161: outer join in the derived table is erroneously converted
|
||||
# into an inner join for a query with a group by clause
|
||||
#
|
||||
create table t1 (pk int not null primary key, a int not null);
|
||||
create table t2 like t1;
|
||||
create table t3 like t1;
|
||||
create table t4 (pk int not null primary key);
|
||||
insert into t1 values (1000, 1), (1001, 1);
|
||||
insert into t2 values (2000, 2), (2001, 2);
|
||||
insert into t3 values (3000, 3), (3001, 2);
|
||||
insert into t4 values (4000), (4001);
|
||||
explain extended
|
||||
select t2.pk,
|
||||
(select t3.pk+if(isnull(t4.pk),0,t4.pk)
|
||||
from t3 left join t4 on t4.pk=t3.pk
|
||||
where t3.pk=t2.pk+1000 limit 1 ) as t
|
||||
from t1,t2
|
||||
where t2.pk=t1.pk+1000 and t1.pk>1000
|
||||
group by t2.pk;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 index PRIMARY PRIMARY 4 NULL 2 100.00 Using where; Using index; Using temporary; Using filesort
|
||||
1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 func 1 100.00 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY PRIMARY 4 func 1 100.00 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t4 eq_ref PRIMARY PRIMARY 4 test.t3.pk 1 100.00 Using where; Using index
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t2.pk' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`t2`.`pk` AS `pk`,(select (`test`.`t3`.`pk` + if(isnull(`test`.`t4`.`pk`),0,`test`.`t4`.`pk`)) from `test`.`t3` left join `test`.`t4` on((`test`.`t4`.`pk` = `test`.`t3`.`pk`)) where (`test`.`t3`.`pk` = (`test`.`t2`.`pk` + 1000)) limit 1) AS `t` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`pk` = (`test`.`t1`.`pk` + 1000)) and (`test`.`t1`.`pk` > 1000)) group by `test`.`t2`.`pk`
|
||||
select t2.pk,
|
||||
(select t3.pk+if(isnull(t4.pk),0,t4.pk)
|
||||
from t3 left join t4 on t4.pk=t3.pk
|
||||
where t3.pk=t2.pk+1000 limit 1 ) as t
|
||||
from t1,t2
|
||||
where t2.pk=t1.pk+1000 and t1.pk>1000
|
||||
group by t2.pk;
|
||||
pk t
|
||||
2001 3001
|
||||
drop table t1,t2,t3,t4;
|
||||
#
|
||||
# Bug#57024: Poor performance when conjunctive condition over the outer
|
||||
# table is used in the on condition of an outer join
|
||||
#
|
||||
create table t1 (a int);
|
||||
insert into t1 values (NULL), (NULL), (NULL), (NULL);
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 values (4), (2), (1), (3);
|
||||
create table t2 like t1;
|
||||
insert into t2 select if(t1.a is null, 10, t1.a) from t1;
|
||||
create table t3 (a int, b int, index idx(a));
|
||||
insert into t3 values (1, 100), (3, 301), (4, 402), (1, 102), (1, 101);
|
||||
analyze table t1,t2,t3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
test.t2 analyze status OK
|
||||
test.t3 analyze status OK
|
||||
flush status;
|
||||
select sum(t3.b) from t1 left join t3 on t3.a=t1.a and t1.a is not null;
|
||||
sum(t3.b)
|
||||
1006
|
||||
show status like "handler_read%";
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 4
|
||||
Handler_read_next 5
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 1048581
|
||||
flush status;
|
||||
select sum(t3.b) from t2 left join t3 on t3.a=t2.a and t2.a <> 10;
|
||||
sum(t3.b)
|
||||
1006
|
||||
show status like "handler_read%";
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 4
|
||||
Handler_read_next 5
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 1048581
|
||||
drop table t1,t2,t3;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -1574,7 +1574,7 @@ UNLOCK TABLES;
|
|||
#
|
||||
# Trigger on parent
|
||||
DELETE FROM t4 WHERE c1 = 4;
|
||||
CREATE TRIGGER t4_ai AFTER INSERT ON t4 FOR EACH ROW SET @a=1;
|
||||
CREATE TRIGGER t4_ai1 AFTER INSERT ON t4 FOR EACH ROW SET @a=1;
|
||||
SET @a=0;
|
||||
INSERT INTO t4 VALUES (4);
|
||||
SELECT @a;
|
||||
|
@ -1586,10 +1586,13 @@ c1
|
|||
2
|
||||
3
|
||||
4
|
||||
DROP TRIGGER t4_ai;
|
||||
DROP TRIGGER t4_ai1;
|
||||
CHECK TABLE t3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t3 check status OK
|
||||
# Trigger on parent under LOCK TABLES
|
||||
LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE;
|
||||
CREATE TRIGGER t4_ai AFTER INSERT ON t4 FOR EACH ROW SET @a=1;
|
||||
CREATE TRIGGER t4_ai2 AFTER INSERT ON t4 FOR EACH ROW SET @a=1;
|
||||
SET @a=0;
|
||||
INSERT INTO t4 VALUES (4);
|
||||
SELECT @a;
|
||||
|
@ -1602,12 +1605,15 @@ c1
|
|||
3
|
||||
4
|
||||
4
|
||||
DROP TRIGGER t4_ai;
|
||||
DROP TRIGGER t4_ai2;
|
||||
UNLOCK TABLES;
|
||||
CHECK TABLE t3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t3 check status OK
|
||||
#
|
||||
# Trigger on child
|
||||
DELETE FROM t4 WHERE c1 = 4;
|
||||
CREATE TRIGGER t3_ai AFTER INSERT ON t3 FOR EACH ROW SET @a=1;
|
||||
CREATE TRIGGER t3_ai3 AFTER INSERT ON t3 FOR EACH ROW SET @a=1;
|
||||
SET @a=0;
|
||||
INSERT INTO t4 VALUES (4);
|
||||
SELECT @a;
|
||||
|
@ -1624,10 +1630,13 @@ c1
|
|||
3
|
||||
4
|
||||
33
|
||||
DROP TRIGGER t3_ai;
|
||||
DROP TRIGGER t3_ai3;
|
||||
CHECK TABLE t3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t3 check status OK
|
||||
# Trigger on child under LOCK TABLES
|
||||
LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE;
|
||||
CREATE TRIGGER t3_ai AFTER INSERT ON t3 FOR EACH ROW SET @a=1;
|
||||
CREATE TRIGGER t3_ai4 AFTER INSERT ON t3 FOR EACH ROW SET @a=1;
|
||||
SET @a=0;
|
||||
INSERT INTO t4 VALUES (4);
|
||||
SELECT @a;
|
||||
|
@ -1647,11 +1656,17 @@ c1
|
|||
33
|
||||
33
|
||||
DELETE FROM t4 WHERE c1 = 33;
|
||||
DROP TRIGGER t3_ai;
|
||||
DROP TRIGGER t3_ai4;
|
||||
CHECK TABLE t3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t3 check status OK
|
||||
#
|
||||
# Trigger with table use on child
|
||||
DELETE FROM t4 WHERE c1 = 4;
|
||||
CREATE TRIGGER t3_ai AFTER INSERT ON t3 FOR EACH ROW INSERT INTO t2 VALUES(22);
|
||||
CREATE TRIGGER t3_ai5 AFTER INSERT ON t3 FOR EACH ROW INSERT INTO t2 VALUES(22);
|
||||
SELECT COUNT(*) FROM t2;
|
||||
COUNT(*)
|
||||
1
|
||||
INSERT INTO t4 VALUES (4);
|
||||
SELECT * FROM t4 ORDER BY c1;
|
||||
c1
|
||||
|
@ -1670,10 +1685,15 @@ c1
|
|||
33
|
||||
DELETE FROM t4 WHERE c1 = 22;
|
||||
DELETE FROM t4 WHERE c1 = 33;
|
||||
DROP TRIGGER t3_ai;
|
||||
DROP TRIGGER t3_ai5;
|
||||
UNLOCK TABLES;
|
||||
CHECK TABLE t2,t3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 check status OK
|
||||
test.t3 check status OK
|
||||
# Trigger with table use on child under LOCK TABLES
|
||||
LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE;
|
||||
CREATE TRIGGER t3_ai AFTER INSERT ON t3 FOR EACH ROW INSERT INTO t2 VALUES(22);
|
||||
CREATE TRIGGER t3_ai6 AFTER INSERT ON t3 FOR EACH ROW INSERT INTO t2 VALUES(22);
|
||||
INSERT INTO t4 VALUES (4);
|
||||
SELECT * FROM t4 ORDER BY c1;
|
||||
c1
|
||||
|
@ -1692,10 +1712,44 @@ c1
|
|||
4
|
||||
22
|
||||
33
|
||||
DROP TRIGGER t3_ai;
|
||||
DROP TRIGGER t3_ai6;
|
||||
UNLOCK TABLES;
|
||||
check table t2,t3,t4;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 check status OK
|
||||
test.t3 check status OK
|
||||
test.t4 check status OK
|
||||
DELETE FROM t4 WHERE c1 = 22;
|
||||
DELETE FROM t4 WHERE c1 = 33;
|
||||
# Trigger with table use on child under different LOCK TABLES
|
||||
DELETE FROM t4 WHERE c1 = 4;
|
||||
LOCK TABLES t4 WRITE,t3 WRITE, t2 WRITE, t1 WRITE;
|
||||
CREATE TRIGGER t3_ai7 AFTER INSERT ON t3 FOR EACH ROW INSERT INTO t2 VALUES(22);
|
||||
INSERT INTO t4 VALUES (4);
|
||||
SELECT * FROM t4 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
INSERT INTO t3 VALUES (33);
|
||||
SELECT * FROM t4 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
22
|
||||
33
|
||||
DROP TRIGGER t3_ai7;
|
||||
UNLOCK TABLES;
|
||||
check table t2,t3,t4;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 check status OK
|
||||
test.t3 check status OK
|
||||
test.t4 check status OK
|
||||
DELETE FROM t4 WHERE c1 = 22;
|
||||
DELETE FROM t4 WHERE c1 = 33;
|
||||
#
|
||||
# Repair
|
||||
#
|
||||
|
@ -1711,7 +1765,6 @@ c1
|
|||
2
|
||||
3
|
||||
4
|
||||
4
|
||||
LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE;
|
||||
REPAIR TABLE t4;
|
||||
Table Op Msg_type Msg_text
|
||||
|
@ -1725,7 +1778,6 @@ c1
|
|||
2
|
||||
3
|
||||
4
|
||||
4
|
||||
UNLOCK TABLES;
|
||||
#
|
||||
# Optimize
|
||||
|
@ -1742,7 +1794,6 @@ c1
|
|||
2
|
||||
3
|
||||
4
|
||||
4
|
||||
LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE;
|
||||
OPTIMIZE TABLE t4;
|
||||
Table Op Msg_type Msg_text
|
||||
|
@ -1756,14 +1807,13 @@ c1
|
|||
2
|
||||
3
|
||||
4
|
||||
4
|
||||
UNLOCK TABLES;
|
||||
#
|
||||
# Checksum
|
||||
#
|
||||
CHECKSUM TABLE t4;
|
||||
Table Checksum
|
||||
test.t4 46622073
|
||||
test.t4 149057747
|
||||
CHECKSUM TABLE t2;
|
||||
Table Checksum
|
||||
test.t2 3700403066
|
||||
|
@ -1773,11 +1823,10 @@ c1
|
|||
2
|
||||
3
|
||||
4
|
||||
4
|
||||
LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE;
|
||||
CHECKSUM TABLE t4;
|
||||
Table Checksum
|
||||
test.t4 46622073
|
||||
test.t4 149057747
|
||||
CHECKSUM TABLE t2;
|
||||
Table Checksum
|
||||
test.t2 3700403066
|
||||
|
@ -1787,7 +1836,6 @@ c1
|
|||
2
|
||||
3
|
||||
4
|
||||
4
|
||||
UNLOCK TABLES;
|
||||
#
|
||||
# Insert delayed
|
||||
|
@ -1801,7 +1849,6 @@ c1
|
|||
2
|
||||
3
|
||||
4
|
||||
4
|
||||
33
|
||||
LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE;
|
||||
INSERT DELAYED INTO t4 VALUES(444);
|
||||
|
@ -1814,7 +1861,6 @@ c1
|
|||
2
|
||||
3
|
||||
4
|
||||
4
|
||||
33
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t1, t2, t3, t4;
|
||||
|
@ -2250,4 +2296,45 @@ t2 WHERE b SOUNDS LIKE e AND d = 1;
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
DROP TABLE t2, t1;
|
||||
#
|
||||
# Bug#46339 - crash on REPAIR TABLE merge table USE_FRM
|
||||
#
|
||||
DROP TABLE IF EXISTS m1, t1;
|
||||
CREATE TABLE t1 (c1 INT) ENGINE=MYISAM;
|
||||
CREATE TABLE m1 (c1 INT) ENGINE=MRG_MyISAM UNION=(t1) INSERT_METHOD=LAST;
|
||||
LOCK TABLE m1 READ;
|
||||
REPAIR TABLE m1 USE_FRM;
|
||||
Table Op Msg_type Msg_text
|
||||
test.m1 repair note The storage engine for the table doesn't support repair
|
||||
UNLOCK TABLES;
|
||||
REPAIR TABLE m1 USE_FRM;
|
||||
Table Op Msg_type Msg_text
|
||||
test.m1 repair note The storage engine for the table doesn't support repair
|
||||
DROP TABLE m1,t1;
|
||||
CREATE TABLE m1 (f1 BIGINT) ENGINE=MRG_MyISAM UNION(t1);
|
||||
REPAIR TABLE m1 USE_FRM;
|
||||
Table Op Msg_type Msg_text
|
||||
test.m1 repair Error Can't open table
|
||||
test.m1 repair error Corrupt
|
||||
CREATE TABLE t1 (f1 BIGINT) ENGINE = MyISAM;
|
||||
REPAIR TABLE m1 USE_FRM;
|
||||
Table Op Msg_type Msg_text
|
||||
test.m1 repair note The storage engine for the table doesn't support repair
|
||||
REPAIR TABLE m1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.m1 repair note The storage engine for the table doesn't support repair
|
||||
DROP TABLE m1, t1;
|
||||
CREATE TEMPORARY TABLE m1 (f1 BIGINT) ENGINE=MRG_MyISAM UNION(t1);
|
||||
REPAIR TABLE m1 USE_FRM;
|
||||
Table Op Msg_type Msg_text
|
||||
test.m1 repair Error Table 'test.m1' doesn't exist
|
||||
test.m1 repair error Corrupt
|
||||
CREATE TEMPORARY TABLE t1 (f1 BIGINT) ENGINE=MyISAM;
|
||||
REPAIR TABLE m1 USE_FRM;
|
||||
Table Op Msg_type Msg_text
|
||||
m1 repair error Cannot repair temporary table from .frm file
|
||||
REPAIR TABLE m1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.m1 repair note The storage engine for the table doesn't support repair
|
||||
DROP TABLE m1, t1;
|
||||
End of 5.1 tests
|
||||
|
|
24
mysql-test/r/merge_debug.result
Normal file
24
mysql-test/r/merge_debug.result
Normal file
|
@ -0,0 +1,24 @@
|
|||
set global storage_engine=myisam;
|
||||
set session storage_engine=myisam;
|
||||
drop table if exists crashed,t2,t3,t4;
|
||||
SET @orig_debug=@@debug;
|
||||
CREATE TABLE crashed (c1 INT);
|
||||
CREATE TABLE t2 (c1 INT);
|
||||
CREATE TABLE t3 (c1 INT);
|
||||
CREATE TABLE t4 (c1 INT) ENGINE=MRG_MYISAM UNION=(crashed,t2,t3) INSERT_METHOD=LAST;
|
||||
INSERT INTO crashed VALUES (10);
|
||||
INSERT INTO t2 VALUES (20);
|
||||
INSERT INTO t3 VALUES (30);
|
||||
LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, crashed WRITE;
|
||||
SET GLOBAL debug="+d,*,myisam_pretend_crashed_table_on_open";
|
||||
CREATE TRIGGER t1_ai AFTER INSERT ON crashed FOR EACH ROW INSERT INTO t2 VALUES(29);
|
||||
SET GLOBAL debug=@orig_debug;
|
||||
INSERT INTO t4 VALUES (39);
|
||||
ERROR HY000: Table 't4' was not locked with LOCK TABLES
|
||||
INSERT INTO crashed VALUES (11);
|
||||
ERROR HY000: Table 'crashed' was not locked with LOCK TABLES
|
||||
INSERT INTO t2 VALUES (21);
|
||||
INSERT INTO t3 VALUES (31);
|
||||
UNLOCK TABLES;
|
||||
DROP TRIGGER t1_ai;
|
||||
DROP TABLE t4,crashed,t2,t3;
|
|
@ -639,4 +639,24 @@ SET SESSION sql_safe_updates = 1;
|
|||
UPDATE IGNORE t1, t1 t1a SET t1.a = 1 WHERE t1a.a = 1;
|
||||
ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#54543: update ignore with incorrect subquery leads to assertion
|
||||
# failure: inited==INDEX
|
||||
#
|
||||
SET SESSION sql_safe_updates = 0;
|
||||
CREATE TABLE t1 ( a INT );
|
||||
INSERT INTO t1 VALUES (1), (2);
|
||||
CREATE TABLE t2 ( a INT );
|
||||
INSERT INTO t2 VALUES (1), (2);
|
||||
CREATE TABLE t3 ( a INT );
|
||||
INSERT INTO t3 VALUES (1), (2);
|
||||
# Should not crash
|
||||
UPDATE IGNORE
|
||||
( SELECT ( SELECT COUNT(*) FROM t1 GROUP BY a, @v ) a FROM t2 ) x, t3
|
||||
SET t3.a = 0;
|
||||
Warnings:
|
||||
Error 1242 Subquery returns more than 1 row
|
||||
Error 1242 Subquery returns more than 1 row
|
||||
DROP TABLE t1, t2, t3;
|
||||
SET SESSION sql_safe_updates = DEFAULT;
|
||||
end of tests
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
call mtr.add_suppression("@003f.frm' \\(errno: 22\\)");
|
||||
# Bug#37938 Test "mysqldump" lacks various insert statements
|
||||
# Turn off concurrent inserts to avoid random errors
|
||||
# NOTE: We reset the variable back to saved value at the end of test
|
||||
|
|
|
@ -178,6 +178,9 @@ mysqltest: At line 1: End of line junk detected: "disconnect default # comment
|
|||
"
|
||||
mysqltest: At line 1: Extra delimiter ";" found
|
||||
mysqltest: At line 1: Extra delimiter ";" found
|
||||
mysqltest: At line 1: Spurious text after `query` expression
|
||||
mysqltest: At line 1: Spurious text after `query` expression
|
||||
mysqltest: At line 2: Spurious text after `query` expression
|
||||
mysqltest: At line 1: Missing argument(s) to 'error'
|
||||
mysqltest: At line 1: Missing argument(s) to 'error'
|
||||
mysqltest: At line 1: The sqlstate definition must start with an uppercase S
|
||||
|
@ -263,6 +266,9 @@ a long \$where variable content
|
|||
|
||||
banana = banana
|
||||
Not a banana: ba\$cat\$cat
|
||||
with\`some"escaped\'quotes
|
||||
with\`some"escaped\'quotes
|
||||
single'tick`backtick
|
||||
mysqltest: At line 1: Missing arguments to let
|
||||
mysqltest: At line 1: Missing variable name in let
|
||||
mysqltest: At line 1: Missing assignment operator in let
|
||||
|
@ -326,6 +332,7 @@ outer=2 ifval=0
|
|||
outer=1 ifval=1
|
||||
here is the sourced script
|
||||
ERROR 42S02: Table 'test.nowhere' doesn't exist
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'else' at line 1
|
||||
|
||||
In loop
|
||||
here is the sourced script
|
||||
|
@ -393,6 +400,9 @@ true-inner again
|
|||
true-outer
|
||||
Counter is greater than 0, (counter=10)
|
||||
Counter is not 0, (counter=0)
|
||||
Counter is true, (counter=alpha)
|
||||
Beta is true
|
||||
while with string, only once
|
||||
1
|
||||
Testing while with not
|
||||
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest_while.inc": At line 64: Nesting too deeply
|
||||
|
@ -443,13 +453,16 @@ mysqltest: At line 1: Missing required argument 'host' to command 'connect'
|
|||
mysqltest: At line 1: query 'connect con2,localhost,root,,illegal_db' failed: 1049: Unknown database 'illegal_db'
|
||||
mysqltest: At line 1: Illegal argument for port: 'illegal_port'
|
||||
mysqltest: At line 1: Illegal option to connect: SMTP
|
||||
OK
|
||||
mysqltest: The test didn't produce any output
|
||||
200 connects succeeded
|
||||
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": At line 3: connection 'test_con1' not found in connection pool
|
||||
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": At line 2: Connection test_con1 already exists
|
||||
connect(localhost,root,,test,MASTER_PORT,MASTER_SOCKET);
|
||||
show tables;
|
||||
ERROR 3D000: No database selected
|
||||
connect con1,localhost,root,,;
|
||||
connection default;
|
||||
connection con1;
|
||||
disconnect con1;
|
||||
connection default;
|
||||
Output from mysqltest-x.inc
|
||||
Output from mysqltest-x.inc
|
||||
Output from mysqltest-x.inc
|
||||
|
@ -573,7 +586,7 @@ if things work as expected
|
|||
Some data
|
||||
for cat_file command
|
||||
of mysqltest
|
||||
mysqltest: At line 1: Failed to open file 'non_existing_file'
|
||||
mysqltest: At line 1: command "cat_file" failed with error 1
|
||||
mysqltest: At line 1: Missing required argument 'filename' to command 'file_exists'
|
||||
mysqltest: At line 1: Missing required argument 'from_file' to command 'copy_file'
|
||||
mysqltest: At line 1: Missing required argument 'to_file' to command 'copy_file'
|
||||
|
|
|
@ -1617,4 +1617,25 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t1 range a a 5 NULL 2 Using where; Using temporary; Using filesort
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# Bug #50394: Regression in EXPLAIN with index scan, LIMIT, GROUP BY and
|
||||
# ORDER BY computed col
|
||||
#
|
||||
CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL, KEY( a, b ) );
|
||||
INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
||||
INSERT INTO t1 SELECT a + 5, b + 5 FROM t1;
|
||||
CREATE TABLE t2( a INT PRIMARY KEY, b INT );
|
||||
INSERT INTO t2 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
||||
INSERT INTO t2 SELECT a + 5, b + 5 FROM t2;
|
||||
EXPLAIN
|
||||
SELECT count(*) AS c, t1.a
|
||||
FROM t1 JOIN t2 ON t1.b = t2.a
|
||||
WHERE t2.b = 1
|
||||
GROUP BY t1.a
|
||||
ORDER by c
|
||||
LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL a 8 NULL 10 Using index; Using temporary; Using filesort
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 Using where
|
||||
DROP TABLE t1, t2;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -1,4 +1,44 @@
|
|||
drop table if exists t1, t2;
|
||||
#
|
||||
# Bug#57113: ha_partition::extra(ha_extra_function):
|
||||
# Assertion `m_extra_cache' failed
|
||||
CREATE TABLE t1
|
||||
(id INT NOT NULL PRIMARY KEY,
|
||||
name VARCHAR(16) NOT NULL,
|
||||
year YEAR,
|
||||
INDEX name (name(8))
|
||||
)
|
||||
PARTITION BY HASH(id) PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES ( 1, 'FooBar', '1924' );
|
||||
CREATE TABLE t2 (id INT);
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
UPDATE t1, t2 SET t1.year = '1955' WHERE t1.name = 'FooBar';
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# Bug#55458: Partitioned MyISAM table gets crashed by multi-table update
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
`id` int NOT NULL,
|
||||
`user_num` int DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM CHARSET=latin1;
|
||||
INSERT INTO t1 VALUES (1,8601);
|
||||
INSERT INTO t1 VALUES (2,8601);
|
||||
INSERT INTO t1 VALUES (3,8601);
|
||||
INSERT INTO t1 VALUES (4,8601);
|
||||
CREATE TABLE t2 (
|
||||
`id` int(11) NOT NULL,
|
||||
`user_num` int DEFAULT NULL,
|
||||
`name` varchar(64) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM CHARSET=latin1
|
||||
PARTITION BY HASH (id)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t2 VALUES (1,8601,'John');
|
||||
INSERT INTO t2 VALUES (2,8601,'JS');
|
||||
INSERT INTO t2 VALUES (3,8601,'John S');
|
||||
UPDATE t1, t2 SET t2.name = 'John Smith' WHERE t1.user_num = t2.user_num;
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (a INT, b INT)
|
||||
PARTITION BY LIST (a)
|
||||
SUBPARTITION BY HASH (b)
|
||||
|
@ -1382,7 +1422,7 @@ NULL
|
|||
2
|
||||
explain partitions select * from t1 where a is null or a < 0 or a > 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 pn,p2 ALL NULL NULL NULL NULL 4 Using where
|
||||
1 SIMPLE t1 pn,p2 ALL NULL NULL NULL NULL 2 Using where
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY, name VARCHAR(20))
|
||||
ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
|
|
13
mysql-test/r/partition_binlog_stmt.result
Normal file
13
mysql-test/r/partition_binlog_stmt.result
Normal file
|
@ -0,0 +1,13 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
#
|
||||
# Bug#51851: Server with SBR locks mutex twice on LOAD DATA into
|
||||
# partitioned MyISAM table
|
||||
CREATE TABLE t1
|
||||
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
name TINYBLOB NOT NULL,
|
||||
modified TIMESTAMP DEFAULT '0000-00-00 00:00:00',
|
||||
INDEX namelocs (name(255))) ENGINE = MyISAM
|
||||
PARTITION BY HASH(id) PARTITIONS 2;
|
||||
LOAD DATA LOCAL INFILE 'init_file.txt'
|
||||
INTO TABLE t1 (name);
|
||||
DROP TABLE t1;
|
|
@ -1008,4 +1008,14 @@ PARTITION p VALUES LESS THAN (1219089600),
|
|||
PARTITION pmax VALUES LESS THAN MAXVALUE);
|
||||
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||
DROP TABLE old;
|
||||
#
|
||||
# Bug #56709: Memory leaks at running the 5.1 test suite
|
||||
#
|
||||
CREATE TABLE t1 (a TIMESTAMP NOT NULL PRIMARY KEY);
|
||||
ALTER TABLE t1
|
||||
PARTITION BY RANGE (EXTRACT(DAY FROM a)) (
|
||||
PARTITION p VALUES LESS THAN (18),
|
||||
PARTITION pmax VALUES LESS THAN MAXVALUE);
|
||||
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -69,25 +69,25 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t1 p0,p1,p2,p3 ALL NULL NULL NULL NULL 9 Using where
|
||||
explain partitions select * from t1 where a is null or (a >= 5 and a <= 7);
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p2,p3 ALL NULL NULL NULL NULL 9 Using where
|
||||
1 SIMPLE t1 p0,p2,p3 ALL NULL NULL NULL NULL 7 Using where
|
||||
explain partitions select * from t1 where a is null;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 9 Using where
|
||||
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 3 Using where
|
||||
explain partitions select * from t1 where a is not null;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3 ALL NULL NULL NULL NULL 9 Using where
|
||||
explain partitions select * from t1 where a >= 1 and a < 3;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1 ALL NULL NULL NULL NULL 9 Using where
|
||||
1 SIMPLE t1 p0,p1 ALL NULL NULL NULL NULL 5 Using where
|
||||
explain partitions select * from t1 where a >= 3 and a <= 5;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p1,p2 ALL NULL NULL NULL NULL 9 Using where
|
||||
1 SIMPLE t1 p1,p2 ALL NULL NULL NULL NULL 4 Using where
|
||||
explain partitions select * from t1 where a > 2 and a < 4;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p1 ALL NULL NULL NULL NULL 9 Using where
|
||||
1 SIMPLE t1 p1 ALL NULL NULL NULL NULL 2 Using where
|
||||
explain partitions select * from t1 where a > 3 and a <= 6;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p2,p3 ALL NULL NULL NULL NULL 9 Using where
|
||||
1 SIMPLE t1 p2,p3 ALL NULL NULL NULL NULL 4 Using where
|
||||
explain partitions select * from t1 where a > 5;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3 ALL NULL NULL NULL NULL 9 Using where
|
||||
|
|
|
@ -22,31 +22,31 @@ insert INTO t1 VALUES (110);
|
|||
ERROR HY000: Table has no partition for value 110
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 90;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 0 Using where
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 90;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 0 Using where
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 90;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 0 Using where
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 89;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p90 ALL NULL NULL NULL NULL 7 Using where
|
||||
1 SIMPLE t1 p90 ALL NULL NULL NULL NULL 3 Using where
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 89;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p90 ALL NULL NULL NULL NULL 7 Using where
|
||||
1 SIMPLE t1 p90 ALL NULL NULL NULL NULL 3 Using where
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 89;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 0 Using where
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 100;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 0 Using where
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 100;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 0 Using where
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 100;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 0 Using where
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#50104: Partitioned table with just 1 partion works with fk
|
||||
|
|
16
mysql-test/r/partition_not_blackhole.result
Normal file
16
mysql-test/r/partition_not_blackhole.result
Normal file
|
@ -0,0 +1,16 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
#
|
||||
# Bug#46086: crash when dropping a partitioned table and
|
||||
# the original engine is disabled
|
||||
# Copy a .frm and .par file which was created with:
|
||||
# create table `t1` (`id` int primary key) engine=blackhole
|
||||
# partition by key () partitions 1;
|
||||
SHOW TABLES;
|
||||
Tables_in_test
|
||||
t1
|
||||
SHOW CREATE TABLE t1;
|
||||
ERROR HY000: Incorrect information in file: './test/t1.frm'
|
||||
DROP TABLE t1;
|
||||
ERROR 42S02: Unknown table 't1'
|
||||
t1.frm
|
||||
t1.par
|
File diff suppressed because it is too large
Load diff
|
@ -73,13 +73,13 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t1 pnull system NULL NULL NULL NULL 1
|
||||
explain partitions select * from t1 where a >= 0;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1 ALL NULL NULL NULL NULL 3 Using where
|
||||
1 SIMPLE t1 p0,p1 ALL NULL NULL NULL NULL 2 Using where
|
||||
explain partitions select * from t1 where a < 0;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
explain partitions select * from t1 where a <= 0;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 pnull,p0 ALL NULL NULL NULL NULL 3 Using where
|
||||
1 SIMPLE t1 pnull,p0 ALL NULL NULL NULL NULL 2 Using where
|
||||
explain partitions select * from t1 where a > 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
|
@ -112,16 +112,16 @@ select * from t1 where a > 1;
|
|||
a b
|
||||
explain partitions select * from t1 where a is null;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 pnull_pnullsp0,pnull_pnullsp1 ALL NULL NULL NULL NULL 6 Using where
|
||||
1 SIMPLE t1 pnull_pnullsp0,pnull_pnullsp1 ALL NULL NULL NULL NULL 2 Using where
|
||||
explain partitions select * from t1 where a >= 0;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0_p0sp0,p0_p0sp1,p1_p1sp0,p1_p1sp1 ALL NULL NULL NULL NULL 6 Using where
|
||||
1 SIMPLE t1 p0_p0sp0,p0_p0sp1,p1_p1sp0,p1_p1sp1 ALL NULL NULL NULL NULL 4 Using where
|
||||
explain partitions select * from t1 where a < 0;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 pnull_pnullsp0,pnull_pnullsp1 ALL NULL NULL NULL NULL 6 Using where
|
||||
1 SIMPLE t1 pnull_pnullsp0,pnull_pnullsp1 ALL NULL NULL NULL NULL 2 Using where
|
||||
explain partitions select * from t1 where a <= 0;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 pnull_pnullsp0,pnull_pnullsp1,p0_p0sp0,p0_p0sp1 ALL NULL NULL NULL NULL 6 Using where
|
||||
1 SIMPLE t1 pnull_pnullsp0,pnull_pnullsp1,p0_p0sp0,p0_p0sp1 ALL NULL NULL NULL NULL 4 Using where
|
||||
explain partitions select * from t1 where a > 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
|
@ -808,3 +808,47 @@ select sum(count) from t2 ch where ch.defid in (50,52) and ch.day between 200703
|
|||
sum(count)
|
||||
579
|
||||
drop table t1, t2;
|
||||
#
|
||||
# Bug#50939: Loose Index Scan unduly relies on engine to remember range
|
||||
# endpoints
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
a INT,
|
||||
b INT,
|
||||
KEY ( a, b )
|
||||
) PARTITION BY HASH (a) PARTITIONS 1;
|
||||
CREATE TABLE t2 (
|
||||
a INT,
|
||||
b INT,
|
||||
KEY ( a, b )
|
||||
);
|
||||
INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
||||
INSERT INTO t1 SELECT a + 5, b + 5 FROM t1;
|
||||
INSERT INTO t1 SELECT a + 10, b + 10 FROM t1;
|
||||
INSERT INTO t1 SELECT a + 20, b + 20 FROM t1;
|
||||
INSERT INTO t1 SELECT a + 40, b + 40 FROM t1;
|
||||
INSERT INTO t2 SELECT * FROM t1;
|
||||
# plans should be identical
|
||||
EXPLAIN SELECT a, MAX(b) FROM t1 WHERE a IN (10,100) GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 5 NULL 1 Using where; Using index for group-by
|
||||
EXPLAIN SELECT a, MAX(b) FROM t2 WHERE a IN (10,100) GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range a a 5 NULL 2 Using where; Using index for group-by
|
||||
FLUSH status;
|
||||
SELECT a, MAX(b) FROM t1 WHERE a IN (10, 100) GROUP BY a;
|
||||
a MAX(b)
|
||||
10 10
|
||||
# Should be no more than 4 reads.
|
||||
SHOW status LIKE 'handler_read_key';
|
||||
Variable_name Value
|
||||
Handler_read_key 4
|
||||
FLUSH status;
|
||||
SELECT a, MAX(b) FROM t2 WHERE a IN (10, 100) GROUP BY a;
|
||||
a MAX(b)
|
||||
10 10
|
||||
# Should be no more than 4 reads.
|
||||
SHOW status LIKE 'handler_read_key';
|
||||
Variable_name Value
|
||||
Handler_read_key 4
|
||||
DROP TABLE t1, t2;
|
||||
|
|
|
@ -3001,4 +3001,42 @@ EXECUTE stmt;
|
|||
1
|
||||
DEALLOCATE PREPARE stmt;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#54494 crash with explain extended and prepared statements
|
||||
#
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
PREPARE stmt FROM 'EXPLAIN EXTENDED SELECT 1 FROM t1 RIGHT JOIN t1 t2 ON 1';
|
||||
EXECUTE stmt;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 100.00
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1003 select 1 AS `1` from `test`.`t1` `t2` left join `test`.`t1` on(1) where 1
|
||||
EXECUTE stmt;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 100.00
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1003 select 1 AS `1` from `test`.`t1` `t2` left join `test`.`t1` on(1) where 1
|
||||
DEALLOCATE PREPARE stmt;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#54488 crash when using explain and prepared statements with subqueries
|
||||
#
|
||||
CREATE TABLE t1(f1 INT);
|
||||
INSERT INTO t1 VALUES (1),(1);
|
||||
PREPARE stmt FROM 'EXPLAIN SELECT 1 FROM t1 WHERE (SELECT (SELECT 1 FROM t1 GROUP BY f1))';
|
||||
EXECUTE stmt;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
3 SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
|
||||
EXECUTE stmt;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
3 SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
|
||||
DEALLOCATE PREPARE stmt;
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests.
|
||||
|
|
|
@ -1929,26 +1929,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
|
||||
|
@ -1976,26 +1976,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select
|
||||
|
@ -2026,26 +2026,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2066,26 +2066,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
|
||||
|
@ -2114,26 +2114,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2158,26 +2158,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2204,26 +2204,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2242,26 +2242,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
|
||||
|
|
|
@ -1912,26 +1912,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
|
||||
|
@ -1959,26 +1959,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select
|
||||
|
@ -2009,26 +2009,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2049,26 +2049,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
|
||||
|
@ -2097,26 +2097,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2141,26 +2141,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2187,26 +2187,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2225,26 +2225,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
|
||||
|
|
|
@ -1913,26 +1913,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 0 31 8
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 0 31 8
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 0 31 8
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 0 31 8
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 0 31 8
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 0 31 8
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 0 31 8
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 0 31 8
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
|
||||
|
@ -1960,26 +1960,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 0 31 8
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 0 31 8
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 0 31 8
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 0 31 8
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 0 31 8
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 0 31 8
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 0 31 8
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 0 31 8
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select
|
||||
|
@ -2010,26 +2010,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 0 31 8
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 0 31 8
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 0 31 8
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 0 31 8
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 0 31 8
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 0 31 8
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 0 31 8
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 0 31 8
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2050,26 +2050,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 0 31 8
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 0 31 8
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 0 31 8
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 0 31 8
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 0 31 8
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 0 31 8
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 0 31 8
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 0 31 8
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
|
||||
|
@ -2098,26 +2098,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 0 31 8
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 0 31 8
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 0 31 8
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 0 31 8
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 0 31 8
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 0 31 8
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 0 31 8
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 0 31 8
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2142,26 +2142,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 0 31 8
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 0 31 8
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 0 31 8
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 0 31 8
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 0 31 8
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 0 31 8
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 0 31 8
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 0 31 8
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2188,26 +2188,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 0 31 8
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 0 31 8
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 0 31 8
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 0 31 8
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 0 31 8
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 0 31 8
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 0 31 8
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 0 31 8
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2226,26 +2226,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 0 31 8
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 0 31 8
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 0 31 8
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 0 31 8
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 0 31 8
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 0 31 8
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 0 31 8
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 0 31 8
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
|
||||
|
|
|
@ -1849,26 +1849,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
|
||||
|
@ -1896,26 +1896,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select
|
||||
|
@ -1946,26 +1946,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -1986,26 +1986,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
|
||||
|
@ -2034,26 +2034,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2078,26 +2078,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -2124,26 +2124,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -2162,26 +2162,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
|
||||
|
@ -4871,26 +4871,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
|
||||
|
@ -4918,26 +4918,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select
|
||||
|
@ -4968,26 +4968,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -5008,26 +5008,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
|
||||
|
@ -5056,26 +5056,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -5100,26 +5100,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
|
||||
|
@ -5146,26 +5146,26 @@ def @arg09 5 23 1 Y 32896 31 63
|
|||
def @arg10 5 23 1 Y 32896 31 63
|
||||
def @arg11 246 83 6 Y 128 30 63
|
||||
def @arg12 246 83 6 Y 128 30 63
|
||||
def @arg13 251 16777216 10 Y 128 31 63
|
||||
def @arg14 251 16777216 19 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 8 Y 128 31 63
|
||||
def @arg13 250 16777215 10 Y 128 31 63
|
||||
def @arg14 250 16777215 19 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 8 Y 128 31 63
|
||||
def @arg17 8 20 4 Y 32928 0 63
|
||||
def @arg18 8 20 1 Y 32896 0 63
|
||||
def @arg19 8 20 1 Y 32896 0 63
|
||||
def @arg20 251 16777216 1 Y 0 31 8
|
||||
def @arg21 251 16777216 10 Y 0 31 8
|
||||
def @arg22 251 16777216 30 Y 0 31 8
|
||||
def @arg23 251 16777216 8 Y 128 31 63
|
||||
def @arg24 251 16777216 8 Y 0 31 8
|
||||
def @arg25 251 16777216 4 Y 128 31 63
|
||||
def @arg26 251 16777216 4 Y 0 31 8
|
||||
def @arg27 251 16777216 10 Y 128 31 63
|
||||
def @arg28 251 16777216 10 Y 0 31 8
|
||||
def @arg29 251 16777216 8 Y 128 31 63
|
||||
def @arg30 251 16777216 8 Y 0 31 8
|
||||
def @arg31 251 16777216 3 Y 0 31 8
|
||||
def @arg32 251 16777216 6 Y 0 31 8
|
||||
def @arg20 250 16777215 1 Y 0 31 8
|
||||
def @arg21 250 16777215 10 Y 0 31 8
|
||||
def @arg22 250 16777215 30 Y 0 31 8
|
||||
def @arg23 250 16777215 8 Y 128 31 63
|
||||
def @arg24 250 16777215 8 Y 0 31 8
|
||||
def @arg25 250 16777215 4 Y 128 31 63
|
||||
def @arg26 250 16777215 4 Y 0 31 8
|
||||
def @arg27 250 16777215 10 Y 128 31 63
|
||||
def @arg28 250 16777215 10 Y 0 31 8
|
||||
def @arg29 250 16777215 8 Y 128 31 63
|
||||
def @arg30 250 16777215 8 Y 0 31 8
|
||||
def @arg31 250 16777215 3 Y 0 31 8
|
||||
def @arg32 250 16777215 6 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
|
||||
set @my_key= 0 ;
|
||||
|
@ -5184,26 +5184,26 @@ def @arg09 5 23 0 Y 32896 31 63
|
|||
def @arg10 5 23 0 Y 32896 31 63
|
||||
def @arg11 246 83 0 Y 128 30 63
|
||||
def @arg12 246 83 0 Y 128 30 63
|
||||
def @arg13 251 16777216 0 Y 128 31 63
|
||||
def @arg14 251 16777216 0 Y 128 31 63
|
||||
def @arg15 251 16777216 19 Y 128 31 63
|
||||
def @arg16 251 16777216 0 Y 128 31 63
|
||||
def @arg13 250 16777215 0 Y 128 31 63
|
||||
def @arg14 250 16777215 0 Y 128 31 63
|
||||
def @arg15 250 16777215 19 Y 128 31 63
|
||||
def @arg16 250 16777215 0 Y 128 31 63
|
||||
def @arg17 8 20 0 Y 32928 0 63
|
||||
def @arg18 8 20 0 Y 32896 0 63
|
||||
def @arg19 8 20 0 Y 32896 0 63
|
||||
def @arg20 251 16777216 0 Y 0 31 8
|
||||
def @arg21 251 16777216 0 Y 0 31 8
|
||||
def @arg22 251 16777216 0 Y 0 31 8
|
||||
def @arg23 251 16777216 0 Y 128 31 63
|
||||
def @arg24 251 16777216 0 Y 0 31 8
|
||||
def @arg25 251 16777216 0 Y 128 31 63
|
||||
def @arg26 251 16777216 0 Y 0 31 8
|
||||
def @arg27 251 16777216 0 Y 128 31 63
|
||||
def @arg28 251 16777216 0 Y 0 31 8
|
||||
def @arg29 251 16777216 0 Y 128 31 63
|
||||
def @arg30 251 16777216 0 Y 0 31 8
|
||||
def @arg31 251 16777216 0 Y 0 31 8
|
||||
def @arg32 251 16777216 0 Y 0 31 8
|
||||
def @arg20 250 16777215 0 Y 0 31 8
|
||||
def @arg21 250 16777215 0 Y 0 31 8
|
||||
def @arg22 250 16777215 0 Y 0 31 8
|
||||
def @arg23 250 16777215 0 Y 128 31 63
|
||||
def @arg24 250 16777215 0 Y 0 31 8
|
||||
def @arg25 250 16777215 0 Y 128 31 63
|
||||
def @arg26 250 16777215 0 Y 0 31 8
|
||||
def @arg27 250 16777215 0 Y 128 31 63
|
||||
def @arg28 250 16777215 0 Y 0 31 8
|
||||
def @arg29 250 16777215 0 Y 128 31 63
|
||||
def @arg30 250 16777215 0 Y 0 31 8
|
||||
def @arg31 250 16777215 0 Y 0 31 8
|
||||
def @arg32 250 16777215 0 Y 0 31 8
|
||||
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
|
||||
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;
|
||||
|
|
|
@ -4,6 +4,7 @@ drop procedure if exists p_verify_reprepare_count;
|
|||
drop procedure if exists p1;
|
||||
drop function if exists f1;
|
||||
drop view if exists v1, v2;
|
||||
TRUNCATE TABLE mysql.general_log;
|
||||
create procedure p_verify_reprepare_count(expected int)
|
||||
begin
|
||||
declare old_reprepare_count int default @reprepare_count;
|
||||
|
|
|
@ -1653,4 +1653,17 @@ a b
|
|||
0 0
|
||||
1 1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #54802: 'NOT BETWEEN' evaluation is incorrect
|
||||
#
|
||||
CREATE TABLE t1 (c_key INT, c_notkey INT, KEY(c_key));
|
||||
INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3);
|
||||
EXPLAIN SELECT * FROM t1 WHERE 2 NOT BETWEEN c_notkey AND c_key;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL c_key NULL NULL NULL 3 Using where
|
||||
SELECT * FROM t1 WHERE 2 NOT BETWEEN c_notkey AND c_key;
|
||||
c_key c_notkey
|
||||
1 1
|
||||
3 3
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -466,3 +466,26 @@ SELECT 1 FROM t1 WHERE ROW(a, b) >=
|
|||
ROW('1', (SELECT 1 FROM t1 WHERE a > 1234));
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #54190: Comparison to row subquery produces incorrect result
|
||||
#
|
||||
SELECT ROW(1,2) = (SELECT 1,2 FROM DUAL WHERE 1 = 0);
|
||||
ROW(1,2) = (SELECT 1,2 FROM DUAL WHERE 1 = 0)
|
||||
NULL
|
||||
SELECT ROW(1,2) = (SELECT 1,3 FROM DUAL WHERE 1 = 0);
|
||||
ROW(1,2) = (SELECT 1,3 FROM DUAL WHERE 1 = 0)
|
||||
NULL
|
||||
CREATE TABLE t1 (i INT);
|
||||
INSERT INTO t1 () VALUES (1), (2), (3);
|
||||
SELECT ROW(1,2) = (SELECT 1,2 FROM t1 WHERE 1 = 0);
|
||||
ROW(1,2) = (SELECT 1,2 FROM t1 WHERE 1 = 0)
|
||||
NULL
|
||||
SELECT ROW(1,2) = (SELECT 1,3 FROM t1 WHERE 1 = 0);
|
||||
ROW(1,2) = (SELECT 1,3 FROM t1 WHERE 1 = 0)
|
||||
NULL
|
||||
SELECT i FROM t1 WHERE ROW(1,2) = (SELECT 1,2 FROM DUAL WHERE 1 = 0);
|
||||
i
|
||||
SELECT i FROM t1 WHERE ROW(1,2) = (SELECT 1,3 FROM DUAL WHERE 1 = 0);
|
||||
i
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -922,7 +922,7 @@ select a, (select a,b,c from t1 where t1.a=t2.a) = ROW(a,2,'a'),(select c from t
|
|||
a (select a,b,c from t1 where t1.a=t2.a) = ROW(a,2,'a') (select c from t1 where a=t2.a)
|
||||
1 1 a
|
||||
2 0 b
|
||||
NULL 0 NULL
|
||||
NULL NULL NULL
|
||||
select a, (select a,b,c from t1 where t1.a=t2.a) = ROW(a,3,'b'),(select c from t1 where a=t2.a) from t2;
|
||||
a (select a,b,c from t1 where t1.a=t2.a) = ROW(a,3,'b') (select c from t1 where a=t2.a)
|
||||
1 0 a
|
||||
|
@ -932,7 +932,7 @@ select a, (select a,b,c from t1 where t1.a=t2.a) = ROW(a,4,'c'),(select c from t
|
|||
a (select a,b,c from t1 where t1.a=t2.a) = ROW(a,4,'c') (select c from t1 where a=t2.a)
|
||||
1 0 a
|
||||
2 0 b
|
||||
NULL 0 NULL
|
||||
NULL NULL NULL
|
||||
drop table t1,t2;
|
||||
create table t1 (a int, b real, c varchar(10));
|
||||
insert into t1 values (1, 1, 'a'), (2,2,'b'), (NULL, 2, 'b');
|
||||
|
|
|
@ -81,4 +81,110 @@ col_int_nokey sub
|
|||
0 NULL
|
||||
2 11
|
||||
DROP TABLE t1,t2;
|
||||
End of 5.1 tests.
|
||||
#
|
||||
# Bug#54568: create view cause Assertion failed: 0,
|
||||
# file .\item_subselect.cc, line 836
|
||||
#
|
||||
EXPLAIN SELECT 1 LIKE ( 1 IN ( SELECT 1 ) );
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1249 Select 2 was reduced during optimization
|
||||
DESCRIBE SELECT 1 LIKE ( 1 IN ( SELECT 1 ) );
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1249 Select 2 was reduced during optimization
|
||||
# None of the below should crash
|
||||
CREATE VIEW v1 AS SELECT 1 LIKE ( 1 IN ( SELECT 1 ) );
|
||||
CREATE VIEW v2 AS SELECT 1 LIKE '%' ESCAPE ( 1 IN ( SELECT 1 ) );
|
||||
DROP VIEW v1, v2;
|
||||
#
|
||||
# Bug#51070: Query with a NOT IN subquery predicate returns a wrong
|
||||
# result set
|
||||
#
|
||||
CREATE TABLE t1 ( a INT, b INT );
|
||||
INSERT INTO t1 VALUES ( 1, NULL ), ( 2, NULL );
|
||||
CREATE TABLE t2 ( c INT, d INT );
|
||||
INSERT INTO t2 VALUES ( NULL, 3 ), ( NULL, 4 );
|
||||
CREATE TABLE t3 ( e INT, f INT );
|
||||
INSERT INTO t3 VALUES ( NULL, NULL ), ( NULL, NULL );
|
||||
CREATE TABLE t4 ( a INT );
|
||||
INSERT INTO t4 VALUES (1), (2), (3);
|
||||
CREATE TABLE t5 ( a INT );
|
||||
INSERT INTO t5 VALUES (NULL), (2);
|
||||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE ( a, b ) NOT IN ( SELECT c, d FROM t2 );
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
x PRIMARY x x x x x x x x
|
||||
x DEPENDENT SUBQUERY x x x x x x x x
|
||||
SELECT * FROM t1 WHERE ( a, b ) NOT IN ( SELECT c, d FROM t2 );
|
||||
a b
|
||||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE ( a, b ) NOT IN ( SELECT c, d FROM t2 ) IS NULL;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT * FROM t1 WHERE ( a, b ) NOT IN ( SELECT c, d FROM t2 ) IS NULL;
|
||||
a b
|
||||
1 NULL
|
||||
2 NULL
|
||||
SELECT * FROM t1 WHERE ( a, b ) IN ( SELECT c, d FROM t2 ) IS NULL;
|
||||
a b
|
||||
1 NULL
|
||||
2 NULL
|
||||
SELECT * FROM t1 WHERE ( a, b ) NOT IN ( SELECT c, d FROM t2 ) IS UNKNOWN;
|
||||
a b
|
||||
1 NULL
|
||||
2 NULL
|
||||
SELECT * FROM t1 WHERE (( a, b ) NOT IN ( SELECT c, d FROM t2 )) IS UNKNOWN;
|
||||
a b
|
||||
1 NULL
|
||||
2 NULL
|
||||
SELECT * FROM t1 WHERE 1 = 1 AND ( a, b ) NOT IN ( SELECT c, d FROM t2 );
|
||||
a b
|
||||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE ( a, b ) NOT IN ( SELECT e, f FROM t3 );
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
x PRIMARY x x x x x x x x
|
||||
x DEPENDENT SUBQUERY x x x x x x x x
|
||||
SELECT * FROM t1 WHERE ( a, b ) NOT IN ( SELECT e, f FROM t3 );
|
||||
a b
|
||||
EXPLAIN
|
||||
SELECT * FROM t2 WHERE ( c, d ) NOT IN ( SELECT a, b FROM t1 );
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
x PRIMARY x x x x x x x x
|
||||
x DEPENDENT SUBQUERY x x x x x x x x
|
||||
SELECT * FROM t2 WHERE ( c, d ) NOT IN ( SELECT a, b FROM t1 );
|
||||
c d
|
||||
EXPLAIN
|
||||
SELECT * FROM t3 WHERE ( e, f ) NOT IN ( SELECT c, d FROM t2 );
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
x PRIMARY x x x x x x x x
|
||||
x DEPENDENT SUBQUERY x x x x x x x x
|
||||
SELECT * FROM t3 WHERE ( e, f ) NOT IN ( SELECT c, d FROM t2 );
|
||||
e f
|
||||
EXPLAIN
|
||||
SELECT * FROM t2 WHERE ( c, d ) NOT IN ( SELECT e, f FROM t3 );
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
x PRIMARY x x x x x x x x
|
||||
x DEPENDENT SUBQUERY x x x x x x x x
|
||||
SELECT * FROM t2 WHERE ( c, d ) NOT IN ( SELECT e, f FROM t3 );
|
||||
c d
|
||||
SELECT * FROM t1 WHERE ( a, b ) NOT IN
|
||||
( SELECT c, d FROM t2 WHERE c = 1 AND c <> 1 );
|
||||
a b
|
||||
1 NULL
|
||||
2 NULL
|
||||
SELECT * FROM t1 WHERE b NOT IN ( SELECT c FROM t2 WHERE c = 1 );
|
||||
a b
|
||||
1 NULL
|
||||
2 NULL
|
||||
SELECT * FROM t1 WHERE NULL NOT IN ( SELECT c FROM t2 WHERE c = 1 AND c <> 1 );
|
||||
a b
|
||||
1 NULL
|
||||
2 NULL
|
||||
DROP TABLE t1, t2, t3, t4, t5;
|
||||
#
|
||||
# End of 5.1 tests.
|
||||
#
|
||||
|
|
|
@ -60,7 +60,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
1 SIMPLE t0 ALL NULL NULL NULL NULL 4 100.00
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t0` left join (`test`.`t1`) on((`test`.`t0`.`a` = `test`.`t1`.`a`)) where 1
|
||||
Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t0` left join (`test`.`t1`) on((`test`.`t1`.`a` = `test`.`t0`.`a`)) where 1
|
||||
# Elimination with aggregate functions
|
||||
explain select count(*) from t1 left join t2 on t2.a=t1.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
|
|
@ -296,4 +296,16 @@ CONVERT_TZ(NOW(), 'UTC', 'Europe/Moscow') IS NULL
|
|||
UPDATE t1 SET t = CONVERT_TZ(t, 'UTC', 'Europe/Moscow');
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #55424: convert_tz crashes when fed invalid data
|
||||
#
|
||||
CREATE TABLE t1 (a SET('x') NOT NULL);
|
||||
INSERT INTO t1 VALUES ('');
|
||||
SELECT CONVERT_TZ(1, a, 1) FROM t1;
|
||||
CONVERT_TZ(1, a, 1)
|
||||
NULL
|
||||
SELECT CONVERT_TZ(1, 1, a) FROM t1;
|
||||
CONVERT_TZ(1, 1, a)
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -1797,11 +1797,8 @@ Note 1050 Table 'v1' already exists
|
|||
set @id=last_insert_id();
|
||||
select * from t1;
|
||||
id operation
|
||||
1 CREATE TABLE ... SELECT, inserting a new key
|
||||
select * from t1_op_log;
|
||||
operation
|
||||
Before INSERT, new=CREATE TABLE ... SELECT, inserting a new key
|
||||
After INSERT, new=CREATE TABLE ... SELECT, inserting a new key
|
||||
truncate t1_op_log;
|
||||
create table if not exists v1 replace
|
||||
select @id, "CREATE TABLE ... REPLACE SELECT, deleting a duplicate key";
|
||||
|
@ -1809,13 +1806,8 @@ Warnings:
|
|||
Note 1050 Table 'v1' already exists
|
||||
select * from t1;
|
||||
id operation
|
||||
1 CREATE TABLE ... REPLACE SELECT, deleting a duplicate key
|
||||
select * from t1_op_log;
|
||||
operation
|
||||
Before INSERT, new=CREATE TABLE ... REPLACE SELECT, deleting a duplicate key
|
||||
Before DELETE, old=CREATE TABLE ... SELECT, inserting a new key
|
||||
After DELETE, old=CREATE TABLE ... SELECT, inserting a new key
|
||||
After INSERT, new=CREATE TABLE ... REPLACE SELECT, deleting a duplicate key
|
||||
truncate t1;
|
||||
truncate t1_op_log;
|
||||
insert into v1 (id, operation)
|
||||
|
|
|
@ -501,4 +501,25 @@ SHOW CREATE TRIGGER db1.trg;
|
|||
ERROR 42000: Access denied; you need the TRIGGER privilege for this operation
|
||||
DROP USER 'no_rights'@'localhost';
|
||||
DROP DATABASE db1;
|
||||
DROP DATABASE IF EXISTS mysqltest_db1;
|
||||
CREATE DATABASE mysqltest_db1;
|
||||
USE mysqltest_db1;
|
||||
GRANT ALL ON mysqltest_db1.* TO mysqltest_u1@localhost;
|
||||
CREATE TABLE t1 (
|
||||
a1 int,
|
||||
a2 int
|
||||
);
|
||||
INSERT INTO t1 VALUES (1, 20);
|
||||
CREATE TRIGGER mysqltest_db1.upd_t1
|
||||
BEFORE UPDATE ON t1 FOR EACH ROW SET new.a2 = 200;
|
||||
CREATE TABLE t2 (
|
||||
a1 int
|
||||
);
|
||||
INSERT INTO t2 VALUES (2);
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_u1@localhost;
|
||||
UPDATE IGNORE t1, t2 SET t1.a1 = 2, t2.a1 = 3 WHERE t1.a1 = 1 AND t2.a1 = 2;
|
||||
ERROR 42000: TRIGGER command denied to user 'mysqltest_u1'@'localhost' for table 't1'
|
||||
DROP DATABASE mysqltest_db1;
|
||||
DROP USER mysqltest_u1@localhost;
|
||||
USE test;
|
||||
End of 5.1 tests.
|
||||
|
|
|
@ -527,3 +527,24 @@ f1 f2-f3
|
|||
5 0
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
#
|
||||
# Bug #55779: select does not work properly in mysql server
|
||||
# Version "5.1.42 SUSE MySQL RPM"
|
||||
#
|
||||
CREATE TABLE t1 (a TIMESTAMP, KEY (a));
|
||||
INSERT INTO t1 VALUES ('2000-01-01 00:00:00'), ('2000-01-01 00:00:00'),
|
||||
('2000-01-01 00:00:01'), ('2000-01-01 00:00:01');
|
||||
SELECT a FROM t1 WHERE a >= 20000101000000;
|
||||
a
|
||||
2000-01-01 00:00:00
|
||||
2000-01-01 00:00:00
|
||||
2000-01-01 00:00:01
|
||||
2000-01-01 00:00:01
|
||||
SELECT a FROM t1 WHERE a >= '20000101000000';
|
||||
a
|
||||
2000-01-01 00:00:00
|
||||
2000-01-01 00:00:00
|
||||
2000-01-01 00:00:01
|
||||
2000-01-01 00:00:01
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -3,6 +3,7 @@ CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
|
|||
create table t1 (a char);
|
||||
set GLOBAL query_cache_size=1355776;
|
||||
reset query cache;
|
||||
flush status;
|
||||
select metaphon('MySQL') from t1;
|
||||
metaphon('MySQL')
|
||||
show status like "Qcache_hits";
|
||||
|
|
|
@ -141,10 +141,10 @@ USE `#mysql50#../blablabla`;
|
|||
ERROR 42000: Incorrect database name '#mysql50#../blablabla'
|
||||
show full tables;
|
||||
Tables_in_test Table_type
|
||||
#mysql50#ltoriaeinnovacionendesarrolloempres?9120761097220077376?cio_com BASE TABLE
|
||||
rename table `#mysql50#ltoriaeinnovacionendesarrolloempres?9120761097220077376?cio_com` to `ltoriaeinnovacionendesarrolloempres?9120761097220077376?cio_com`;
|
||||
#mysql50#ltoriaeinnovacionendesarrolloempres#9120761097220077376#cio_com BASE TABLE
|
||||
rename table `#mysql50#ltoriaeinnovacionendesarrolloempres#9120761097220077376#cio_com` to `ltoriaeinnovacionendesarrolloempres#9120761097220077376#cio_com`;
|
||||
show full tables;
|
||||
Tables_in_test Table_type
|
||||
ltoriaeinnovacionendesarrolloempres?9120761097220077376?cio_com BASE TABLE
|
||||
drop table `ltoriaeinnovacionendesarrolloempres?9120761097220077376?cio_com`;
|
||||
ltoriaeinnovacionendesarrolloempres#9120761097220077376#cio_com BASE TABLE
|
||||
drop table `ltoriaeinnovacionendesarrolloempres#9120761097220077376#cio_com`;
|
||||
# End of 5.1 tests
|
||||
|
|
|
@ -430,4 +430,21 @@ CREATE TRIGGER t_after_insert AFTER INSERT ON t1 FOR EACH ROW SET @bug42188 = 10
|
|||
INSERT INTO t1 VALUES (1);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 VALUES (0),(0);
|
||||
# BUG#55615 : should not crash
|
||||
SELECT (@a:=(SELECT @a:=1 FROM t1 LIMIT 1)) AND COUNT(1) FROM t1 GROUP BY @a;
|
||||
(@a:=(SELECT @a:=1 FROM t1 LIMIT 1)) AND COUNT(1)
|
||||
1
|
||||
1
|
||||
# BUG#55564 : should not crash
|
||||
SELECT IF(
|
||||
@v:=LEAST((SELECT 1 FROM t1 t2 LEFT JOIN t1 ON (@v) GROUP BY t1.a), a),
|
||||
count(*), 1)
|
||||
FROM t1 GROUP BY a LIMIT 1;
|
||||
IF(
|
||||
@v:=LEAST((SELECT 1 FROM t1 t2 LEFT JOIN t1 ON (@v) GROUP BY t1.a), a),
|
||||
count(*), 1)
|
||||
1
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -24,4 +24,17 @@ SELECT @@global.debug;
|
|||
@@global.debug
|
||||
|
||||
SET GLOBAL debug=@old_debug;
|
||||
#
|
||||
# Bug #56709: Memory leaks at running the 5.1 test suite
|
||||
#
|
||||
SET @old_local_debug = @@debug;
|
||||
SET @@debug='d,foo';
|
||||
SELECT @@debug;
|
||||
@@debug
|
||||
d,foo
|
||||
SET @@debug='';
|
||||
SELECT @@debug;
|
||||
@@debug
|
||||
|
||||
SET @@debug = @old_local_debug;
|
||||
End of 5.1 tests
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue