mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge siva.hindu.god:/home/tsmith/m/bk/51
into siva.hindu.god:/home/tsmith/m/bk/maint/51 client/mysqltest.c: Auto merged configure.in: Auto merged include/my_global.h: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/r/type_datetime.result: Auto merged mysql-test/t/outfile.test: Auto merged mysql-test/t/type_datetime.test: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_func.cc: Auto merged sql/item_func.h: Auto merged sql/log.cc: Auto merged sql/my_decimal.cc: Auto merged sql/my_decimal.h: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/sp.cc: Auto merged sql/sql_base.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_show.cc: Auto merged sql/structs.h: Auto merged storage/myisam/ha_myisam.cc: Auto merged
This commit is contained in:
@ -2989,3 +2989,4 @@ win/vs71cache.txt
|
|||||||
win/vs8cache.txt
|
win/vs8cache.txt
|
||||||
zlib/*.ds?
|
zlib/*.ds?
|
||||||
zlib/*.vcproj
|
zlib/*.vcproj
|
||||||
|
libmysqld/ha_ndbcluster_cond.cc
|
||||||
|
@ -109,13 +109,13 @@ link_sources:
|
|||||||
for f in $(sql_src) ; do \
|
for f in $(sql_src) ; do \
|
||||||
rm -f $$f; \
|
rm -f $$f; \
|
||||||
@LN_CP_F@ $(top_srcdir)/sql/$$f $$f; \
|
@LN_CP_F@ $(top_srcdir)/sql/$$f $$f; \
|
||||||
done; \
|
done; \
|
||||||
for f in $(strings_src) ; do \
|
for f in $(strings_src) ; do \
|
||||||
rm -f $(srcdir)/$$f; \
|
rm -f $(srcdir)/$$f; \
|
||||||
@LN_CP_F@ $(top_srcdir)/strings/$$f $$f; \
|
@LN_CP_F@ $(top_srcdir)/strings/$$f $$f; \
|
||||||
done; \
|
done; \
|
||||||
rm -f $(srcdir)/my_user.c; \
|
rm -f $(srcdir)/my_user.c; \
|
||||||
@LN_CP_F@ $(top_srcdir)/sql-common/my_user.c my_user.c;
|
@LN_CP_F@ $(top_srcdir)/sql-common/my_user.c my_user.c;
|
||||||
echo timestamp > link_sources;
|
echo timestamp > link_sources;
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
# Don't update the files from bitkeeper
|
||||||
|
@ -739,7 +739,7 @@ static struct my_option my_long_options[] =
|
|||||||
"Number of seconds before connection timeout.",
|
"Number of seconds before connection timeout.",
|
||||||
(gptr*) &opt_connect_timeout,
|
(gptr*) &opt_connect_timeout,
|
||||||
(gptr*) &opt_connect_timeout, 0, GET_ULONG, REQUIRED_ARG, 0, 0, 3600*12, 0,
|
(gptr*) &opt_connect_timeout, 0, GET_ULONG, REQUIRED_ARG, 0, 0, 3600*12, 0,
|
||||||
0, 1},
|
0, 0},
|
||||||
{"max_allowed_packet", OPT_MAX_ALLOWED_PACKET,
|
{"max_allowed_packet", OPT_MAX_ALLOWED_PACKET,
|
||||||
"Max packet length to send to, or receive from server",
|
"Max packet length to send to, or receive from server",
|
||||||
(gptr*) &opt_max_allowed_packet, (gptr*) &opt_max_allowed_packet, 0, GET_ULONG,
|
(gptr*) &opt_max_allowed_packet, (gptr*) &opt_max_allowed_packet, 0, GET_ULONG,
|
||||||
|
@ -1546,7 +1546,7 @@ void do_source(struct st_command *command)
|
|||||||
{
|
{
|
||||||
static DYNAMIC_STRING ds_filename;
|
static DYNAMIC_STRING ds_filename;
|
||||||
const struct command_arg source_args[] = {
|
const struct command_arg source_args[] = {
|
||||||
"filename", ARG_STRING, TRUE, &ds_filename, "File to source"
|
{ "filename", ARG_STRING, TRUE, &ds_filename, "File to source" }
|
||||||
};
|
};
|
||||||
DBUG_ENTER("do_source");
|
DBUG_ENTER("do_source");
|
||||||
|
|
||||||
@ -1932,7 +1932,7 @@ void do_remove_file(struct st_command *command)
|
|||||||
int error;
|
int error;
|
||||||
static DYNAMIC_STRING ds_filename;
|
static DYNAMIC_STRING ds_filename;
|
||||||
const struct command_arg rm_args[] = {
|
const struct command_arg rm_args[] = {
|
||||||
"filename", ARG_STRING, TRUE, &ds_filename, "File to delete"
|
{ "filename", ARG_STRING, TRUE, &ds_filename, "File to delete" }
|
||||||
};
|
};
|
||||||
DBUG_ENTER("do_remove_file");
|
DBUG_ENTER("do_remove_file");
|
||||||
|
|
||||||
@ -1966,8 +1966,8 @@ void do_copy_file(struct st_command *command)
|
|||||||
static DYNAMIC_STRING ds_from_file;
|
static DYNAMIC_STRING ds_from_file;
|
||||||
static DYNAMIC_STRING ds_to_file;
|
static DYNAMIC_STRING ds_to_file;
|
||||||
const struct command_arg copy_file_args[] = {
|
const struct command_arg copy_file_args[] = {
|
||||||
"from_file", ARG_STRING, TRUE, &ds_from_file, "Filename to copy from",
|
{ "from_file", ARG_STRING, TRUE, &ds_from_file, "Filename to copy from" },
|
||||||
"to_file", ARG_STRING, TRUE, &ds_to_file, "Filename to copy to"
|
{ "to_file", ARG_STRING, TRUE, &ds_to_file, "Filename to copy to" }
|
||||||
};
|
};
|
||||||
DBUG_ENTER("do_copy_file");
|
DBUG_ENTER("do_copy_file");
|
||||||
|
|
||||||
@ -2003,8 +2003,8 @@ void do_chmod_file(struct st_command *command)
|
|||||||
static DYNAMIC_STRING ds_mode;
|
static DYNAMIC_STRING ds_mode;
|
||||||
static DYNAMIC_STRING ds_file;
|
static DYNAMIC_STRING ds_file;
|
||||||
const struct command_arg chmod_file_args[] = {
|
const struct command_arg chmod_file_args[] = {
|
||||||
"mode", ARG_STRING, TRUE, &ds_mode, "Mode of file",
|
{ "mode", ARG_STRING, TRUE, &ds_mode, "Mode of file" },
|
||||||
"file", ARG_STRING, TRUE, &ds_file, "Filename of file to modify"
|
{ "file", ARG_STRING, TRUE, &ds_file, "Filename of file to modify" }
|
||||||
};
|
};
|
||||||
DBUG_ENTER("do_chmod_file");
|
DBUG_ENTER("do_chmod_file");
|
||||||
|
|
||||||
@ -2041,7 +2041,7 @@ void do_file_exist(struct st_command *command)
|
|||||||
int error;
|
int error;
|
||||||
static DYNAMIC_STRING ds_filename;
|
static DYNAMIC_STRING ds_filename;
|
||||||
const struct command_arg file_exist_args[] = {
|
const struct command_arg file_exist_args[] = {
|
||||||
"filename", ARG_STRING, TRUE, &ds_filename, "File to check if it exist"
|
{ "filename", ARG_STRING, TRUE, &ds_filename, "File to check if it exist" }
|
||||||
};
|
};
|
||||||
DBUG_ENTER("do_file_exist");
|
DBUG_ENTER("do_file_exist");
|
||||||
|
|
||||||
@ -2123,8 +2123,8 @@ void do_write_file_command(struct st_command *command, my_bool append)
|
|||||||
static DYNAMIC_STRING ds_filename;
|
static DYNAMIC_STRING ds_filename;
|
||||||
static DYNAMIC_STRING ds_delimiter;
|
static DYNAMIC_STRING ds_delimiter;
|
||||||
const struct command_arg write_file_args[] = {
|
const struct command_arg write_file_args[] = {
|
||||||
"filename", ARG_STRING, TRUE, &ds_filename, "File to write to",
|
{ "filename", ARG_STRING, TRUE, &ds_filename, "File to write to" },
|
||||||
"delimiter", ARG_STRING, FALSE, &ds_delimiter, "Delimiter to read until"
|
{ "delimiter", ARG_STRING, FALSE, &ds_delimiter, "Delimiter to read until" }
|
||||||
};
|
};
|
||||||
DBUG_ENTER("do_write_file");
|
DBUG_ENTER("do_write_file");
|
||||||
|
|
||||||
@ -2232,7 +2232,7 @@ void do_cat_file(struct st_command *command)
|
|||||||
char buff[512];
|
char buff[512];
|
||||||
static DYNAMIC_STRING ds_filename;
|
static DYNAMIC_STRING ds_filename;
|
||||||
const struct command_arg cat_file_args[] = {
|
const struct command_arg cat_file_args[] = {
|
||||||
"filename", ARG_STRING, TRUE, &ds_filename, "File to read from"
|
{ "filename", ARG_STRING, TRUE, &ds_filename, "File to read from" }
|
||||||
};
|
};
|
||||||
DBUG_ENTER("do_cat_file");
|
DBUG_ENTER("do_cat_file");
|
||||||
|
|
||||||
@ -2296,8 +2296,8 @@ void do_diff_files(struct st_command *command)
|
|||||||
static DYNAMIC_STRING ds_filename;
|
static DYNAMIC_STRING ds_filename;
|
||||||
static DYNAMIC_STRING ds_filename2;
|
static DYNAMIC_STRING ds_filename2;
|
||||||
const struct command_arg diff_file_args[] = {
|
const struct command_arg diff_file_args[] = {
|
||||||
"file1", ARG_STRING, TRUE, &ds_filename, "First file to diff",
|
{ "file1", ARG_STRING, TRUE, &ds_filename, "First file to diff" },
|
||||||
"file2", ARG_STRING, TRUE, &ds_filename2, "Second file to diff"
|
{ "file2", ARG_STRING, TRUE, &ds_filename2, "Second file to diff" }
|
||||||
};
|
};
|
||||||
DBUG_ENTER("do_diff_files");
|
DBUG_ENTER("do_diff_files");
|
||||||
|
|
||||||
@ -2373,7 +2373,7 @@ void do_perl(struct st_command *command)
|
|||||||
static DYNAMIC_STRING ds_script;
|
static DYNAMIC_STRING ds_script;
|
||||||
static DYNAMIC_STRING ds_delimiter;
|
static DYNAMIC_STRING ds_delimiter;
|
||||||
const struct command_arg perl_args[] = {
|
const struct command_arg perl_args[] = {
|
||||||
"delimiter", ARG_STRING, FALSE, &ds_delimiter, "Delimiter to read until"
|
{ "delimiter", ARG_STRING, FALSE, &ds_delimiter, "Delimiter to read until" }
|
||||||
};
|
};
|
||||||
DBUG_ENTER("do_perl");
|
DBUG_ENTER("do_perl");
|
||||||
|
|
||||||
@ -3452,18 +3452,14 @@ void do_connect(struct st_command *command)
|
|||||||
static DYNAMIC_STRING ds_sock;
|
static DYNAMIC_STRING ds_sock;
|
||||||
static DYNAMIC_STRING ds_options;
|
static DYNAMIC_STRING ds_options;
|
||||||
const struct command_arg connect_args[] = {
|
const struct command_arg connect_args[] = {
|
||||||
"connection name", ARG_STRING, TRUE, &ds_connection_name,
|
{ "connection name", ARG_STRING, TRUE, &ds_connection_name, "Name of the connection" },
|
||||||
"Name of the connection",
|
{ "host", ARG_STRING, TRUE, &ds_host, "Host to connect to" },
|
||||||
"host", ARG_STRING, TRUE, &ds_host, "Host to connect to",
|
{ "user", ARG_STRING, FALSE, &ds_user, "User to connect as" },
|
||||||
"user", ARG_STRING, FALSE, &ds_user, "User to connect as",
|
{ "passsword", ARG_STRING, FALSE, &ds_password, "Password used when connecting" },
|
||||||
"passsword", ARG_STRING, FALSE, &ds_password,
|
{ "database", ARG_STRING, FALSE, &ds_database, "Database to select after connect" },
|
||||||
"Password used when connecting",
|
{ "port", ARG_STRING, FALSE, &ds_port, "Port to connect to" },
|
||||||
"database", ARG_STRING, FALSE, &ds_database,
|
{ "socket", ARG_STRING, FALSE, &ds_sock, "Socket to connect with" },
|
||||||
"Dtabase to select after connect",
|
{ "options", ARG_STRING, FALSE, &ds_options, "Options to use while connecting" }
|
||||||
"port", ARG_STRING, FALSE, &ds_port, "Port to connect to",
|
|
||||||
"socket", ARG_STRING, FALSE, &ds_sock, "Socket to connect with",
|
|
||||||
"options", ARG_STRING, FALSE, &ds_options,
|
|
||||||
"Options to use while connecting"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
DBUG_ENTER("do_connect");
|
DBUG_ENTER("do_connect");
|
||||||
|
@ -139,8 +139,7 @@ static int ksrflow;
|
|||||||
/* Dummy call to force a backgrounded readline to stop before it tries
|
/* Dummy call to force a backgrounded readline to stop before it tries
|
||||||
to get the tty settings. */
|
to get the tty settings. */
|
||||||
static void
|
static void
|
||||||
set_winsize (tty)
|
set_winsize (int tty __attribute__((unused)))
|
||||||
int tty;
|
|
||||||
{
|
{
|
||||||
#if defined (TIOCGWINSZ)
|
#if defined (TIOCGWINSZ)
|
||||||
struct winsize w;
|
struct winsize w;
|
||||||
|
@ -197,7 +197,6 @@ AC_DEFUN([MYSQL_SETUP_NDBCLUSTER], [
|
|||||||
|
|
||||||
MAKE_BINARY_DISTRIBUTION_OPTIONS="$MAKE_BINARY_DISTRIBUTION_OPTIONS --with-ndbcluster"
|
MAKE_BINARY_DISTRIBUTION_OPTIONS="$MAKE_BINARY_DISTRIBUTION_OPTIONS --with-ndbcluster"
|
||||||
|
|
||||||
CXXFLAGS="$CXXFLAGS \$(NDB_CXXFLAGS)"
|
|
||||||
if test "$have_ndb_debug" = "default"
|
if test "$have_ndb_debug" = "default"
|
||||||
then
|
then
|
||||||
have_ndb_debug=$with_debug
|
have_ndb_debug=$with_debug
|
||||||
|
@ -479,7 +479,7 @@ AC_MSG_CHECKING(if conversion of longlong to float works)
|
|||||||
AC_CACHE_VAL(ac_cv_conv_longlong_to_float,
|
AC_CACHE_VAL(ac_cv_conv_longlong_to_float,
|
||||||
[AC_TRY_RUN([#include <stdio.h>
|
[AC_TRY_RUN([#include <stdio.h>
|
||||||
typedef long long longlong;
|
typedef long long longlong;
|
||||||
main()
|
int main()
|
||||||
{
|
{
|
||||||
longlong ll=1;
|
longlong ll=1;
|
||||||
float f;
|
float f;
|
||||||
@ -487,7 +487,7 @@ main()
|
|||||||
f = (float) ll;
|
f = (float) ll;
|
||||||
fprintf(file,"%g\n",f);
|
fprintf(file,"%g\n",f);
|
||||||
fclose(file);
|
fclose(file);
|
||||||
exit (0);
|
return (0);
|
||||||
}], ac_cv_conv_longlong_to_float=`cat conftestval`, ac_cv_conv_longlong_to_float=0, ifelse([$2], , , ac_cv_conv_longlong_to_float=$2))])dnl
|
}], ac_cv_conv_longlong_to_float=`cat conftestval`, ac_cv_conv_longlong_to_float=0, ifelse([$2], , , ac_cv_conv_longlong_to_float=$2))])dnl
|
||||||
if test "$ac_cv_conv_longlong_to_float" = "1" -o "$ac_cv_conv_longlong_to_float" = "yes"
|
if test "$ac_cv_conv_longlong_to_float" = "1" -o "$ac_cv_conv_longlong_to_float" = "yes"
|
||||||
then
|
then
|
||||||
|
@ -10,7 +10,7 @@ AC_CANONICAL_SYSTEM
|
|||||||
#
|
#
|
||||||
# When changing major version number please also check switch statement
|
# When changing major version number please also check switch statement
|
||||||
# in mysqlbinlog::check_master_version().
|
# in mysqlbinlog::check_master_version().
|
||||||
AM_INIT_AUTOMAKE(mysql, 5.1.18-beta)
|
AM_INIT_AUTOMAKE(mysql, 5.1.19-beta)
|
||||||
AM_CONFIG_HEADER(config.h)
|
AM_CONFIG_HEADER(config.h)
|
||||||
|
|
||||||
PROTOCOL_VERSION=10
|
PROTOCOL_VERSION=10
|
||||||
|
@ -241,7 +241,7 @@ static int create_header_files(struct errors *error_head)
|
|||||||
/* generating sql_state.h file */
|
/* generating sql_state.h file */
|
||||||
if (tmp_error->sql_code1[0] || tmp_error->sql_code2[0])
|
if (tmp_error->sql_code1[0] || tmp_error->sql_code2[0])
|
||||||
fprintf(sql_statef,
|
fprintf(sql_statef,
|
||||||
"%-40s,\"%s\", \"%s\",\n", tmp_error->er_name,
|
"{ %-40s,\"%s\", \"%s\" },\n", tmp_error->er_name,
|
||||||
tmp_error->sql_code1, tmp_error->sql_code2);
|
tmp_error->sql_code1, tmp_error->sql_code2);
|
||||||
/*generating er_name file */
|
/*generating er_name file */
|
||||||
fprintf(er_namef, "{ \"%s\", %d },\n", tmp_error->er_name,
|
fprintf(er_namef, "{ \"%s\", %d },\n", tmp_error->er_name,
|
||||||
|
@ -27,6 +27,9 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
#define HASH_OVERHEAD (sizeof(char*)*2)
|
#define HASH_OVERHEAD (sizeof(char*)*2)
|
||||||
|
|
||||||
|
/* flags for hash_init */
|
||||||
|
#define HASH_UNIQUE 1 /* hash_insert fails on duplicate key */
|
||||||
|
|
||||||
typedef byte *(*hash_get_key)(const byte *,uint*,my_bool);
|
typedef byte *(*hash_get_key)(const byte *,uint*,my_bool);
|
||||||
typedef void (*hash_free_key)(void *);
|
typedef void (*hash_free_key)(void *);
|
||||||
|
|
||||||
|
@ -29,12 +29,16 @@ C_MODE_START
|
|||||||
#define GET_STR 9
|
#define GET_STR 9
|
||||||
#define GET_STR_ALLOC 10
|
#define GET_STR_ALLOC 10
|
||||||
#define GET_DISABLED 11
|
#define GET_DISABLED 11
|
||||||
|
#define GET_ENUM 12
|
||||||
|
#define GET_SET 13
|
||||||
|
|
||||||
#define GET_ASK_ADDR 128
|
#define GET_ASK_ADDR 128
|
||||||
#define GET_TYPE_MASK 127
|
#define GET_TYPE_MASK 127
|
||||||
|
|
||||||
enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG };
|
enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG };
|
||||||
|
|
||||||
|
struct st_typelib;
|
||||||
|
|
||||||
struct my_option
|
struct my_option
|
||||||
{
|
{
|
||||||
const char *name; /* Name of the option */
|
const char *name; /* Name of the option */
|
||||||
@ -42,7 +46,7 @@ struct my_option
|
|||||||
const char *comment; /* option comment, for autom. --help */
|
const char *comment; /* option comment, for autom. --help */
|
||||||
gptr *value; /* The variable value */
|
gptr *value; /* The variable value */
|
||||||
gptr *u_max_value; /* The user def. max variable value */
|
gptr *u_max_value; /* The user def. max variable value */
|
||||||
const char **str_values; /* Pointer to possible values */
|
struct st_typelib *typelib; /* Pointer to possible values */
|
||||||
ulong var_type;
|
ulong var_type;
|
||||||
enum get_opt_arg_type arg_type;
|
enum get_opt_arg_type arg_type;
|
||||||
longlong def_value; /* Default value */
|
longlong def_value; /* Default value */
|
||||||
@ -50,7 +54,7 @@ struct my_option
|
|||||||
longlong max_value; /* Max allowed value */
|
longlong max_value; /* Max allowed value */
|
||||||
longlong sub_size; /* Subtract this from given value */
|
longlong sub_size; /* Subtract this from given value */
|
||||||
long block_size; /* Value should be a mult. of this */
|
long block_size; /* Value should be a mult. of this */
|
||||||
int app_type; /* To be used by an application */
|
void *app_type; /* To be used by an application */
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef my_bool (* my_get_one_option) (int, const struct my_option *, char * );
|
typedef my_bool (* my_get_one_option) (int, const struct my_option *, char * );
|
||||||
@ -58,6 +62,7 @@ typedef void (* my_error_reporter) (enum loglevel level, const char *format, ...
|
|||||||
|
|
||||||
extern char *disabled_my_option;
|
extern char *disabled_my_option;
|
||||||
extern my_bool my_getopt_print_errors;
|
extern my_bool my_getopt_print_errors;
|
||||||
|
extern my_bool my_getopt_skip_unknown;
|
||||||
extern my_error_reporter my_getopt_error_reporter;
|
extern my_error_reporter my_getopt_error_reporter;
|
||||||
|
|
||||||
extern int handle_options (int *argc, char ***argv,
|
extern int handle_options (int *argc, char ***argv,
|
||||||
|
@ -465,6 +465,18 @@ C_MODE_END
|
|||||||
*/
|
*/
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
/* an assert that works at compile-time. only for constant expression */
|
||||||
|
#ifndef __GNUC__
|
||||||
|
#define compile_time_assert(X) do { } while(0)
|
||||||
|
#else
|
||||||
|
#define compile_time_assert(X) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
char compile_time_assert[(X) ? 1 : -1] \
|
||||||
|
__attribute__ ((unused)); \
|
||||||
|
} while(0)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Go around some bugs in different OS and compilers */
|
/* Go around some bugs in different OS and compilers */
|
||||||
#if defined (HPUX11) && defined(_LARGEFILE_SOURCE)
|
#if defined (HPUX11) && defined(_LARGEFILE_SOURCE)
|
||||||
#define _LARGEFILE64_SOURCE
|
#define _LARGEFILE64_SOURCE
|
||||||
|
@ -756,8 +756,15 @@ extern my_bool real_open_cached_file(IO_CACHE *cache);
|
|||||||
extern void close_cached_file(IO_CACHE *cache);
|
extern void close_cached_file(IO_CACHE *cache);
|
||||||
File create_temp_file(char *to, const char *dir, const char *pfx,
|
File create_temp_file(char *to, const char *dir, const char *pfx,
|
||||||
int mode, myf MyFlags);
|
int mode, myf MyFlags);
|
||||||
#define my_init_dynamic_array(A,B,C,D) init_dynamic_array(A,B,C,D CALLER_INFO)
|
#define my_init_dynamic_array(A,B,C,D) init_dynamic_array2(A,B,NULL,C,D CALLER_INFO)
|
||||||
#define my_init_dynamic_array_ci(A,B,C,D) init_dynamic_array(A,B,C,D ORIG_CALLER_INFO)
|
#define my_init_dynamic_array_ci(A,B,C,D) init_dynamic_array2(A,B,NULL,C,D ORIG_CALLER_INFO)
|
||||||
|
#define my_init_dynamic_array2(A,B,C,D,E) init_dynamic_array2(A,B,C,D,E CALLER_INFO)
|
||||||
|
#define my_init_dynamic_array2_ci(A,B,C,D,E) init_dynamic_array2(A,B,C,D,E ORIG_CALLER_INFO)
|
||||||
|
extern my_bool init_dynamic_array2(DYNAMIC_ARRAY *array,uint element_size,
|
||||||
|
void *init_buffer, uint init_alloc,
|
||||||
|
uint alloc_increment
|
||||||
|
CALLER_INFO_PROTO);
|
||||||
|
/* init_dynamic_array() function is deprecated */
|
||||||
extern my_bool init_dynamic_array(DYNAMIC_ARRAY *array,uint element_size,
|
extern my_bool init_dynamic_array(DYNAMIC_ARRAY *array,uint element_size,
|
||||||
uint init_alloc,uint alloc_increment
|
uint init_alloc,uint alloc_increment
|
||||||
CALLER_INFO_PROTO);
|
CALLER_INFO_PROTO);
|
||||||
|
@ -67,7 +67,6 @@ typedef int my_socket;
|
|||||||
#include "mysql_version.h"
|
#include "mysql_version.h"
|
||||||
#include "mysql_com.h"
|
#include "mysql_com.h"
|
||||||
#include "mysql_time.h"
|
#include "mysql_time.h"
|
||||||
#include "typelib.h"
|
|
||||||
|
|
||||||
#include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */
|
#include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */
|
||||||
|
|
||||||
@ -126,6 +125,8 @@ typedef unsigned long long my_ulonglong;
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "typelib.h"
|
||||||
|
|
||||||
#define MYSQL_COUNT_ERROR (~(my_ulonglong) 0)
|
#define MYSQL_COUNT_ERROR (~(my_ulonglong) 0)
|
||||||
|
|
||||||
/* backward compatibility define - to be removed eventually */
|
/* backward compatibility define - to be removed eventually */
|
||||||
|
@ -16,6 +16,15 @@
|
|||||||
#ifndef _my_plugin_h
|
#ifndef _my_plugin_h
|
||||||
#define _my_plugin_h
|
#define _my_plugin_h
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
class THD;
|
||||||
|
class Item;
|
||||||
|
#define MYSQL_THD THD*
|
||||||
|
#else
|
||||||
|
#define MYSQL_THD void*
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Plugin API. Common for all plugin types.
|
Plugin API. Common for all plugin types.
|
||||||
*/
|
*/
|
||||||
@ -85,7 +94,262 @@ struct st_mysql_show_var {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define SHOW_VAR_FUNC_BUFF_SIZE 1024
|
#define SHOW_VAR_FUNC_BUFF_SIZE 1024
|
||||||
typedef int (*mysql_show_var_func)(void *, struct st_mysql_show_var*, char *);
|
typedef int (*mysql_show_var_func)(MYSQL_THD, struct st_mysql_show_var*, char *);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
declarations for server variables and command line options
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define PLUGIN_VAR_BOOL 0x0001
|
||||||
|
#define PLUGIN_VAR_INT 0x0002
|
||||||
|
#define PLUGIN_VAR_LONG 0x0003
|
||||||
|
#define PLUGIN_VAR_LONGLONG 0x0004
|
||||||
|
#define PLUGIN_VAR_STR 0x0005
|
||||||
|
#define PLUGIN_VAR_ENUM 0x0006
|
||||||
|
#define PLUGIN_VAR_SET 0x0007
|
||||||
|
#define PLUGIN_VAR_UNSIGNED 0x0080
|
||||||
|
#define PLUGIN_VAR_THDLOCAL 0x0100 /* Variable is per-connection */
|
||||||
|
#define PLUGIN_VAR_READONLY 0x0200 /* Server variable is read only */
|
||||||
|
#define PLUGIN_VAR_NOSYSVAR 0x0400 /* Not a server variable */
|
||||||
|
#define PLUGIN_VAR_NOCMDOPT 0x0800 /* Not a command line option */
|
||||||
|
#define PLUGIN_VAR_NOCMDARG 0x1000 /* No argument for cmd line */
|
||||||
|
#define PLUGIN_VAR_RQCMDARG 0x0000 /* Argument required for cmd line */
|
||||||
|
#define PLUGIN_VAR_OPCMDARG 0x2000 /* Argument optional for cmd line */
|
||||||
|
#define PLUGIN_VAR_MEMALLOC 0x8000 /* String needs memory allocated */
|
||||||
|
|
||||||
|
struct st_mysql_sys_var;
|
||||||
|
struct st_mysql_value;
|
||||||
|
|
||||||
|
/*
|
||||||
|
SYNOPSIS
|
||||||
|
(*mysql_var_check_func)()
|
||||||
|
thd thread handle
|
||||||
|
var dynamic variable being altered
|
||||||
|
save pointer to temporary storage
|
||||||
|
value user provided value
|
||||||
|
RETURN
|
||||||
|
0 user provided value is OK and the update func may be called.
|
||||||
|
any other value indicates error.
|
||||||
|
|
||||||
|
This function should parse the user provided value and store in the
|
||||||
|
provided temporary storage any data as required by the update func.
|
||||||
|
There is sufficient space in the temporary storage to store a double.
|
||||||
|
Note that the update func may not be called if any other error occurs
|
||||||
|
so any memory allocated should be thread-local so that it may be freed
|
||||||
|
automatically at the end of the statement.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef int (*mysql_var_check_func)(MYSQL_THD thd,
|
||||||
|
struct st_mysql_sys_var *var,
|
||||||
|
void *save, struct st_mysql_value *value);
|
||||||
|
|
||||||
|
/*
|
||||||
|
SYNOPSIS
|
||||||
|
(*mysql_var_update_func)()
|
||||||
|
thd thread handle
|
||||||
|
var dynamic variable being altered
|
||||||
|
var_ptr pointer to dynamic variable
|
||||||
|
save pointer to temporary storage
|
||||||
|
RETURN
|
||||||
|
NONE
|
||||||
|
|
||||||
|
This function should use the validated value stored in the temporary store
|
||||||
|
and persist it in the provided pointer to the dynamic variable.
|
||||||
|
For example, strings may require memory to be allocated.
|
||||||
|
*/
|
||||||
|
typedef void (*mysql_var_update_func)(MYSQL_THD thd,
|
||||||
|
struct st_mysql_sys_var *var,
|
||||||
|
void *var_ptr, void *save);
|
||||||
|
|
||||||
|
|
||||||
|
/* the following declarations are for internal use only */
|
||||||
|
|
||||||
|
|
||||||
|
#define PLUGIN_VAR_MASK \
|
||||||
|
(PLUGIN_VAR_READONLY | PLUGIN_VAR_NOSYSVAR | \
|
||||||
|
PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_NOCMDARG | \
|
||||||
|
PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC)
|
||||||
|
|
||||||
|
#define MYSQL_PLUGIN_VAR_HEADER \
|
||||||
|
int flags; \
|
||||||
|
const char *name; \
|
||||||
|
const char *comment; \
|
||||||
|
mysql_var_check_func check; \
|
||||||
|
mysql_var_update_func update
|
||||||
|
|
||||||
|
#define MYSQL_SYSVAR_NAME(name) mysql_sysvar_ ## name
|
||||||
|
#define MYSQL_SYSVAR(name) \
|
||||||
|
((struct st_mysql_sys_var *)&(MYSQL_SYSVAR_NAME(name)))
|
||||||
|
|
||||||
|
/*
|
||||||
|
for global variables, the value pointer is the first
|
||||||
|
element after the header, the default value is the second.
|
||||||
|
for thread variables, the value offset is the first
|
||||||
|
element after the header, the default value is the second.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define DECLARE_MYSQL_SYSVAR_BASIC(name, type) struct { \
|
||||||
|
MYSQL_PLUGIN_VAR_HEADER; \
|
||||||
|
type *value; \
|
||||||
|
const type def_val; \
|
||||||
|
} MYSQL_SYSVAR_NAME(name)
|
||||||
|
|
||||||
|
#define DECLARE_MYSQL_SYSVAR_SIMPLE(name, type) struct { \
|
||||||
|
MYSQL_PLUGIN_VAR_HEADER; \
|
||||||
|
type *value; type def_val; \
|
||||||
|
type min_val; type max_val; \
|
||||||
|
type blk_sz; \
|
||||||
|
} MYSQL_SYSVAR_NAME(name)
|
||||||
|
|
||||||
|
#define DECLARE_MYSQL_SYSVAR_TYPELIB(name, type) struct { \
|
||||||
|
MYSQL_PLUGIN_VAR_HEADER; \
|
||||||
|
type *value; type def_val; \
|
||||||
|
TYPELIB *typelib; \
|
||||||
|
} MYSQL_SYSVAR_NAME(name)
|
||||||
|
|
||||||
|
#define DECLARE_THDVAR_FUNC(type) \
|
||||||
|
type *(*resolve)(MYSQL_THD thd, int offset)
|
||||||
|
|
||||||
|
#define DECLARE_MYSQL_THDVAR_BASIC(name, type) struct { \
|
||||||
|
MYSQL_PLUGIN_VAR_HEADER; \
|
||||||
|
int offset; \
|
||||||
|
const type def_val; \
|
||||||
|
DECLARE_THDVAR_FUNC(type); \
|
||||||
|
} MYSQL_SYSVAR_NAME(name)
|
||||||
|
|
||||||
|
#define DECLARE_MYSQL_THDVAR_SIMPLE(name, type) struct { \
|
||||||
|
MYSQL_PLUGIN_VAR_HEADER; \
|
||||||
|
int offset; \
|
||||||
|
type def_val; type min_val; \
|
||||||
|
type max_val; type blk_sz; \
|
||||||
|
DECLARE_THDVAR_FUNC(type); \
|
||||||
|
} MYSQL_SYSVAR_NAME(name)
|
||||||
|
|
||||||
|
#define DECLARE_MYSQL_THDVAR_TYPELIB(name, type) struct { \
|
||||||
|
MYSQL_PLUGIN_VAR_HEADER; \
|
||||||
|
int offset; \
|
||||||
|
type def_val; \
|
||||||
|
DECLARE_THDVAR_FUNC(type); \
|
||||||
|
TYPELIB *typelib; \
|
||||||
|
} MYSQL_SYSVAR_NAME(name)
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
the following declarations are for use by plugin implementors
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MYSQL_SYSVAR_BOOL(name, varname, opt, comment, check, update, def) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_BASIC(name, char) = { \
|
||||||
|
PLUGIN_VAR_BOOL | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def}
|
||||||
|
|
||||||
|
#define MYSQL_SYSVAR_STR(name, varname, opt, comment, check, update, def) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_BASIC(name, char *) = { \
|
||||||
|
PLUGIN_VAR_STR | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def}
|
||||||
|
|
||||||
|
#define MYSQL_SYSVAR_INT(name, varname, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_SIMPLE(name, int) = { \
|
||||||
|
PLUGIN_VAR_INT | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def, min, max, blk }
|
||||||
|
|
||||||
|
#define MYSQL_SYSVAR_UINT(name, varname, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned int) = { \
|
||||||
|
PLUGIN_VAR_INT | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def, min, max, blk }
|
||||||
|
|
||||||
|
#define MYSQL_SYSVAR_LONG(name, varname, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_SIMPLE(name, long) = { \
|
||||||
|
PLUGIN_VAR_LONG | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def, min, max, blk }
|
||||||
|
|
||||||
|
#define MYSQL_SYSVAR_ULONG(name, varname, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long) = { \
|
||||||
|
PLUGIN_VAR_LONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def, min, max, blk }
|
||||||
|
|
||||||
|
#define MYSQL_SYSVAR_LONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_SIMPLE(name, long long) = { \
|
||||||
|
PLUGIN_VAR_LONGLONG | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def, min, max, blk }
|
||||||
|
|
||||||
|
#define MYSQL_SYSVAR_ULONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long long) = { \
|
||||||
|
PLUGIN_VAR_LONGLONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def, min, max, blk }
|
||||||
|
|
||||||
|
#define MYSQL_SYSVAR_ENUM(name, varname, opt, comment, check, update, def, typelib) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long) = { \
|
||||||
|
PLUGIN_VAR_ENUM | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def, typelib }
|
||||||
|
|
||||||
|
#define MYSQL_SYSVAR_SET(name, varname, opt, comment, check, update, def, typelib) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long long) = { \
|
||||||
|
PLUGIN_VAR_SET | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def, typelib }
|
||||||
|
|
||||||
|
#define MYSQL_THDVAR_BOOL(name, opt, comment, check, update, def) \
|
||||||
|
DECLARE_MYSQL_THDVAR_BASIC(name, char) = { \
|
||||||
|
PLUGIN_VAR_BOOL | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, -1, def, NULL}
|
||||||
|
|
||||||
|
#define MYSQL_THDVAR_STR(name, opt, comment, check, update, def) \
|
||||||
|
DECLARE_MYSQL_THDVAR_BASIC(name, char *) = { \
|
||||||
|
PLUGIN_VAR_STR | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, -1, def, NULL}
|
||||||
|
|
||||||
|
#define MYSQL_THDVAR_INT(name, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_THDVAR_SIMPLE(name, int) = { \
|
||||||
|
PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, -1, def, min, max, blk, NULL }
|
||||||
|
|
||||||
|
#define MYSQL_THDVAR_UINT(name, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned int) = { \
|
||||||
|
PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, -1, def, min, max, blk, NULL }
|
||||||
|
|
||||||
|
#define MYSQL_THDVAR_LONG(name, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_THDVAR_SIMPLE(name, long) = { \
|
||||||
|
PLUGIN_VAR_LONG | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, -1, def, min, max, blk, NULL }
|
||||||
|
|
||||||
|
#define MYSQL_THDVAR_ULONG(name, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned long) = { \
|
||||||
|
PLUGIN_VAR_LONG | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, -1, def, min, max, blk, NULL }
|
||||||
|
|
||||||
|
#define MYSQL_THDVAR_LONGLONG(name, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_THDVAR_SIMPLE(name, long long) = { \
|
||||||
|
PLUGIN_VAR_LONGLONG | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, -1, def, min, max, blk, NULL }
|
||||||
|
|
||||||
|
#define MYSQL_THDVAR_ULONGLONG(name, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned long long) = { \
|
||||||
|
PLUGIN_VAR_LONGLONG | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, -1, def, min, max, blk, NULL }
|
||||||
|
|
||||||
|
#define MYSQL_THDVAR_ENUM(name, opt, comment, check, update, def, typelib) \
|
||||||
|
DECLARE_MYSQL_THDVAR_TYPELIB(name, unsigned long) = { \
|
||||||
|
PLUGIN_VAR_ENUM | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, -1, def, NULL, typelib }
|
||||||
|
|
||||||
|
#define MYSQL_THDVAR_SET(name, opt, comment, check, update, def, typelib) \
|
||||||
|
DECLARE_MYSQL_THDVAR_TYPELIB(name, unsigned long long) = { \
|
||||||
|
PLUGIN_VAR_SET | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, -1, def, NULL, typelib }
|
||||||
|
|
||||||
|
/* accessor macros */
|
||||||
|
|
||||||
|
#define SYSVAR(name) \
|
||||||
|
(*(MYSQL_SYSVAR_NAME(name).value))
|
||||||
|
|
||||||
|
/* when thd == null, result points to global value */
|
||||||
|
#define THDVAR(thd, name) \
|
||||||
|
(*(MYSQL_SYSVAR_NAME(name).resolve(thd, MYSQL_SYSVAR_NAME(name).offset)))
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Plugin description structure.
|
Plugin description structure.
|
||||||
@ -103,8 +367,8 @@ struct st_mysql_plugin
|
|||||||
int (*deinit)(void *);/* the function to invoke when plugin is unloaded */
|
int (*deinit)(void *);/* the function to invoke when plugin is unloaded */
|
||||||
unsigned int version; /* plugin version (for SHOW PLUGINS) */
|
unsigned int version; /* plugin version (for SHOW PLUGINS) */
|
||||||
struct st_mysql_show_var *status_vars;
|
struct st_mysql_show_var *status_vars;
|
||||||
void * __reserved1; /* placeholder for system variables */
|
struct st_mysql_sys_var **system_vars;
|
||||||
void * __reserved2; /* placeholder for config options */
|
void * __reserved1; /* reserved for dependency checking */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
@ -328,6 +592,8 @@ struct st_mysql_storage_engine
|
|||||||
int interface_version;
|
int interface_version;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct handlerton;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Here we define only the descriptor structure, that is referred from
|
Here we define only the descriptor structure, that is referred from
|
||||||
st_mysql_plugin.
|
st_mysql_plugin.
|
||||||
@ -348,5 +614,52 @@ struct st_mysql_information_schema
|
|||||||
int interface_version;
|
int interface_version;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
st_mysql_value struct for reading values from mysqld.
|
||||||
|
Used by server variables framework to parse user-provided values.
|
||||||
|
Will be used for arguments when implementing UDFs.
|
||||||
|
|
||||||
|
Note that val_str() returns a string in temporary memory
|
||||||
|
that will be freed at the end of statement. Copy the string
|
||||||
|
if you need it to persist.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MYSQL_VALUE_TYPE_STRING 0
|
||||||
|
#define MYSQL_VALUE_TYPE_REAL 1
|
||||||
|
#define MYSQL_VALUE_TYPE_INT 2
|
||||||
|
|
||||||
|
struct st_mysql_value
|
||||||
|
{
|
||||||
|
int (*value_type)(struct st_mysql_value *);
|
||||||
|
const char *(*val_str)(struct st_mysql_value *, char *buffer, int *length);
|
||||||
|
int (*val_real)(struct st_mysql_value *, double *realbuf);
|
||||||
|
int (*val_int)(struct st_mysql_value *, long long *intbuf);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Miscellaneous functions for plugin implementors
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int thd_in_lock_tables(const MYSQL_THD thd);
|
||||||
|
int thd_tablespace_op(const MYSQL_THD thd);
|
||||||
|
long long thd_test_options(const MYSQL_THD thd, long long test_options);
|
||||||
|
int thd_sql_command(const MYSQL_THD thd);
|
||||||
|
const char *thd_proc_info(MYSQL_THD thd, const char *info);
|
||||||
|
void **thd_ha_data(const MYSQL_THD thd, const struct handlerton *hton);
|
||||||
|
int thd_tx_isolation(const MYSQL_THD thd);
|
||||||
|
char *thd_security_context(MYSQL_THD thd, char *buffer, unsigned int length,
|
||||||
|
unsigned int max_query_len);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -79,6 +79,7 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */
|
|||||||
#define EXIT_NO_PTR_TO_VARIABLE 10
|
#define EXIT_NO_PTR_TO_VARIABLE 10
|
||||||
#define EXIT_CANNOT_CONNECT_TO_SERVICE 11
|
#define EXIT_CANNOT_CONNECT_TO_SERVICE 11
|
||||||
#define EXIT_OPTION_DISABLED 12
|
#define EXIT_OPTION_DISABLED 12
|
||||||
|
#define EXIT_ARGUMENT_INVALID 13
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -26,6 +26,7 @@ typedef struct st_typelib { /* Different types saved here */
|
|||||||
unsigned int *type_lengths;
|
unsigned int *type_lengths;
|
||||||
} TYPELIB;
|
} TYPELIB;
|
||||||
|
|
||||||
|
extern my_ulonglong find_typeset(char *x, TYPELIB *typelib,int *error_position);
|
||||||
extern int find_type_or_exit(const char *x, TYPELIB *typelib,
|
extern int find_type_or_exit(const char *x, TYPELIB *typelib,
|
||||||
const char *option);
|
const char *option);
|
||||||
extern int find_type(char *x, const TYPELIB *typelib, unsigned int full_name);
|
extern int find_type(char *x, const TYPELIB *typelib, unsigned int full_name);
|
||||||
|
@ -190,11 +190,11 @@ link_sources:
|
|||||||
for f in $(sqlsources); do \
|
for f in $(sqlsources); do \
|
||||||
rm -f $$f; \
|
rm -f $$f; \
|
||||||
if test -e $(top_srcdir)/sql/$$f ; \
|
if test -e $(top_srcdir)/sql/$$f ; \
|
||||||
then \
|
then \
|
||||||
@LN_CP_F@ $(top_srcdir)/sql/$$f $$f; \
|
@LN_CP_F@ $(top_srcdir)/sql/$$f $$f; \
|
||||||
else \
|
else \
|
||||||
@LN_CP_F@ $(top_builddir)/sql/$$f $$f; \
|
@LN_CP_F@ $(top_builddir)/sql/$$f $$f; \
|
||||||
fi ; \
|
fi ; \
|
||||||
done; \
|
done; \
|
||||||
for f in $(libmysqlsources); do \
|
for f in $(libmysqlsources); do \
|
||||||
rm -f $$f; \
|
rm -f $$f; \
|
||||||
|
@ -554,6 +554,60 @@ select * from t1;
|
|||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #28189: optimizer erroniously prefers ref access to range access
|
||||||
|
# for an InnoDB table
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1(
|
||||||
|
id int AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
stat_id int NOT NULL,
|
||||||
|
acct_id int DEFAULT NULL,
|
||||||
|
INDEX idx1 (stat_id, acct_id),
|
||||||
|
INDEX idx2 (acct_id)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
CREATE TABLE t2(
|
||||||
|
id int AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
stat_id int NOT NULL,
|
||||||
|
acct_id int DEFAULT NULL,
|
||||||
|
INDEX idx1 (stat_id, acct_id),
|
||||||
|
INDEX idx2 (acct_id)
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
|
||||||
|
INSERT INTO t1(stat_id,acct_id) VALUES
|
||||||
|
(1,759), (2,831), (3,785), (4,854), (1,921),
|
||||||
|
(1,553), (2,589), (3,743), (2,827), (2,545),
|
||||||
|
(4,779), (4,783), (1,597), (1,785), (4,832),
|
||||||
|
(1,741), (1,833), (3,788), (2,973), (1,907);
|
||||||
|
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
UPDATE t1 SET acct_id=785
|
||||||
|
WHERE MOD(stat_id,2)=0 AND MOD(id,stat_id)=MOD(acct_id,stat_id);
|
||||||
|
OPTIMIZE TABLE t1;
|
||||||
|
|
||||||
|
SELECT COUNT(*) FROM t1;
|
||||||
|
SELECT COUNT(*) FROM t1 WHERE acct_id=785;
|
||||||
|
|
||||||
|
EXPLAIN SELECT COUNT(*) FROM t1 WHERE stat_id IN (1,3) AND acct_id=785;
|
||||||
|
|
||||||
|
INSERT INTO t2 SELECT * FROM t1;
|
||||||
|
OPTIMIZE TABLE t2;
|
||||||
|
|
||||||
|
EXPLAIN SELECT COUNT(*) FROM t2 WHERE stat_id IN (1,3) AND acct_id=785;
|
||||||
|
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -688,4 +742,24 @@ select * from t2;
|
|||||||
|
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Tests for bug #28415 "Some ALTER TABLE statements no longer work
|
||||||
|
# under LOCK TABLES" and some aspects of fast ALTER TABLE behaviour
|
||||||
|
# for transactional tables.
|
||||||
|
#
|
||||||
|
--disable_warnings
|
||||||
|
drop table if exists t1, t2;
|
||||||
|
--enable_warnings
|
||||||
|
create table t1 (i int);
|
||||||
|
alter table t1 modify i int default 1;
|
||||||
|
alter table t1 modify i int default 2, rename t2;
|
||||||
|
lock table t2 write;
|
||||||
|
alter table t2 modify i int default 3;
|
||||||
|
unlock tables;
|
||||||
|
lock table t2 write;
|
||||||
|
alter table t2 modify i int default 4, rename t1;
|
||||||
|
unlock tables;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
--echo End of 5.1 tests
|
--echo End of 5.1 tests
|
||||||
|
@ -587,7 +587,7 @@ sub collect_one_test_case($$$$$$$) {
|
|||||||
if ( $tinfo->{'innodb_test'} )
|
if ( $tinfo->{'innodb_test'} )
|
||||||
{
|
{
|
||||||
# This is a test that need innodb
|
# This is a test that need innodb
|
||||||
if ( $::mysqld_variables{'innodb'} eq "FALSE" )
|
if ( $::mysqld_variables{'innodb'} ne "TRUE" )
|
||||||
{
|
{
|
||||||
# innodb is not supported, skip it
|
# innodb is not supported, skip it
|
||||||
$tinfo->{'skip'}= 1;
|
$tinfo->{'skip'}= 1;
|
||||||
|
@ -58,7 +58,7 @@ $Devel::Trace::TRACE= 0; # Don't trace boring init stuff
|
|||||||
use File::Path;
|
use File::Path;
|
||||||
use File::Basename;
|
use File::Basename;
|
||||||
use File::Copy;
|
use File::Copy;
|
||||||
use File::Temp qw / tempdir /;
|
use File::Temp qw /tempdir/;
|
||||||
use Cwd;
|
use Cwd;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
use Sys::Hostname;
|
use Sys::Hostname;
|
||||||
@ -113,6 +113,7 @@ our $glob_basedir;
|
|||||||
|
|
||||||
our $path_charsetsdir;
|
our $path_charsetsdir;
|
||||||
our $path_client_bindir;
|
our $path_client_bindir;
|
||||||
|
our $path_share;
|
||||||
our $path_language;
|
our $path_language;
|
||||||
our $path_timefile;
|
our $path_timefile;
|
||||||
our $path_snapshot;
|
our $path_snapshot;
|
||||||
@ -666,6 +667,7 @@ sub command_line_setup () {
|
|||||||
$glob_mysql_test_dir= `cygpath -m "$glob_mysql_test_dir"`;
|
$glob_mysql_test_dir= `cygpath -m "$glob_mysql_test_dir"`;
|
||||||
chomp($glob_mysql_test_dir);
|
chomp($glob_mysql_test_dir);
|
||||||
}
|
}
|
||||||
|
$default_vardir= "$glob_mysql_test_dir/var";
|
||||||
|
|
||||||
# In most cases, the base directory we find everything relative to,
|
# In most cases, the base directory we find everything relative to,
|
||||||
# is the parent directory of the "mysql-test" directory. For source
|
# is the parent directory of the "mysql-test" directory. For source
|
||||||
@ -705,6 +707,15 @@ sub command_line_setup () {
|
|||||||
"$glob_basedir/client",
|
"$glob_basedir/client",
|
||||||
"$glob_basedir/bin");
|
"$glob_basedir/bin");
|
||||||
|
|
||||||
|
# Look for language files and charsetsdir, use same share
|
||||||
|
$path_share= mtr_path_exists("$glob_basedir/share/mysql",
|
||||||
|
"$glob_basedir/sql/share",
|
||||||
|
"$glob_basedir/share");
|
||||||
|
|
||||||
|
$path_language= mtr_path_exists("$path_share/english");
|
||||||
|
$path_charsetsdir= mtr_path_exists("$path_share/charsets");
|
||||||
|
|
||||||
|
|
||||||
if (!$opt_extern)
|
if (!$opt_extern)
|
||||||
{
|
{
|
||||||
$exe_mysqld= mtr_exe_exists (vs_config_dirs('sql', 'mysqld'),
|
$exe_mysqld= mtr_exe_exists (vs_config_dirs('sql', 'mysqld'),
|
||||||
@ -827,7 +838,6 @@ sub command_line_setup () {
|
|||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# Set the "var/" directory, as it is the base for everything else
|
# Set the "var/" directory, as it is the base for everything else
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
$default_vardir= "$glob_mysql_test_dir/var";
|
|
||||||
if ( ! $opt_vardir )
|
if ( ! $opt_vardir )
|
||||||
{
|
{
|
||||||
$opt_vardir= $default_vardir;
|
$opt_vardir= $default_vardir;
|
||||||
@ -1345,10 +1355,15 @@ sub collect_mysqld_features () {
|
|||||||
my $found_variable_list_start= 0;
|
my $found_variable_list_start= 0;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Execute "mysqld --no-defaults --help --verbose" to get a
|
# Execute "mysqld --help --verbose" to get a list
|
||||||
# list of all features and settings
|
# list of all features and settings
|
||||||
#
|
#
|
||||||
my $list= `$exe_mysqld --no-defaults --verbose --help`;
|
# --no-defaults and --skip-grant-tables are to avoid loading
|
||||||
|
# system-wide configs and plugins
|
||||||
|
#
|
||||||
|
# --datadir must exist, mysqld will chdir into it
|
||||||
|
#
|
||||||
|
my $list= `$exe_mysqld --no-defaults --datadir=$path_language --language=$path_language --skip-grant-tables --verbose --help`;
|
||||||
|
|
||||||
foreach my $line (split('\n', $list))
|
foreach my $line (split('\n', $list))
|
||||||
{
|
{
|
||||||
@ -1511,14 +1526,6 @@ sub executable_setup () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Look for language files and charsetsdir, use same share
|
|
||||||
my $path_share= mtr_path_exists("$glob_basedir/share/mysql",
|
|
||||||
"$glob_basedir/sql/share",
|
|
||||||
"$glob_basedir/share");
|
|
||||||
|
|
||||||
$path_language= mtr_path_exists("$path_share/english");
|
|
||||||
$path_charsetsdir= mtr_path_exists("$path_share/charsets");
|
|
||||||
|
|
||||||
# Look for my_print_defaults
|
# Look for my_print_defaults
|
||||||
$exe_my_print_defaults=
|
$exe_my_print_defaults=
|
||||||
mtr_exe_exists(vs_config_dirs('extra', 'my_print_defaults'),
|
mtr_exe_exists(vs_config_dirs('extra', 'my_print_defaults'),
|
||||||
@ -2487,7 +2494,7 @@ sub ndbcluster_start_install ($) {
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$ndb_no_ord=32;
|
$ndb_no_ord=32;
|
||||||
$ndb_con_op=5000;
|
$ndb_con_op=10000;
|
||||||
$ndb_dmem="20M";
|
$ndb_dmem="20M";
|
||||||
$ndb_imem="1M";
|
$ndb_imem="1M";
|
||||||
$ndb_pbmem="4M";
|
$ndb_pbmem="4M";
|
||||||
@ -2972,8 +2979,8 @@ sub install_db ($$) {
|
|||||||
mtr_add_arg($args, "--bootstrap");
|
mtr_add_arg($args, "--bootstrap");
|
||||||
mtr_add_arg($args, "--basedir=%s", $path_my_basedir);
|
mtr_add_arg($args, "--basedir=%s", $path_my_basedir);
|
||||||
mtr_add_arg($args, "--datadir=%s", $data_dir);
|
mtr_add_arg($args, "--datadir=%s", $data_dir);
|
||||||
mtr_add_arg($args, "--skip-innodb");
|
mtr_add_arg($args, "--loose-skip-innodb");
|
||||||
mtr_add_arg($args, "--skip-ndbcluster");
|
mtr_add_arg($args, "--loose-skip-ndbcluster");
|
||||||
mtr_add_arg($args, "--tmpdir=.");
|
mtr_add_arg($args, "--tmpdir=.");
|
||||||
mtr_add_arg($args, "--core-file");
|
mtr_add_arg($args, "--core-file");
|
||||||
|
|
||||||
@ -3114,8 +3121,8 @@ basedir = $path_my_basedir
|
|||||||
server_id = $server_id
|
server_id = $server_id
|
||||||
shutdown-delay = 10
|
shutdown-delay = 10
|
||||||
skip-stack-trace
|
skip-stack-trace
|
||||||
skip-innodb
|
loose-skip-innodb
|
||||||
skip-ndbcluster
|
loose-skip-ndbcluster
|
||||||
EOF
|
EOF
|
||||||
;
|
;
|
||||||
if ( $mysql_version_id < 50100 )
|
if ( $mysql_version_id < 50100 )
|
||||||
@ -3788,21 +3795,21 @@ sub mysqld_arguments ($$$$) {
|
|||||||
mtr_add_arg($args, "%s--server-id=%d", $prefix,
|
mtr_add_arg($args, "%s--server-id=%d", $prefix,
|
||||||
$idx > 0 ? $idx + 101 : 1);
|
$idx > 0 ? $idx + 101 : 1);
|
||||||
|
|
||||||
mtr_add_arg($args, "%s--innodb_data_file_path=ibdata1:10M:autoextend",
|
mtr_add_arg($args, "%s--loose-innodb_data_file_path=ibdata1:10M:autoextend",
|
||||||
$prefix);
|
$prefix);
|
||||||
|
|
||||||
mtr_add_arg($args, "%s--local-infile", $prefix);
|
mtr_add_arg($args, "%s--local-infile", $prefix);
|
||||||
|
|
||||||
if ( $idx > 0 or !$use_innodb)
|
if ( $idx > 0 or !$use_innodb)
|
||||||
{
|
{
|
||||||
mtr_add_arg($args, "%s--skip-innodb", $prefix);
|
mtr_add_arg($args, "%s--loose-skip-innodb", $prefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
my $cluster= $clusters->[$mysqld->{'cluster'}];
|
my $cluster= $clusters->[$mysqld->{'cluster'}];
|
||||||
if ( $opt_skip_ndbcluster ||
|
if ( $opt_skip_ndbcluster ||
|
||||||
!$cluster->{'pid'})
|
!$cluster->{'pid'})
|
||||||
{
|
{
|
||||||
mtr_add_arg($args, "%s--skip-ndbcluster", $prefix);
|
mtr_add_arg($args, "%s--loose-skip-ndbcluster", $prefix);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3839,7 +3846,7 @@ sub mysqld_arguments ($$$$) {
|
|||||||
mtr_add_arg($args, "%s--report-port=%d", $prefix,
|
mtr_add_arg($args, "%s--report-port=%d", $prefix,
|
||||||
$mysqld->{'port'});
|
$mysqld->{'port'});
|
||||||
mtr_add_arg($args, "%s--report-user=root", $prefix);
|
mtr_add_arg($args, "%s--report-user=root", $prefix);
|
||||||
mtr_add_arg($args, "%s--skip-innodb", $prefix);
|
mtr_add_arg($args, "%s--loose-skip-innodb", $prefix);
|
||||||
mtr_add_arg($args, "%s--skip-slave-start", $prefix);
|
mtr_add_arg($args, "%s--skip-slave-start", $prefix);
|
||||||
|
|
||||||
# Directory where slaves find the dumps generated by "load data"
|
# Directory where slaves find the dumps generated by "load data"
|
||||||
@ -3876,7 +3883,7 @@ sub mysqld_arguments ($$$$) {
|
|||||||
$mysqld->{'cluster'} == -1 ||
|
$mysqld->{'cluster'} == -1 ||
|
||||||
!$clusters->[$mysqld->{'cluster'}]->{'pid'} )
|
!$clusters->[$mysqld->{'cluster'}]->{'pid'} )
|
||||||
{
|
{
|
||||||
mtr_add_arg($args, "%s--skip-ndbcluster", $prefix);
|
mtr_add_arg($args, "%s--loose-skip-ndbcluster", $prefix);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -11,12 +11,14 @@ MaxNoOfOrderedIndexes= CHOOSE_MaxNoOfOrderedIndexes
|
|||||||
MaxNoOfAttributes= CHOOSE_MaxNoOfAttributes
|
MaxNoOfAttributes= CHOOSE_MaxNoOfAttributes
|
||||||
TimeBetweenGlobalCheckpoints= 500
|
TimeBetweenGlobalCheckpoints= 500
|
||||||
NoOfFragmentLogFiles= 3
|
NoOfFragmentLogFiles= 3
|
||||||
DiskPageBufferMemory= CHOOSE_DiskPageBufferMemory
|
DiskPageBufferMemory= CHOOSE_DiskPageBufferMemory
|
||||||
|
|
||||||
#
|
#
|
||||||
# Increase deadlock-timeout to cater for slow test-machines
|
# Increase timeouts to cater for slow test-machines
|
||||||
# (possibly running several tests in parallell)
|
# (possibly running several tests in parallell)
|
||||||
#
|
#
|
||||||
|
HeartbeatIntervalDbDb= 30000
|
||||||
|
HeartbeatIntervalDbApi= 30000
|
||||||
#TransactionDeadlockDetectionTimeout= 7500
|
#TransactionDeadlockDetectionTimeout= 7500
|
||||||
|
|
||||||
[ndbd]
|
[ndbd]
|
||||||
|
@ -17,9 +17,11 @@ DiskPageBufferMemory= CHOOSE_DiskPageBufferMemory
|
|||||||
InitialNoOfOpenFiles= 27
|
InitialNoOfOpenFiles= 27
|
||||||
|
|
||||||
#
|
#
|
||||||
# Increase deadlock-timeout to cater for slow test-machines
|
# Increase timeouts to cater for slow test-machines
|
||||||
# (possibly running several tests in parallell)
|
# (possibly running several tests in parallell)
|
||||||
#
|
#
|
||||||
|
HeartbeatIntervalDbDb= 30000
|
||||||
|
HeartbeatIntervalDbApi= 30000
|
||||||
#TransactionDeadlockDetectionTimeout= 7500
|
#TransactionDeadlockDetectionTimeout= 7500
|
||||||
|
|
||||||
[ndbd]
|
[ndbd]
|
||||||
|
@ -11,12 +11,14 @@ MaxNoOfOrderedIndexes= CHOOSE_MaxNoOfOrderedIndexes
|
|||||||
MaxNoOfAttributes= CHOOSE_MaxNoOfAttributes
|
MaxNoOfAttributes= CHOOSE_MaxNoOfAttributes
|
||||||
TimeBetweenGlobalCheckpoints= 500
|
TimeBetweenGlobalCheckpoints= 500
|
||||||
NoOfFragmentLogFiles= 3
|
NoOfFragmentLogFiles= 3
|
||||||
DiskPageBufferMemory= CHOOSE_DiskPageBufferMemory
|
DiskPageBufferMemory= CHOOSE_DiskPageBufferMemory
|
||||||
|
|
||||||
#
|
#
|
||||||
# Increase deadlock-timeout to cater for slow test-machines
|
# Increase timeouts to cater for slow test-machines
|
||||||
# (possibly running several tests in parallell)
|
# (possibly running several tests in parallell)
|
||||||
#
|
#
|
||||||
|
HeartbeatIntervalDbDb= 30000
|
||||||
|
HeartbeatIntervalDbApi= 30000
|
||||||
#TransactionDeadlockDetectionTimeout= 7500
|
#TransactionDeadlockDetectionTimeout= 7500
|
||||||
|
|
||||||
[ndbd]
|
[ndbd]
|
||||||
|
@ -402,7 +402,7 @@ Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
|
|||||||
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
|
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
|
||||||
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
|
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort; Using join cache
|
||||||
1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
|
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
|
||||||
|
@ -352,3 +352,13 @@ select c1 mod 50 as result from t1;
|
|||||||
result
|
result
|
||||||
6
|
6
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 select -9223372036854775808 bi;
|
||||||
|
describe t1;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
bi bigint(20) NO 0
|
||||||
|
drop table t1;
|
||||||
|
create table t1 select -9223372036854775809 bi;
|
||||||
|
describe t1;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
bi decimal(19,0) NO 0
|
||||||
|
drop table t1;
|
||||||
|
@ -351,6 +351,12 @@ DROP TABLE t1;
|
|||||||
select isnull(date(NULL)), isnull(cast(NULL as DATE));
|
select isnull(date(NULL)), isnull(cast(NULL as DATE));
|
||||||
isnull(date(NULL)) isnull(cast(NULL as DATE))
|
isnull(date(NULL)) isnull(cast(NULL as DATE))
|
||||||
1 1
|
1 1
|
||||||
|
SELECT CAST(cast('01-01-01' as date) AS UNSIGNED);
|
||||||
|
CAST(cast('01-01-01' as date) AS UNSIGNED)
|
||||||
|
20010101
|
||||||
|
SELECT CAST(cast('01-01-01' as date) AS SIGNED);
|
||||||
|
CAST(cast('01-01-01' as date) AS SIGNED)
|
||||||
|
20010101
|
||||||
End of 4.1 tests
|
End of 4.1 tests
|
||||||
select cast('1.2' as decimal(3,2));
|
select cast('1.2' as decimal(3,2));
|
||||||
cast('1.2' as decimal(3,2))
|
cast('1.2' as decimal(3,2))
|
||||||
|
@ -611,11 +611,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t3 index period period 4 NULL 41810
|
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index period period 4 NULL 41810
|
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||||
select period from t1;
|
select period from t1;
|
||||||
period
|
period
|
||||||
@ -1434,7 +1434,7 @@ companynr companynr
|
|||||||
41 40
|
41 40
|
||||||
explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
|
explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
|
1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||||
select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
|
select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
|
||||||
fld1 companynr fld3 period
|
fld1 companynr fld3 period
|
||||||
|
@ -782,6 +782,100 @@ t1 CREATE TABLE `t1` (
|
|||||||
`i` int(11) DEFAULT NULL
|
`i` int(11) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=4294967295
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=4294967295
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 select * from t2;
|
||||||
|
ERROR 42S02: Table 'test.t2' doesn't exist
|
||||||
|
create table t1 select * from t1;
|
||||||
|
ERROR HY000: You can't specify target table 't1' for update in FROM clause
|
||||||
|
create table t1 select coalesce('a' collate latin1_swedish_ci,'b' collate latin1_bin);
|
||||||
|
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'coalesce'
|
||||||
|
create table t1 (primary key(a)) select "b" as b;
|
||||||
|
ERROR 42000: Key column 'a' doesn't exist in table
|
||||||
|
create table t1 (a int);
|
||||||
|
create table if not exists t1 select 1 as a, 2 as b;
|
||||||
|
ERROR 21S01: Column count doesn't match value count at row 1
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (primary key (a)) (select 1 as a) union all (select 1 as a);
|
||||||
|
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||||
|
create table t1 (i int);
|
||||||
|
create table t1 select 1 as i;
|
||||||
|
ERROR 42S01: Table 't1' already exists
|
||||||
|
create table if not exists t1 select 1 as i;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
|
select * from t1;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
create table t1 select coalesce('a' collate latin1_swedish_ci,'b' collate latin1_bin);
|
||||||
|
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'coalesce'
|
||||||
|
select * from t1;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
alter table t1 add primary key (i);
|
||||||
|
create table if not exists t1 (select 2 as i) union all (select 2 as i);
|
||||||
|
ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
|
||||||
|
select * from t1;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
drop table t1;
|
||||||
|
create temporary table t1 (j int);
|
||||||
|
create table if not exists t1 select 1;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
|
select * from t1;
|
||||||
|
j
|
||||||
|
1
|
||||||
|
drop temporary table t1;
|
||||||
|
select * from t1;
|
||||||
|
ERROR 42S02: Table 'test.t1' doesn't exist
|
||||||
|
drop table t1;
|
||||||
|
ERROR 42S02: Unknown table 't1'
|
||||||
|
create table t1 (i int);
|
||||||
|
insert into t1 values (1), (2);
|
||||||
|
lock tables t1 read;
|
||||||
|
create table t2 select * from t1;
|
||||||
|
ERROR HY000: Table 't2' was not locked with LOCK TABLES
|
||||||
|
create table if not exists t2 select * from t1;
|
||||||
|
ERROR HY000: Table 't2' was not locked with LOCK TABLES
|
||||||
|
unlock tables;
|
||||||
|
create table t2 (j int);
|
||||||
|
lock tables t1 read;
|
||||||
|
create table t2 select * from t1;
|
||||||
|
ERROR HY000: Table 't2' was not locked with LOCK TABLES
|
||||||
|
create table if not exists t2 select * from t1;
|
||||||
|
ERROR HY000: Table 't2' was not locked with LOCK TABLES
|
||||||
|
unlock tables;
|
||||||
|
lock table t1 read, t2 read;
|
||||||
|
create table t2 select * from t1;
|
||||||
|
ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
|
||||||
|
create table if not exists t2 select * from t1;
|
||||||
|
ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
|
||||||
|
unlock tables;
|
||||||
|
lock table t1 read, t2 write;
|
||||||
|
create table t2 select * from t1;
|
||||||
|
ERROR 42S01: Table 't2' already exists
|
||||||
|
create table if not exists t2 select * from t1;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't2' already exists
|
||||||
|
select * from t1;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
unlock tables;
|
||||||
|
drop table t2;
|
||||||
|
lock tables t1 read;
|
||||||
|
create temporary table t2 select * from t1;
|
||||||
|
create temporary table if not exists t2 select * from t1;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't2' already exists
|
||||||
|
select * from t2;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
1
|
||||||
|
2
|
||||||
|
unlock tables;
|
||||||
|
drop table t1, t2;
|
||||||
create table t1 (upgrade int);
|
create table t1 (upgrade int);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
164
mysql-test/r/create_select-big.result
Normal file
164
mysql-test/r/create_select-big.result
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
drop table if exists t1,t2,t3,t4,t5;
|
||||||
|
set session debug="+d,sleep_create_select_before_create";
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
create table t1 (j char(5));
|
||||||
|
ERROR 42S01: Table 't1' already exists
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`i` int(1) NOT NULL DEFAULT '0'
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1;
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
create table t1 select "Test" as j;
|
||||||
|
ERROR 42S01: Table 't1' already exists
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`i` int(1) NOT NULL DEFAULT '0'
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1;
|
||||||
|
create table t3 (j char(5));
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
create table t1 like t3;
|
||||||
|
ERROR 42S01: Table 't1' already exists
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`i` int(1) NOT NULL DEFAULT '0'
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1;
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
rename table t3 to t1;
|
||||||
|
ERROR 42S01: Table 't1' already exists
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`i` int(1) NOT NULL DEFAULT '0'
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1;
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
alter table t3 rename to t1;
|
||||||
|
ERROR 42S01: Table 't1' already exists
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`i` int(1) NOT NULL DEFAULT '0'
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1;
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
alter table t3 rename to t1, add k int;
|
||||||
|
ERROR 42S01: Table 't1' already exists
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`i` int(1) NOT NULL DEFAULT '0'
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1, t3;
|
||||||
|
set session debug="-d,sleep_create_select_before_create:+d,sleep_create_select_before_open";
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
drop table t1;
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
rename table t1 to t2;
|
||||||
|
drop table t2;
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
select * from t1;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
drop table t1;
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
insert into t1 values (2);
|
||||||
|
select * from t1;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
drop table t1;
|
||||||
|
set @a:=0;
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
create trigger t1_bi before insert on t1 for each row set @a:=1;
|
||||||
|
select @a;
|
||||||
|
@a
|
||||||
|
0
|
||||||
|
drop table t1;
|
||||||
|
set session debug="-d,sleep_create_select_before_open:+d,sleep_create_select_before_lock";
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
drop table t1;
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
rename table t1 to t2;
|
||||||
|
drop table t2;
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
select * from t1;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
drop table t1;
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
insert into t1 values (2);
|
||||||
|
select * from t1;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
drop table t1;
|
||||||
|
set @a:=0;
|
||||||
|
create table t1 select 1 as i;;
|
||||||
|
create trigger t1_bi before insert on t1 for each row set @a:=1;
|
||||||
|
select @a;
|
||||||
|
@a
|
||||||
|
0
|
||||||
|
drop table t1;
|
||||||
|
set session debug="-d,sleep_create_select_before_lock:+d,sleep_create_select_before_check_if_exists";
|
||||||
|
create table t1 (i int);
|
||||||
|
create table if not exists t1 select 1 as i;;
|
||||||
|
drop table t1;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
|
create table t1 (i int);
|
||||||
|
set @a:=0;
|
||||||
|
create table if not exists t1 select 1 as i;;
|
||||||
|
create trigger t1_bi before insert on t1 for each row set @a:=1;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
|
select @a;
|
||||||
|
@a
|
||||||
|
0
|
||||||
|
select * from t1;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
drop table t1;
|
||||||
|
set session debug="-d,sleep_create_select_before_check_if_exists";
|
||||||
|
create table t2 (a int);
|
||||||
|
create table t4 (b int);
|
||||||
|
lock table t4 write;
|
||||||
|
select 1;
|
||||||
|
1
|
||||||
|
1
|
||||||
|
create table t3 as select * from t4;;
|
||||||
|
create table t1 select * from t2, t3;;
|
||||||
|
unlock tables;
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` int(11) DEFAULT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1, t3;
|
||||||
|
lock table t4 read;
|
||||||
|
select 1;
|
||||||
|
1
|
||||||
|
1
|
||||||
|
rename table t4 to t3;;
|
||||||
|
create table if not exists t1 select 1 as i from t2, t3;;
|
||||||
|
create table t5 (j int);
|
||||||
|
rename table t5 to t1;
|
||||||
|
unlock tables;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
|
select * from t1;
|
||||||
|
j
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`j` int(11) DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1, t2, t3;
|
@ -1454,7 +1454,7 @@ insert into t1 values ('123'), ('456');
|
|||||||
explain
|
explain
|
||||||
select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1;
|
select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Y ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
|
1 SIMPLE Y ALL NULL NULL NULL NULL 2 Using temporary; Using filesort; Using join cache
|
||||||
1 SIMPLE Z ALL NULL NULL NULL NULL 2 Using where
|
1 SIMPLE Z ALL NULL NULL NULL NULL 2 Using where
|
||||||
select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1;
|
select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1;
|
||||||
substr(Z.a,-1) a
|
substr(Z.a,-1) a
|
||||||
|
@ -57,7 +57,7 @@ a b a b
|
|||||||
3 c 3 c
|
3 c 3 c
|
||||||
explain select * from t1 as x1, (select * from t1) as x2;
|
explain select * from t1 as x1, (select * from t1) as x2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY x1 ALL NULL NULL NULL NULL 4
|
1 PRIMARY x1 ALL NULL NULL NULL NULL 4 Using join cache
|
||||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 4
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 4
|
||||||
2 DERIVED t1 ALL NULL NULL NULL NULL 4
|
2 DERIVED t1 ALL NULL NULL NULL NULL 4
|
||||||
drop table if exists t2,t3;
|
drop table if exists t2,t3;
|
||||||
@ -188,13 +188,13 @@ pla_id test
|
|||||||
105 3
|
105 3
|
||||||
explain SELECT STRAIGHT_JOIN d.pla_id, m2.mat_id FROM t1 m2 INNER JOIN (SELECT mp.pla_id, MIN(m1.matintnum) AS matintnum FROM t2 mp INNER JOIN t1 m1 ON mp.mat_id=m1.mat_id GROUP BY mp.pla_id) d ON d.matintnum=m2.matintnum;
|
explain SELECT STRAIGHT_JOIN d.pla_id, m2.mat_id FROM t1 m2 INNER JOIN (SELECT mp.pla_id, MIN(m1.matintnum) AS matintnum FROM t2 mp INNER JOIN t1 m1 ON mp.mat_id=m1.mat_id GROUP BY mp.pla_id) d ON d.matintnum=m2.matintnum;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY m2 ALL NULL NULL NULL NULL 9
|
1 PRIMARY m2 ALL NULL NULL NULL NULL 9 Using join cache
|
||||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where
|
||||||
2 DERIVED mp ALL NULL NULL NULL NULL 9 Using temporary; Using filesort
|
2 DERIVED mp ALL NULL NULL NULL NULL 9 Using temporary; Using filesort
|
||||||
2 DERIVED m1 eq_ref PRIMARY PRIMARY 3 test.mp.mat_id 1
|
2 DERIVED m1 eq_ref PRIMARY PRIMARY 3 test.mp.mat_id 1
|
||||||
explain SELECT STRAIGHT_JOIN d.pla_id, m2.test FROM t1 m2 INNER JOIN (SELECT mp.pla_id, MIN(m1.matintnum) AS matintnum FROM t2 mp INNER JOIN t1 m1 ON mp.mat_id=m1.mat_id GROUP BY mp.pla_id) d ON d.matintnum=m2.matintnum;
|
explain SELECT STRAIGHT_JOIN d.pla_id, m2.test FROM t1 m2 INNER JOIN (SELECT mp.pla_id, MIN(m1.matintnum) AS matintnum FROM t2 mp INNER JOIN t1 m1 ON mp.mat_id=m1.mat_id GROUP BY mp.pla_id) d ON d.matintnum=m2.matintnum;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY m2 ALL NULL NULL NULL NULL 9
|
1 PRIMARY m2 ALL NULL NULL NULL NULL 9 Using join cache
|
||||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where
|
||||||
2 DERIVED mp ALL NULL NULL NULL NULL 9 Using temporary; Using filesort
|
2 DERIVED mp ALL NULL NULL NULL NULL 9 Using temporary; Using filesort
|
||||||
2 DERIVED m1 eq_ref PRIMARY PRIMARY 3 test.mp.mat_id 1
|
2 DERIVED m1 eq_ref PRIMARY PRIMARY 3 test.mp.mat_id 1
|
||||||
@ -245,7 +245,7 @@ a a
|
|||||||
2 2
|
2 2
|
||||||
explain select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b;
|
explain select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 Using join cache
|
||||||
1 PRIMARY <derived4> ALL NULL NULL NULL NULL 2
|
1 PRIMARY <derived4> ALL NULL NULL NULL NULL 2
|
||||||
4 DERIVED t1 ALL NULL NULL NULL NULL 2
|
4 DERIVED t1 ALL NULL NULL NULL NULL 2
|
||||||
5 UNION t1 ALL NULL NULL NULL NULL 2
|
5 UNION t1 ALL NULL NULL NULL NULL 2
|
||||||
@ -312,7 +312,7 @@ b 3.5000
|
|||||||
explain SELECT s.name, AVG(s.val) AS median FROM (SELECT x.name, x.val FROM t1 x, t1 y WHERE x.name=y.name GROUP BY x.name, x.val HAVING SUM(y.val <= x.val) >= COUNT(*)/2 AND SUM(y.val >= x.val) >= COUNT(*)/2) AS s GROUP BY s.name;
|
explain SELECT s.name, AVG(s.val) AS median FROM (SELECT x.name, x.val FROM t1 x, t1 y WHERE x.name=y.name GROUP BY x.name, x.val HAVING SUM(y.val <= x.val) >= COUNT(*)/2 AND SUM(y.val >= x.val) >= COUNT(*)/2) AS s GROUP BY s.name;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 3 Using temporary; Using filesort
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 3 Using temporary; Using filesort
|
||||||
2 DERIVED x ALL NULL NULL NULL NULL 17 Using temporary; Using filesort
|
2 DERIVED x ALL NULL NULL NULL NULL 17 Using temporary; Using filesort; Using join cache
|
||||||
2 DERIVED y ALL NULL NULL NULL NULL 17 Using where
|
2 DERIVED y ALL NULL NULL NULL NULL 17 Using where
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t2 (a int, b int, primary key (a));
|
create table t2 (a int, b int, primary key (a));
|
||||||
|
@ -174,7 +174,7 @@ INSERT INTO t3 VALUES (1,'1'),(2,'2'),(1,'1'),(2,'2');
|
|||||||
explain SELECT distinct t3.a FROM t3,t2,t1 WHERE t3.a=t1.b AND t1.a=t2.a;
|
explain SELECT distinct t3.a FROM t3,t2,t1 WHERE t3.a=t1.b AND t1.a=t2.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 4 Using temporary
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 4 Using temporary
|
||||||
1 SIMPLE t3 ref a a 5 test.t1.b 2 Using where; Using index
|
1 SIMPLE t3 ref a a 5 test.t1.b 2 Using where; Using index; Using join cache
|
||||||
1 SIMPLE t2 index a a 4 NULL 5 Using where; Using index; Distinct
|
1 SIMPLE t2 index a a 4 NULL 5 Using where; Using index; Distinct
|
||||||
SELECT distinct t3.a FROM t3,t2,t1 WHERE t3.a=t1.b AND t1.a=t2.a;
|
SELECT distinct t3.a FROM t3,t2,t1 WHERE t3.a=t1.b AND t1.a=t2.a;
|
||||||
a
|
a
|
||||||
@ -299,11 +299,11 @@ WHERE
|
|||||||
((t1.id=j_lj_t2.id AND t2_lj.id IS NULL) OR (t1.id=t2.id AND t2.idx=2))
|
((t1.id=j_lj_t2.id AND t2_lj.id IS NULL) OR (t1.id=t2.id AND t2.idx=2))
|
||||||
AND ((t1.id=j_lj_t3.id AND t3_lj.id IS NULL) OR (t1.id=t3.id AND t3.idx=2));
|
AND ((t1.id=j_lj_t3.id AND t3_lj.id IS NULL) OR (t1.id=t3.id AND t3.idx=2));
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index id id 4 NULL 2 Using index; Using temporary
|
1 SIMPLE t1 index id id 4 NULL 2 Using index; Using temporary; Using join cache
|
||||||
1 SIMPLE t2 index id id 8 NULL 1 Using index; Distinct
|
1 SIMPLE t2 index id id 8 NULL 1 Using index; Distinct; Using join cache
|
||||||
1 SIMPLE t3 index id id 8 NULL 1 Using index; Distinct
|
1 SIMPLE t3 index id id 8 NULL 1 Using index; Distinct; Using join cache
|
||||||
1 SIMPLE j_lj_t2 index id id 4 NULL 2 Using where; Using index; Distinct
|
1 SIMPLE j_lj_t2 index id id 4 NULL 2 Using where; Using index; Distinct
|
||||||
1 SIMPLE t2_lj ref id id 4 test.j_lj_t2.id 1 Using where; Using index; Distinct
|
1 SIMPLE t2_lj ref id id 4 test.j_lj_t2.id 1 Using where; Using index; Distinct; Using join cache
|
||||||
1 SIMPLE j_lj_t3 index id id 4 NULL 2 Using where; Using index; Distinct
|
1 SIMPLE j_lj_t3 index id id 4 NULL 2 Using where; Using index; Distinct
|
||||||
1 SIMPLE t3_lj ref id id 4 test.j_lj_t3.id 1 Using where; Using index; Distinct
|
1 SIMPLE t3_lj ref id id 4 test.j_lj_t3.id 1 Using where; Using index; Distinct
|
||||||
SELECT DISTINCT
|
SELECT DISTINCT
|
||||||
@ -514,7 +514,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
||||||
EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2;
|
EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1_1 ALL NULL NULL NULL NULL 3 Using temporary
|
1 SIMPLE t1_1 ALL NULL NULL NULL NULL 3 Using temporary; Using join cache
|
||||||
1 SIMPLE t1_2 index NULL PRIMARY 4 NULL 3 Using index; Distinct
|
1 SIMPLE t1_2 index NULL PRIMARY 4 NULL 3 Using index; Distinct
|
||||||
EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2
|
EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2
|
||||||
WHERE t1_1.a = t1_2.a;
|
WHERE t1_1.a = t1_2.a;
|
||||||
|
@ -4,9 +4,11 @@ show variables like 'log_bin%';
|
|||||||
Variable_name Value
|
Variable_name Value
|
||||||
log_bin OFF
|
log_bin OFF
|
||||||
log_bin_trust_function_creators ON
|
log_bin_trust_function_creators ON
|
||||||
|
log_bin_trust_routine_creators ON
|
||||||
flush logs;
|
flush logs;
|
||||||
show variables like 'log_bin%';
|
show variables like 'log_bin%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
log_bin OFF
|
log_bin OFF
|
||||||
log_bin_trust_function_creators ON
|
log_bin_trust_function_creators ON
|
||||||
|
log_bin_trust_routine_creators ON
|
||||||
set global expire_logs_days = 0;
|
set global expire_logs_days = 0;
|
||||||
|
@ -613,7 +613,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
explain
|
explain
|
||||||
select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 > 'CA';
|
select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 > 'CA';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range k1 k1 7 NULL 1 Using where; Using index
|
1 SIMPLE t1 range k1 k1 7 NULL 1 Using where; Using index; Using join cache
|
||||||
1 SIMPLE t2 range k1 k1 3 NULL 4 Using where; Using index
|
1 SIMPLE t2 range k1 k1 3 NULL 4 Using where; Using index
|
||||||
explain
|
explain
|
||||||
select min(a4 - 0.01) from t1;
|
select min(a4 - 0.01) from t1;
|
||||||
@ -650,7 +650,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
explain
|
explain
|
||||||
select concat(min(t1.a1),min(t2.a4)) from t1, t2 where t2.a4 <> 'AME';
|
select concat(min(t1.a1),min(t2.a4)) from t1, t2 where t2.a4 <> 'AME';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 range k2 k2 4 NULL 6 Using where; Using index
|
1 SIMPLE t2 range k2 k2 4 NULL 6 Using where; Using index; Using join cache
|
||||||
1 SIMPLE t1 index NULL PRIMARY 3 NULL 15 Using index
|
1 SIMPLE t1 index NULL PRIMARY 3 NULL 15 Using index
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
create table t1 (a char(10));
|
create table t1 (a char(10));
|
||||||
|
@ -78,7 +78,7 @@ min(7)
|
|||||||
7
|
7
|
||||||
explain select min(7) from t2i join t1i;
|
explain select min(7) from t2i join t1i;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2i ALL NULL NULL NULL NULL 1
|
1 SIMPLE t2i ALL NULL NULL NULL NULL 1 Using join cache
|
||||||
1 SIMPLE t1i ALL NULL NULL NULL NULL 1
|
1 SIMPLE t1i ALL NULL NULL NULL NULL 1
|
||||||
select min(7) from t2i join t1i;
|
select min(7) from t2i join t1i;
|
||||||
min(7)
|
min(7)
|
||||||
@ -94,7 +94,7 @@ max(7)
|
|||||||
7
|
7
|
||||||
explain select max(7) from t2i join t1i;
|
explain select max(7) from t2i join t1i;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2i ALL NULL NULL NULL NULL 1
|
1 SIMPLE t2i ALL NULL NULL NULL NULL 1 Using join cache
|
||||||
1 SIMPLE t1i ALL NULL NULL NULL NULL 1
|
1 SIMPLE t1i ALL NULL NULL NULL NULL 1
|
||||||
select max(7) from t2i join t1i;
|
select max(7) from t2i join t1i;
|
||||||
max(7)
|
max(7)
|
||||||
|
@ -474,6 +474,7 @@ CREATE TABLE t4 (a DATE);
|
|||||||
INSERT INTO t4 VALUES ('1972-02-06'), ('1972-07-29');
|
INSERT INTO t4 VALUES ('1972-02-06'), ('1972-07-29');
|
||||||
SELECT * FROM t4 WHERE a IN ('1972-02-06','19772-07-29');
|
SELECT * FROM t4 WHERE a IN ('1972-02-06','19772-07-29');
|
||||||
a
|
a
|
||||||
|
1972-02-06
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Incorrect date value: '19772-07-29' for column 'a' at row 1
|
Warning 1292 Incorrect date value: '19772-07-29' for column 'a' at row 1
|
||||||
DROP TABLE t1,t2,t3,t4;
|
DROP TABLE t1,t2,t3,t4;
|
||||||
|
@ -394,7 +394,7 @@ Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
|
|||||||
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
|
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
|
||||||
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
|
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort; Using join cache
|
||||||
1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
|
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
|
||||||
|
@ -1194,6 +1194,25 @@ ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table '
|
|||||||
DROP DATABASE mysqltest1;
|
DROP DATABASE mysqltest1;
|
||||||
DROP DATABASE mysqltest2;
|
DROP DATABASE mysqltest2;
|
||||||
DROP USER mysqltest_1@localhost;
|
DROP USER mysqltest_1@localhost;
|
||||||
|
use test;
|
||||||
|
CREATE TABLE t1 (f1 int, f2 int);
|
||||||
|
INSERT INTO t1 VALUES(1,1), (2,2);
|
||||||
|
CREATE DATABASE db27878;
|
||||||
|
GRANT UPDATE(f1) ON t1 TO 'mysqltest_1'@'localhost';
|
||||||
|
GRANT SELECT ON `test`.* TO 'mysqltest_1'@'localhost';
|
||||||
|
GRANT ALL ON db27878.* TO 'mysqltest_1'@'localhost';
|
||||||
|
use db27878;
|
||||||
|
CREATE SQL SECURITY INVOKER VIEW db27878.v1 AS SELECT * FROM test.t1;
|
||||||
|
use db27878;
|
||||||
|
UPDATE v1 SET f2 = 4;
|
||||||
|
ERROR HY000: View 'db27878.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||||
|
SELECT * FROM test.t1;
|
||||||
|
f1 f2
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
DROP DATABASE db27878;
|
||||||
|
use test;
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
set names utf8;
|
set names utf8;
|
||||||
grant select on test.* to юзер_юзер@localhost;
|
grant select on test.* to юзер_юзер@localhost;
|
||||||
|
@ -120,11 +120,11 @@ select @@optimizer_search_depth;
|
|||||||
63
|
63
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -132,11 +132,11 @@ Variable_name Value
|
|||||||
Last_query_cost 821.837037
|
Last_query_cost 821.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -144,11 +144,11 @@ Variable_name Value
|
|||||||
Last_query_cost 821.837037
|
Last_query_cost 821.837037
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -156,11 +156,11 @@ Variable_name Value
|
|||||||
Last_query_cost 794.837037
|
Last_query_cost 794.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -168,11 +168,11 @@ Variable_name Value
|
|||||||
Last_query_cost 794.837037
|
Last_query_cost 794.837037
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -180,11 +180,11 @@ Variable_name Value
|
|||||||
Last_query_cost 794.837037
|
Last_query_cost 794.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -200,11 +200,11 @@ select @@optimizer_search_depth;
|
|||||||
0
|
0
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -212,11 +212,11 @@ Variable_name Value
|
|||||||
Last_query_cost 821.837037
|
Last_query_cost 821.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -224,11 +224,11 @@ Variable_name Value
|
|||||||
Last_query_cost 821.837037
|
Last_query_cost 821.837037
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -236,11 +236,11 @@ Variable_name Value
|
|||||||
Last_query_cost 289.418727
|
Last_query_cost 289.418727
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -248,11 +248,11 @@ Variable_name Value
|
|||||||
Last_query_cost 289.418727
|
Last_query_cost 289.418727
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -260,11 +260,11 @@ Variable_name Value
|
|||||||
Last_query_cost 289.418727
|
Last_query_cost 289.418727
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -276,11 +276,11 @@ select @@optimizer_search_depth;
|
|||||||
1
|
1
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -288,11 +288,11 @@ Variable_name Value
|
|||||||
Last_query_cost 821.837037
|
Last_query_cost 821.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -303,9 +303,9 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
@ -315,9 +315,9 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
@ -327,9 +327,9 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
@ -339,9 +339,9 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
@ -352,11 +352,11 @@ select @@optimizer_search_depth;
|
|||||||
62
|
62
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -364,11 +364,11 @@ Variable_name Value
|
|||||||
Last_query_cost 821.837037
|
Last_query_cost 821.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -376,11 +376,11 @@ Variable_name Value
|
|||||||
Last_query_cost 821.837037
|
Last_query_cost 821.837037
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -388,11 +388,11 @@ Variable_name Value
|
|||||||
Last_query_cost 289.418727
|
Last_query_cost 289.418727
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -400,11 +400,11 @@ Variable_name Value
|
|||||||
Last_query_cost 289.418727
|
Last_query_cost 289.418727
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -412,11 +412,11 @@ Variable_name Value
|
|||||||
Last_query_cost 289.418727
|
Last_query_cost 289.418727
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -432,11 +432,11 @@ select @@optimizer_search_depth;
|
|||||||
0
|
0
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -444,11 +444,11 @@ Variable_name Value
|
|||||||
Last_query_cost 821.837037
|
Last_query_cost 821.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -456,11 +456,11 @@ Variable_name Value
|
|||||||
Last_query_cost 821.837037
|
Last_query_cost 821.837037
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -468,11 +468,11 @@ Variable_name Value
|
|||||||
Last_query_cost 794.837037
|
Last_query_cost 794.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -480,11 +480,11 @@ Variable_name Value
|
|||||||
Last_query_cost 794.837037
|
Last_query_cost 794.837037
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -492,11 +492,11 @@ Variable_name Value
|
|||||||
Last_query_cost 794.837037
|
Last_query_cost 794.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -508,11 +508,11 @@ select @@optimizer_search_depth;
|
|||||||
1
|
1
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -520,11 +520,11 @@ Variable_name Value
|
|||||||
Last_query_cost 821.837037
|
Last_query_cost 821.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -535,9 +535,9 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
@ -547,9 +547,9 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
@ -559,9 +559,9 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
@ -571,9 +571,9 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
@ -584,11 +584,11 @@ select @@optimizer_search_depth;
|
|||||||
62
|
62
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -596,11 +596,11 @@ Variable_name Value
|
|||||||
Last_query_cost 821.837037
|
Last_query_cost 821.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -608,11 +608,11 @@ Variable_name Value
|
|||||||
Last_query_cost 821.837037
|
Last_query_cost 821.837037
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -620,11 +620,11 @@ Variable_name Value
|
|||||||
Last_query_cost 794.837037
|
Last_query_cost 794.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -632,11 +632,11 @@ Variable_name Value
|
|||||||
Last_query_cost 794.837037
|
Last_query_cost 794.837037
|
||||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
@ -644,11 +644,11 @@ Variable_name Value
|
|||||||
Last_query_cost 794.837037
|
Last_query_cost 794.837037
|
||||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where; Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where; Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where
|
||||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
||||||
show status like 'Last_query_cost';
|
show status like 'Last_query_cost';
|
||||||
|
@ -536,11 +536,11 @@ a b
|
|||||||
1 1
|
1 1
|
||||||
explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b;
|
explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort; Using join cache
|
||||||
1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where
|
1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where
|
||||||
explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b ORDER BY NULL;
|
explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b ORDER BY NULL;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary; Using join cache
|
||||||
1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where
|
1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
create table t1 (a int, b int);
|
create table t1 (a int, b int);
|
||||||
|
@ -2266,7 +2266,7 @@ EXPLAIN SELECT 1 FROM t1 AS t1_outer1 JOIN t1 AS t1_outer2
|
|||||||
ON t1_outer1.a = (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2)
|
ON t1_outer1.a = (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2)
|
||||||
AND t1_outer1.b = t1_outer2.b;
|
AND t1_outer1.b = t1_outer2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1_outer1 ref a a 5 const 1 Using where; Using index
|
1 PRIMARY t1_outer1 ref a a 5 const 1 Using where; Using index; Using join cache
|
||||||
1 PRIMARY t1_outer2 index NULL a 10 NULL 15 Using where; Using index
|
1 PRIMARY t1_outer2 index NULL a 10 NULL 15 Using where; Using index
|
||||||
2 SUBQUERY t1 range NULL a 5 NULL 8 Using index for group-by
|
2 SUBQUERY t1 range NULL a 5 NULL 8 Using index for group-by
|
||||||
EXPLAIN SELECT (SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x
|
EXPLAIN SELECT (SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x
|
||||||
|
@ -21,8 +21,8 @@ basedir VALUE
|
|||||||
server_id VALUE
|
server_id VALUE
|
||||||
shutdown-delay VALUE
|
shutdown-delay VALUE
|
||||||
skip-stack-trace VALUE
|
skip-stack-trace VALUE
|
||||||
skip-innodb VALUE
|
loose-skip-innodb VALUE
|
||||||
skip-ndbcluster VALUE
|
loose-skip-ndbcluster VALUE
|
||||||
log-output VALUE
|
log-output VALUE
|
||||||
SHOW INSTANCE OPTIONS mysqld2;
|
SHOW INSTANCE OPTIONS mysqld2;
|
||||||
option_name value
|
option_name value
|
||||||
@ -40,8 +40,8 @@ basedir VALUE
|
|||||||
server_id VALUE
|
server_id VALUE
|
||||||
shutdown-delay VALUE
|
shutdown-delay VALUE
|
||||||
skip-stack-trace VALUE
|
skip-stack-trace VALUE
|
||||||
skip-innodb VALUE
|
loose-skip-innodb VALUE
|
||||||
skip-ndbcluster VALUE
|
loose-skip-ndbcluster VALUE
|
||||||
nonguarded VALUE
|
nonguarded VALUE
|
||||||
log-output VALUE
|
log-output VALUE
|
||||||
START INSTANCE mysqld2;
|
START INSTANCE mysqld2;
|
||||||
|
@ -270,7 +270,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
explain select * from t0,t1 where t0.key1 = 5 and
|
explain select * from t0,t1 where t0.key1 = 5 and
|
||||||
(t1.key1 = t0.key1 or t1.key8 = t0.key1);
|
(t1.key1 = t0.key1 or t1.key8 = t0.key1);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t0 ref i1 i1 4 const 1
|
1 SIMPLE t0 ref i1 i1 4 const 1 Using join cache
|
||||||
1 SIMPLE t1 index_merge i1,i8 i1,i8 4,4 NULL 2 Using union(i1,i8); Using where
|
1 SIMPLE t1 index_merge i1,i8 i1,i8 4,4 NULL 2 Using union(i1,i8); Using where
|
||||||
explain select * from t0,t1 where t0.key1 < 3 and
|
explain select * from t0,t1 where t0.key1 < 3 and
|
||||||
(t1.key1 = t0.key1 or t1.key8 = t0.key1);
|
(t1.key1 = t0.key1 or t1.key8 = t0.key1);
|
||||||
@ -347,7 +347,7 @@ from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
|
|||||||
where (A.key1 < 500000 or A.key2 < 3)
|
where (A.key1 < 500000 or A.key2 < 3)
|
||||||
and (B.key1 < 500000 or B.key2 < 3);
|
and (B.key1 < 500000 or B.key2 < 3);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1013 Using sort_union(i1,i2); Using where
|
1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1013 Using sort_union(i1,i2); Using where; Using join cache
|
||||||
1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1013 Using sort_union(i1,i2); Using where
|
1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1013 Using sort_union(i1,i2); Using where
|
||||||
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
|
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
|
||||||
from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
|
from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
|
||||||
@ -361,7 +361,7 @@ from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
|
|||||||
where (A.key1 = 1 or A.key2 = 1)
|
where (A.key1 = 1 or A.key2 = 1)
|
||||||
and (B.key1 = 1 or B.key2 = 1);
|
and (B.key1 = 1 or B.key2 = 1);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1020 Using union(i1,i2); Using where
|
1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1020 Using union(i1,i2); Using where; Using join cache
|
||||||
1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1020 Using union(i1,i2); Using where
|
1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1020 Using union(i1,i2); Using where
|
||||||
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
|
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
|
||||||
from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
|
from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
|
||||||
@ -376,7 +376,7 @@ from t0 as A, t0 as B
|
|||||||
where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
|
where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
|
||||||
and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1);
|
and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE A index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where
|
1 SIMPLE A index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where; Using join cache
|
||||||
1 SIMPLE B index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where
|
1 SIMPLE B index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where
|
||||||
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
|
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
|
||||||
from t0 as A, t0 as B
|
from t0 as A, t0 as B
|
||||||
|
@ -289,7 +289,7 @@ explain select a.ROUTINE_NAME from information_schema.ROUTINES a,
|
|||||||
information_schema.SCHEMATA b where
|
information_schema.SCHEMATA b where
|
||||||
a.ROUTINE_SCHEMA = b.SCHEMA_NAME;
|
a.ROUTINE_SCHEMA = b.SCHEMA_NAME;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE # ALL NULL NULL NULL NULL 2
|
1 SIMPLE # ALL NULL NULL NULL NULL 2 Using join cache
|
||||||
1 SIMPLE # ALL NULL NULL NULL NULL 2 Using where
|
1 SIMPLE # ALL NULL NULL NULL NULL 2 Using where
|
||||||
select a.ROUTINE_NAME, b.name from information_schema.ROUTINES a,
|
select a.ROUTINE_NAME, b.name from information_schema.ROUTINES a,
|
||||||
mysql.proc b where a.ROUTINE_NAME = convert(b.name using utf8) order by 1;
|
mysql.proc b where a.ROUTINE_NAME = convert(b.name using utf8) order by 1;
|
||||||
|
@ -402,7 +402,7 @@ Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
|
|||||||
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
|
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
|
||||||
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
|
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort; Using join cache
|
||||||
1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
|
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
|
||||||
|
@ -163,7 +163,7 @@ min(7)
|
|||||||
7
|
7
|
||||||
explain select min(7) from t2i join t1i;
|
explain select min(7) from t2i join t1i;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2i ALL NULL NULL NULL NULL 1
|
1 SIMPLE t2i ALL NULL NULL NULL NULL 1 Using join cache
|
||||||
1 SIMPLE t1i ALL NULL NULL NULL NULL 1
|
1 SIMPLE t1i ALL NULL NULL NULL NULL 1
|
||||||
select min(7) from t2i join t1i;
|
select min(7) from t2i join t1i;
|
||||||
min(7)
|
min(7)
|
||||||
@ -179,7 +179,7 @@ max(7)
|
|||||||
7
|
7
|
||||||
explain select max(7) from t2i join t1i;
|
explain select max(7) from t2i join t1i;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2i ALL NULL NULL NULL NULL 1
|
1 SIMPLE t2i ALL NULL NULL NULL NULL 1 Using join cache
|
||||||
1 SIMPLE t1i ALL NULL NULL NULL NULL 1
|
1 SIMPLE t1i ALL NULL NULL NULL NULL 1
|
||||||
select max(7) from t2i join t1i;
|
select max(7) from t2i join t1i;
|
||||||
max(7)
|
max(7)
|
||||||
@ -548,6 +548,58 @@ id c counter
|
|||||||
3 b 2
|
3 b 2
|
||||||
4 a 2
|
4 a 2
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
CREATE TABLE t1(
|
||||||
|
id int AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
stat_id int NOT NULL,
|
||||||
|
acct_id int DEFAULT NULL,
|
||||||
|
INDEX idx1 (stat_id, acct_id),
|
||||||
|
INDEX idx2 (acct_id)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
CREATE TABLE t2(
|
||||||
|
id int AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
stat_id int NOT NULL,
|
||||||
|
acct_id int DEFAULT NULL,
|
||||||
|
INDEX idx1 (stat_id, acct_id),
|
||||||
|
INDEX idx2 (acct_id)
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) VALUES
|
||||||
|
(1,759), (2,831), (3,785), (4,854), (1,921),
|
||||||
|
(1,553), (2,589), (3,743), (2,827), (2,545),
|
||||||
|
(4,779), (4,783), (1,597), (1,785), (4,832),
|
||||||
|
(1,741), (1,833), (3,788), (2,973), (1,907);
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1;
|
||||||
|
UPDATE t1 SET acct_id=785
|
||||||
|
WHERE MOD(stat_id,2)=0 AND MOD(id,stat_id)=MOD(acct_id,stat_id);
|
||||||
|
OPTIMIZE TABLE t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 optimize status OK
|
||||||
|
SELECT COUNT(*) FROM t1;
|
||||||
|
COUNT(*)
|
||||||
|
40960
|
||||||
|
SELECT COUNT(*) FROM t1 WHERE acct_id=785;
|
||||||
|
COUNT(*)
|
||||||
|
8702
|
||||||
|
EXPLAIN SELECT COUNT(*) FROM t1 WHERE stat_id IN (1,3) AND acct_id=785;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 range idx1,idx2 idx1 9 NULL 2 Using where; Using index
|
||||||
|
INSERT INTO t2 SELECT * FROM t1;
|
||||||
|
OPTIMIZE TABLE t2;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t2 optimize status OK
|
||||||
|
EXPLAIN SELECT COUNT(*) FROM t2 WHERE stat_id IN (1,3) AND acct_id=785;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 range idx1,idx2 idx1 9 NULL 2 Using where; Using index
|
||||||
|
DROP TABLE t1,t2;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
CREATE TABLE t1 (a int, b int);
|
CREATE TABLE t1 (a int, b int);
|
||||||
insert into t1 values (1,1),(1,2);
|
insert into t1 values (1,1),(1,2);
|
||||||
@ -733,4 +785,15 @@ k a c
|
|||||||
11 15 1
|
11 15 1
|
||||||
12 20 1
|
12 20 1
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
drop table if exists t1, t2;
|
||||||
|
create table t1 (i int);
|
||||||
|
alter table t1 modify i int default 1;
|
||||||
|
alter table t1 modify i int default 2, rename t2;
|
||||||
|
lock table t2 write;
|
||||||
|
alter table t2 modify i int default 3;
|
||||||
|
unlock tables;
|
||||||
|
lock table t2 write;
|
||||||
|
alter table t2 modify i int default 4, rename t1;
|
||||||
|
unlock tables;
|
||||||
|
drop table t1;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
@ -384,3 +384,119 @@ id data
|
|||||||
8 140
|
8 140
|
||||||
9 150
|
9 150
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
DROP FUNCTION IF EXISTS f1;
|
||||||
|
DROP FUNCTION IF EXISTS f2;
|
||||||
|
CREATE TABLE t1 (i INT);
|
||||||
|
CREATE FUNCTION f1() RETURNS INT
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
RETURN 1;
|
||||||
|
END |
|
||||||
|
CREATE FUNCTION f2() RETURNS INT
|
||||||
|
BEGIN
|
||||||
|
INSERT DELAYED INTO t1 VALUES (2);
|
||||||
|
RETURN 1;
|
||||||
|
END |
|
||||||
|
SELECT f1();
|
||||||
|
f1()
|
||||||
|
1
|
||||||
|
SELECT f2();
|
||||||
|
f2()
|
||||||
|
1
|
||||||
|
INSERT INTO t1 VALUES (3);
|
||||||
|
INSERT DELAYED INTO t1 VALUES (4);
|
||||||
|
INSERT INTO t1 VALUES (f1());
|
||||||
|
ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
|
||||||
|
INSERT DELAYED INTO t1 VALUES (f1());
|
||||||
|
ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
|
||||||
|
INSERT INTO t1 VALUES (f2());
|
||||||
|
ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
|
||||||
|
INSERT DELAYED INTO t1 VALUES (f2());
|
||||||
|
ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
|
||||||
|
CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
|
||||||
|
INSERT INTO t1 VALUES (NEW.i);
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
|
||||||
|
INSERT DELAYED INTO t1 VALUES (1);
|
||||||
|
ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
|
||||||
|
SELECT * FROM t1;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
DROP FUNCTION f2;
|
||||||
|
DROP FUNCTION f1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP TABLE IF EXISTS t1, t2;
|
||||||
|
CREATE TABLE t1 (i INT);
|
||||||
|
CREATE TABLE t2 (i INT);
|
||||||
|
CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
|
||||||
|
INSERT DELAYED INTO t2 VALUES (NEW.i);
|
||||||
|
CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 FOR EACH ROW
|
||||||
|
INSERT DELAYED INTO t2 VALUES (NEW.i);
|
||||||
|
CREATE TRIGGER t1_bd BEFORE DELETE ON t1 FOR EACH ROW
|
||||||
|
INSERT DELAYED INTO t2 VALUES (OLD.i);
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
INSERT DELAYED INTO t1 VALUES (2);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
UPDATE t1 SET i = 3 WHERE i = 1;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
i
|
||||||
|
3
|
||||||
|
2
|
||||||
|
DELETE FROM t1 WHERE i = 3;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
i
|
||||||
|
2
|
||||||
|
SELECT * FROM t2;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
3
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
DROP TABLE IF EXISTS t1, t2;
|
||||||
|
CREATE TABLE t1 (i INT);
|
||||||
|
CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW
|
||||||
|
SET @a= NEW.i;
|
||||||
|
SET @a= 0;
|
||||||
|
INSERT DELAYED INTO t1 VALUES (1);
|
||||||
|
SELECT @a;
|
||||||
|
@a
|
||||||
|
1
|
||||||
|
INSERT DELAYED INTO t1 VALUES (2);
|
||||||
|
SELECT @a;
|
||||||
|
@a
|
||||||
|
2
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (i INT);
|
||||||
|
CREATE TABLE t2 (i INT);
|
||||||
|
CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW
|
||||||
|
INSERT INTO t2 VALUES (NEW.i);
|
||||||
|
CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW
|
||||||
|
INSERT DELAYED INTO t2 VALUES (NEW.i);
|
||||||
|
CREATE TRIGGER t1_ad AFTER DELETE ON t1 FOR EACH ROW
|
||||||
|
INSERT DELAYED INTO t2 VALUES (OLD.i);
|
||||||
|
INSERT DELAYED INTO t1 VALUES (1);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
UPDATE t1 SET i = 2 WHERE i = 1;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
i
|
||||||
|
2
|
||||||
|
DELETE FROM t1 WHERE i = 2;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
i
|
||||||
|
SELECT * FROM t2;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
2
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
End of 5.0 tests.
|
||||||
|
@ -336,3 +336,60 @@ id f1
|
|||||||
0 test1
|
0 test1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET SQL_MODE='';
|
SET SQL_MODE='';
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
c1 CHAR(1) UNIQUE KEY,
|
||||||
|
cnt INT DEFAULT 1
|
||||||
|
);
|
||||||
|
INSERT INTO t1 (c1) VALUES ('A'), ('B'), ('C');
|
||||||
|
SELECT * FROM t1;
|
||||||
|
id c1 cnt
|
||||||
|
1 A 1
|
||||||
|
2 B 1
|
||||||
|
3 C 1
|
||||||
|
INSERT INTO t1 (c1) VALUES ('A'), ('X'), ('Y'), ('Z')
|
||||||
|
ON DUPLICATE KEY UPDATE cnt=cnt+1;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
id c1 cnt
|
||||||
|
1 A 2
|
||||||
|
2 B 1
|
||||||
|
3 C 1
|
||||||
|
4 X 1
|
||||||
|
5 Y 1
|
||||||
|
6 Z 1
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
c1 INT NOT NULL,
|
||||||
|
cnt INT DEFAULT 1
|
||||||
|
);
|
||||||
|
INSERT INTO t1 (id,c1) VALUES (1,10);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
id c1 cnt
|
||||||
|
1 10 1
|
||||||
|
CREATE TABLE t2 (id INT, c1 INT);
|
||||||
|
INSERT INTO t2 VALUES (1,NULL), (2,2);
|
||||||
|
INSERT INTO t1 (id,c1) SELECT 1,NULL
|
||||||
|
ON DUPLICATE KEY UPDATE c1=NULL;
|
||||||
|
ERROR 23000: Column 'c1' cannot be null
|
||||||
|
SELECT * FROM t1;
|
||||||
|
id c1 cnt
|
||||||
|
1 10 1
|
||||||
|
INSERT IGNORE INTO t1 (id,c1) SELECT 1,NULL
|
||||||
|
ON DUPLICATE KEY UPDATE c1=NULL, cnt=cnt+1;
|
||||||
|
Warnings:
|
||||||
|
Warning 1048 Column 'c1' cannot be null
|
||||||
|
Error 1048 Column 'c1' cannot be null
|
||||||
|
SELECT * FROM t1;
|
||||||
|
id c1 cnt
|
||||||
|
1 0 2
|
||||||
|
INSERT IGNORE INTO t1 (id,c1) SELECT * FROM t2
|
||||||
|
ON DUPLICATE KEY UPDATE c1=NULL, cnt=cnt+1;
|
||||||
|
Warnings:
|
||||||
|
Warning 1048 Column 'c1' cannot be null
|
||||||
|
Error 1048 Column 'c1' cannot be null
|
||||||
|
SELECT * FROM t1;
|
||||||
|
id c1 cnt
|
||||||
|
1 0 3
|
||||||
|
2 2 1
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -391,6 +391,56 @@ i i i
|
|||||||
2 NULL 4
|
2 NULL 4
|
||||||
2 2 2
|
2 2 2
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
CREATE TABLE t1 (a int, b int default 0, c int default 1);
|
||||||
|
INSERT INTO t1 (a) VALUES (1),(2),(3),(4),(5),(6),(7),(8);
|
||||||
|
INSERT INTO t1 (a) SELECT a + 8 FROM t1;
|
||||||
|
INSERT INTO t1 (a) SELECT a + 16 FROM t1;
|
||||||
|
CREATE TABLE t2 (a int, d int, e int default 0);
|
||||||
|
INSERT INTO t2 (a, d) VALUES (1,1),(2,2),(3,3),(4,4);
|
||||||
|
INSERT INTO t2 (a, d) SELECT a+4, a+4 FROM t2;
|
||||||
|
INSERT INTO t2 (a, d) SELECT a+8, a+8 FROM t2;
|
||||||
|
EXPLAIN
|
||||||
|
SELECT STRAIGHT_JOIN t2.e FROM t1,t2 WHERE t2.d=1 AND t1.b=t2.e
|
||||||
|
ORDER BY t1.b, t1.c;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 32 Using temporary; Using filesort; Using join cache
|
||||||
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 16 Using where
|
||||||
|
SELECT STRAIGHT_JOIN t2.e FROM t1,t2 WHERE t2.d=1 AND t1.b=t2.e
|
||||||
|
ORDER BY t1.b, t1.c;
|
||||||
|
e
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
DROP TABLE t1,t2;
|
||||||
create table t1 (c int, b int);
|
create table t1 (c int, b int);
|
||||||
create table t2 (a int, b int);
|
create table t2 (a int, b int);
|
||||||
create table t3 (b int, c int);
|
create table t3 (b int, c int);
|
||||||
|
@ -228,7 +228,7 @@ LEFT JOIN
|
|||||||
t8
|
t8
|
||||||
ON t7.b=t8.b AND t6.b < 10;
|
ON t7.b=t8.b AND t6.b < 10;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using join cache
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00
|
||||||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -543,7 +543,7 @@ WHERE t0.a=1 AND
|
|||||||
t0.b=t1.b AND
|
t0.b=t1.b AND
|
||||||
(t2.a >= 4 OR t2.c IS NULL);
|
(t2.a >= 4 OR t2.c IS NULL);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join cache
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00
|
||||||
@ -638,7 +638,7 @@ t0.b=t1.b AND
|
|||||||
(t8.b=t9.b OR t8.c IS NULL) AND
|
(t8.b=t9.b OR t8.c IS NULL) AND
|
||||||
(t9.a=1);
|
(t9.a=1);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join cache
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
@ -646,7 +646,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join cache
|
||||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
Warnings:
|
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`.`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`)))
|
||||||
@ -835,7 +835,7 @@ t2
|
|||||||
ON t3.a=1 AND t2.b=t4.b
|
ON t3.a=1 AND t2.b=t4.b
|
||||||
WHERE t1.a <= 2;
|
WHERE t1.a <= 2;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00
|
||||||
@ -849,7 +849,7 @@ LEFT JOIN
|
|||||||
(t1,t2)
|
(t1,t2)
|
||||||
ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
|
ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using join cache
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2 100.00
|
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
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
|
||||||
@ -905,7 +905,7 @@ t0.b=t1.b AND
|
|||||||
(t8.b=t9.b OR t8.c IS NULL) AND
|
(t8.b=t9.b OR t8.c IS NULL) AND
|
||||||
(t9.a=1);
|
(t9.a=1);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join cache
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
@ -913,7 +913,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join cache
|
||||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
Warnings:
|
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`.`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`)))
|
||||||
@ -955,7 +955,7 @@ t0.b=t1.b AND
|
|||||||
(t8.b=t9.b OR t8.c IS NULL) AND
|
(t8.b=t9.b OR t8.c IS NULL) AND
|
||||||
(t9.a=1);
|
(t9.a=1);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join cache
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
@ -963,7 +963,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join cache
|
||||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
Warnings:
|
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`.`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`)))
|
||||||
@ -1004,7 +1004,7 @@ t0.b=t1.b AND
|
|||||||
(t8.b=t9.b OR t8.c IS NULL) AND
|
(t8.b=t9.b OR t8.c IS NULL) AND
|
||||||
(t9.a=1);
|
(t9.a=1);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join cache
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
@ -1012,7 +1012,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where
|
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join cache
|
||||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
Warnings:
|
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`.`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`)))
|
||||||
@ -1062,7 +1062,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where
|
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join cache
|
||||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
Warnings:
|
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`.`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`)))
|
||||||
|
@ -1214,3 +1214,28 @@ SELECT * FROM t1 LEFT JOIN t2 USING(f1) WHERE f1='Bla';
|
|||||||
f1 f2 f3
|
f1 f2 f3
|
||||||
bla blah sheep
|
bla blah sheep
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
CREATE TABLE t1 (id int PRIMARY KEY, a varchar(8));
|
||||||
|
CREATE TABLE t2 (id int NOT NULL, b int NOT NULL, INDEX idx(id));
|
||||||
|
INSERT INTO t1 VALUES
|
||||||
|
(1,'aaaaaaa'), (5,'eeeeeee'), (4,'ddddddd'), (2,'bbbbbbb'), (3,'ccccccc');
|
||||||
|
INSERT INTO t2 VALUES
|
||||||
|
(3,10), (2,20), (5,30), (3,20), (5,10), (3,40), (3,30), (2,10), (2,40);
|
||||||
|
EXPLAIN
|
||||||
|
SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
||||||
|
1 SIMPLE t2 ref idx idx 4 test.t1.id 2 Using where; Not exists
|
||||||
|
flush status;
|
||||||
|
SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
|
||||||
|
id a
|
||||||
|
1 aaaaaaa
|
||||||
|
4 ddddddd
|
||||||
|
show status like 'Handler_read%';
|
||||||
|
Variable_name Value
|
||||||
|
Handler_read_first 0
|
||||||
|
Handler_read_key 5
|
||||||
|
Handler_read_next 0
|
||||||
|
Handler_read_prev 0
|
||||||
|
Handler_read_rnd 0
|
||||||
|
Handler_read_rnd_next 6
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
@ -35,7 +35,7 @@ D E a a
|
|||||||
a a a a
|
a a a a
|
||||||
explain select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B;
|
explain select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL a NULL NULL NULL 5
|
1 SIMPLE t1 ALL a NULL NULL NULL 5 Using join cache
|
||||||
1 SIMPLE t2 ALL b NULL NULL NULL 5 Using where
|
1 SIMPLE t2 ALL b NULL NULL NULL 5 Using where
|
||||||
select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B order by binary t1.a,t2.a;
|
select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B order by binary t1.a,t2.a;
|
||||||
a b a b
|
a b a b
|
||||||
|
@ -174,6 +174,25 @@ f2
|
|||||||
2
|
2
|
||||||
SET @@SQL_MODE=@OLD_SQL_MODE;
|
SET @@SQL_MODE=@OLD_SQL_MODE;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
create table t1(f1 int, f2 timestamp not null default current_timestamp);
|
||||||
|
create table t2(f1 int);
|
||||||
|
insert into t2 values(1),(2);
|
||||||
|
Warnings:
|
||||||
|
Warning 1261 Row 1 doesn't contain data for all columns
|
||||||
|
Warning 1261 Row 2 doesn't contain data for all columns
|
||||||
|
select f1 from t1 where f2 <> '0000-00-00 00:00:00' order by f1;
|
||||||
|
f1
|
||||||
|
1
|
||||||
|
2
|
||||||
|
delete from t1;
|
||||||
|
Warnings:
|
||||||
|
Warning 1261 Row 1 doesn't contain data for all columns
|
||||||
|
Warning 1261 Row 2 doesn't contain data for all columns
|
||||||
|
select f1 from t1 where f2 <> '0000-00-00 00:00:00' order by f1;
|
||||||
|
f1
|
||||||
|
1
|
||||||
|
2
|
||||||
|
drop table t1,t2;
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a int);
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
SET NAMES latin1;
|
SET NAMES latin1;
|
||||||
|
@ -169,6 +169,8 @@ lock tables mysql.slow_log READ LOCAL, mysql.general_log READ LOCAL;
|
|||||||
unlock tables;
|
unlock tables;
|
||||||
set global general_log='OFF';
|
set global general_log='OFF';
|
||||||
set global slow_query_log='OFF';
|
set global slow_query_log='OFF';
|
||||||
|
set @save_storage_engine= @@session.storage_engine;
|
||||||
|
set storage_engine= MEMORY;
|
||||||
alter table mysql.slow_log engine=ndb;
|
alter table mysql.slow_log engine=ndb;
|
||||||
ERROR HY000: This storage engine cannot be used for log tables"
|
ERROR HY000: This storage engine cannot be used for log tables"
|
||||||
alter table mysql.slow_log engine=innodb;
|
alter table mysql.slow_log engine=innodb;
|
||||||
@ -177,6 +179,7 @@ alter table mysql.slow_log engine=archive;
|
|||||||
ERROR HY000: This storage engine cannot be used for log tables"
|
ERROR HY000: This storage engine cannot be used for log tables"
|
||||||
alter table mysql.slow_log engine=blackhole;
|
alter table mysql.slow_log engine=blackhole;
|
||||||
ERROR HY000: This storage engine cannot be used for log tables"
|
ERROR HY000: This storage engine cannot be used for log tables"
|
||||||
|
set storage_engine= @save_storage_engine;
|
||||||
drop table mysql.slow_log;
|
drop table mysql.slow_log;
|
||||||
drop table mysql.general_log;
|
drop table mysql.general_log;
|
||||||
drop table mysql.general_log;
|
drop table mysql.general_log;
|
||||||
|
@ -345,11 +345,11 @@ t1 1 c_2 1 c A 5 NULL NULL YES BTREE
|
|||||||
t1 1 c_2 2 a A 5 NULL NULL BTREE
|
t1 1 c_2 2 a A 5 NULL NULL BTREE
|
||||||
explain select * from t1,t2 where t1.a=t2.a;
|
explain select * from t1,t2 where t1.a=t2.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL a NULL NULL NULL 2
|
1 SIMPLE t2 ALL a NULL NULL NULL 2 Using join cache
|
||||||
1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where
|
1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where
|
||||||
explain select * from t1,t2 force index(a) where t1.a=t2.a;
|
explain select * from t1,t2 force index(a) where t1.a=t2.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL a NULL NULL NULL 2
|
1 SIMPLE t2 ALL a NULL NULL NULL 2 Using join cache
|
||||||
1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where
|
1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where
|
||||||
explain select * from t1 force index(a),t2 force index(a) where t1.a=t2.a;
|
explain select * from t1 force index(a),t2 force index(a) where t1.a=t2.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
@ -361,7 +361,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ref b b 5 test.t2.b 1 Using where
|
1 SIMPLE t1 ref b b 5 test.t2.b 1 Using where
|
||||||
explain select * from t1,t2 force index(c) where t1.a=t2.a;
|
explain select * from t1,t2 force index(c) where t1.a=t2.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using join cache
|
||||||
1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where
|
1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where
|
||||||
explain select * from t1 where a=0 or a=2;
|
explain select * from t1 where a=0 or a=2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
@ -382,7 +382,7 @@ create table t1 (a int primary key) engine=ndb;
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
a
|
a
|
||||||
select * from t1;
|
select * from t1;
|
||||||
ERROR HY000: Can't lock file (errno: 4009)
|
ERROR HY000: Can't lock file (errno: 157)
|
||||||
use test;
|
use test;
|
||||||
drop database test_only_ndb_tables;
|
drop database test_only_ndb_tables;
|
||||||
CREATE TABLE t9 (
|
CREATE TABLE t9 (
|
||||||
|
@ -667,6 +667,12 @@ counter datavalue
|
|||||||
31 newval
|
31 newval
|
||||||
32 newval
|
32 newval
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (a int primary key auto_increment) engine = ndb;
|
||||||
|
insert into t1() values (),(),(),(),(),(),(),(),(),(),(),();
|
||||||
|
insert into t1(a) values (20),(28);
|
||||||
|
insert into t1() values (),(),(),(),(),(),(),(),(),(),(),();
|
||||||
|
insert into t1() values (21), (22);
|
||||||
|
drop table t1;
|
||||||
CREATE TABLE t1 ( b INT ) PACK_KEYS = 0 ENGINE = ndb;
|
CREATE TABLE t1 ( b INT ) PACK_KEYS = 0 ENGINE = ndb;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
b
|
b
|
||||||
|
@ -1730,7 +1730,7 @@ pk1 attr1 attr2 attr3 attr4
|
|||||||
explain
|
explain
|
||||||
select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
|
select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL # Using where with pushed condition; Using temporary; Using filesort
|
1 SIMPLE t2 ALL NULL NULL NULL NULL # Using where with pushed condition; Using temporary; Using filesort; Using join cache
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL # Using where with pushed condition
|
1 SIMPLE t3 ALL NULL NULL NULL NULL # Using where with pushed condition
|
||||||
select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
|
select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
|
||||||
pk1 attr1 attr2 attr3 pk1 attr1 attr2 attr3 attr4
|
pk1 attr1 attr2 attr3 pk1 attr1 attr2 attr3 attr4
|
||||||
@ -1746,7 +1746,7 @@ pk1 attr1 attr2 attr3 attr4
|
|||||||
explain
|
explain
|
||||||
select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
|
select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 range attr1 attr1 4 NULL # Using where with pushed condition; Using temporary; Using filesort
|
1 SIMPLE t4 range attr1 attr1 4 NULL # Using where with pushed condition; Using temporary; Using filesort; Using join cache
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL # Using where
|
1 SIMPLE t3 ALL NULL NULL NULL NULL # Using where
|
||||||
select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
|
select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
|
||||||
pk1 attr1 attr2 attr3 attr4 pk1 attr1 attr2 attr3 attr4
|
pk1 attr1 attr2 attr3 attr4 pk1 attr1 attr2 attr3 attr4
|
||||||
|
@ -402,7 +402,7 @@ Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
|
|||||||
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
|
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
|
||||||
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
|
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort; Using join cache
|
||||||
1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
|
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
|
||||||
@ -952,7 +952,7 @@ Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
|
|||||||
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
|
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
|
||||||
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
|
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort; Using join cache
|
||||||
1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
|
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
|
||||||
|
@ -649,3 +649,11 @@ pk a
|
|||||||
6 NULL
|
6 NULL
|
||||||
7 4
|
7 4
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
create table t1(a int primary key, b int, unique key(b)) engine=ndb;
|
||||||
|
insert ignore into t1 values (1,0), (2,0), (2,null), (3,null);
|
||||||
|
select * from t1 order by a;
|
||||||
|
a b
|
||||||
|
1 0
|
||||||
|
2 NULL
|
||||||
|
3 NULL
|
||||||
|
drop table t1;
|
||||||
|
@ -37,3 +37,29 @@ ROW_FORMAT=DYNAMIC
|
|||||||
ENGINE=NDB;
|
ENGINE=NDB;
|
||||||
ForceVarPart: 1
|
ForceVarPart: 1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
create table t1 (a int auto_increment primary key, b varchar(1000)) engine = ndb;
|
||||||
|
insert into t1(b) values ('0123456789');
|
||||||
|
insert into t1(b) select b from t1;
|
||||||
|
insert into t1(b) select b from t1;
|
||||||
|
insert into t1(b) select b from t1;
|
||||||
|
insert into t1(b) select b from t1;
|
||||||
|
insert into t1(b) select b from t1;
|
||||||
|
insert into t1(b) select b from t1;
|
||||||
|
insert into t1(b) select b from t1;
|
||||||
|
insert into t1(b) select b from t1;
|
||||||
|
insert into t1(b) select b from t1;
|
||||||
|
insert into t1(b) select b from t1;
|
||||||
|
select count(*) from t1;
|
||||||
|
count(*)
|
||||||
|
1024
|
||||||
|
begin;
|
||||||
|
update t1 set b = concat(b,b);
|
||||||
|
update t1 set b = concat(b,b);
|
||||||
|
update t1 set b = concat(b,b);
|
||||||
|
update t1 set b = concat(b,b);
|
||||||
|
update t1 set b = concat(b,b);
|
||||||
|
rollback;
|
||||||
|
select count(*),b from t1 group by b;
|
||||||
|
count(*) b
|
||||||
|
1024 0123456789
|
||||||
|
drop table t1;
|
||||||
|
Binary file not shown.
@ -1225,4 +1225,14 @@ t2 CREATE TABLE `t2` (
|
|||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (i) (PARTITION p01 VALUES LESS THAN (1000) ENGINE = MyISAM) */
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (i) (PARTITION p01 VALUES LESS THAN (1000) ENGINE = MyISAM) */
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
set @@sql_mode=@org_mode;
|
set @@sql_mode=@org_mode;
|
||||||
|
create table t1 (c1 varchar(255),c2 tinyint,primary key(c1))
|
||||||
|
partition by key (c1) partitions 10 ;
|
||||||
|
insert into t1 values ('aaa','1') on duplicate key update c2 = c2 + 1;
|
||||||
|
insert into t1 values ('aaa','1') on duplicate key update c2 = c2 + 1;
|
||||||
|
select * from t1;
|
||||||
|
c1 c2
|
||||||
|
aaa 2
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (s1 bigint) partition by list (s1) (partition p1 values in (-9223372036854775808));
|
||||||
|
drop table t1;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
@ -55,6 +55,7 @@ engine = x
|
|||||||
partition by key (a);
|
partition by key (a);
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1286 Unknown table engine 'x'
|
Warning 1286 Unknown table engine 'x'
|
||||||
|
Warning 1266 Using storage engine MyISAM for table 't1'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
|
@ -26,11 +26,11 @@ ERROR HY000: Unknown prepared statement handler (no_such_statement) given to DEA
|
|||||||
execute stmt1;
|
execute stmt1;
|
||||||
ERROR HY000: Incorrect arguments to EXECUTE
|
ERROR HY000: Incorrect arguments to EXECUTE
|
||||||
prepare stmt2 from 'prepare nested_stmt from "select 1"';
|
prepare stmt2 from 'prepare nested_stmt from "select 1"';
|
||||||
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 '"select 1"' at line 1
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt2 from 'execute stmt1';
|
prepare stmt2 from 'execute stmt1';
|
||||||
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 'stmt1' at line 1
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt2 from 'deallocate prepare z';
|
prepare stmt2 from 'deallocate prepare z';
|
||||||
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 'z' at line 1
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt3 from 'insert into t1 values (?,?)';
|
prepare stmt3 from 'insert into t1 values (?,?)';
|
||||||
set @arg1=5, @arg2='five';
|
set @arg1=5, @arg2='five';
|
||||||
execute stmt3 using @arg1, @arg2;
|
execute stmt3 using @arg1, @arg2;
|
||||||
|
@ -303,10 +303,9 @@ prepare stmt4 from ' show variables like ''sql_mode'' ';
|
|||||||
execute stmt4;
|
execute stmt4;
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
sql_mode
|
sql_mode
|
||||||
prepare stmt4 from ' show engine bdb logs ';
|
prepare stmt4 from ' show engine myisam logs ';
|
||||||
ERROR 42000: Unknown table engine 'bdb'
|
execute stmt4;
|
||||||
prepare stmt4 from ' show engine foo logs ';
|
Type Name Status
|
||||||
ERROR 42000: Unknown table engine 'foo'
|
|
||||||
prepare stmt4 from ' show grants for user ';
|
prepare stmt4 from ' show grants for user ';
|
||||||
prepare stmt4 from ' show create table t2 ';
|
prepare stmt4 from ' show create table t2 ';
|
||||||
prepare stmt4 from ' show master status ';
|
prepare stmt4 from ' show master status ';
|
||||||
@ -374,11 +373,11 @@ drop table t5 ;
|
|||||||
deallocate prepare stmt_do ;
|
deallocate prepare stmt_do ;
|
||||||
deallocate prepare stmt_set ;
|
deallocate prepare stmt_set ;
|
||||||
prepare stmt1 from ' prepare stmt2 from '' select 1 '' ' ;
|
prepare stmt1 from ' prepare stmt2 from '' select 1 '' ' ;
|
||||||
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 '' select 1 '' at line 1
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt1 from ' execute stmt2 ' ;
|
prepare stmt1 from ' execute stmt2 ' ;
|
||||||
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 'stmt2' at line 1
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt1 from ' deallocate prepare never_prepared ' ;
|
prepare stmt1 from ' deallocate prepare never_prepared ' ;
|
||||||
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 'never_prepared' at line 1
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt4 from ' use test ' ;
|
prepare stmt4 from ' use test ' ;
|
||||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt3 from ' create database mysqltest ';
|
prepare stmt3 from ' create database mysqltest ';
|
||||||
|
@ -1343,3 +1343,97 @@ c1
|
|||||||
100
|
100
|
||||||
drop table t1;
|
drop table t1;
|
||||||
set global query_cache_size=0;
|
set global query_cache_size=0;
|
||||||
|
create table t1 (a int);
|
||||||
|
insert into t1 values (1),(2),(3);
|
||||||
|
set GLOBAL query_cache_type=1;
|
||||||
|
set GLOBAL query_cache_limit=10000;
|
||||||
|
set GLOBAL query_cache_min_res_unit=0;
|
||||||
|
set GLOBAL query_cache_size= 100000;
|
||||||
|
reset query cache;
|
||||||
|
set LOCAL default_week_format = 0;
|
||||||
|
select week('2007-01-04');
|
||||||
|
week('2007-01-04')
|
||||||
|
0
|
||||||
|
select week('2007-01-04') from t1;
|
||||||
|
week('2007-01-04')
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
select extract(WEEK FROM '2007-01-04') from t1;
|
||||||
|
extract(WEEK FROM '2007-01-04')
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
set LOCAL default_week_format = 2;
|
||||||
|
select week('2007-01-04');
|
||||||
|
week('2007-01-04')
|
||||||
|
53
|
||||||
|
select week('2007-01-04') from t1;
|
||||||
|
week('2007-01-04')
|
||||||
|
53
|
||||||
|
53
|
||||||
|
53
|
||||||
|
select extract(WEEK FROM '2007-01-04') from t1;
|
||||||
|
extract(WEEK FROM '2007-01-04')
|
||||||
|
53
|
||||||
|
53
|
||||||
|
53
|
||||||
|
reset query cache;
|
||||||
|
set LOCAL div_precision_increment=2;
|
||||||
|
select 1/7;
|
||||||
|
1/7
|
||||||
|
0.14
|
||||||
|
select 1/7 from t1;
|
||||||
|
1/7
|
||||||
|
0.14
|
||||||
|
0.14
|
||||||
|
0.14
|
||||||
|
set LOCAL div_precision_increment=4;
|
||||||
|
select 1/7;
|
||||||
|
1/7
|
||||||
|
0.1429
|
||||||
|
select 1/7 from t1;
|
||||||
|
1/7
|
||||||
|
0.1429
|
||||||
|
0.1429
|
||||||
|
0.1429
|
||||||
|
drop table t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b));
|
||||||
|
INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'),
|
||||||
|
('Full-text indexes', 'are called collections'),
|
||||||
|
('Only MyISAM tables','support collections'),
|
||||||
|
('Function MATCH ... AGAINST()','is used to do a search'),
|
||||||
|
('Full-text search in MySQL', 'implements vector space model');
|
||||||
|
set GLOBAL ft_boolean_syntax='+ -><()~*:""&|';
|
||||||
|
select *, MATCH(a,b) AGAINST("+called +collections" IN BOOLEAN MODE) as x from t1;
|
||||||
|
a b x
|
||||||
|
MySQL has now support for full-text search 0
|
||||||
|
Full-text indexes are called collections 1
|
||||||
|
Only MyISAM tables support collections 0
|
||||||
|
Function MATCH ... AGAINST() is used to do a search 0
|
||||||
|
Full-text search in MySQL implements vector space model 0
|
||||||
|
set GLOBAL ft_boolean_syntax='- +><()~*:""&|';
|
||||||
|
select *, MATCH(a,b) AGAINST("+called +collections" IN BOOLEAN MODE) as x from t1;
|
||||||
|
a b x
|
||||||
|
MySQL has now support for full-text search 0
|
||||||
|
Full-text indexes are called collections 0
|
||||||
|
Only MyISAM tables support collections 0
|
||||||
|
Function MATCH ... AGAINST() is used to do a search 0
|
||||||
|
Full-text search in MySQL implements vector space model 0
|
||||||
|
create function change_global() returns integer deterministic
|
||||||
|
begin
|
||||||
|
set global ft_boolean_syntax='+ -><()~*:""&|';
|
||||||
|
return 1;
|
||||||
|
end|
|
||||||
|
select *, change_global() from t1;
|
||||||
|
a b change_global()
|
||||||
|
MySQL has now support for full-text search 1
|
||||||
|
Full-text indexes are called collections 1
|
||||||
|
Only MyISAM tables support collections 1
|
||||||
|
Function MATCH ... AGAINST() is used to do a search 1
|
||||||
|
Full-text search in MySQL implements vector space model 1
|
||||||
|
drop function change_global;
|
||||||
|
set GLOBAL query_cache_type=default;
|
||||||
|
set GLOBAL query_cache_limit=default;
|
||||||
|
set GLOBAL query_cache_min_res_unit=default;
|
||||||
|
set GLOBAL query_cache_size= default;
|
||||||
|
@ -220,27 +220,27 @@ insert into t1 (x) values (1),(2),(3),(4),(5),(6),(7),(8),(9);
|
|||||||
update t1 set y=x;
|
update t1 set y=x;
|
||||||
explain select * from t1, t1 t2 where t1.y = 8 and t2.x between 7 and t1.y+0;
|
explain select * from t1, t1 t2 where t1.y = 8 and t2.x between 7 and t1.y+0;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref y y 5 const 1 Using where
|
1 SIMPLE t1 ref y y 5 const 1 Using where; Using join cache
|
||||||
1 SIMPLE t2 range x x 5 NULL 2 Using where
|
1 SIMPLE t2 range x x 5 NULL 2 Using where
|
||||||
explain select * from t1, t1 t2 where t1.y = 8 and t2.x >= 7 and t2.x <= t1.y+0;
|
explain select * from t1, t1 t2 where t1.y = 8 and t2.x >= 7 and t2.x <= t1.y+0;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref y y 5 const 1 Using where
|
1 SIMPLE t1 ref y y 5 const 1 Using where; Using join cache
|
||||||
1 SIMPLE t2 range x x 5 NULL 2 Using where
|
1 SIMPLE t2 range x x 5 NULL 2 Using where
|
||||||
explain select * from t1, t1 t2 where t1.y = 2 and t2.x between t1.y-1 and t1.y+1;
|
explain select * from t1, t1 t2 where t1.y = 2 and t2.x between t1.y-1 and t1.y+1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref y y 5 const 1 Using where
|
1 SIMPLE t1 ref y y 5 const 1 Using where; Using join cache
|
||||||
1 SIMPLE t2 range x x 5 NULL 3 Using where
|
1 SIMPLE t2 range x x 5 NULL 3 Using where
|
||||||
explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= t1.y-1 and t2.x <= t1.y+1;
|
explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= t1.y-1 and t2.x <= t1.y+1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref y y 5 const 1 Using where
|
1 SIMPLE t1 ref y y 5 const 1 Using where; Using join cache
|
||||||
1 SIMPLE t2 range x x 5 NULL 3 Using where
|
1 SIMPLE t2 range x x 5 NULL 3 Using where
|
||||||
explain select * from t1, t1 t2 where t1.y = 2 and t2.x between 0 and t1.y;
|
explain select * from t1, t1 t2 where t1.y = 2 and t2.x between 0 and t1.y;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref y y 5 const 1 Using where
|
1 SIMPLE t1 ref y y 5 const 1 Using where; Using join cache
|
||||||
1 SIMPLE t2 range x x 5 NULL 2 Using where
|
1 SIMPLE t2 range x x 5 NULL 2 Using where
|
||||||
explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= 0 and t2.x <= t1.y;
|
explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= 0 and t2.x <= t1.y;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref y y 5 const 1 Using where
|
1 SIMPLE t1 ref y y 5 const 1 Using where; Using join cache
|
||||||
1 SIMPLE t2 range x x 5 NULL 2 Using where
|
1 SIMPLE t2 range x x 5 NULL 2 Using where
|
||||||
explain select count(*) from t1 where x in (1);
|
explain select count(*) from t1 where x in (1);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
@ -255,12 +255,12 @@ CREATE TABLE t2 (keya int(11) NOT NULL default '0', KEY j1 (keya));
|
|||||||
INSERT INTO t2 VALUES (0),(0),(1),(1),(2),(2);
|
INSERT INTO t2 VALUES (0),(0),(1),(1),(2),(2);
|
||||||
explain select * from t1, t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
|
explain select * from t1, t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ref j1 j1 4 const 1 Using index
|
1 SIMPLE t2 ref j1 j1 4 const 1 Using index; Using join cache
|
||||||
1 SIMPLE t1 index i1 i1 4 NULL 7 Using where; Using index
|
1 SIMPLE t1 index i1 i1 4 NULL 7 Using where; Using index
|
||||||
explain select * from t1 force index(i1), t2 force index(j1) where
|
explain select * from t1 force index(i1), t2 force index(j1) where
|
||||||
(t1.key1 <t2.keya + 1) and t2.keya=3;
|
(t1.key1 <t2.keya + 1) and t2.keya=3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ref j1 j1 4 const 1 Using index
|
1 SIMPLE t2 ref j1 j1 4 const 1 Using index; Using join cache
|
||||||
1 SIMPLE t1 index i1 i1 4 NULL 7 Using where; Using index
|
1 SIMPLE t1 index i1 i1 4 NULL 7 Using where; Using index
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
|
@ -376,7 +376,7 @@ a b a b c
|
|||||||
3 2 3 1 3
|
3 2 3 1 3
|
||||||
EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1);
|
EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 index NULL PRIMARY 8 NULL 6 100.00 Using index
|
1 SIMPLE t1 index NULL PRIMARY 8 NULL 6 100.00 Using index; Using join cache
|
||||||
1 SIMPLE t2 index NULL PRIMARY 12 NULL 7 100.00 Using where; Using index
|
1 SIMPLE t2 index NULL PRIMARY 12 NULL 7 100.00 Using where; Using index
|
||||||
Warnings:
|
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`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where (((`test`.`t1`.`a` - 1) = (`test`.`t2`.`a` - 1)) and (`test`.`t1`.`b` = (`test`.`t2`.`b` + 1)))
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where (((`test`.`t1`.`a` - 1) = (`test`.`t2`.`a` - 1)) and (`test`.`t1`.`b` = (`test`.`t2`.`b` + 1)))
|
||||||
|
@ -607,11 +607,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t3 index period period 4 NULL 41810
|
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index period period 4 NULL 41810
|
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||||
select period from t1;
|
select period from t1;
|
||||||
period
|
period
|
||||||
@ -1430,7 +1430,7 @@ companynr companynr
|
|||||||
41 40
|
41 40
|
||||||
explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
|
explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
|
1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||||
select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
|
select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
|
||||||
fld1 companynr fld3 period
|
fld1 companynr fld3 period
|
||||||
@ -2362,7 +2362,7 @@ insert into t1 values (1,2), (2,2), (3,2), (4,2);
|
|||||||
insert into t2 values (1,3), (2,3), (3,4), (4,4);
|
insert into t2 values (1,3), (2,3), (3,4), (4,4);
|
||||||
explain select * from t1 left join t2 on a=c where d in (4);
|
explain select * from t1 left join t2 on a=c where d in (4);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ref c,d d 5 const 2 Using where
|
1 SIMPLE t2 ref c,d d 5 const 2 Using where; Using join cache
|
||||||
1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where
|
1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where
|
||||||
select * from t1 left join t2 on a=c where d in (4);
|
select * from t1 left join t2 on a=c where d in (4);
|
||||||
a b c d
|
a b c d
|
||||||
@ -2370,7 +2370,7 @@ a b c d
|
|||||||
4 2 4 4
|
4 2 4 4
|
||||||
explain select * from t1 left join t2 on a=c where d = 4;
|
explain select * from t1 left join t2 on a=c where d = 4;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ref c,d d 5 const 2 Using where
|
1 SIMPLE t2 ref c,d d 5 const 2 Using where; Using join cache
|
||||||
1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where
|
1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where
|
||||||
select * from t1 left join t2 on a=c where d = 4;
|
select * from t1 left join t2 on a=c where d = 4;
|
||||||
a b c d
|
a b c d
|
||||||
@ -2716,7 +2716,7 @@ explain select straight_join DISTINCT t2.a,t2.b, t1.c from t1, t3, t2
|
|||||||
where (t1.c=t2.a or (t1.c=t3.a and t2.a=t3.b)) and t1.b=556476786 and
|
where (t1.c=t2.a or (t1.c=t3.a and t2.a=t3.b)) and t1.b=556476786 and
|
||||||
t2.b like '%%' order by t2.b limit 0,1;
|
t2.b like '%%' order by t2.b limit 0,1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref b,c b 5 const 1 Using where; Using temporary; Using filesort
|
1 SIMPLE t1 ref b,c b 5 const 1 Using where; Using temporary; Using filesort; Using join cache
|
||||||
1 SIMPLE t3 index PRIMARY,a,b PRIMARY 8 NULL 2 Using index
|
1 SIMPLE t3 index PRIMARY,a,b PRIMARY 8 NULL 2 Using index
|
||||||
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 2 Range checked for each record (index map: 0x1)
|
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 2 Range checked for each record (index map: 0x1)
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
@ -2737,7 +2737,7 @@ INSERT INTO t2 VALUES (1,NULL), (2,10);
|
|||||||
ALTER TABLE t1 ENABLE KEYS;
|
ALTER TABLE t1 ENABLE KEYS;
|
||||||
EXPLAIN SELECT STRAIGHT_JOIN SQL_NO_CACHE COUNT(*) FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
|
EXPLAIN SELECT STRAIGHT_JOIN SQL_NO_CACHE COUNT(*) FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 index b b 5 NULL 2 Using index
|
1 SIMPLE t2 index b b 5 NULL 2 Using index; Using join cache
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
|
||||||
SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
|
SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
|
||||||
a b a b
|
a b a b
|
||||||
@ -2747,7 +2747,7 @@ a b a b
|
|||||||
2 10 4 10
|
2 10 4 10
|
||||||
EXPLAIN SELECT STRAIGHT_JOIN SQL_NO_CACHE COUNT(*) FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
|
EXPLAIN SELECT STRAIGHT_JOIN SQL_NO_CACHE COUNT(*) FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 index b b 5 NULL 2 Using index
|
1 SIMPLE t2 index b b 5 NULL 2 Using index; Using join cache
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
|
||||||
SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
|
SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
|
||||||
a b a b
|
a b a b
|
||||||
@ -2901,11 +2901,11 @@ a
|
|||||||
4
|
4
|
||||||
EXPLAIN SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a;
|
EXPLAIN SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
||||||
EXPLAIN SELECT t1.a FROM t1 INNER JOIN t2 ON t1.a=t2.a;
|
EXPLAIN SELECT t1.a FROM t1 INNER JOIN t2 ON t1.a=t2.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using join cache
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0;
|
select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0;
|
||||||
|
@ -620,6 +620,119 @@ SHOW PROCEDURE CODE p1;
|
|||||||
Pos Instruction
|
Pos Instruction
|
||||||
0 stmt 2 "CREATE INDEX idx ON t1 (c1)"
|
0 stmt 2 "CREATE INDEX idx ON t1 (c1)"
|
||||||
DROP PROCEDURE p1;
|
DROP PROCEDURE p1;
|
||||||
|
drop table if exists t1;
|
||||||
|
drop procedure if exists proc_26977_broken;
|
||||||
|
drop procedure if exists proc_26977_works;
|
||||||
|
create table t1(a int unique);
|
||||||
|
create procedure proc_26977_broken(v int)
|
||||||
|
begin
|
||||||
|
declare i int default 5;
|
||||||
|
declare continue handler for sqlexception
|
||||||
|
begin
|
||||||
|
select 'caught something';
|
||||||
|
retry:
|
||||||
|
while i > 0 do
|
||||||
|
begin
|
||||||
|
set i = i - 1;
|
||||||
|
select 'looping', i;
|
||||||
|
end;
|
||||||
|
end while retry;
|
||||||
|
end;
|
||||||
|
select 'do something';
|
||||||
|
insert into t1 values (v);
|
||||||
|
select 'do something again';
|
||||||
|
insert into t1 values (v);
|
||||||
|
end//
|
||||||
|
create procedure proc_26977_works(v int)
|
||||||
|
begin
|
||||||
|
declare i int default 5;
|
||||||
|
declare continue handler for sqlexception
|
||||||
|
begin
|
||||||
|
select 'caught something';
|
||||||
|
retry:
|
||||||
|
while i > 0 do
|
||||||
|
begin
|
||||||
|
set i = i - 1;
|
||||||
|
select 'looping', i;
|
||||||
|
end;
|
||||||
|
end while retry;
|
||||||
|
select 'optimizer: keep hreturn';
|
||||||
|
end;
|
||||||
|
select 'do something';
|
||||||
|
insert into t1 values (v);
|
||||||
|
select 'do something again';
|
||||||
|
insert into t1 values (v);
|
||||||
|
end//
|
||||||
|
show procedure code proc_26977_broken;
|
||||||
|
Pos Instruction
|
||||||
|
0 set i@1 5
|
||||||
|
1 hpush_jump 8 2 CONTINUE
|
||||||
|
2 stmt 0 "select 'caught something'"
|
||||||
|
3 jump_if_not 7(7) (i@1 > 0)
|
||||||
|
4 set i@1 (i@1 - 1)
|
||||||
|
5 stmt 0 "select 'looping', i"
|
||||||
|
6 jump 3
|
||||||
|
7 hreturn 2
|
||||||
|
8 stmt 0 "select 'do something'"
|
||||||
|
9 stmt 5 "insert into t1 values (v)"
|
||||||
|
10 stmt 0 "select 'do something again'"
|
||||||
|
11 stmt 5 "insert into t1 values (v)"
|
||||||
|
12 hpop 1
|
||||||
|
show procedure code proc_26977_works;
|
||||||
|
Pos Instruction
|
||||||
|
0 set i@1 5
|
||||||
|
1 hpush_jump 9 2 CONTINUE
|
||||||
|
2 stmt 0 "select 'caught something'"
|
||||||
|
3 jump_if_not 7(7) (i@1 > 0)
|
||||||
|
4 set i@1 (i@1 - 1)
|
||||||
|
5 stmt 0 "select 'looping', i"
|
||||||
|
6 jump 3
|
||||||
|
7 stmt 0 "select 'optimizer: keep hreturn'"
|
||||||
|
8 hreturn 2
|
||||||
|
9 stmt 0 "select 'do something'"
|
||||||
|
10 stmt 5 "insert into t1 values (v)"
|
||||||
|
11 stmt 0 "select 'do something again'"
|
||||||
|
12 stmt 5 "insert into t1 values (v)"
|
||||||
|
13 hpop 1
|
||||||
|
call proc_26977_broken(1);
|
||||||
|
do something
|
||||||
|
do something
|
||||||
|
do something again
|
||||||
|
do something again
|
||||||
|
caught something
|
||||||
|
caught something
|
||||||
|
looping i
|
||||||
|
looping 4
|
||||||
|
looping i
|
||||||
|
looping 3
|
||||||
|
looping i
|
||||||
|
looping 2
|
||||||
|
looping i
|
||||||
|
looping 1
|
||||||
|
looping i
|
||||||
|
looping 0
|
||||||
|
call proc_26977_works(2);
|
||||||
|
do something
|
||||||
|
do something
|
||||||
|
do something again
|
||||||
|
do something again
|
||||||
|
caught something
|
||||||
|
caught something
|
||||||
|
looping i
|
||||||
|
looping 4
|
||||||
|
looping i
|
||||||
|
looping 3
|
||||||
|
looping i
|
||||||
|
looping 2
|
||||||
|
looping i
|
||||||
|
looping 1
|
||||||
|
looping i
|
||||||
|
looping 0
|
||||||
|
optimizer: keep hreturn
|
||||||
|
optimizer: keep hreturn
|
||||||
|
drop table t1;
|
||||||
|
drop procedure proc_26977_broken;
|
||||||
|
drop procedure proc_26977_works;
|
||||||
End of 5.0 tests.
|
End of 5.0 tests.
|
||||||
CREATE PROCEDURE p1()
|
CREATE PROCEDURE p1()
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -690,12 +690,12 @@ END|
|
|||||||
CALL p1(NOW());
|
CALL p1(NOW());
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE "t1" (
|
t1 CREATE TABLE "t1" (
|
||||||
"x" varbinary(19) DEFAULT NULL
|
"x" datetime DEFAULT NULL
|
||||||
)
|
)
|
||||||
CALL p1('test');
|
CALL p1('test');
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE "t1" (
|
t1 CREATE TABLE "t1" (
|
||||||
"x" varbinary(19) DEFAULT NULL
|
"x" datetime DEFAULT NULL
|
||||||
)
|
)
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1264 Out of range value for column 'x' at row 1
|
Warning 1264 Out of range value for column 'x' at row 1
|
||||||
|
@ -6210,6 +6210,13 @@ Warning 1265 Data truncated for column 'bug5274_f1' at row 1
|
|||||||
Warning 1265 Data truncated for column 'bug5274_f1' at row 1
|
Warning 1265 Data truncated for column 'bug5274_f1' at row 1
|
||||||
DROP FUNCTION bug5274_f1|
|
DROP FUNCTION bug5274_f1|
|
||||||
DROP FUNCTION bug5274_f2|
|
DROP FUNCTION bug5274_f2|
|
||||||
|
drop procedure if exists proc_21513|
|
||||||
|
create procedure proc_21513()`my_label`:BEGIN END|
|
||||||
|
show create procedure proc_21513|
|
||||||
|
Procedure sql_mode Create Procedure
|
||||||
|
proc_21513 CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_21513`()
|
||||||
|
`my_label`:BEGIN END
|
||||||
|
drop procedure proc_21513|
|
||||||
End of 5.0 tests.
|
End of 5.0 tests.
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
CREATE TABLE t1 (a int auto_increment primary key) engine=MyISAM;
|
CREATE TABLE t1 (a int auto_increment primary key) engine=MyISAM;
|
||||||
|
@ -608,11 +608,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t3 index period period 4 NULL 41810
|
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index period period 4 NULL 41810
|
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||||
select period from t1;
|
select period from t1;
|
||||||
period
|
period
|
||||||
@ -1431,7 +1431,7 @@ companynr companynr
|
|||||||
41 40
|
41 40
|
||||||
explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
|
explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
|
1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||||
select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
|
select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
|
||||||
fld1 companynr fld3 period
|
fld1 companynr fld3 period
|
||||||
|
@ -611,11 +611,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t3 index period period 4 NULL 41810
|
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index period period 4 NULL 41810
|
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||||
select period from t1;
|
select period from t1;
|
||||||
period
|
period
|
||||||
@ -1434,7 +1434,7 @@ companynr companynr
|
|||||||
41 40
|
41 40
|
||||||
explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
|
explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
|
1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary; Using join cache
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||||
select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
|
select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
|
||||||
fld1 companynr fld3 period
|
fld1 companynr fld3 period
|
||||||
|
@ -904,7 +904,7 @@ a t1.a in (select t2.a from t2,t3 where t3.a=t2.a)
|
|||||||
explain extended SELECT t1.a, t1.a in (select t2.a from t2,t3 where t3.a=t2.a) FROM t1;
|
explain extended SELECT t1.a, t1.a in (select t2.a from t2,t3 where t3.a=t2.a) FROM t1;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 index NULL PRIMARY 4 NULL 4 100.00 Using index
|
1 PRIMARY t1 index NULL PRIMARY 4 NULL 4 100.00 Using index
|
||||||
2 DEPENDENT SUBQUERY t2 ref_or_null a a 5 func 2 100.00 Using where; Using index
|
2 DEPENDENT SUBQUERY t2 ref_or_null a a 5 func 2 100.00 Using where; Using index; Using join cache
|
||||||
2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 100.00 Using where
|
2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,<in_optimizer>(`test`.`t1`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t2` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t2`.`a`) and ((<cache>(`test`.`t1`.`a`) = `test`.`t2`.`a`) or isnull(`test`.`t2`.`a`))) having <is_not_null_test>(`test`.`t2`.`a`))) AS `t1.a in (select t2.a from t2,t3 where t3.a=t2.a)` from `test`.`t1`
|
Note 1003 select `test`.`t1`.`a` AS `a`,<in_optimizer>(`test`.`t1`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t2` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t2`.`a`) and ((<cache>(`test`.`t1`.`a`) = `test`.`t2`.`a`) or isnull(`test`.`t2`.`a`))) having <is_not_null_test>(`test`.`t2`.`a`))) AS `t1.a in (select t2.a from t2,t3 where t3.a=t2.a)` from `test`.`t1`
|
||||||
@ -1354,7 +1354,7 @@ a
|
|||||||
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
|
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t2 index NULL a 5 NULL 4 100.00 Using where; Using index
|
1 PRIMARY t2 index NULL a 5 NULL 4 100.00 Using where; Using index
|
||||||
2 DEPENDENT SUBQUERY t1 ref a a 5 func 1001 100.00 Using where; Using index
|
2 DEPENDENT SUBQUERY t1 ref a a 5 func 1001 100.00 Using where; Using index; Using join cache
|
||||||
2 DEPENDENT SUBQUERY t3 index a a 5 NULL 3 100.00 Using where; Using index
|
2 DEPENDENT SUBQUERY t3 index a a 5 NULL 3 100.00 Using where; Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t1` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t1`.`b`) and (<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`))))
|
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t1` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t1`.`b`) and (<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`))))
|
||||||
@ -4034,6 +4034,13 @@ SUM( (SELECT AVG( (SELECT COUNT(*) FROM t1 t HAVING XXA < 12) ) FROM t2) )
|
|||||||
FROM t1;
|
FROM t1;
|
||||||
ERROR HY000: Invalid use of group function
|
ERROR HY000: Invalid use of group function
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
CREATE TABLE t1 (a int, b int, KEY (a));
|
||||||
|
INSERT INTO t1 VALUES (1,1),(2,1);
|
||||||
|
EXPLAIN SELECT 1 FROM t1 WHERE a = (SELECT COUNT(*) FROM t1 GROUP BY b);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 ref a a 5 const 1 Using where; Using index
|
||||||
|
2 SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.0 tests.
|
End of 5.0 tests.
|
||||||
CREATE TABLE t1 (a int, b int);
|
CREATE TABLE t1 (a int, b int);
|
||||||
INSERT INTO t1 VALUES (2,22),(1,11),(2,22);
|
INSERT INTO t1 VALUES (2,22),(1,11),(2,22);
|
||||||
|
@ -254,7 +254,7 @@ select a,b, oref,
|
|||||||
from t2;
|
from t2;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00
|
||||||
2 DEPENDENT SUBQUERY t1 ref_or_null a a 5 func 2 100.00 Using where; Full scan on NULL key
|
2 DEPENDENT SUBQUERY t1 ref_or_null a a 5 func 2 100.00 Using where; Full scan on NULL key; Using join cache
|
||||||
2 DEPENDENT SUBQUERY t4 ALL NULL NULL NULL NULL 100 100.00 Using where
|
2 DEPENDENT SUBQUERY t4 ALL NULL NULL NULL NULL 100 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
|
||||||
@ -711,3 +711,34 @@ a
|
|||||||
1
|
1
|
||||||
4
|
4
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
CREATE TABLE t1 (id int);
|
||||||
|
CREATE TABLE t2 (id int PRIMARY KEY);
|
||||||
|
CREATE TABLE t3 (id int PRIMARY KEY, name varchar(10));
|
||||||
|
INSERT INTO t1 VALUES (2), (NULL), (3), (1);
|
||||||
|
INSERT INTO t2 VALUES (234), (345), (457);
|
||||||
|
INSERT INTO t3 VALUES (222,'bbb'), (333,'ccc'), (111,'aaa');
|
||||||
|
EXPLAIN
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3
|
||||||
|
WHERE t3.name='xxx' AND t2.id=t3.id);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||||
|
2 DEPENDENT SUBQUERY t2 eq_ref PRIMARY PRIMARY 4 func 1 Using where; Using index; Full scan on NULL key
|
||||||
|
2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY PRIMARY 4 func 1 Using where; Full scan on NULL key
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3
|
||||||
|
WHERE t3.name='xxx' AND t2.id=t3.id);
|
||||||
|
id
|
||||||
|
2
|
||||||
|
NULL
|
||||||
|
3
|
||||||
|
1
|
||||||
|
SELECT (t1.id IN (SELECT t2.id FROM t2,t3
|
||||||
|
WHERE t3.name='xxx' AND t2.id=t3.id)) AS x
|
||||||
|
FROM t1;
|
||||||
|
x
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
DROP TABLE t1,t2,t3;
|
||||||
|
@ -1414,4 +1414,39 @@ id val
|
|||||||
DROP TRIGGER trg27006_a_insert;
|
DROP TRIGGER trg27006_a_insert;
|
||||||
DROP TRIGGER trg27006_a_update;
|
DROP TRIGGER trg27006_a_update;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
drop table if exists t1, t2, t3;
|
||||||
|
create table t1 (i int);
|
||||||
|
create trigger t1_bi before insert on t1 for each row set new.i = 7;
|
||||||
|
create trigger t1_ai after insert on t1 for each row set @a := 7;
|
||||||
|
create table t2 (j int);
|
||||||
|
insert into t2 values (1), (2);
|
||||||
|
set @a:="";
|
||||||
|
create table if not exists t1 select * from t2;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
|
select * from t1;
|
||||||
|
i
|
||||||
|
7
|
||||||
|
7
|
||||||
|
select @a;
|
||||||
|
@a
|
||||||
|
7
|
||||||
|
drop trigger t1_bi;
|
||||||
|
drop trigger t1_ai;
|
||||||
|
create table t3 (isave int);
|
||||||
|
create trigger t1_bi before insert on t1 for each row insert into t3 values (new.i);
|
||||||
|
create table if not exists t1 select * from t2;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
|
select * from t1;
|
||||||
|
i
|
||||||
|
7
|
||||||
|
7
|
||||||
|
1
|
||||||
|
2
|
||||||
|
select * from t3;
|
||||||
|
isave
|
||||||
|
1
|
||||||
|
2
|
||||||
|
drop table t1, t2, t3;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -299,6 +299,88 @@ f2
|
|||||||
SELECT 1 from dual where NOW() BETWEEN CURRENT_DATE() - INTERVAL 1 DAY AND CURRENT_DATE();
|
SELECT 1 from dual where NOW() BETWEEN CURRENT_DATE() - INTERVAL 1 DAY AND CURRENT_DATE();
|
||||||
1
|
1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (f1 date);
|
||||||
|
insert into t1 values('01-01-01'),('01-01-02'),('01-01-03');
|
||||||
|
select * from t1 where f1 in ('01-01-01','2001-01-02','2001-01-03 00:00:00');
|
||||||
|
f1
|
||||||
|
2001-01-01
|
||||||
|
2001-01-02
|
||||||
|
2001-01-03
|
||||||
|
create table t2(f2 datetime);
|
||||||
|
insert into t2 values('01-01-01 00:00:00'),('01-02-03 12:34:56'),('02-04-06 11:22:33');
|
||||||
|
select * from t2 where f2 in ('01-01-01','01-02-03 12:34:56','01-02-03');
|
||||||
|
f2
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
2001-02-03 12:34:56
|
||||||
|
select * from t1,t2 where '01-01-02' in (f1, cast(f2 as date));
|
||||||
|
f1 f2
|
||||||
|
2001-01-02 2001-01-01 00:00:00
|
||||||
|
2001-01-02 2001-02-03 12:34:56
|
||||||
|
2001-01-02 2002-04-06 11:22:33
|
||||||
|
select * from t1,t2 where '01-01-01' in (f1, '01-02-03');
|
||||||
|
f1 f2
|
||||||
|
2001-01-01 2001-01-01 00:00:00
|
||||||
|
2001-01-01 2001-02-03 12:34:56
|
||||||
|
2001-01-01 2002-04-06 11:22:33
|
||||||
|
select * from t1,t2 where if(1,'01-02-03 12:34:56','') in (f1, f2);
|
||||||
|
f1 f2
|
||||||
|
2001-01-01 2001-02-03 12:34:56
|
||||||
|
2001-01-02 2001-02-03 12:34:56
|
||||||
|
2001-01-03 2001-02-03 12:34:56
|
||||||
|
create table t3(f3 varchar(20));
|
||||||
|
insert into t3 select * from t2;
|
||||||
|
select * from t2,t3 where f2 in (f3,'03-04-05');
|
||||||
|
f2 f3
|
||||||
|
2001-01-01 00:00:00 2001-01-01 00:00:00
|
||||||
|
2001-02-03 12:34:56 2001-02-03 12:34:56
|
||||||
|
2002-04-06 11:22:33 2002-04-06 11:22:33
|
||||||
|
select f1,f2,f3 from t1,t2,t3 where (f1,'1') in ((f2,'1'),(f3,'1'));
|
||||||
|
f1 f2 f3
|
||||||
|
2001-01-01 2001-01-01 00:00:00 2001-01-01 00:00:00
|
||||||
|
2001-01-01 2001-02-03 12:34:56 2001-01-01 00:00:00
|
||||||
|
2001-01-01 2002-04-06 11:22:33 2001-01-01 00:00:00
|
||||||
|
2001-01-01 2001-01-01 00:00:00 2001-02-03 12:34:56
|
||||||
|
2001-01-01 2001-01-01 00:00:00 2002-04-06 11:22:33
|
||||||
|
select f1 from t1 where ('1',f1) in (('1','01-01-01'),('1','2001-1-1 0:0:0'),('1','02-02-02'));
|
||||||
|
f1
|
||||||
|
2001-01-01
|
||||||
|
drop table t1,t2,t3;
|
||||||
|
select least(cast('01-01-01' as date), '01-01-02');
|
||||||
|
least(cast('01-01-01' as date), '01-01-02')
|
||||||
|
2001-01-01
|
||||||
|
select greatest(cast('01-01-01' as date), '01-01-02');
|
||||||
|
greatest(cast('01-01-01' as date), '01-01-02')
|
||||||
|
01-01-02
|
||||||
|
select least(cast('01-01-01' as date), '01-01-02') + 0;
|
||||||
|
least(cast('01-01-01' as date), '01-01-02') + 0
|
||||||
|
20010101
|
||||||
|
select greatest(cast('01-01-01' as date), '01-01-02') + 0;
|
||||||
|
greatest(cast('01-01-01' as date), '01-01-02') + 0
|
||||||
|
20010102
|
||||||
|
select least(cast('01-01-01' as datetime), '01-01-02') + 0;
|
||||||
|
least(cast('01-01-01' as datetime), '01-01-02') + 0
|
||||||
|
20010101000000
|
||||||
|
select cast(least(cast('01-01-01' as datetime), '01-01-02') as signed);
|
||||||
|
cast(least(cast('01-01-01' as datetime), '01-01-02') as signed)
|
||||||
|
20010101000000
|
||||||
|
select cast(least(cast('01-01-01' as datetime), '01-01-02') as decimal(16,2));
|
||||||
|
cast(least(cast('01-01-01' as datetime), '01-01-02') as decimal(16,2))
|
||||||
|
20010101000000.00
|
||||||
|
DROP PROCEDURE IF EXISTS test27759 ;
|
||||||
|
CREATE PROCEDURE test27759()
|
||||||
|
BEGIN
|
||||||
|
declare v_a date default '2007-4-10';
|
||||||
|
declare v_b date default '2007-4-11';
|
||||||
|
declare v_c datetime default '2004-4-9 0:0:0';
|
||||||
|
select v_a as a,v_b as b,
|
||||||
|
least( v_a, v_b ) as a_then_b,
|
||||||
|
least( v_b, v_a ) as b_then_a,
|
||||||
|
least( v_c, v_a ) as c_then_a;
|
||||||
|
END;|
|
||||||
|
call test27759();
|
||||||
|
a b a_then_b b_then_a c_then_a
|
||||||
|
2007-04-10 2007-04-11 2007-04-10 2007-04-10 2004-04-09 00:00:00
|
||||||
|
drop procedure test27759;
|
||||||
set @org_mode=@@sql_mode;
|
set @org_mode=@@sql_mode;
|
||||||
create table t1 (da date default '1962-03-03 23:33:34', dt datetime default '1962-03-03');
|
create table t1 (da date default '1962-03-03 23:33:34', dt datetime default '1962-03-03');
|
||||||
Warnings:
|
Warnings:
|
||||||
|
@ -1440,6 +1440,41 @@ select * from t1;
|
|||||||
a
|
a
|
||||||
123456789012345678
|
123456789012345678
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
select cast(11.1234 as DECIMAL(3,2));
|
||||||
|
cast(11.1234 as DECIMAL(3,2))
|
||||||
|
9.99
|
||||||
|
Warnings:
|
||||||
|
Error 1264 Out of range value for column 'cast(11.1234 as DECIMAL(3,2))' at row 1
|
||||||
|
select * from (select cast(11.1234 as DECIMAL(3,2))) t;
|
||||||
|
cast(11.1234 as DECIMAL(3,2))
|
||||||
|
9.99
|
||||||
|
Warnings:
|
||||||
|
Error 1264 Out of range value for column 'cast(11.1234 as DECIMAL(3,2))' at row 1
|
||||||
|
select cast(a as DECIMAL(3,2))
|
||||||
|
from (select 11.1233 as a
|
||||||
|
UNION select 11.1234
|
||||||
|
UNION select 12.1234
|
||||||
|
) t;
|
||||||
|
cast(a as DECIMAL(3,2))
|
||||||
|
9.99
|
||||||
|
9.99
|
||||||
|
9.99
|
||||||
|
Warnings:
|
||||||
|
Error 1264 Out of range value for column 'cast(a as DECIMAL(3,2))' at row 1
|
||||||
|
Error 1264 Out of range value for column 'cast(a as DECIMAL(3,2))' at row 1
|
||||||
|
Error 1264 Out of range value for column 'cast(a as DECIMAL(3,2))' at row 1
|
||||||
|
select cast(a as DECIMAL(3,2)), count(*)
|
||||||
|
from (select 11.1233 as a
|
||||||
|
UNION select 11.1234
|
||||||
|
UNION select 12.1234
|
||||||
|
) t group by 1;
|
||||||
|
cast(a as DECIMAL(3,2)) count(*)
|
||||||
|
9.99 3
|
||||||
|
Warnings:
|
||||||
|
Error 1264 Out of range value for column 'cast(a as DECIMAL(3,2))' at row 1
|
||||||
|
Error 1264 Out of range value for column 'cast(a as DECIMAL(3,2))' at row 1
|
||||||
|
Error 1264 Out of range value for column 'cast(a as DECIMAL(3,2))' at row 1
|
||||||
|
Error 1264 Out of range value for column 'cast(a as DECIMAL(3,2))' at row 1
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
select cast(143.481 as decimal(4,1));
|
select cast(143.481 as decimal(4,1));
|
||||||
cast(143.481 as decimal(4,1))
|
cast(143.481 as decimal(4,1))
|
||||||
|
@ -499,7 +499,7 @@ a b
|
|||||||
explain (select * from t1 where a=1 and b=10) union (select straight_join t1.a,t2.a from t1,t2 where t1.a=t2.a);
|
explain (select * from t1 where a=1 and b=10) union (select straight_join t1.a,t2.a from t1,t2 where t1.a=t2.a);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
2 UNION t1 index PRIMARY PRIMARY 4 NULL 4 Using index
|
2 UNION t1 index PRIMARY PRIMARY 4 NULL 4 Using index; Using join cache
|
||||||
2 UNION t2 index PRIMARY PRIMARY 4 NULL 4 Using where; Using index
|
2 UNION t2 index PRIMARY PRIMARY 4 NULL 4 Using where; Using index
|
||||||
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL
|
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL
|
||||||
explain (select * from t1 where a=1) union (select * from t1 where b=1);
|
explain (select * from t1 where a=1) union (select * from t1 where b=1);
|
||||||
|
@ -235,7 +235,7 @@ net_buffer_length 1024
|
|||||||
net_read_timeout 300
|
net_read_timeout 300
|
||||||
net_retry_count 10
|
net_retry_count 10
|
||||||
net_write_timeout 200
|
net_write_timeout 200
|
||||||
select * from information_schema.global_variables where variable_name like 'net_%';
|
select * from information_schema.global_variables where variable_name like 'net_%' order by 1;
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
NET_BUFFER_LENGTH 1024
|
NET_BUFFER_LENGTH 1024
|
||||||
NET_READ_TIMEOUT 300
|
NET_READ_TIMEOUT 300
|
||||||
@ -247,7 +247,7 @@ net_buffer_length 2048
|
|||||||
net_read_timeout 600
|
net_read_timeout 600
|
||||||
net_retry_count 10
|
net_retry_count 10
|
||||||
net_write_timeout 500
|
net_write_timeout 500
|
||||||
select * from information_schema.session_variables where variable_name like 'net_%';
|
select * from information_schema.session_variables where variable_name like 'net_%' order by 1;
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
NET_BUFFER_LENGTH 2048
|
NET_BUFFER_LENGTH 2048
|
||||||
NET_READ_TIMEOUT 600
|
NET_READ_TIMEOUT 600
|
||||||
@ -260,7 +260,7 @@ net_buffer_length 1024
|
|||||||
net_read_timeout 900
|
net_read_timeout 900
|
||||||
net_retry_count 10
|
net_retry_count 10
|
||||||
net_write_timeout 1000
|
net_write_timeout 1000
|
||||||
select * from information_schema.global_variables where variable_name like 'net_%';
|
select * from information_schema.global_variables where variable_name like 'net_%' order by 1;
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
NET_BUFFER_LENGTH 1024
|
NET_BUFFER_LENGTH 1024
|
||||||
NET_READ_TIMEOUT 900
|
NET_READ_TIMEOUT 900
|
||||||
@ -272,7 +272,7 @@ net_buffer_length 7168
|
|||||||
net_read_timeout 600
|
net_read_timeout 600
|
||||||
net_retry_count 10
|
net_retry_count 10
|
||||||
net_write_timeout 500
|
net_write_timeout 500
|
||||||
select * from information_schema.session_variables where variable_name like 'net_%';
|
select * from information_schema.session_variables where variable_name like 'net_%' order by 1;
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
NET_BUFFER_LENGTH 7168
|
NET_BUFFER_LENGTH 7168
|
||||||
NET_READ_TIMEOUT 600
|
NET_READ_TIMEOUT 600
|
||||||
@ -313,7 +313,7 @@ query_prealloc_size 8192
|
|||||||
range_alloc_block_size 2048
|
range_alloc_block_size 2048
|
||||||
transaction_alloc_block_size 8192
|
transaction_alloc_block_size 8192
|
||||||
transaction_prealloc_size 4096
|
transaction_prealloc_size 4096
|
||||||
select * from information_schema.session_variables where variable_name like '%alloc%';
|
select * from information_schema.session_variables where variable_name like '%alloc%' order by 1;
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
QUERY_ALLOC_BLOCK_SIZE 8192
|
QUERY_ALLOC_BLOCK_SIZE 8192
|
||||||
QUERY_PREALLOC_SIZE 8192
|
QUERY_PREALLOC_SIZE 8192
|
||||||
@ -335,7 +335,7 @@ query_prealloc_size 18432
|
|||||||
range_alloc_block_size 16384
|
range_alloc_block_size 16384
|
||||||
transaction_alloc_block_size 19456
|
transaction_alloc_block_size 19456
|
||||||
transaction_prealloc_size 20480
|
transaction_prealloc_size 20480
|
||||||
select * from information_schema.session_variables where variable_name like '%alloc%';
|
select * from information_schema.session_variables where variable_name like '%alloc%' order by 1;
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
QUERY_ALLOC_BLOCK_SIZE 17408
|
QUERY_ALLOC_BLOCK_SIZE 17408
|
||||||
QUERY_PREALLOC_SIZE 18432
|
QUERY_PREALLOC_SIZE 18432
|
||||||
@ -352,7 +352,7 @@ query_prealloc_size 8192
|
|||||||
range_alloc_block_size 2048
|
range_alloc_block_size 2048
|
||||||
transaction_alloc_block_size 8192
|
transaction_alloc_block_size 8192
|
||||||
transaction_prealloc_size 4096
|
transaction_prealloc_size 4096
|
||||||
select * from information_schema.session_variables where variable_name like '%alloc%';
|
select * from information_schema.session_variables where variable_name like '%alloc%' order by 1;
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
QUERY_ALLOC_BLOCK_SIZE 8192
|
QUERY_ALLOC_BLOCK_SIZE 8192
|
||||||
QUERY_PREALLOC_SIZE 8192
|
QUERY_PREALLOC_SIZE 8192
|
||||||
@ -911,7 +911,7 @@ ssl_capath #
|
|||||||
ssl_cert #
|
ssl_cert #
|
||||||
ssl_cipher #
|
ssl_cipher #
|
||||||
ssl_key #
|
ssl_key #
|
||||||
select * from information_schema.session_variables where variable_name like 'ssl%';
|
select * from information_schema.session_variables where variable_name like 'ssl%' order by 1;
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
SSL_CA #
|
SSL_CA #
|
||||||
SSL_CAPATH #
|
SSL_CAPATH #
|
||||||
|
@ -2317,7 +2317,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t2 ref a a 10 const,test.t1.b 2 Using where; Using index
|
1 SIMPLE t2 ref a a 10 const,test.t1.b 2 Using where; Using index
|
||||||
EXPLAIN SELECT * FROM v2 WHERE a=1;
|
EXPLAIN SELECT * FROM v2 WHERE a=1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref a a 5 const 1 Using where; Using index
|
1 SIMPLE t1 ref a a 5 const 1 Using where; Using index; Using join cache
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where
|
||||||
DROP VIEW v1,v2;
|
DROP VIEW v1,v2;
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
@ -3346,6 +3346,19 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL Using filesort
|
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL Using filesort
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
CREATE VIEW v1 AS SELECT CAST( 1.23456789 AS DECIMAL( 7,5 ) ) AS col;
|
||||||
|
SELECT * FROM v1;
|
||||||
|
col
|
||||||
|
1.23457
|
||||||
|
DESCRIBE v1;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
col decimal(7,5) NO 0.00000
|
||||||
|
DROP VIEW v1;
|
||||||
|
CREATE VIEW v1 AS SELECT CAST(1.23456789 AS DECIMAL(8,0)) AS col;
|
||||||
|
SHOW CREATE VIEW v1;
|
||||||
|
View Create View
|
||||||
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(1.23456789 as decimal(8,0)) AS `col`
|
||||||
|
DROP VIEW v1;
|
||||||
End of 5.0 tests.
|
End of 5.0 tests.
|
||||||
DROP DATABASE IF EXISTS `d-1`;
|
DROP DATABASE IF EXISTS `d-1`;
|
||||||
CREATE DATABASE `d-1`;
|
CREATE DATABASE `d-1`;
|
||||||
|
@ -44,7 +44,8 @@ if (0)
|
|||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# prepare a variable to be able to suppress machine dependant diffs
|
# prepare a variable to be able to suppress machine dependant diffs
|
||||||
# this can be used in: --replace_result $SERVER_NAME <SERVER_NAME>
|
# this can be used in: --replace_result $SERVER_NAME <SERVER_NAME>
|
||||||
let $SERVER_NAME= `SELECT DISTINCT host FROM mysql.user WHERE host LIKE "%\%" AND host NOT In ("localhost", "127.0.0.1", "%")`;
|
# let $SERVER_NAME= `SELECT DISTINCT host FROM mysql.user WHERE host LIKE "%\%" AND host NOT In ("localhost", "127.0.0.1", "%")`;
|
||||||
|
let $SERVER_NAME= `SELECT DISTINCT host FROM mysql.user WHERE host NOT In ("localhost", "127.0.0.1", "%")`;
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -13,14 +13,8 @@ let $message=
|
|||||||
. *__datadict.test are started. This can be a result of showing e.g. maximum
|
. *__datadict.test are started. This can be a result of showing e.g. maximum
|
||||||
. values of the number of rows of tables.
|
. values of the number of rows of tables.
|
||||||
.
|
.
|
||||||
. Currently (Dec 19, 2005) this .result file is checked OK for Linux 5.0.18-bk
|
. This .result file has been checked OK with Linux 5.0.23-bk,
|
||||||
. (ChangeSet@1.1993, 2005-12-19 16:21:02+04:00). Using the available Windows
|
. ChangeSet@1.2211, 2006-06-28 10:11:43-07:00.
|
||||||
. version 5.0.16 there are some known differences that can be ignored:
|
|
||||||
.
|
|
||||||
. - Fix for bug#14271 I_S: columns has no size for (var)binary columns
|
|
||||||
. - bug#14290 (CHARACTER_MAXIMUM_LENGTH values for columns using ucs2 have been fixed)
|
|
||||||
. - new column INFORMATION_SCHEMA.TRIGGERS.DEFINER is still not present in 5.0.16
|
|
||||||
. - (:5055, :5122, :5215) 3 warnings now errors 1044 at call db_datadict.sp_4_1_3()
|
|
||||||
.;
|
.;
|
||||||
--source include/show_msg80.inc
|
--source include/show_msg80.inc
|
||||||
|
|
||||||
@ -111,7 +105,7 @@ SELECT DISTINCT u,
|
|||||||
AS Server_Clean
|
AS Server_Clean
|
||||||
FROM db_datadict.vu1;
|
FROM db_datadict.vu1;
|
||||||
--replace_result $SERVER_NAME <SERVER_NAME>
|
--replace_result $SERVER_NAME <SERVER_NAME>
|
||||||
SELECT * FROM db_datadict.vu;
|
SELECT * FROM db_datadict.vu order by u;
|
||||||
|
|
||||||
delimiter //;
|
delimiter //;
|
||||||
CREATE PROCEDURE db_datadict.sp_1()
|
CREATE PROCEDURE db_datadict.sp_1()
|
||||||
@ -147,8 +141,9 @@ if ($have_bug_11589)
|
|||||||
# 13 DATA_FREE
|
# 13 DATA_FREE
|
||||||
# 15 CREATE_TIME
|
# 15 CREATE_TIME
|
||||||
# 16 UPDATE_TIME
|
# 16 UPDATE_TIME
|
||||||
|
# 17 CHECK_TIME
|
||||||
# 20 CREATE_OPTIONS
|
# 20 CREATE_OPTIONS
|
||||||
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
|
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
|
||||||
SELECT * FROM tables
|
SELECT * FROM tables
|
||||||
WHERE table_schema = 'information_schema';
|
WHERE table_schema = 'information_schema';
|
||||||
# 9 AVG_ROW_LENGTH
|
# 9 AVG_ROW_LENGTH
|
||||||
@ -158,7 +153,8 @@ SELECT * FROM tables
|
|||||||
# 13 DATA_FREE
|
# 13 DATA_FREE
|
||||||
# 15 CREATE_TIME
|
# 15 CREATE_TIME
|
||||||
# 16 UPDATE_TIME
|
# 16 UPDATE_TIME
|
||||||
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss"
|
# 17 CHECK_TIME
|
||||||
|
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
|
||||||
SELECT * FROM tables
|
SELECT * FROM tables
|
||||||
WHERE NOT( table_schema = 'information_schema');
|
WHERE NOT( table_schema = 'information_schema');
|
||||||
--horizontal_results
|
--horizontal_results
|
||||||
@ -183,7 +179,7 @@ select count(*) from routines;
|
|||||||
select * from statistics;
|
select * from statistics;
|
||||||
select * from views;
|
select * from views;
|
||||||
--replace_result $SERVER_NAME <SERVER_NAME>
|
--replace_result $SERVER_NAME <SERVER_NAME>
|
||||||
select * from user_privileges;
|
select * from user_privileges order by grantee, privilege_type;
|
||||||
select * from schema_privileges;
|
select * from schema_privileges;
|
||||||
select * from table_privileges;
|
select * from table_privileges;
|
||||||
select * from column_privileges;
|
select * from column_privileges;
|
||||||
@ -205,7 +201,8 @@ select concat("Table or view '", table_name,
|
|||||||
--replace_result $SERVER_NAME <SERVER_NAME>
|
--replace_result $SERVER_NAME <SERVER_NAME>
|
||||||
select grantee as "user's having select privilege",
|
select grantee as "user's having select privilege",
|
||||||
substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 )
|
substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 )
|
||||||
from user_privileges where privilege_type = 'select';
|
from user_privileges where privilege_type = 'select'
|
||||||
|
order by grantee;
|
||||||
|
|
||||||
select all table_schema from schema_privileges limit 0,5;
|
select all table_schema from schema_privileges limit 0,5;
|
||||||
|
|
||||||
@ -299,13 +296,14 @@ select * from information_schema.schemata ORDER BY 2 DESC;
|
|||||||
# 13 DATA_FREE
|
# 13 DATA_FREE
|
||||||
# 15 CREATE_TIME
|
# 15 CREATE_TIME
|
||||||
# 16 UPDATE_TIME
|
# 16 UPDATE_TIME
|
||||||
|
# 17 CHRCK_TIME
|
||||||
# 20 CREATE_OPTIONS
|
# 20 CREATE_OPTIONS
|
||||||
if ($have_bug_11589)
|
if ($have_bug_11589)
|
||||||
{
|
{
|
||||||
--disable_ps_protocol
|
--disable_ps_protocol
|
||||||
}
|
}
|
||||||
--vertical_results
|
--vertical_results
|
||||||
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
|
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
|
||||||
SELECT * FROM information_schema.tables
|
SELECT * FROM information_schema.tables
|
||||||
WHERE table_schema = 'information_schema';
|
WHERE table_schema = 'information_schema';
|
||||||
# 9 AVG_ROW_LENGTH
|
# 9 AVG_ROW_LENGTH
|
||||||
@ -315,7 +313,8 @@ SELECT * FROM information_schema.tables
|
|||||||
# 13 DATA_FREE
|
# 13 DATA_FREE
|
||||||
# 15 CREATE_TIME
|
# 15 CREATE_TIME
|
||||||
# 16 UPDATE_TIME
|
# 16 UPDATE_TIME
|
||||||
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss"
|
# 17 CHRCK_TIME
|
||||||
|
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
|
||||||
SELECT * FROM information_schema.tables
|
SELECT * FROM information_schema.tables
|
||||||
WHERE NOT( table_schema = 'information_schema');
|
WHERE NOT( table_schema = 'information_schema');
|
||||||
--horizontal_results
|
--horizontal_results
|
||||||
@ -391,7 +390,7 @@ select concat(table_schema, ', ', table_name) "Table_info"
|
|||||||
from tables ORDER BY 1;
|
from tables ORDER BY 1;
|
||||||
|
|
||||||
--replace_result $SERVER_NAME <SERVER_NAME>
|
--replace_result $SERVER_NAME <SERVER_NAME>
|
||||||
select distinct grantee from user_privileges;
|
select distinct grantee from user_privileges order by grantee, privilege_type;
|
||||||
select * from schema_privileges where table_catalog is null limit 0, 5;
|
select * from schema_privileges where table_catalog is null limit 0, 5;
|
||||||
select * from table_privileges where grantee like '%r%' limit 0, 5;
|
select * from table_privileges where grantee like '%r%' limit 0, 5;
|
||||||
|
|
||||||
@ -405,7 +404,7 @@ select * from schemata limit 0,5;
|
|||||||
--replace_result $SERVER_NAME <SERVER_NAME>
|
--replace_result $SERVER_NAME <SERVER_NAME>
|
||||||
select distinct grantee from user_privileges;
|
select distinct grantee from user_privileges;
|
||||||
--replace_result $SERVER_NAME <SERVER_NAME>
|
--replace_result $SERVER_NAME <SERVER_NAME>
|
||||||
select all grantee from user_privileges;
|
select all grantee from user_privileges order by grantee, privilege_type;
|
||||||
|
|
||||||
select id , character_set_name from collations order by id asc limit 10;
|
select id , character_set_name from collations order by id asc limit 10;
|
||||||
|
|
||||||
@ -461,8 +460,9 @@ eval SELECT *
|
|||||||
LINES TERMINATED BY '\n'
|
LINES TERMINATED BY '\n'
|
||||||
FROM information_schema.schemata
|
FROM information_schema.schemata
|
||||||
WHERE schema_name LIKE 'db_%';
|
WHERE schema_name LIKE 'db_%';
|
||||||
# FIXME: why do we get different error numbers with and without OUTFILE ?
|
# The above will fail with access error as long as
|
||||||
#FIXME this should fail! --error 1146
|
# BUBG#28181 - a regression introduced in 5.0.42 is not fixed
|
||||||
|
|
||||||
eval SELECT *
|
eval SELECT *
|
||||||
FROM information_schema.schemata
|
FROM information_schema.schemata
|
||||||
WHERE schema_name LIKE 'db_%';
|
WHERE schema_name LIKE 'db_%';
|
||||||
@ -475,7 +475,9 @@ eval SELECT *
|
|||||||
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
|
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
|
||||||
LINES TERMINATED BY '\n'
|
LINES TERMINATED BY '\n'
|
||||||
FROM schemata LIMIT 0, 5;
|
FROM schemata LIMIT 0, 5;
|
||||||
# FIXME 3.2.1.2: why do we get different error numbers with and without OUTFILE ?
|
# The above will fail with access error as long as
|
||||||
|
# BUBG#28181 - a regression introduced in 5.0.42 is not fixed
|
||||||
|
|
||||||
eval SELECT *
|
eval SELECT *
|
||||||
FROM schemata LIMIT 0, 5;
|
FROM schemata LIMIT 0, 5;
|
||||||
|
|
||||||
@ -485,8 +487,9 @@ eval SELECT *
|
|||||||
LINES TERMINATED BY '\n'
|
LINES TERMINATED BY '\n'
|
||||||
FROM information_schema.schemata
|
FROM information_schema.schemata
|
||||||
WHERE schema_name LIKE 'db_%';
|
WHERE schema_name LIKE 'db_%';
|
||||||
# FIXME: why do we get different error numbers with and without OUTFILE ?
|
# The above will fail with access error as long as
|
||||||
#FIXME this should fail! --error 1146
|
# BUBG#28181 - a regression introduced in 5.0.42 is not fixed
|
||||||
|
|
||||||
eval SELECT *
|
eval SELECT *
|
||||||
FROM information_schema.schemata
|
FROM information_schema.schemata
|
||||||
WHERE schema_name LIKE 'db_%';
|
WHERE schema_name LIKE 'db_%';
|
||||||
@ -3020,12 +3023,13 @@ GRANT SELECT ON db_datadict.v3 to 'user_3'@'localhost';
|
|||||||
# 13 DATA_FREE
|
# 13 DATA_FREE
|
||||||
# 15 CREATE_TIME
|
# 15 CREATE_TIME
|
||||||
# 16 UPDATE_TIME
|
# 16 UPDATE_TIME
|
||||||
|
# 17 CHECK_TIME
|
||||||
# 20 CREATE_OPTIONS
|
# 20 CREATE_OPTIONS
|
||||||
if ($have_bug_11589)
|
if ($have_bug_11589)
|
||||||
{
|
{
|
||||||
--disable_ps_protocol
|
--disable_ps_protocol
|
||||||
}
|
}
|
||||||
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
|
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
|
||||||
SELECT * FROM information_schema.tables
|
SELECT * FROM information_schema.tables
|
||||||
WHERE table_schema = 'information_schema';
|
WHERE table_schema = 'information_schema';
|
||||||
# 9 AVG_ROW_LENGTH
|
# 9 AVG_ROW_LENGTH
|
||||||
@ -3035,7 +3039,8 @@ SELECT * FROM information_schema.tables
|
|||||||
# 13 DATA_FREE
|
# 13 DATA_FREE
|
||||||
# 15 CREATE_TIME
|
# 15 CREATE_TIME
|
||||||
# 16 UPDATE_TIME
|
# 16 UPDATE_TIME
|
||||||
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss"
|
# 17 CHECK_TIME
|
||||||
|
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
|
||||||
SELECT * FROM information_schema.tables
|
SELECT * FROM information_schema.tables
|
||||||
WHERE NOT( table_schema = 'information_schema');
|
WHERE NOT( table_schema = 'information_schema');
|
||||||
--enable_ps_protocol
|
--enable_ps_protocol
|
||||||
@ -3055,12 +3060,13 @@ connect (user_12_2, localhost, user_2, , db_datadict);
|
|||||||
# 13 DATA_FREE
|
# 13 DATA_FREE
|
||||||
# 15 CREATE_TIME
|
# 15 CREATE_TIME
|
||||||
# 16 UPDATE_TIME
|
# 16 UPDATE_TIME
|
||||||
|
# 17 CHECK_TIME
|
||||||
# 20 CREATE_OPTIONS
|
# 20 CREATE_OPTIONS
|
||||||
if ($have_bug_11589)
|
if ($have_bug_11589)
|
||||||
{
|
{
|
||||||
--disable_ps_protocol
|
--disable_ps_protocol
|
||||||
}
|
}
|
||||||
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
|
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
|
||||||
SELECT * FROM information_schema.tables
|
SELECT * FROM information_schema.tables
|
||||||
WHERE table_schema = 'information_schema';
|
WHERE table_schema = 'information_schema';
|
||||||
# 9 AVG_ROW_LENGTH
|
# 9 AVG_ROW_LENGTH
|
||||||
@ -3070,7 +3076,8 @@ SELECT * FROM information_schema.tables
|
|||||||
# 13 DATA_FREE
|
# 13 DATA_FREE
|
||||||
# 15 CREATE_TIME
|
# 15 CREATE_TIME
|
||||||
# 16 UPDATE_TIME
|
# 16 UPDATE_TIME
|
||||||
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss"
|
# 17 CHECK_TIME
|
||||||
|
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
|
||||||
SELECT * FROM information_schema.tables
|
SELECT * FROM information_schema.tables
|
||||||
WHERE NOT( table_schema = 'information_schema');
|
WHERE NOT( table_schema = 'information_schema');
|
||||||
--enable_ps_protocol
|
--enable_ps_protocol
|
||||||
@ -3091,12 +3098,13 @@ connect (user_12_3, localhost, user_3, , db_datadict);
|
|||||||
# 13 DATA_FREE
|
# 13 DATA_FREE
|
||||||
# 15 CREATE_TIME
|
# 15 CREATE_TIME
|
||||||
# 16 UPDATE_TIME
|
# 16 UPDATE_TIME
|
||||||
|
# 17 CHECK_TIME
|
||||||
# 20 CREATE_OPTIONS
|
# 20 CREATE_OPTIONS
|
||||||
if ($have_bug_11589)
|
if ($have_bug_11589)
|
||||||
{
|
{
|
||||||
--disable_ps_protocol
|
--disable_ps_protocol
|
||||||
}
|
}
|
||||||
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
|
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
|
||||||
SELECT * FROM information_schema.tables
|
SELECT * FROM information_schema.tables
|
||||||
WHERE table_schema = 'information_schema';
|
WHERE table_schema = 'information_schema';
|
||||||
# 9 AVG_ROW_LENGTH
|
# 9 AVG_ROW_LENGTH
|
||||||
@ -3106,7 +3114,8 @@ SELECT * FROM information_schema.tables
|
|||||||
# 13 DATA_FREE
|
# 13 DATA_FREE
|
||||||
# 15 CREATE_TIME
|
# 15 CREATE_TIME
|
||||||
# 16 UPDATE_TIME
|
# 16 UPDATE_TIME
|
||||||
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss"
|
# 17 CHECK_TIME
|
||||||
|
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
|
||||||
SELECT * FROM information_schema.tables
|
SELECT * FROM information_schema.tables
|
||||||
WHERE NOT( table_schema = 'information_schema');
|
WHERE NOT( table_schema = 'information_schema');
|
||||||
--enable_ps_protocol
|
--enable_ps_protocol
|
||||||
@ -3127,12 +3136,13 @@ connection default;
|
|||||||
# 13 DATA_FREE
|
# 13 DATA_FREE
|
||||||
# 15 CREATE_TIME
|
# 15 CREATE_TIME
|
||||||
# 16 UPDATE_TIME
|
# 16 UPDATE_TIME
|
||||||
|
# 17 CHECK_TIME
|
||||||
# 20 CREATE_OPTIONS
|
# 20 CREATE_OPTIONS
|
||||||
if ($have_bug_11589)
|
if ($have_bug_11589)
|
||||||
{
|
{
|
||||||
--disable_ps_protocol
|
--disable_ps_protocol
|
||||||
}
|
}
|
||||||
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
|
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#"
|
||||||
SELECT * FROM information_schema.tables
|
SELECT * FROM information_schema.tables
|
||||||
WHERE table_schema = 'information_schema';
|
WHERE table_schema = 'information_schema';
|
||||||
# 9 AVG_ROW_LENGTH
|
# 9 AVG_ROW_LENGTH
|
||||||
@ -3142,7 +3152,8 @@ SELECT * FROM information_schema.tables
|
|||||||
# 13 DATA_FREE
|
# 13 DATA_FREE
|
||||||
# 15 CREATE_TIME
|
# 15 CREATE_TIME
|
||||||
# 16 UPDATE_TIME
|
# 16 UPDATE_TIME
|
||||||
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss"
|
# 17 CHECK_TIME
|
||||||
|
--replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
|
||||||
SELECT * FROM information_schema.tables
|
SELECT * FROM information_schema.tables
|
||||||
WHERE NOT( table_schema = 'information_schema');
|
WHERE NOT( table_schema = 'information_schema');
|
||||||
--enable_ps_protocol
|
--enable_ps_protocol
|
||||||
@ -3870,11 +3881,11 @@ let $message= Testcase 3.2.20.1:;
|
|||||||
let $is_table= referential_constraints;
|
let $is_table= referential_constraints;
|
||||||
# when table is implemented remove this and the next 4 lines and "enable" 5th line:
|
# when table is implemented remove this and the next 4 lines and "enable" 5th line:
|
||||||
# and don't forget to add the test description to QATestPlanV50func
|
# and don't forget to add the test description to QATestPlanV50func
|
||||||
let $message= checking a table that will be implemented later;
|
#let $message= checking a table that will be implemented later;
|
||||||
--source include/show_msg.inc
|
#--source include/show_msg.inc
|
||||||
--error 0,1109
|
#--error 1109
|
||||||
eval DESC $is_table;
|
eval DESC $is_table;
|
||||||
#--source suite/funcs_1/datadict/datadict_show_table_design.inc
|
--source suite/funcs_1/datadict/datadict_show_table_design.inc
|
||||||
# -------------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ eval select table_name, index_schema, index_name, index_type
|
|||||||
|
|
||||||
--replace_result $SERVER_NAME <SERVER_NAME>
|
--replace_result $SERVER_NAME <SERVER_NAME>
|
||||||
eval select *
|
eval select *
|
||||||
from information_schema.user_privileges;
|
from information_schema.user_privileges order by grantee, privilege_type;
|
||||||
# where grantee="'u_6_401013'@'%'";
|
# where grantee="'u_6_401013'@'%'";
|
||||||
|
|
||||||
eval select *
|
eval select *
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
|
|
||||||
. Just show the version string for which the results in suite
|
|
||||||
. funcs_1 have been checked.
|
|
||||||
.
|
|
||||||
. I know that the .result file of this check needs to
|
|
||||||
. updated with each new version --- THIS IS INTENDED!
|
|
||||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
funcs_1 checked with version: 5.1.17
|
|
||||||
Warnings:
|
|
||||||
Warning 1548 Leading spaces are removed from name ' '
|
|
File diff suppressed because it is too large
Load Diff
@ -3935,13 +3935,11 @@ CAST(my_time AS DATETIME) my_time id
|
|||||||
NULL NULL 1
|
NULL NULL 1
|
||||||
0000-00-00 00:00:00 -838:59:59 2
|
0000-00-00 00:00:00 -838:59:59 2
|
||||||
0000-00-00 00:00:00 838:59:59 3
|
0000-00-00 00:00:00 838:59:59 3
|
||||||
0000-00-00 00:00:00 13:00:00 4
|
0000-00-00 13:00:00 13:00:00 4
|
||||||
0000-00-00 00:00:00 10:00:00 5
|
0000-00-00 10:00:00 10:00:00 5
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 13:00:00'
|
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 10:00:00'
|
|
||||||
SHOW CREATE VIEW v1;
|
SHOW CREATE VIEW v1;
|
||||||
View Create View
|
View Create View
|
||||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as datetime) AS `CAST(my_time AS DATETIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as datetime) AS `CAST(my_time AS DATETIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
|
||||||
@ -3952,13 +3950,11 @@ CAST(my_time AS DATETIME) my_time id
|
|||||||
NULL NULL 1
|
NULL NULL 1
|
||||||
0000-00-00 00:00:00 -838:59:59 2
|
0000-00-00 00:00:00 -838:59:59 2
|
||||||
0000-00-00 00:00:00 838:59:59 3
|
0000-00-00 00:00:00 838:59:59 3
|
||||||
0000-00-00 00:00:00 13:00:00 4
|
0000-00-00 13:00:00 13:00:00 4
|
||||||
0000-00-00 00:00:00 10:00:00 5
|
0000-00-00 10:00:00 10:00:00 5
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 13:00:00'
|
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 10:00:00'
|
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
|
|
||||||
|
|
||||||
|
@ -199,6 +199,9 @@ CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1
|
|||||||
for each row set new.f3 = '14';
|
for each row set new.f3 = '14';
|
||||||
CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||||
BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
|
BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
|
||||||
|
ERROR 42000: Identifier name 'trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ' is too long
|
||||||
|
CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
|
||||||
|
BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
|
||||||
insert into t1 (f2) values ('insert 3.5.1.7');
|
insert into t1 (f2) values ('insert 3.5.1.7');
|
||||||
select * from t1;
|
select * from t1;
|
||||||
f1 f2 f3
|
f1 f2 f3
|
||||||
@ -213,6 +216,8 @@ trg5_1
|
|||||||
trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
|
trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
|
||||||
drop trigger trg5_1;
|
drop trigger trg5_1;
|
||||||
drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
|
drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
|
||||||
|
ERROR 42000: Identifier name 'trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ' is too long
|
||||||
|
drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
Testcase 3.5.1.8:
|
Testcase 3.5.1.8:
|
||||||
|
@ -492,8 +492,9 @@ BEGIN
|
|||||||
WHILE @counter1 < new.f136
|
WHILE @counter1 < new.f136
|
||||||
SET @counter1 = @counter1 + 1;
|
SET @counter1 = @counter1 + 1;
|
||||||
END//
|
END//
|
||||||
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 'SET @counter1 = @counter1 + 1;
|
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 'WHILE @counter1 < new.f136
|
||||||
END' at line 4
|
SET @counter1 = @counter1 + 1;
|
||||||
|
END' at line 3
|
||||||
delete from tb3 where f122='Test 3.5.8.5-while';
|
delete from tb3 where f122='Test 3.5.8.5-while';
|
||||||
drop trigger trg7;
|
drop trigger trg7;
|
||||||
|
|
||||||
|
@ -448,7 +448,8 @@ SET @x=0;
|
|||||||
CREATE or REPLACE VIEW v1 AS Select 1 INTO @x;
|
CREATE or REPLACE VIEW v1 AS Select 1 INTO @x;
|
||||||
ERROR HY000: View's SELECT contains a 'INTO' clause
|
ERROR HY000: View's SELECT contains a 'INTO' clause
|
||||||
Select @x;
|
Select @x;
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
@x
|
||||||
|
0
|
||||||
CREATE or REPLACE VIEW v1 AS Select 1
|
CREATE or REPLACE VIEW v1 AS Select 1
|
||||||
FROM (SELECT 1 FROM t1) my_table;
|
FROM (SELECT 1 FROM t1) my_table;
|
||||||
ERROR HY000: View's SELECT contains a subquery in the FROM clause
|
ERROR HY000: View's SELECT contains a subquery in the FROM clause
|
||||||
@ -585,7 +586,9 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
|
|||||||
CREATE or REPLACE view v1 as Select f59, f60
|
CREATE or REPLACE view v1 as Select f59, f60
|
||||||
from tb2 by group f59 ;
|
from tb2 by group f59 ;
|
||||||
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 'by group f59' at line 2
|
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 'by group f59' at line 2
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
|
||||||
|
Testcase 3.3.1.5
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
DROP VIEW IF EXISTS v1 ;
|
DROP VIEW IF EXISTS v1 ;
|
||||||
CREATE VIEW v1 SELECT * FROM tb2 limit 100 ;
|
CREATE VIEW v1 SELECT * FROM tb2 limit 100 ;
|
||||||
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 'SELECT * FROM tb2 limit 100' at line 1
|
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 'SELECT * FROM tb2 limit 100' at line 1
|
||||||
@ -605,7 +608,9 @@ CREATE VIEW v1 SELECT 1;
|
|||||||
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 'SELECT 1' at line 1
|
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 'SELECT 1' at line 1
|
||||||
CREATE VIEW v1 AS ;
|
CREATE VIEW v1 AS ;
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
|
||||||
|
Testcase 3.3.1.6
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
DROP VIEW IF EXISTS v1 ;
|
DROP VIEW IF EXISTS v1 ;
|
||||||
CREATE or REPLACE VIEW v1
|
CREATE or REPLACE VIEW v1
|
||||||
as SELECT * from tb2 limit 100 ;
|
as SELECT * from tb2 limit 100 ;
|
||||||
@ -1790,7 +1795,9 @@ ERROR HY000: View's SELECT contains a subquery in the FROM clause
|
|||||||
SELECT * FROM test.v1 ;
|
SELECT * FROM test.v1 ;
|
||||||
ERROR 42S02: Table 'test.v1' doesn't exist
|
ERROR 42S02: Table 'test.v1' doesn't exist
|
||||||
Drop view if exists test.v1 ;
|
Drop view if exists test.v1 ;
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
|
||||||
|
Testcase 3.3.1.40
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
Drop view if exists test.v1 ;
|
Drop view if exists test.v1 ;
|
||||||
Set @var1 = 'ABC' ;
|
Set @var1 = 'ABC' ;
|
||||||
Set @var2 = 'XYZ' ;
|
Set @var2 = 'XYZ' ;
|
||||||
@ -1799,7 +1806,9 @@ ERROR HY000: View's SELECT contains a variable or parameter
|
|||||||
CREATE VIEW test.v1 AS SELECT @@global.sort_buffer_size;
|
CREATE VIEW test.v1 AS SELECT @@global.sort_buffer_size;
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
ERROR HY000: View's SELECT contains a variable or parameter
|
||||||
Drop view if exists test.v1 ;
|
Drop view if exists test.v1 ;
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
|
||||||
|
Testcase 3.3.1.41
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
Drop view if exists test.v1 ;
|
Drop view if exists test.v1 ;
|
||||||
Drop procedure if exists sp1 ;
|
Drop procedure if exists sp1 ;
|
||||||
Create procedure sp1() DETERMINISTIC
|
Create procedure sp1() DETERMINISTIC
|
||||||
@ -1816,7 +1825,9 @@ Warnings:
|
|||||||
Note 1051 Unknown table 'test.v1'
|
Note 1051 Unknown table 'test.v1'
|
||||||
Drop procedure sp1 ;
|
Drop procedure sp1 ;
|
||||||
ERROR 42000: PROCEDURE test.sp1 does not exist
|
ERROR 42000: PROCEDURE test.sp1 does not exist
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
|
||||||
|
Testcase 3.3.1.42
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
Drop VIEW if exists test.v1 ;
|
Drop VIEW if exists test.v1 ;
|
||||||
CREATE TEMPORARY VIEW test.v1 AS
|
CREATE TEMPORARY VIEW test.v1 AS
|
||||||
SELECT * FROM test.tb2 limit 2 ;
|
SELECT * FROM test.tb2 limit 2 ;
|
||||||
@ -1828,7 +1839,9 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
|
|||||||
SELECT * FROM test.tb2 limit 2' at line 1
|
SELECT * FROM test.tb2 limit 2' at line 1
|
||||||
Drop view if exists test.v1 ;
|
Drop view if exists test.v1 ;
|
||||||
Use test;
|
Use test;
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
|
||||||
|
Testcase 3.3.1.43
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
Drop view if exists test.v1 ;
|
Drop view if exists test.v1 ;
|
||||||
CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2;
|
CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2;
|
||||||
INSERT INTO test.v1 values(122,432);
|
INSERT INTO test.v1 values(122,432);
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
mysqltest: Warning detected in included file ./suite/funcs_1/views/views_master.inc at line 3039: Suspicious command '--eror 1116' detected, was this intentional? Use # instead of -- to avoid this warning
|
|
||||||
mysqltest: Warning detected in included file ./suite/funcs_1/views/views_master.inc at line 3050: Suspicious command '--eror 1116' detected, was this intentional? Use # instead of -- to avoid this warning
|
|
File diff suppressed because it is too large
Load Diff
@ -3935,13 +3935,11 @@ CAST(my_time AS DATETIME) my_time id
|
|||||||
NULL NULL 1
|
NULL NULL 1
|
||||||
0000-00-00 00:00:00 -838:59:59 2
|
0000-00-00 00:00:00 -838:59:59 2
|
||||||
0000-00-00 00:00:00 838:59:59 3
|
0000-00-00 00:00:00 838:59:59 3
|
||||||
0000-00-00 00:00:00 13:00:00 4
|
0000-00-00 13:00:00 13:00:00 4
|
||||||
0000-00-00 00:00:00 10:00:00 5
|
0000-00-00 10:00:00 10:00:00 5
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 13:00:00'
|
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 10:00:00'
|
|
||||||
SHOW CREATE VIEW v1;
|
SHOW CREATE VIEW v1;
|
||||||
View Create View
|
View Create View
|
||||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as datetime) AS `CAST(my_time AS DATETIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as datetime) AS `CAST(my_time AS DATETIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
|
||||||
@ -3952,13 +3950,11 @@ CAST(my_time AS DATETIME) my_time id
|
|||||||
NULL NULL 1
|
NULL NULL 1
|
||||||
0000-00-00 00:00:00 -838:59:59 2
|
0000-00-00 00:00:00 -838:59:59 2
|
||||||
0000-00-00 00:00:00 838:59:59 3
|
0000-00-00 00:00:00 838:59:59 3
|
||||||
0000-00-00 00:00:00 13:00:00 4
|
0000-00-00 13:00:00 13:00:00 4
|
||||||
0000-00-00 00:00:00 10:00:00 5
|
0000-00-00 10:00:00 10:00:00 5
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 13:00:00'
|
|
||||||
Warning 1292 Incorrect datetime value: '0000-00-00 10:00:00'
|
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
|
|
||||||
|
|
||||||
|
@ -195,6 +195,9 @@ CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1
|
|||||||
for each row set new.f3 = '14';
|
for each row set new.f3 = '14';
|
||||||
CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||||
BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
|
BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
|
||||||
|
ERROR 42000: Identifier name 'trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ' is too long
|
||||||
|
CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
|
||||||
|
BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
|
||||||
insert into t1 (f2) values ('insert 3.5.1.7');
|
insert into t1 (f2) values ('insert 3.5.1.7');
|
||||||
select * from t1;
|
select * from t1;
|
||||||
f1 f2 f3
|
f1 f2 f3
|
||||||
@ -209,6 +212,8 @@ trg5_1
|
|||||||
trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
|
trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
|
||||||
drop trigger trg5_1;
|
drop trigger trg5_1;
|
||||||
drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
|
drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
|
||||||
|
ERROR 42000: Identifier name 'trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ' is too long
|
||||||
|
drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
Testcase 3.5.1.8:
|
Testcase 3.5.1.8:
|
||||||
|
@ -488,8 +488,9 @@ BEGIN
|
|||||||
WHILE @counter1 < new.f136
|
WHILE @counter1 < new.f136
|
||||||
SET @counter1 = @counter1 + 1;
|
SET @counter1 = @counter1 + 1;
|
||||||
END//
|
END//
|
||||||
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 'SET @counter1 = @counter1 + 1;
|
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 'WHILE @counter1 < new.f136
|
||||||
END' at line 4
|
SET @counter1 = @counter1 + 1;
|
||||||
|
END' at line 3
|
||||||
delete from tb3 where f122='Test 3.5.8.5-while';
|
delete from tb3 where f122='Test 3.5.8.5-while';
|
||||||
drop trigger trg7;
|
drop trigger trg7;
|
||||||
|
|
||||||
|
@ -452,7 +452,8 @@ SET @x=0;
|
|||||||
CREATE or REPLACE VIEW v1 AS Select 1 INTO @x;
|
CREATE or REPLACE VIEW v1 AS Select 1 INTO @x;
|
||||||
ERROR HY000: View's SELECT contains a 'INTO' clause
|
ERROR HY000: View's SELECT contains a 'INTO' clause
|
||||||
Select @x;
|
Select @x;
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
@x
|
||||||
|
0
|
||||||
CREATE or REPLACE VIEW v1 AS Select 1
|
CREATE or REPLACE VIEW v1 AS Select 1
|
||||||
FROM (SELECT 1 FROM t1) my_table;
|
FROM (SELECT 1 FROM t1) my_table;
|
||||||
ERROR HY000: View's SELECT contains a subquery in the FROM clause
|
ERROR HY000: View's SELECT contains a subquery in the FROM clause
|
||||||
@ -589,7 +590,9 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
|
|||||||
CREATE or REPLACE view v1 as Select f59, f60
|
CREATE or REPLACE view v1 as Select f59, f60
|
||||||
from tb2 by group f59 ;
|
from tb2 by group f59 ;
|
||||||
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 'by group f59' at line 2
|
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 'by group f59' at line 2
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
|
||||||
|
Testcase 3.3.1.5
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
DROP VIEW IF EXISTS v1 ;
|
DROP VIEW IF EXISTS v1 ;
|
||||||
CREATE VIEW v1 SELECT * FROM tb2 limit 100 ;
|
CREATE VIEW v1 SELECT * FROM tb2 limit 100 ;
|
||||||
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 'SELECT * FROM tb2 limit 100' at line 1
|
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 'SELECT * FROM tb2 limit 100' at line 1
|
||||||
@ -609,7 +612,9 @@ CREATE VIEW v1 SELECT 1;
|
|||||||
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 'SELECT 1' at line 1
|
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 'SELECT 1' at line 1
|
||||||
CREATE VIEW v1 AS ;
|
CREATE VIEW v1 AS ;
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
|
||||||
|
Testcase 3.3.1.6
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
DROP VIEW IF EXISTS v1 ;
|
DROP VIEW IF EXISTS v1 ;
|
||||||
CREATE or REPLACE VIEW v1
|
CREATE or REPLACE VIEW v1
|
||||||
as SELECT * from tb2 limit 100 ;
|
as SELECT * from tb2 limit 100 ;
|
||||||
@ -1794,7 +1799,9 @@ ERROR HY000: View's SELECT contains a subquery in the FROM clause
|
|||||||
SELECT * FROM test.v1 ;
|
SELECT * FROM test.v1 ;
|
||||||
ERROR 42S02: Table 'test.v1' doesn't exist
|
ERROR 42S02: Table 'test.v1' doesn't exist
|
||||||
Drop view if exists test.v1 ;
|
Drop view if exists test.v1 ;
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
|
||||||
|
Testcase 3.3.1.40
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
Drop view if exists test.v1 ;
|
Drop view if exists test.v1 ;
|
||||||
Set @var1 = 'ABC' ;
|
Set @var1 = 'ABC' ;
|
||||||
Set @var2 = 'XYZ' ;
|
Set @var2 = 'XYZ' ;
|
||||||
@ -1803,7 +1810,9 @@ ERROR HY000: View's SELECT contains a variable or parameter
|
|||||||
CREATE VIEW test.v1 AS SELECT @@global.sort_buffer_size;
|
CREATE VIEW test.v1 AS SELECT @@global.sort_buffer_size;
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
ERROR HY000: View's SELECT contains a variable or parameter
|
||||||
Drop view if exists test.v1 ;
|
Drop view if exists test.v1 ;
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
|
||||||
|
Testcase 3.3.1.41
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
Drop view if exists test.v1 ;
|
Drop view if exists test.v1 ;
|
||||||
Drop procedure if exists sp1 ;
|
Drop procedure if exists sp1 ;
|
||||||
Create procedure sp1() DETERMINISTIC
|
Create procedure sp1() DETERMINISTIC
|
||||||
@ -1820,7 +1829,9 @@ Warnings:
|
|||||||
Note 1051 Unknown table 'test.v1'
|
Note 1051 Unknown table 'test.v1'
|
||||||
Drop procedure sp1 ;
|
Drop procedure sp1 ;
|
||||||
ERROR 42000: PROCEDURE test.sp1 does not exist
|
ERROR 42000: PROCEDURE test.sp1 does not exist
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
|
||||||
|
Testcase 3.3.1.42
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
Drop VIEW if exists test.v1 ;
|
Drop VIEW if exists test.v1 ;
|
||||||
CREATE TEMPORARY VIEW test.v1 AS
|
CREATE TEMPORARY VIEW test.v1 AS
|
||||||
SELECT * FROM test.tb2 limit 2 ;
|
SELECT * FROM test.tb2 limit 2 ;
|
||||||
@ -1832,7 +1843,9 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
|
|||||||
SELECT * FROM test.tb2 limit 2' at line 1
|
SELECT * FROM test.tb2 limit 2' at line 1
|
||||||
Drop view if exists test.v1 ;
|
Drop view if exists test.v1 ;
|
||||||
Use test;
|
Use test;
|
||||||
ERROR HY000: View's SELECT contains a variable or parameter
|
|
||||||
|
Testcase 3.3.1.43
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
Drop view if exists test.v1 ;
|
Drop view if exists test.v1 ;
|
||||||
CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2;
|
CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2;
|
||||||
INSERT INTO test.v1 values(122,432);
|
INSERT INTO test.v1 values(122,432);
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
mysqltest: Warning detected in included file ./suite/funcs_1/views/views_master.inc at line 3039: Suspicious command '--eror 1116' detected, was this intentional? Use # instead of -- to avoid this warning
|
|
||||||
mysqltest: Warning detected in included file ./suite/funcs_1/views/views_master.inc at line 3050: Suspicious command '--eror 1116' detected, was this intentional? Use # instead of -- to avoid this warning
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user