post-merge fixes.
most tests pass. 5.3 merge is next
This commit is contained in:
parent
9809f05199
commit
b4a0b2c2f8
2
VERSION
2
VERSION
@ -1,4 +1,4 @@
|
|||||||
MYSQL_VERSION_MAJOR=5
|
MYSQL_VERSION_MAJOR=5
|
||||||
MYSQL_VERSION_MINOR=5
|
MYSQL_VERSION_MINOR=5
|
||||||
MYSQL_VERSION_PATCH=15
|
MYSQL_VERSION_PATCH=15
|
||||||
MYSQL_VERSION_EXTRA=
|
MYSQL_VERSION_EXTRA=-MariaDB
|
||||||
|
@ -37,13 +37,12 @@
|
|||||||
#include "sql_common.h"
|
#include "sql_common.h"
|
||||||
#include <welcome_copyright_notice.h> // ORACLE_WELCOME_COPYRIGHT_NOTICE
|
#include <welcome_copyright_notice.h> // ORACLE_WELCOME_COPYRIGHT_NOTICE
|
||||||
|
|
||||||
/* Needed for Rpl_filter */
|
|
||||||
CHARSET_INFO* system_charset_info= &my_charset_utf8_general_ci;
|
|
||||||
|
|
||||||
#include "sql_string.h" // needed for Rpl_filter
|
#include "sql_string.h" // needed for Rpl_filter
|
||||||
#include "sql_list.h" // needed for Rpl_filter
|
#include "sql_list.h" // needed for Rpl_filter
|
||||||
#include "rpl_filter.h"
|
#include "rpl_filter.h"
|
||||||
|
|
||||||
|
#include "mysqld.h"
|
||||||
|
|
||||||
Rpl_filter *binlog_filter;
|
Rpl_filter *binlog_filter;
|
||||||
|
|
||||||
#define BIN_LOG_HEADER_SIZE 4
|
#define BIN_LOG_HEADER_SIZE 4
|
||||||
@ -52,6 +51,9 @@ Rpl_filter *binlog_filter;
|
|||||||
|
|
||||||
#define CLIENT_CAPABILITIES (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | CLIENT_LOCAL_FILES)
|
#define CLIENT_CAPABILITIES (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | CLIENT_LOCAL_FILES)
|
||||||
|
|
||||||
|
/* Needed for Rpl_filter */
|
||||||
|
CHARSET_INFO* system_charset_info= &my_charset_utf8_general_ci;
|
||||||
|
|
||||||
char server_version[SERVER_VERSION_LENGTH];
|
char server_version[SERVER_VERSION_LENGTH];
|
||||||
ulong server_id = 0;
|
ulong server_id = 0;
|
||||||
|
|
||||||
@ -66,7 +68,7 @@ static FILE *result_file;
|
|||||||
#ifndef DBUG_OFF
|
#ifndef DBUG_OFF
|
||||||
static const char* default_dbug_option = "d:t:o,/tmp/mysqlbinlog.trace";
|
static const char* default_dbug_option = "d:t:o,/tmp/mysqlbinlog.trace";
|
||||||
#endif
|
#endif
|
||||||
static const char *load_default_groups[]= { "mysqlbinlog","client",0 };
|
static const char *load_groups[]= { "mysqlbinlog","client",0 };
|
||||||
|
|
||||||
static void error(const char *format, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
|
static void error(const char *format, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
|
||||||
static void warning(const char *format, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
|
static void warning(const char *format, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
|
||||||
@ -89,7 +91,7 @@ static char* host = 0;
|
|||||||
static int port= 0;
|
static int port= 0;
|
||||||
static uint my_end_arg;
|
static uint my_end_arg;
|
||||||
static const char* sock= 0;
|
static const char* sock= 0;
|
||||||
static char *opt_plugin_dir= 0, *opt_default_auth= 0;
|
static char *opt_plugindir= 0, *opt_default_auth= 0;
|
||||||
|
|
||||||
#ifdef HAVE_SMEM
|
#ifdef HAVE_SMEM
|
||||||
static char *shared_memory_base_name= 0;
|
static char *shared_memory_base_name= 0;
|
||||||
@ -449,7 +451,7 @@ Exit_status Load_log_processor::process_first_event(const char *bname,
|
|||||||
ptr= fname + target_dir_name_len;
|
ptr= fname + target_dir_name_len;
|
||||||
memcpy(ptr,bname,blen);
|
memcpy(ptr,bname,blen);
|
||||||
ptr+= blen;
|
ptr+= blen;
|
||||||
ptr+= my_sprintf(ptr, (ptr, "-%x", file_id));
|
ptr+= sprintf(ptr, "-%x", file_id);
|
||||||
|
|
||||||
if ((file= create_unique_file(fname,ptr)) < 0)
|
if ((file= create_unique_file(fname,ptr)) < 0)
|
||||||
{
|
{
|
||||||
@ -1069,7 +1071,7 @@ end:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static struct my_option my_long_options[] =
|
static struct my_option my_options[] =
|
||||||
{
|
{
|
||||||
{"help", '?', "Display this help and exit.",
|
{"help", '?', "Display this help and exit.",
|
||||||
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
@ -1139,7 +1141,7 @@ static struct my_option my_long_options[] =
|
|||||||
{"password", 'p', "Password to connect to remote server.",
|
{"password", 'p', "Password to connect to remote server.",
|
||||||
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
|
{"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
|
||||||
&opt_plugin_dir, &opt_plugin_dir, 0,
|
&opt_plugindir, &opt_plugindir, 0,
|
||||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||||
@ -1327,8 +1329,8 @@ static void usage()
|
|||||||
Dumps a MySQL binary log in a format usable for viewing or for piping to\n\
|
Dumps a MySQL binary log in a format usable for viewing or for piping to\n\
|
||||||
the mysql command line client.\n\n");
|
the mysql command line client.\n\n");
|
||||||
printf("Usage: %s [options] log-files\n", my_progname);
|
printf("Usage: %s [options] log-files\n", my_progname);
|
||||||
my_print_help(my_long_options);
|
my_print_help(my_options);
|
||||||
my_print_variables(my_long_options);
|
my_print_variables(my_options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1482,7 +1484,7 @@ static int parse_args(int *argc, char*** argv)
|
|||||||
int ho_error;
|
int ho_error;
|
||||||
|
|
||||||
result_file = stdout;
|
result_file = stdout;
|
||||||
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
|
if ((ho_error=handle_options(argc, argv, my_options, get_one_option)))
|
||||||
exit(ho_error);
|
exit(ho_error);
|
||||||
if (debug_info_flag)
|
if (debug_info_flag)
|
||||||
my_end_arg= MY_CHECK_ERROR | MY_GIVE_INFO;
|
my_end_arg= MY_CHECK_ERROR | MY_GIVE_INFO;
|
||||||
@ -1513,8 +1515,8 @@ static Exit_status safe_connect()
|
|||||||
return ERROR_STOP;
|
return ERROR_STOP;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opt_plugin_dir && *opt_plugin_dir)
|
if (opt_plugindir && *opt_plugindir)
|
||||||
mysql_options(mysql, MYSQL_PLUGIN_DIR, opt_plugin_dir);
|
mysql_options(mysql, MYSQL_PLUGIN_DIR, opt_plugindir);
|
||||||
|
|
||||||
if (opt_default_auth && *opt_default_auth)
|
if (opt_default_auth && *opt_default_auth)
|
||||||
mysql_options(mysql, MYSQL_DEFAULT_AUTH, opt_default_auth);
|
mysql_options(mysql, MYSQL_DEFAULT_AUTH, opt_default_auth);
|
||||||
@ -2157,7 +2159,7 @@ int main(int argc, char** argv)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (load_defaults("my", load_default_groups, &argc, &argv))
|
if (load_defaults("my", load_groups, &argc, &argv))
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
defaults_argv= argv;
|
defaults_argv= argv;
|
||||||
|
@ -750,8 +750,7 @@ static int handle_request_for_tables(char *tables, uint length)
|
|||||||
if (opt_all_in_1)
|
if (opt_all_in_1)
|
||||||
{
|
{
|
||||||
/* No backticks here as we added them before */
|
/* No backticks here as we added them before */
|
||||||
query_length= my_sprintf(query,
|
query_length= sprintf(query, "%s TABLE %s %s", op, tables, options);
|
||||||
(query, "%s TABLE %s %s", op, tables, options));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -484,7 +484,7 @@ CHECK_FUNCTION_EXISTS(rdtscll HAVE_RDTSCLL)
|
|||||||
# Tests for symbols
|
# Tests for symbols
|
||||||
#
|
#
|
||||||
|
|
||||||
CHECK_SYMBOL_EXISTS(sys_errlist "stdio.h" HAVE_SYS_ERRLIST)
|
#CHECK_SYMBOL_EXISTS(sys_errlist "stdio.h" HAVE_SYS_ERRLIST)
|
||||||
CHECK_SYMBOL_EXISTS(madvise "sys/mman.h" HAVE_DECL_MADVISE)
|
CHECK_SYMBOL_EXISTS(madvise "sys/mman.h" HAVE_DECL_MADVISE)
|
||||||
CHECK_SYMBOL_EXISTS(tzname "time.h" HAVE_TZNAME)
|
CHECK_SYMBOL_EXISTS(tzname "time.h" HAVE_TZNAME)
|
||||||
CHECK_SYMBOL_EXISTS(lrand48 "stdlib.h" HAVE_LRAND48)
|
CHECK_SYMBOL_EXISTS(lrand48 "stdlib.h" HAVE_LRAND48)
|
||||||
|
78
dbug/user.r
78
dbug/user.r
@ -971,15 +971,6 @@ containing the macro causing the output.
|
|||||||
.LI i
|
.LI i
|
||||||
Mark each debugger output line with the PID (or thread ID) of the
|
Mark each debugger output line with the PID (or thread ID) of the
|
||||||
current process.
|
current process.
|
||||||
.LI g,[functions]
|
|
||||||
Enable profiling for the specified list of functions.
|
|
||||||
Every function can be a
|
|
||||||
.I glob(7)
|
|
||||||
pattern.
|
|
||||||
An empty list of functions enables profiling for all functions.
|
|
||||||
See
|
|
||||||
.B PROFILING\ WITH\ DBUG
|
|
||||||
below.
|
|
||||||
.LI L
|
.LI L
|
||||||
Mark each debugger output line with the source file line number of
|
Mark each debugger output line with the source file line number of
|
||||||
the macro causing the output.
|
the macro causing the output.
|
||||||
@ -1078,76 +1069,7 @@ all writes to a file are always followed by a flush.
|
|||||||
|
|
||||||
.SK
|
.SK
|
||||||
.B
|
.B
|
||||||
PROFILING WITH DBUG
|
|
||||||
.R
|
|
||||||
|
|
||||||
.P
|
|
||||||
With
|
|
||||||
.I dbug
|
|
||||||
one can do profiling in a machine independent fashion,
|
|
||||||
without a need for profiled version of system libraries.
|
|
||||||
For this,
|
|
||||||
.I dbug
|
|
||||||
can write out a file
|
|
||||||
called
|
|
||||||
.B dbugmon.out
|
|
||||||
(by default). This is an ascii file containing lines of the form:
|
|
||||||
.DS CB N
|
|
||||||
\fC<function-name> E <time-entered>
|
|
||||||
<function-name> X <time-exited>
|
|
||||||
.DE
|
|
||||||
|
|
||||||
.P
|
|
||||||
A second program (\fBanalyze\fR) reads this file, and produces a report on
|
|
||||||
standard output.
|
|
||||||
|
|
||||||
.P
|
|
||||||
Profiling is enabled through the
|
|
||||||
.B g
|
|
||||||
flag. It can take a list of
|
|
||||||
function names for which profiling is enabled. By default, it
|
|
||||||
profiles all functions.
|
|
||||||
|
|
||||||
.P
|
|
||||||
The profile file is opened for appending. This
|
|
||||||
is in order that one can run a program several times, and get the
|
|
||||||
sum total of all the times, etc.
|
|
||||||
|
|
||||||
.P
|
|
||||||
An example of the report generated follows:
|
|
||||||
.DS CB N
|
|
||||||
\fC
|
|
||||||
Profile of Execution
|
|
||||||
Execution times are in milliseconds
|
|
||||||
|
|
||||||
Calls Time
|
|
||||||
----- ----
|
|
||||||
Times Percentage Time Spent Percentage
|
|
||||||
Function Called of total in Function of total Importance
|
|
||||||
======== ====== ========== =========== ========== ==========
|
|
||||||
factorial 5 83.33 30 100.00 8333
|
|
||||||
main 1 16.67 0 0.00 0
|
|
||||||
======== ====== ========== =========== ==========
|
|
||||||
Totals 6 100.00 30 100.00
|
|
||||||
.DE
|
|
||||||
.P
|
|
||||||
As you can see, it's quite self-evident. The
|
|
||||||
.B Importance
|
|
||||||
column is a
|
|
||||||
metric obtained by multiplying the percentage of the calls and the percentage
|
|
||||||
of the time. Functions with higher 'importance' benefit the most from
|
|
||||||
being sped up.
|
|
||||||
|
|
||||||
.P
|
|
||||||
As a limitation - setjmp/longjmp, or child processes, are ignored
|
|
||||||
for the time being. Also, profiling does not work
|
|
||||||
in a multi-threaded environment.
|
|
||||||
|
|
||||||
.P
|
|
||||||
Profiling code is (c) Binayak Banerjee.
|
|
||||||
|
|
||||||
.SK
|
|
||||||
.B
|
|
||||||
HINTS AND MISCELLANEOUS
|
HINTS AND MISCELLANEOUS
|
||||||
.R
|
.R
|
||||||
|
|
||||||
|
@ -71,6 +71,24 @@ struct unicase_info_st
|
|||||||
extern MY_UNICASE_INFO *const my_unicase_default[256];
|
extern MY_UNICASE_INFO *const my_unicase_default[256];
|
||||||
extern MY_UNICASE_INFO *const my_unicase_turkish[256];
|
extern MY_UNICASE_INFO *const my_unicase_turkish[256];
|
||||||
|
|
||||||
|
#define MY_UCA_MAX_CONTRACTION 4
|
||||||
|
#define MY_UCA_MAX_WEIGHT_SIZE 8
|
||||||
|
|
||||||
|
typedef struct my_contraction_t
|
||||||
|
{
|
||||||
|
my_wc_t ch[MY_UCA_MAX_CONTRACTION]; /* Character sequence */
|
||||||
|
uint16 weight[MY_UCA_MAX_WEIGHT_SIZE];/* Its weight string, 0-terminated */
|
||||||
|
} MY_CONTRACTION;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct my_contraction_list_t
|
||||||
|
{
|
||||||
|
size_t nitems; /* Number of items in the list */
|
||||||
|
MY_CONTRACTION *item; /* List of contractions */
|
||||||
|
char *flags; /* Character flags, e.g. "is contraction head") */
|
||||||
|
} MY_CONTRACTIONS;
|
||||||
|
|
||||||
|
|
||||||
struct uni_ctype_st
|
struct uni_ctype_st
|
||||||
{
|
{
|
||||||
uchar pctype;
|
uchar pctype;
|
||||||
@ -103,7 +121,7 @@ extern MY_UNI_CTYPE my_uni_ctype[256];
|
|||||||
#define MY_CS_BINSORT 16 /* if binary sort order */
|
#define MY_CS_BINSORT 16 /* if binary sort order */
|
||||||
#define MY_CS_PRIMARY 32 /* if primary collation */
|
#define MY_CS_PRIMARY 32 /* if primary collation */
|
||||||
#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */
|
#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */
|
||||||
#define MY_CS_UNICODE 128 /* is a charset is BMP Unicode */
|
#define MY_CS_UNICODE 128 /* is a charset is full unicode */
|
||||||
#define MY_CS_READY 256 /* if a charset is initialized */
|
#define MY_CS_READY 256 /* if a charset is initialized */
|
||||||
#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/
|
#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/
|
||||||
#define MY_CS_CSSORT 1024 /* if case sensitive sort order */
|
#define MY_CS_CSSORT 1024 /* if case sensitive sort order */
|
||||||
@ -283,7 +301,7 @@ struct charset_info_st
|
|||||||
const uchar *to_lower;
|
const uchar *to_lower;
|
||||||
const uchar *to_upper;
|
const uchar *to_upper;
|
||||||
const uchar *sort_order;
|
const uchar *sort_order;
|
||||||
uint16 *contractions;
|
const MY_CONTRACTIONS *contractions;
|
||||||
const uint16 *const *sort_order_big;
|
const uint16 *const *sort_order_big;
|
||||||
const uint16 *tab_to_uni;
|
const uint16 *tab_to_uni;
|
||||||
MY_UNI_IDX *tab_from_uni;
|
MY_UNI_IDX *tab_from_uni;
|
||||||
@ -309,7 +327,7 @@ struct charset_info_st
|
|||||||
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_bin;
|
||||||
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_latin1;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_latin1;
|
||||||
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_filename;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_filename;
|
||||||
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8_general_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8_general_ci;
|
||||||
|
|
||||||
extern struct charset_info_st my_charset_big5_bin;
|
extern struct charset_info_st my_charset_big5_bin;
|
||||||
extern struct charset_info_st my_charset_big5_chinese_ci;
|
extern struct charset_info_st my_charset_big5_chinese_ci;
|
||||||
@ -351,31 +369,11 @@ extern struct charset_info_st my_charset_utf8mb4_unicode_ci;
|
|||||||
#define MY_UTF8MB3 "utf8"
|
#define MY_UTF8MB3 "utf8"
|
||||||
#define MY_UTF8MB4 "utf8mb4"
|
#define MY_UTF8MB4 "utf8mb4"
|
||||||
|
|
||||||
/* Helper functions to handle contraction */
|
my_bool my_cs_have_contractions(CHARSET_INFO *cs);
|
||||||
static inline my_bool
|
my_bool my_cs_can_be_contraction_head(CHARSET_INFO *cs, my_wc_t wc);
|
||||||
my_cs_have_contractions(CHARSET_INFO *cs)
|
my_bool my_cs_can_be_contraction_tail(CHARSET_INFO *cs, my_wc_t wc);
|
||||||
{
|
const uint16 *my_cs_contraction2_weight(CHARSET_INFO *cs, my_wc_t wc1,
|
||||||
return cs->contractions != NULL;
|
my_wc_t wc2);
|
||||||
}
|
|
||||||
|
|
||||||
static inline my_bool
|
|
||||||
my_cs_can_be_contraction_head(CHARSET_INFO *cs, my_wc_t wc)
|
|
||||||
{
|
|
||||||
return ((const char *)cs->contractions)[0x40*0x40 + (wc & 0xFF)];
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline my_bool
|
|
||||||
my_cs_can_be_contraction_tail(CHARSET_INFO *cs, my_wc_t wc)
|
|
||||||
{
|
|
||||||
return ((const char *)cs->contractions)[0x40*0x40 + (wc & 0xFF)];
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline uint16*
|
|
||||||
my_cs_contraction2_weight(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2)
|
|
||||||
{
|
|
||||||
return &cs->contractions[(wc1 - 0x40) * 0x40 + wc2 - 0x40];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* declarations for simple charsets */
|
/* declarations for simple charsets */
|
||||||
extern size_t my_strnxfrm_simple(CHARSET_INFO *, uchar *, size_t,
|
extern size_t my_strnxfrm_simple(CHARSET_INFO *, uchar *, size_t,
|
||||||
|
@ -25,7 +25,7 @@ extern "C" {
|
|||||||
#include <my_sys.h>
|
#include <my_sys.h>
|
||||||
#include <m_ctype.h>
|
#include <m_ctype.h>
|
||||||
#include "../storage/maria/ma_pagecache.h"
|
#include "../storage/maria/ma_pagecache.h"
|
||||||
#include "my_handler.h"
|
#include "my_compare.h"
|
||||||
#include "ft_global.h"
|
#include "ft_global.h"
|
||||||
#include <myisamchk.h>
|
#include <myisamchk.h>
|
||||||
#include <mysql/plugin.h>
|
#include <mysql/plugin.h>
|
||||||
@ -174,9 +174,7 @@ typedef struct st_maria_key /* Internal info about a key */
|
|||||||
typedef struct st_maria_keydef /* Key definition with open & info */
|
typedef struct st_maria_keydef /* Key definition with open & info */
|
||||||
{
|
{
|
||||||
struct st_maria_share *share; /* Pointer to base (set in open) */
|
struct st_maria_share *share; /* Pointer to base (set in open) */
|
||||||
#ifdef THREAD
|
|
||||||
rw_lock_t root_lock; /* locking of tree */
|
rw_lock_t root_lock; /* locking of tree */
|
||||||
#endif
|
|
||||||
uint16 keysegs; /* Number of key-segment */
|
uint16 keysegs; /* Number of key-segment */
|
||||||
uint16 flag; /* NOSAME, PACK_USED */
|
uint16 flag; /* NOSAME, PACK_USED */
|
||||||
|
|
||||||
@ -356,11 +354,9 @@ typedef struct st_maria_bit_buff
|
|||||||
|
|
||||||
typedef struct st_maria_sort_info
|
typedef struct st_maria_sort_info
|
||||||
{
|
{
|
||||||
#ifdef THREAD
|
|
||||||
/* sync things */
|
/* sync things */
|
||||||
pthread_mutex_t mutex;
|
pthread_mutex_t mutex;
|
||||||
pthread_cond_t cond;
|
pthread_cond_t cond;
|
||||||
#endif
|
|
||||||
MARIA_HA *info, *new_info;
|
MARIA_HA *info, *new_info;
|
||||||
HA_CHECK *param;
|
HA_CHECK *param;
|
||||||
char *buff;
|
char *buff;
|
||||||
|
@ -40,7 +40,7 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */
|
#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */
|
||||||
#define HA_MAX_KEY_SEG 16 /* Max segments for key */
|
#define HA_MAX_KEY_SEG 32 /* Max segments for key */
|
||||||
|
|
||||||
#define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24+ 6+6)
|
#define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24+ 6+6)
|
||||||
#define HA_MAX_KEY_BUFF (HA_MAX_KEY_LENGTH+HA_MAX_KEY_SEG*6+8+8)
|
#define HA_MAX_KEY_BUFF (HA_MAX_KEY_LENGTH+HA_MAX_KEY_SEG*6+8+8)
|
||||||
@ -106,10 +106,10 @@ typedef struct st_HA_KEYSEG /* Key-portion */
|
|||||||
#define clr_rec_bits(bit_ptr, bit_ofs, bit_len) \
|
#define clr_rec_bits(bit_ptr, bit_ofs, bit_len) \
|
||||||
set_rec_bits(0, bit_ptr, bit_ofs, bit_len)
|
set_rec_bits(0, bit_ptr, bit_ofs, bit_len)
|
||||||
|
|
||||||
extern int ha_compare_text(CHARSET_INFO *, uchar *, uint, uchar *, uint ,
|
extern int ha_compare_text(CHARSET_INFO *, const uchar *, uint,
|
||||||
my_bool, my_bool);
|
const uchar *, uint , my_bool, my_bool);
|
||||||
extern int ha_key_cmp(register HA_KEYSEG *keyseg, register uchar *a,
|
extern int ha_key_cmp(HA_KEYSEG *keyseg, const uchar *a,
|
||||||
register uchar *b, uint key_length, uint nextflag,
|
const uchar *b, uint key_length, uint nextflag,
|
||||||
uint *diff_pos);
|
uint *diff_pos);
|
||||||
extern HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, const uchar *a);
|
extern HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, const uchar *a);
|
||||||
|
|
||||||
@ -123,4 +123,28 @@ extern HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, const uchar *a);
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
Return values of index_cond_func_xxx functions.
|
||||||
|
|
||||||
|
0=ICP_NO_MATCH - index tuple doesn't satisfy the pushed index condition (the
|
||||||
|
engine should discard the tuple and go to the next one)
|
||||||
|
1=ICP_MATCH - index tuple satisfies the pushed index condition (the
|
||||||
|
engine should fetch and return the record)
|
||||||
|
2=ICP_OUT_OF_RANGE - index tuple is out range that we're scanning, e.g. this
|
||||||
|
if we're scanning "t.key BETWEEN 10 AND 20" and got a
|
||||||
|
"t.key=21" tuple (the engine should stop scanning and
|
||||||
|
return HA_ERR_END_OF_FILE right away).
|
||||||
|
-1= ICP_ERROR - Reserved for internal errors in engines. Should not be
|
||||||
|
returned by index_cond_func_xxx
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef enum icp_result {
|
||||||
|
ICP_ERROR=-1,
|
||||||
|
ICP_NO_MATCH=0,
|
||||||
|
ICP_MATCH=1,
|
||||||
|
ICP_OUT_OF_RANGE=2
|
||||||
|
} ICP_RESULT;
|
||||||
|
|
||||||
|
typedef ICP_RESULT (*index_cond_func_t)(void *param);
|
||||||
|
|
||||||
#endif /* _my_compare_h */
|
#endif /* _my_compare_h */
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
#define _my_sys_h
|
#define _my_sys_h
|
||||||
|
|
||||||
#include "my_global.h" /* C_MODE_START, C_MODE_END */
|
#include "my_global.h" /* C_MODE_START, C_MODE_END */
|
||||||
#include "my_valgrind.h"
|
|
||||||
|
|
||||||
C_MODE_START
|
C_MODE_START
|
||||||
|
|
||||||
@ -42,7 +41,7 @@ typedef struct my_aio_result {
|
|||||||
# define MEM_CHECK_ADDRESSABLE(a,len) VALGRIND_CHECK_MEM_IS_ADDRESSABLE(a,len)
|
# define MEM_CHECK_ADDRESSABLE(a,len) VALGRIND_CHECK_MEM_IS_ADDRESSABLE(a,len)
|
||||||
# define MEM_CHECK_DEFINED(a,len) VALGRIND_CHECK_MEM_IS_DEFINED(a,len)
|
# define MEM_CHECK_DEFINED(a,len) VALGRIND_CHECK_MEM_IS_DEFINED(a,len)
|
||||||
#else /* HAVE_VALGRIND */
|
#else /* HAVE_VALGRIND */
|
||||||
# define MEM_UNDEFINED(a,len) bfill(a, len, 0x8F)
|
# define MEM_UNDEFINED(a,len) ((void) 0)
|
||||||
# define MEM_NOACCESS(a,len) ((void) 0)
|
# define MEM_NOACCESS(a,len) ((void) 0)
|
||||||
# define MEM_CHECK_ADDRESSABLE(a,len) ((void) 0)
|
# define MEM_CHECK_ADDRESSABLE(a,len) ((void) 0)
|
||||||
# define MEM_CHECK_DEFINED(a,len) ((void) 0)
|
# define MEM_CHECK_DEFINED(a,len) ((void) 0)
|
||||||
@ -169,7 +168,12 @@ extern void *my_memdup(const void *from,size_t length,myf MyFlags);
|
|||||||
extern char *my_strdup(const char *from,myf MyFlags);
|
extern char *my_strdup(const char *from,myf MyFlags);
|
||||||
extern char *my_strndup(const char *from, size_t length,
|
extern char *my_strndup(const char *from, size_t length,
|
||||||
myf MyFlags);
|
myf MyFlags);
|
||||||
|
#ifdef SAFEMALLOC
|
||||||
|
#define TRASH(A,B) do { bfill(A, B, 0x8F); MEM_UNDEFINED(A, B); } while (0)
|
||||||
|
#else
|
||||||
#define TRASH(A,B) do{MEM_CHECK_ADDRESSABLE(A,B);MEM_UNDEFINED(A,B);} while (0)
|
#define TRASH(A,B) do{MEM_CHECK_ADDRESSABLE(A,B);MEM_UNDEFINED(A,B);} while (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(ENABLED_DEBUG_SYNC)
|
#if defined(ENABLED_DEBUG_SYNC)
|
||||||
extern void (*debug_sync_C_callback_ptr)(const char *, size_t);
|
extern void (*debug_sync_C_callback_ptr)(const char *, size_t);
|
||||||
#define DEBUG_SYNC_C(_sync_point_name_) do { \
|
#define DEBUG_SYNC_C(_sync_point_name_) do { \
|
||||||
|
@ -24,6 +24,8 @@ struct st_mysql_client_plugin_AUTHENTICATION
|
|||||||
int type; unsigned int interface_version; const char *name; const char *author; const char *desc; unsigned int version[3]; const char *license; void *mysql_api; int (*init)(char *, size_t, int, va_list); int (*deinit)(); int (*options)(const char *option, const void *);
|
int type; unsigned int interface_version; const char *name; const char *author; const char *desc; unsigned int version[3]; const char *license; void *mysql_api; int (*init)(char *, size_t, int, va_list); int (*deinit)(); int (*options)(const char *option, const void *);
|
||||||
int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, struct st_mysql *mysql);
|
int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, struct st_mysql *mysql);
|
||||||
};
|
};
|
||||||
|
typedef char *(*mysql_authentication_dialog_ask_t)(struct st_mysql *mysql,
|
||||||
|
int type, const char *prompt, char *buf, int buf_len);
|
||||||
struct st_mysql_client_plugin *
|
struct st_mysql_client_plugin *
|
||||||
mysql_load_plugin(struct st_mysql *mysql, const char *name, int type,
|
mysql_load_plugin(struct st_mysql *mysql, const char *name, int type,
|
||||||
int argc, ...);
|
int argc, ...);
|
||||||
|
@ -102,6 +102,22 @@ struct st_mysql_plugin
|
|||||||
struct st_mysql_sys_var **system_vars;
|
struct st_mysql_sys_var **system_vars;
|
||||||
void * __reserved1;
|
void * __reserved1;
|
||||||
};
|
};
|
||||||
|
struct st_maria_plugin
|
||||||
|
{
|
||||||
|
int type;
|
||||||
|
void *info;
|
||||||
|
const char *name;
|
||||||
|
const char *author;
|
||||||
|
const char *descr;
|
||||||
|
int license;
|
||||||
|
int (*init)(void *);
|
||||||
|
int (*deinit)(void *);
|
||||||
|
unsigned int version;
|
||||||
|
struct st_mysql_show_var *status_vars;
|
||||||
|
struct st_mysql_sys_var **system_vars;
|
||||||
|
const char *version_info;
|
||||||
|
unsigned int maturity;
|
||||||
|
};
|
||||||
#include "plugin_ftparser.h"
|
#include "plugin_ftparser.h"
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
enum enum_ftparser_mode
|
enum enum_ftparser_mode
|
||||||
@ -131,16 +147,16 @@ typedef struct st_mysql_ftparser_boolean_info
|
|||||||
typedef struct st_mysql_ftparser_param
|
typedef struct st_mysql_ftparser_param
|
||||||
{
|
{
|
||||||
int (*mysql_parse)(struct st_mysql_ftparser_param *,
|
int (*mysql_parse)(struct st_mysql_ftparser_param *,
|
||||||
char *doc, int doc_len);
|
const char *doc, int doc_len);
|
||||||
int (*mysql_add_word)(struct st_mysql_ftparser_param *,
|
int (*mysql_add_word)(struct st_mysql_ftparser_param *,
|
||||||
char *word, int word_len,
|
const char *word, int word_len,
|
||||||
MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info);
|
MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info);
|
||||||
void *ftparser_state;
|
void *ftparser_state;
|
||||||
void *mysql_ftparam;
|
void *mysql_ftparam;
|
||||||
struct charset_info_st *cs;
|
const struct charset_info_st *cs;
|
||||||
char *doc;
|
const char *doc;
|
||||||
int length;
|
int length;
|
||||||
int flags;
|
unsigned int flags;
|
||||||
enum enum_ftparser_mode mode;
|
enum enum_ftparser_mode mode;
|
||||||
} MYSQL_FTPARSER_PARAM;
|
} MYSQL_FTPARSER_PARAM;
|
||||||
struct st_mysql_ftparser
|
struct st_mysql_ftparser
|
||||||
@ -178,13 +194,14 @@ int thd_in_lock_tables(const void* thd);
|
|||||||
int thd_tablespace_op(const void* thd);
|
int thd_tablespace_op(const void* thd);
|
||||||
long long thd_test_options(const void* thd, long long test_options);
|
long long thd_test_options(const void* thd, long long test_options);
|
||||||
int thd_sql_command(const void* thd);
|
int thd_sql_command(const void* thd);
|
||||||
const char *thd_proc_info(void* thd, const char *info);
|
|
||||||
void **thd_ha_data(const void* thd, const struct handlerton *hton);
|
void **thd_ha_data(const void* thd, const struct handlerton *hton);
|
||||||
void thd_storage_lock_wait(void* thd, long long value);
|
void thd_storage_lock_wait(void* thd, long long value);
|
||||||
int thd_tx_isolation(const void* thd);
|
int thd_tx_isolation(const void* thd);
|
||||||
char *thd_security_context(void* thd, char *buffer, unsigned int length,
|
char *thd_security_context(void* thd, char *buffer, unsigned int length,
|
||||||
unsigned int max_query_len);
|
unsigned int max_query_len);
|
||||||
void thd_inc_row_count(void* thd);
|
void thd_inc_row_count(void* thd);
|
||||||
|
const char *set_thd_proc_info(void *, const char * info, const char *func,
|
||||||
|
const char *file, const unsigned int line);
|
||||||
int mysql_tmpfile(const char *prefix);
|
int mysql_tmpfile(const char *prefix);
|
||||||
int thd_killed(const void* thd);
|
int thd_killed(const void* thd);
|
||||||
unsigned long thd_get_thread_id(const void* thd);
|
unsigned long thd_get_thread_id(const void* thd);
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
#error don't use
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2010, 2011 Oracle and/or its affiliates. All rights reserved.
|
Copyright (C) 2010, 2011 Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@ typedef struct st_pagecache_wqueue
|
|||||||
threads */
|
threads */
|
||||||
} WQUEUE;
|
} WQUEUE;
|
||||||
|
|
||||||
#ifdef THREAD
|
|
||||||
void wqueue_link_into_queue(WQUEUE *wqueue, struct st_my_thread_var *thread);
|
void wqueue_link_into_queue(WQUEUE *wqueue, struct st_my_thread_var *thread);
|
||||||
void wqueue_unlink_from_queue(WQUEUE *wqueue, struct st_my_thread_var *thread);
|
void wqueue_unlink_from_queue(WQUEUE *wqueue, struct st_my_thread_var *thread);
|
||||||
void wqueue_add_to_queue(WQUEUE *wqueue, struct st_my_thread_var *thread);
|
void wqueue_add_to_queue(WQUEUE *wqueue, struct st_my_thread_var *thread);
|
||||||
@ -23,5 +22,3 @@ void wqueue_release_queue(WQUEUE *wqueue);
|
|||||||
void wqueue_release_one_locktype_from_queue(WQUEUE *wqueue);
|
void wqueue_release_one_locktype_from_queue(WQUEUE *wqueue);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -167,7 +167,7 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
end:
|
end:
|
||||||
thd->restore_globals();
|
thd->reset_globals();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,6 +98,7 @@ connection master;
|
|||||||
TRUNCATE TABLE t1;
|
TRUNCATE TABLE t1;
|
||||||
TRUNCATE TABLE t2;
|
TRUNCATE TABLE t2;
|
||||||
TRUNCATE TABLE t3;
|
TRUNCATE TABLE t3;
|
||||||
|
set default_storage_engine=innodb;
|
||||||
|
|
||||||
BEGIN;
|
BEGIN;
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
@ -110,14 +111,12 @@ BEGIN;
|
|||||||
--eval INSERT INTO t1 (a, data) VALUES (5, $data);
|
--eval INSERT INTO t1 (a, data) VALUES (5, $data);
|
||||||
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (6, $data);
|
--eval INSERT INTO t1 (a, data) VALUES (6, $data);
|
||||||
|
--enable_query_log
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (7, 's');
|
--eval INSERT INTO t1 (a, data) VALUES (7, 's');
|
||||||
--eval INSERT INTO t2 (a, data) VALUES (8, 's');
|
--eval INSERT INTO t2 (a, data) VALUES (8, 's');
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (9, 's');
|
--eval INSERT INTO t1 (a, data) VALUES (9, 's');
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
--disable_query_log
|
|
||||||
ALTER TABLE t3 ADD COLUMN d int;
|
ALTER TABLE t3 ADD COLUMN d int;
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
--eval INSERT INTO t2 (a, data) VALUES (10, $data);
|
--eval INSERT INTO t2 (a, data) VALUES (10, $data);
|
||||||
@ -135,23 +134,19 @@ BEGIN;
|
|||||||
--eval INSERT INTO t1 (a, data) VALUES (17, $data);
|
--eval INSERT INTO t1 (a, data) VALUES (17, $data);
|
||||||
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (18, $data);
|
--eval INSERT INTO t1 (a, data) VALUES (18, $data);
|
||||||
|
--enable_query_log
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (19, 's');
|
--eval INSERT INTO t1 (a, data) VALUES (19, 's');
|
||||||
--eval INSERT INTO t2 (a, data) VALUES (20, 's');
|
--eval INSERT INTO t2 (a, data) VALUES (20, 's');
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (21, 's');
|
--eval INSERT INTO t1 (a, data) VALUES (21, 's');
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
if (`SELECT @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'`)
|
if (`SELECT @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'`)
|
||||||
{
|
{
|
||||||
--disable_query_log
|
|
||||||
CREATE TABLE t4 SELECT * FROM t1;
|
CREATE TABLE t4 SELECT * FROM t1;
|
||||||
--enable_query_log
|
|
||||||
}
|
}
|
||||||
if (`SELECT @@binlog_format = 'ROW'`)
|
if (`SELECT @@binlog_format = 'ROW'`)
|
||||||
{
|
{
|
||||||
--disable_query_log
|
|
||||||
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||||
CREATE TABLE t4 SELECT * FROM t1;
|
CREATE TABLE t4 SELECT * FROM t1;
|
||||||
--enable_query_log
|
|
||||||
}
|
}
|
||||||
|
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
@ -167,14 +162,12 @@ BEGIN;
|
|||||||
--eval INSERT INTO t1 (a, data) VALUES (25, $data);
|
--eval INSERT INTO t1 (a, data) VALUES (25, $data);
|
||||||
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (26, $data);
|
--eval INSERT INTO t1 (a, data) VALUES (26, $data);
|
||||||
|
--enable_query_log
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (27, 's');
|
--eval INSERT INTO t1 (a, data) VALUES (27, 's');
|
||||||
--eval INSERT INTO t2 (a, data) VALUES (28, 's');
|
--eval INSERT INTO t2 (a, data) VALUES (28, 's');
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (29, 's');
|
--eval INSERT INTO t1 (a, data) VALUES (29, 's');
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
--disable_query_log
|
|
||||||
CREATE TABLE t5 (a int);
|
CREATE TABLE t5 (a int);
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
--sync_slave_with_master
|
--sync_slave_with_master
|
||||||
--let $diff_tables= master:t1,slave:t1
|
--let $diff_tables= master:t1,slave:t1
|
||||||
@ -311,10 +304,10 @@ SAVEPOINT sv;
|
|||||||
--eval INSERT INTO t1 (a, data) VALUES (5, $data);
|
--eval INSERT INTO t1 (a, data) VALUES (5, $data);
|
||||||
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (6, $data);
|
--eval INSERT INTO t1 (a, data) VALUES (6, $data);
|
||||||
|
--enable_query_log
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (7, 's');
|
--eval INSERT INTO t1 (a, data) VALUES (7, 's');
|
||||||
--eval INSERT INTO t2 (a, data) VALUES (8, 's');
|
--eval INSERT INTO t2 (a, data) VALUES (8, 's');
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (9, 's');
|
--eval INSERT INTO t1 (a, data) VALUES (9, 's');
|
||||||
--enable_query_log
|
|
||||||
ROLLBACK TO sv;
|
ROLLBACK TO sv;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
@ -344,11 +337,11 @@ BEGIN;
|
|||||||
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (7, $data);
|
--eval INSERT INTO t1 (a, data) VALUES (7, $data);
|
||||||
--eval UPDATE t2 SET data= CONCAT($data, $data);
|
--eval UPDATE t2 SET data= CONCAT($data, $data);
|
||||||
|
--enable_query_log
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (8, 's');
|
--eval INSERT INTO t1 (a, data) VALUES (8, 's');
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (9, 's');
|
--eval INSERT INTO t1 (a, data) VALUES (9, 's');
|
||||||
--eval INSERT INTO t2 (a, data) VALUES (10, 's');
|
--eval INSERT INTO t2 (a, data) VALUES (10, 's');
|
||||||
--eval INSERT INTO t1 (a, data) VALUES (11, 's');
|
--eval INSERT INTO t1 (a, data) VALUES (11, 's');
|
||||||
--enable_query_log
|
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
BEGIN;
|
BEGIN;
|
||||||
|
@ -8,7 +8,7 @@ source include/master-slave.inc;
|
|||||||
|
|
||||||
let $SERVER_VERSION=`select version()`;
|
let $SERVER_VERSION=`select version()`;
|
||||||
|
|
||||||
create table t1 (a int) ENGINE=MyISAM;
|
create table t1 (a int);
|
||||||
insert into t1 values (10);
|
insert into t1 values (10);
|
||||||
create table t2 (a int) ENGINE=MyISAM;
|
create table t2 (a int) ENGINE=MyISAM;
|
||||||
create table t3 (a int) engine=merge union(t1);
|
create table t3 (a int) engine=merge union(t1);
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
# when running tests - not to depend on the current machine localization.
|
# when running tests - not to depend on the current machine localization.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
[client]
|
||||||
|
plugin-dir=@OPT.plugindir
|
||||||
|
|
||||||
[mysql]
|
[mysql]
|
||||||
default-character-set=latin1
|
default-character-set=latin1
|
||||||
|
|
||||||
|
@ -23,6 +23,8 @@ character-set-server= latin1
|
|||||||
# disconnects when test servers are put under load see BUG#28359
|
# disconnects when test servers are put under load see BUG#28359
|
||||||
connect-timeout= 60
|
connect-timeout= 60
|
||||||
|
|
||||||
|
plugin-dir=@OPT.plugindir
|
||||||
|
|
||||||
log-bin-trust-function-creators=1
|
log-bin-trust-function-creators=1
|
||||||
key_buffer_size= 1M
|
key_buffer_size= 1M
|
||||||
sort_buffer= 256K
|
sort_buffer= 256K
|
||||||
|
@ -63,7 +63,6 @@ create table t1
|
|||||||
key(key3),
|
key(key3),
|
||||||
key(key4)
|
key(key4)
|
||||||
) ;
|
) ;
|
||||||
|
|
||||||
# Fill table
|
# Fill table
|
||||||
create table t0 as select * from t1;
|
create table t0 as select * from t1;
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
|
@ -645,6 +645,7 @@ sub new_config {
|
|||||||
# add auto-options
|
# add auto-options
|
||||||
$config->insert('OPT', 'port' => sub { fix_port($self, $config) });
|
$config->insert('OPT', 'port' => sub { fix_port($self, $config) });
|
||||||
$config->insert('OPT', 'vardir' => sub { $self->{ARGS}->{vardir} });
|
$config->insert('OPT', 'vardir' => sub { $self->{ARGS}->{vardir} });
|
||||||
|
$config->insert('OPT', 'plugindir' => sub { $::plugindir });
|
||||||
|
|
||||||
{
|
{
|
||||||
# Run pre rules
|
# Run pre rules
|
||||||
|
@ -97,7 +97,7 @@ sub read_test {
|
|||||||
chomp($serialized);
|
chomp($serialized);
|
||||||
$serialized =~ s/\\([0-9a-fA-F]{2})/chr(hex($1))/eg;
|
$serialized =~ s/\\([0-9a-fA-F]{2})/chr(hex($1))/eg;
|
||||||
my $test= Storable::thaw($serialized);
|
my $test= Storable::thaw($serialized);
|
||||||
die "wrong class (hack attempt?)"
|
die "wrong class (hack attempt?): ".ref($test)
|
||||||
unless ref($test) eq 'My::Test';
|
unless ref($test) eq 'My::Test';
|
||||||
resfile_from_test($test) if $::opt_resfile;
|
resfile_from_test($test) if $::opt_resfile;
|
||||||
return $test;
|
return $test;
|
||||||
|
@ -281,8 +281,6 @@ my $opt_valgrind_mysqld= 0;
|
|||||||
my $opt_valgrind_mysqltest= 0;
|
my $opt_valgrind_mysqltest= 0;
|
||||||
my @default_valgrind_args= ("--show-reachable=yes");
|
my @default_valgrind_args= ("--show-reachable=yes");
|
||||||
my @valgrind_args;
|
my @valgrind_args;
|
||||||
our $opt_valgrind_mysqld= 0;
|
|
||||||
my $opt_valgrind_mysqltest= 0;
|
|
||||||
my $opt_strace= 0;
|
my $opt_strace= 0;
|
||||||
my $opt_strace_client;
|
my $opt_strace_client;
|
||||||
my @strace_args;
|
my @strace_args;
|
||||||
@ -431,6 +429,7 @@ sub main {
|
|||||||
template_path => "include/default_my.cnf",
|
template_path => "include/default_my.cnf",
|
||||||
master_opt => [],
|
master_opt => [],
|
||||||
slave_opt => [],
|
slave_opt => [],
|
||||||
|
suite => 'main',
|
||||||
);
|
);
|
||||||
unshift(@$tests, $tinfo);
|
unshift(@$tests, $tinfo);
|
||||||
}
|
}
|
||||||
@ -476,19 +475,6 @@ sub main {
|
|||||||
print_global_resfile();
|
print_global_resfile();
|
||||||
}
|
}
|
||||||
|
|
||||||
# --------------------------------------------------------------------------
|
|
||||||
# Read definitions from include/plugin.defs
|
|
||||||
#
|
|
||||||
read_plugin_defs("include/plugin.defs");
|
|
||||||
|
|
||||||
# Also read from any plugin local plugin.defs
|
|
||||||
for (glob "$basedir/plugin/*/tests/mtr/plugin.defs") {
|
|
||||||
read_plugin_defs($_);
|
|
||||||
}
|
|
||||||
|
|
||||||
# Simplify reference to semisync plugins
|
|
||||||
$ENV{'SEMISYNC_PLUGIN_OPT'}= $ENV{'SEMISYNC_MASTER_PLUGIN_OPT'};
|
|
||||||
|
|
||||||
# Create child processes
|
# Create child processes
|
||||||
my %children;
|
my %children;
|
||||||
for my $child_num (1..$opt_parallel){
|
for my $child_num (1..$opt_parallel){
|
||||||
@ -586,8 +572,6 @@ sub main {
|
|||||||
$opt_gcov_msg, $opt_gcov_err);
|
$opt_gcov_msg, $opt_gcov_err);
|
||||||
}
|
}
|
||||||
|
|
||||||
mtr_report_stats($prefix, $fail, $completed, $extra_warnings);
|
|
||||||
|
|
||||||
if ($ctest_report) {
|
if ($ctest_report) {
|
||||||
print "$ctest_report\n";
|
print "$ctest_report\n";
|
||||||
mtr_print_line();
|
mtr_print_line();
|
||||||
@ -595,7 +579,7 @@ sub main {
|
|||||||
|
|
||||||
print_total_times($opt_parallel) if $opt_report_times;
|
print_total_times($opt_parallel) if $opt_report_times;
|
||||||
|
|
||||||
mtr_report_stats("Completed", $completed);
|
mtr_report_stats($prefix, $fail, $completed, $extra_warnings);
|
||||||
|
|
||||||
if ( @$completed != $num_tests)
|
if ( @$completed != $num_tests)
|
||||||
{
|
{
|
||||||
@ -811,6 +795,7 @@ sub run_test_server ($$$) {
|
|||||||
# Test failure due to warnings, force is off
|
# Test failure due to warnings, force is off
|
||||||
return ("Warnings in log", 1, $completed, $extra_warnings);
|
return ("Warnings in log", 1, $completed, $extra_warnings);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
elsif ($line =~ /^SPENT/) {
|
elsif ($line =~ /^SPENT/) {
|
||||||
add_total_times($line);
|
add_total_times($line);
|
||||||
}
|
}
|
||||||
@ -1652,17 +1637,14 @@ sub command_line_setup {
|
|||||||
$opt_dbx || $opt_client_dbx || $opt_manual_dbx ||
|
$opt_dbx || $opt_client_dbx || $opt_manual_dbx ||
|
||||||
$opt_debugger || $opt_client_debugger )
|
$opt_debugger || $opt_client_debugger )
|
||||||
{
|
{
|
||||||
# Indicate that we are using debugger
|
|
||||||
$glob_debugger= 1;
|
|
||||||
$opt_testcase_timeout= 60*60*24; # Don't abort debugging with timeout
|
|
||||||
$opt_suite_timeout= $opt_testcase_timeout;
|
|
||||||
$opt_retry= 1;
|
|
||||||
$opt_retry_failure= 1;
|
|
||||||
|
|
||||||
if ( using_extern() )
|
if ( using_extern() )
|
||||||
{
|
{
|
||||||
mtr_error("Can't use --extern when using debugger");
|
mtr_error("Can't use --extern when using debugger");
|
||||||
}
|
}
|
||||||
|
# Indicate that we are using debugger
|
||||||
|
$glob_debugger= 1;
|
||||||
|
$opt_retry= 1;
|
||||||
|
$opt_retry_failure= 1;
|
||||||
# Set one week timeout (check-testcase timeout will be 1/10th)
|
# Set one week timeout (check-testcase timeout will be 1/10th)
|
||||||
$opt_testcase_timeout= 7 * 24 * 60;
|
$opt_testcase_timeout= 7 * 24 * 60;
|
||||||
$opt_suite_timeout= 7 * 24 * 60;
|
$opt_suite_timeout= 7 * 24 * 60;
|
||||||
@ -1681,8 +1663,8 @@ sub command_line_setup {
|
|||||||
}
|
}
|
||||||
if ($opt_debug)
|
if ($opt_debug)
|
||||||
{
|
{
|
||||||
$opt_testcase_timeout= 60*60*24; # Don't abort debugging with timeout
|
$opt_testcase_timeout= 7 * 24 * 60;
|
||||||
$opt_suite_timeout= $opt_testcase_timeout;
|
$opt_suite_timeout= 7 * 24 * 60;
|
||||||
$opt_retry= 1;
|
$opt_retry= 1;
|
||||||
$opt_retry_failure= 1;
|
$opt_retry_failure= 1;
|
||||||
}
|
}
|
||||||
@ -2275,62 +2257,6 @@ sub find_plugin($$)
|
|||||||
return $lib_plugin;
|
return $lib_plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
|
||||||
# Read plugin defintions file
|
|
||||||
#
|
|
||||||
|
|
||||||
sub read_plugin_defs($)
|
|
||||||
{
|
|
||||||
my ($defs_file)= @_;
|
|
||||||
my $running_debug= 0;
|
|
||||||
|
|
||||||
open(PLUGDEF, '<', $defs_file)
|
|
||||||
or mtr_error("Can't read plugin defintions file $defs_file");
|
|
||||||
|
|
||||||
# Need to check if we will be running mysqld-debug
|
|
||||||
if ($opt_debug_server) {
|
|
||||||
$running_debug= 1 if find_mysqld($basedir) =~ /mysqld-debug/;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (<PLUGDEF>) {
|
|
||||||
next if /^#/;
|
|
||||||
my ($plug_file, $plug_loc, $plug_var, $plug_names)= split;
|
|
||||||
# Allow empty lines
|
|
||||||
next unless $plug_file;
|
|
||||||
mtr_error("Lines in $defs_file must have 3 or 4 items") unless $plug_var;
|
|
||||||
|
|
||||||
# If running debug server, plugins will be in 'debug' subdirectory
|
|
||||||
$plug_file= "debug/$plug_file" if $running_debug;
|
|
||||||
|
|
||||||
my ($plugin)= find_plugin($plug_file, $plug_loc);
|
|
||||||
|
|
||||||
# Set env. variables that tests may use, set to empty if plugin
|
|
||||||
# listed in def. file but not found.
|
|
||||||
|
|
||||||
if ($plugin) {
|
|
||||||
$ENV{$plug_var}= basename($plugin);
|
|
||||||
$ENV{$plug_var.'_DIR'}= dirname($plugin);
|
|
||||||
$ENV{$plug_var.'_OPT'}= "--plugin-dir=".dirname($plugin);
|
|
||||||
if ($plug_names) {
|
|
||||||
my $lib_name= basename($plugin);
|
|
||||||
my $load_var= "--plugin_load=";
|
|
||||||
my $semi= '';
|
|
||||||
foreach my $plug_name (split (',', $plug_names)) {
|
|
||||||
$load_var .= $semi . "$plug_name=$lib_name";
|
|
||||||
$semi= ';';
|
|
||||||
}
|
|
||||||
$ENV{$plug_var.'_LOAD'}= $load_var;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$ENV{$plug_var}= "";
|
|
||||||
$ENV{$plug_var.'_DIR'}= "";
|
|
||||||
$ENV{$plug_var.'_OPT'}= "";
|
|
||||||
$ENV{$plug_var.'_LOAD'}= "" if $plug_names;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close PLUGDEF;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub environment_setup {
|
sub environment_setup {
|
||||||
|
|
||||||
umask(022);
|
umask(022);
|
||||||
@ -2499,7 +2425,7 @@ sub environment_setup {
|
|||||||
$ENV{'MYSQL'}= client_arguments("mysql");
|
$ENV{'MYSQL'}= client_arguments("mysql");
|
||||||
$ENV{'MYSQL_SLAVE'}= client_arguments("mysql", ".2");
|
$ENV{'MYSQL_SLAVE'}= client_arguments("mysql", ".2");
|
||||||
$ENV{'MYSQL_UPGRADE'}= client_arguments("mysql_upgrade");
|
$ENV{'MYSQL_UPGRADE'}= client_arguments("mysql_upgrade");
|
||||||
$ENV{'MYSQLADMIN'}= native_path($exe_mysqladmin);
|
$ENV{'MYSQLADMIN'}= client_arguments("mysqladmin");
|
||||||
$ENV{'MYSQL_CLIENT_TEST'}= mysql_client_test_arguments();
|
$ENV{'MYSQL_CLIENT_TEST'}= mysql_client_test_arguments();
|
||||||
$ENV{'EXE_MYSQL'}= $exe_mysql;
|
$ENV{'EXE_MYSQL'}= $exe_mysql;
|
||||||
|
|
||||||
@ -2739,7 +2665,6 @@ sub setup_vardir() {
|
|||||||
if ($source_dist)
|
if ($source_dist)
|
||||||
{
|
{
|
||||||
$plugindir="$opt_vardir/plugins";
|
$plugindir="$opt_vardir/plugins";
|
||||||
unshift (@opt_extra_mysqld_opt, "--plugin-dir=$plugindir");
|
|
||||||
mkpath($plugindir);
|
mkpath($plugindir);
|
||||||
if (IS_WINDOWS)
|
if (IS_WINDOWS)
|
||||||
{
|
{
|
||||||
@ -2765,6 +2690,7 @@ sub setup_vardir() {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
$plugindir= $mysqld_variables{'plugin-dir'} || '.';
|
||||||
# hm, what paths work for debs and for rpms ?
|
# hm, what paths work for debs and for rpms ?
|
||||||
for (<$basedir/lib/mysql/plugin/*.so>,
|
for (<$basedir/lib/mysql/plugin/*.so>,
|
||||||
<$basedir/lib/plugin/*.dll>)
|
<$basedir/lib/plugin/*.dll>)
|
||||||
@ -3097,7 +3023,7 @@ sub ndbd_stop {
|
|||||||
# by sending "shutdown" to ndb_mgmd
|
# by sending "shutdown" to ndb_mgmd
|
||||||
}
|
}
|
||||||
|
|
||||||
my $exe_ndbmtd_counter= 0;
|
our $exe_ndbmtd_counter= 0;
|
||||||
|
|
||||||
sub ndbd_start {
|
sub ndbd_start {
|
||||||
my ($cluster, $ndbd)= @_;
|
my ($cluster, $ndbd)= @_;
|
||||||
@ -4136,7 +4062,7 @@ sub all_servers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Storage for changed environment variables
|
# Storage for changed environment variables
|
||||||
my %old_env;
|
our %old_env;
|
||||||
|
|
||||||
sub resfile_report_test ($) {
|
sub resfile_report_test ($) {
|
||||||
my $tinfo= shift;
|
my $tinfo= shift;
|
||||||
@ -4598,7 +4524,7 @@ sub restore_error_log {
|
|||||||
# Keep track of last position in mysqld error log where we scanned for
|
# Keep track of last position in mysqld error log where we scanned for
|
||||||
# warnings, so we can attribute any warnings found to the correct test
|
# warnings, so we can attribute any warnings found to the correct test
|
||||||
# suite or server restart.
|
# suite or server restart.
|
||||||
my $last_warning_position= { };
|
our $last_warning_position= { };
|
||||||
|
|
||||||
# Called just before a mysqld server is started or a testcase is run,
|
# Called just before a mysqld server is started or a testcase is run,
|
||||||
# to keep track of which tests have been run since last restart, and
|
# to keep track of which tests have been run since last restart, and
|
||||||
@ -4796,7 +4722,7 @@ sub extract_warning_lines ($) {
|
|||||||
qr|Table \./test/bug53592 has a primary key in InnoDB data dictionary, but not in MySQL|,
|
qr|Table \./test/bug53592 has a primary key in InnoDB data dictionary, but not in MySQL|,
|
||||||
qr|mysqld: Table '\./mtr/test_suppressions' is marked as crashed and should be repaired|,
|
qr|mysqld: Table '\./mtr/test_suppressions' is marked as crashed and should be repaired|,
|
||||||
qr|InnoDB: Error: table 'test/bug39438'|,
|
qr|InnoDB: Error: table 'test/bug39438'|,
|
||||||
qr|'user' entry '.*' ignored in --skip-name-resolve mode|,
|
qr| entry '.*' ignored in --skip-name-resolve mode|,
|
||||||
qr|mysqld got signal 6|,
|
qr|mysqld got signal 6|,
|
||||||
qr|Error while setting value 'pool-of-threads' to 'thread_handling'|,
|
qr|Error while setting value 'pool-of-threads' to 'thread_handling'|,
|
||||||
);
|
);
|
||||||
@ -5429,7 +5355,7 @@ sub mysqld_start ($$) {
|
|||||||
{
|
{
|
||||||
ddd_arguments(\$args, \$exe, $mysqld->name());
|
ddd_arguments(\$args, \$exe, $mysqld->name());
|
||||||
}
|
}
|
||||||
if ( $opt_dbx || $opt_manual_dbx ) {
|
elsif ( $opt_dbx || $opt_manual_dbx ) {
|
||||||
dbx_arguments(\$args, \$exe, $mysqld->name());
|
dbx_arguments(\$args, \$exe, $mysqld->name());
|
||||||
}
|
}
|
||||||
elsif ( $opt_debugger )
|
elsif ( $opt_debugger )
|
||||||
@ -6604,7 +6530,7 @@ sub time_format($) {
|
|||||||
sprintf '%d:%02d:%02d', $_[0]/3600, ($_[0]/60)%60, $_[0]%60;
|
sprintf '%d:%02d:%02d', $_[0]/3600, ($_[0]/60)%60, $_[0]%60;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $num_tests;
|
our $num_tests;
|
||||||
|
|
||||||
sub xterm_stat {
|
sub xterm_stat {
|
||||||
if (-t STDOUT and defined $ENV{TERM} and $ENV{TERM} =~ /xterm/) {
|
if (-t STDOUT and defined $ENV{TERM} and $ENV{TERM} =~ /xterm/) {
|
||||||
|
@ -14,7 +14,7 @@ End of 5.1 tests
|
|||||||
SHOW VARIABLES LIKE 'have_innodb';
|
SHOW VARIABLES LIKE 'have_innodb';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
have_innodb DISABLED
|
have_innodb DISABLED
|
||||||
SELECT SUPPORT FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb';
|
SELECT 'bug' as '' FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb'
|
||||||
SUPPORT
|
and SUPPORT='YES';
|
||||||
NO
|
|
||||||
End of 5.5 tests
|
End of 5.5 tests
|
||||||
|
@ -2761,11 +2761,11 @@ KEY(date_column));
|
|||||||
INSERT INTO t1 VALUES (1,'2010-09-01'),(2,'2010-10-01');
|
INSERT INTO t1 VALUES (1,'2010-09-01'),(2,'2010-10-01');
|
||||||
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
||||||
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 date_column date_column 4 NULL 1 Using where
|
1 SIMPLE t1 range date_column date_column 4 NULL 1 Using index condition; Using MRR
|
||||||
ALTER TABLE t1 MODIFY date_column DATETIME DEFAULT NULL;
|
ALTER TABLE t1 MODIFY date_column DATETIME DEFAULT NULL;
|
||||||
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
||||||
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 date_column date_column 9 NULL 1 Using where
|
1 SIMPLE t1 range date_column date_column 9 NULL 1 Using index condition; Using MRR
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
|
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
|
||||||
|
@ -3153,11 +3153,11 @@ KEY(date_column));
|
|||||||
INSERT INTO t1 VALUES (1,'2010-09-01'),(2,'2010-10-01');
|
INSERT INTO t1 VALUES (1,'2010-09-01'),(2,'2010-10-01');
|
||||||
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
||||||
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 date_column date_column 4 NULL 1 Using where
|
1 SIMPLE t1 range date_column date_column 4 NULL 1 Using index condition; Using MRR
|
||||||
ALTER TABLE t1 MODIFY date_column DATETIME DEFAULT NULL;
|
ALTER TABLE t1 MODIFY date_column DATETIME DEFAULT NULL;
|
||||||
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
||||||
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 date_column date_column 9 NULL 1 Using where
|
1 SIMPLE t1 range date_column date_column 9 NULL 1 Using index condition; Using MRR
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
|
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
|
||||||
|
@ -3180,11 +3180,11 @@ KEY(date_column));
|
|||||||
INSERT INTO t1 VALUES (1,'2010-09-01'),(2,'2010-10-01');
|
INSERT INTO t1 VALUES (1,'2010-09-01'),(2,'2010-10-01');
|
||||||
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
||||||
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 date_column date_column 4 NULL 1 Using where
|
1 SIMPLE t1 range date_column date_column 4 NULL 1 Using index condition; Using MRR
|
||||||
ALTER TABLE t1 MODIFY date_column DATETIME DEFAULT NULL;
|
ALTER TABLE t1 MODIFY date_column DATETIME DEFAULT NULL;
|
||||||
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
||||||
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 date_column date_column 9 NULL 1 Using where
|
1 SIMPLE t1 range date_column date_column 9 NULL 1 Using index condition; Using MRR
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
|
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
|
||||||
|
@ -1285,7 +1285,7 @@ ch
|
|||||||
ALTER TABLE t1 MODIFY a VARCHAR(10) CHARACTER SET ucs2 COLLATE ucs2_croatian_ci;
|
ALTER TABLE t1 MODIFY a VARCHAR(10) CHARACTER SET ucs2 COLLATE ucs2_croatian_ci;
|
||||||
EXPLAIN SELECT * FROM t1 WHERE a LIKE 'd%';
|
EXPLAIN SELECT * FROM t1 WHERE a LIKE 'd%';
|
||||||
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 a a 23 NULL 1 Using where; Using index
|
1 SIMPLE t1 range a a 23 NULL 30 Using where; Using index
|
||||||
SELECT hex(concat('d',_ucs2 0x017E,'%'));
|
SELECT hex(concat('d',_ucs2 0x017E,'%'));
|
||||||
hex(concat('d',_ucs2 0x017E,'%'))
|
hex(concat('d',_ucs2 0x017E,'%'))
|
||||||
0064017E0025
|
0064017E0025
|
||||||
|
@ -4895,11 +4895,11 @@ KEY(date_column));
|
|||||||
INSERT INTO t1 VALUES (1,'2010-09-01'),(2,'2010-10-01');
|
INSERT INTO t1 VALUES (1,'2010-09-01'),(2,'2010-10-01');
|
||||||
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
||||||
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 date_column date_column 4 NULL 1 Using where
|
1 SIMPLE t1 range date_column date_column 4 NULL 1 Using index condition; Using MRR
|
||||||
ALTER TABLE t1 MODIFY date_column DATETIME DEFAULT NULL;
|
ALTER TABLE t1 MODIFY date_column DATETIME DEFAULT NULL;
|
||||||
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01';
|
||||||
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 date_column date_column 9 NULL 1 Using where
|
1 SIMPLE t1 range date_column date_column 9 NULL 1 Using index condition; Using MRR
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
|
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
|
||||||
|
@ -684,7 +684,7 @@ SELECT ((@a:=@b:=1.0) div (@b:=@a:=get_format(datetime, 'usa')));
|
|||||||
((@a:=@b:=1.0) div (@b:=@a:=get_format(datetime, 'usa')))
|
((@a:=@b:=1.0) div (@b:=@a:=get_format(datetime, 'usa')))
|
||||||
NULL
|
NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1366 Incorrect decimal value: '' for column '' at row -1
|
Warning 1366 Incorrect decimal value: '' for column '' at row 0
|
||||||
#
|
#
|
||||||
# Bug #59498 div function broken in mysql-trunk
|
# Bug #59498 div function broken in mysql-trunk
|
||||||
#
|
#
|
||||||
|
@ -54,7 +54,7 @@ max_updates 0
|
|||||||
max_connections 0
|
max_connections 0
|
||||||
max_user_connections 0
|
max_user_connections 0
|
||||||
plugin
|
plugin
|
||||||
authentication_string NULL
|
authentication_string
|
||||||
show grants for mysqltest_1@localhost;
|
show grants for mysqltest_1@localhost;
|
||||||
Grants for mysqltest_1@localhost
|
Grants for mysqltest_1@localhost
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA'
|
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA'
|
||||||
@ -125,7 +125,7 @@ max_updates 0
|
|||||||
max_connections 0
|
max_connections 0
|
||||||
max_user_connections 0
|
max_user_connections 0
|
||||||
plugin
|
plugin
|
||||||
authentication_string NULL
|
authentication_string
|
||||||
show grants for mysqltest_1@localhost;
|
show grants for mysqltest_1@localhost;
|
||||||
Grants for mysqltest_1@localhost
|
Grants for mysqltest_1@localhost
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' WITH MAX_QUERIES_PER_HOUR 10
|
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' WITH MAX_QUERIES_PER_HOUR 10
|
||||||
@ -172,7 +172,7 @@ max_updates 20
|
|||||||
max_connections 30
|
max_connections 30
|
||||||
max_user_connections 0
|
max_user_connections 0
|
||||||
plugin
|
plugin
|
||||||
authentication_string NULL
|
authentication_string
|
||||||
show grants for mysqltest_1@localhost;
|
show grants for mysqltest_1@localhost;
|
||||||
Grants for mysqltest_1@localhost
|
Grants for mysqltest_1@localhost
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' WITH MAX_QUERIES_PER_HOUR 10 MAX_UPDATES_PER_HOUR 20 MAX_CONNECTIONS_PER_HOUR 30
|
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' WITH MAX_QUERIES_PER_HOUR 10 MAX_UPDATES_PER_HOUR 20 MAX_CONNECTIONS_PER_HOUR 30
|
||||||
@ -284,7 +284,7 @@ Warnings:
|
|||||||
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
||||||
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
||||||
Warning 1364 Field 'x509_subject' doesn't have a default value
|
Warning 1364 Field 'x509_subject' doesn't have a default value
|
||||||
Warning 1364 Field 'auth_string' doesn't have a default value
|
Warning 1364 Field 'authentication_string' doesn't have a default value
|
||||||
insert into mysql.db (host, db, user, select_priv) values
|
insert into mysql.db (host, db, user, select_priv) values
|
||||||
('localhost', 'a%', 'test11', 'Y'), ('localhost', 'ab%', 'test11', 'Y');
|
('localhost', 'a%', 'test11', 'Y'), ('localhost', 'ab%', 'test11', 'Y');
|
||||||
alter table mysql.db order by db asc;
|
alter table mysql.db order by db asc;
|
||||||
|
@ -287,7 +287,7 @@ Warnings:
|
|||||||
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
||||||
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
||||||
Warning 1364 Field 'x509_subject' doesn't have a default value
|
Warning 1364 Field 'x509_subject' doesn't have a default value
|
||||||
Warning 1364 Field 'auth_string' doesn't have a default value
|
Warning 1364 Field 'authentication_string' doesn't have a default value
|
||||||
create user mysqltest_A@'%';
|
create user mysqltest_A@'%';
|
||||||
rename user mysqltest_B@'%' to mysqltest_C@'%';
|
rename user mysqltest_B@'%' to mysqltest_C@'%';
|
||||||
drop user mysqltest_C@'%';
|
drop user mysqltest_C@'%';
|
||||||
@ -355,7 +355,7 @@ Warnings:
|
|||||||
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
||||||
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
||||||
Warning 1364 Field 'x509_subject' doesn't have a default value
|
Warning 1364 Field 'x509_subject' doesn't have a default value
|
||||||
Warning 1364 Field 'auth_string' doesn't have a default value
|
Warning 1364 Field 'authentication_string' doesn't have a default value
|
||||||
INSERT INTO mysql.db (host, db, user, select_priv) VALUES
|
INSERT INTO mysql.db (host, db, user, select_priv) VALUES
|
||||||
('%','TESTDB','mysqltest_1','Y');
|
('%','TESTDB','mysqltest_1','Y');
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
|
@ -1899,8 +1899,8 @@ SELECT a, AVG(t1.b),
|
|||||||
FROM t1 GROUP BY a;
|
FROM t1 GROUP BY 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 t1 index NULL a 10 NULL 9 Using index
|
1 PRIMARY t1 index NULL a 10 NULL 9 Using index
|
||||||
3 DEPENDENT SUBQUERY t12 ref a a 10 func,func 2 Using where
|
3 DEPENDENT SUBQUERY t12 ref a a 10 func,func 2 Using index condition
|
||||||
2 DEPENDENT SUBQUERY t11 ref a a 10 func,func 2 Using where
|
2 DEPENDENT SUBQUERY t11 ref a a 10 func,func 2 Using index condition
|
||||||
SELECT a, AVG(t1.b),
|
SELECT a, AVG(t1.b),
|
||||||
(SELECT t11.c FROM t1 t11 WHERE t11.a = t1.a AND t11.b = AVG(t1.b)) AS t11c,
|
(SELECT t11.c FROM t1 t11 WHERE t11.a = t1.a AND t11.b = AVG(t1.b)) AS t11c,
|
||||||
(SELECT t12.c FROM t1 t12 WHERE t12.a = t1.a AND t12.b = AVG(t1.b)) AS t12c
|
(SELECT t12.c FROM t1 t12 WHERE t12.a = t1.a AND t12.b = AVG(t1.b)) AS t12c
|
||||||
|
@ -943,7 +943,7 @@ count(*)
|
|||||||
explain select count(*) from t1 where
|
explain select count(*) from t1 where
|
||||||
key1a = 2 and key1b is null and key2a = 2 and key2b is null;
|
key1a = 2 and key1b is null and key2a = 2 and key2b 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 t1 index_merge i1,i2 i1,i2 10,10 NULL REF Using intersect(i1,i2); Using where; Using index
|
1 SIMPLE t1 index_merge i1,i2 i1,i2 10,10 NULL 2 Using intersect(i1,i2); Using where; Using index
|
||||||
select count(*) from t1 where
|
select count(*) from t1 where
|
||||||
key1a = 2 and key1b is null and key2a = 2 and key2b is null;
|
key1a = 2 and key1b is null and key2a = 2 and key2b is null;
|
||||||
count(*)
|
count(*)
|
||||||
@ -951,7 +951,7 @@ count(*)
|
|||||||
explain select count(*) from t1 where
|
explain select count(*) from t1 where
|
||||||
key1a = 2 and key1b is null and key3a = 2 and key3b is null;
|
key1a = 2 and key1b is null and key3a = 2 and key3b 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 t1 index_merge i1,i3 i1,i3 10,10 NULL REF Using intersect(i1,i3); Using where; Using index
|
1 SIMPLE t1 index_merge i1,i3 i1,i3 10,10 NULL 2 Using intersect(i1,i3); Using where; Using index
|
||||||
select count(*) from t1 where
|
select count(*) from t1 where
|
||||||
key1a = 2 and key1b is null and key3a = 2 and key3b is null;
|
key1a = 2 and key1b is null and key3a = 2 and key3b is null;
|
||||||
count(*)
|
count(*)
|
||||||
|
@ -262,11 +262,11 @@ SELECT DISTINCT fill,desc_larga_cat,cred_total,Grup,Places,PlacesOcupades FROM t
|
|||||||
fill desc_larga_cat cred_total Grup Places PlacesOcupades
|
fill desc_larga_cat cred_total Grup Places PlacesOcupades
|
||||||
10360 asdfggfg 6.0 0 55 0
|
10360 asdfggfg 6.0 0 55 0
|
||||||
10360 asdfggfg 6.0 12 333 0
|
10360 asdfggfg 6.0 12 333 0
|
||||||
|
10360 asdfggfg 6.0 32767 7 0
|
||||||
10360 asdfggfg 6.0 33 8 0
|
10360 asdfggfg 6.0 33 8 0
|
||||||
10360 asdfggfg 6.0 45 10 0
|
10360 asdfggfg 6.0 45 10 0
|
||||||
10360 asdfggfg 6.0 55 2 0
|
10360 asdfggfg 6.0 55 2 0
|
||||||
10360 asdfggfg 6.0 7887 85 0
|
10360 asdfggfg 6.0 7887 85 0
|
||||||
10360 asdfggfg 6.0 32767 7 0
|
|
||||||
10361 Components i Circuits Electronics I 6.0 30 2 0
|
10361 Components i Circuits Electronics I 6.0 30 2 0
|
||||||
10361 Components i Circuits Electronics I 6.0 40 3 0
|
10361 Components i Circuits Electronics I 6.0 40 3 0
|
||||||
10362 Laboratori d`Ordinadors 4.5 10 12 0
|
10362 Laboratori d`Ordinadors 4.5 10 12 0
|
||||||
@ -1621,9 +1621,9 @@ RIGHT JOIN h TABLE2 ON TABLE1.col_int_key=TABLE2.col_int_key
|
|||||||
RIGHT JOIN m TABLE4 ON TABLE2.col_int_key=TABLE4.col_int_key;
|
RIGHT JOIN m TABLE4 ON TABLE2.col_int_key=TABLE4.col_int_key;
|
||||||
pk
|
pk
|
||||||
2
|
2
|
||||||
4
|
|
||||||
2
|
2
|
||||||
4
|
4
|
||||||
|
4
|
||||||
NULL
|
NULL
|
||||||
NULL
|
NULL
|
||||||
NULL
|
NULL
|
||||||
@ -1644,6 +1644,7 @@ NULL
|
|||||||
NULL
|
NULL
|
||||||
NULL
|
NULL
|
||||||
DROP TABLE h,m,k;
|
DROP TABLE h,m,k;
|
||||||
|
#
|
||||||
# Bug#49600: outer join of two single-row tables with joining attributes
|
# Bug#49600: outer join of two single-row tables with joining attributes
|
||||||
# evaluated to nulls
|
# evaluated to nulls
|
||||||
create table t1 (a int, b int);
|
create table t1 (a int, b int);
|
||||||
|
@ -43,11 +43,11 @@ NULL NULL NULL 4 7 D 7
|
|||||||
select t1.*,t2.* from t1 left join t2 using (a);
|
select t1.*,t2.* from t1 left join t2 using (a);
|
||||||
grp a c id a c d
|
grp a c id a c d
|
||||||
1 1 a 1 1 a 1
|
1 1 a 1 1 a 1
|
||||||
|
2 2 b NULL NULL NULL NULL
|
||||||
|
2 3 c NULL NULL NULL NULL
|
||||||
3 4 E 3 4 A 4
|
3 4 E 3 4 A 4
|
||||||
3 5 C 3 5 B 5
|
3 5 C 3 5 B 5
|
||||||
3 6 D 3 6 C 6
|
3 6 D 3 6 C 6
|
||||||
2 2 b NULL NULL NULL NULL
|
|
||||||
2 3 c NULL NULL NULL NULL
|
|
||||||
NULL NULL NULL NULL NULL NULL
|
NULL NULL NULL NULL NULL NULL
|
||||||
select t1.*,t2.* from t1 left join t2 using (a) where t1.a=t2.a;
|
select t1.*,t2.* from t1 left join t2 using (a) where t1.a=t2.a;
|
||||||
grp a c id a c d
|
grp a c id a c d
|
||||||
@ -70,9 +70,9 @@ grp a c id a c d
|
|||||||
1 1 a 3 4 A 4
|
1 1 a 3 4 A 4
|
||||||
2 2 b 3 5 B 5
|
2 2 b 3 5 B 5
|
||||||
2 3 c 3 6 C 6
|
2 3 c 3 6 C 6
|
||||||
|
3 4 E NULL NULL NULL NULL
|
||||||
3 5 C 3 6 C 6
|
3 5 C 3 6 C 6
|
||||||
3 6 D 4 7 D 7
|
3 6 D 4 7 D 7
|
||||||
3 4 E NULL NULL NULL NULL
|
|
||||||
NULL NULL NULL NULL NULL NULL
|
NULL NULL NULL NULL NULL NULL
|
||||||
select t1.*,t2.* from t1 natural left outer join t2;
|
select t1.*,t2.* from t1 natural left outer join t2;
|
||||||
grp a c id a c d
|
grp a c id a c d
|
||||||
@ -103,11 +103,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
select t1.*,t2.*,t3.a from t1 left join t2 on (t1.a=t2.a) left join t1 as t3 on (t2.a=t3.a);
|
select t1.*,t2.*,t3.a from t1 left join t2 on (t1.a=t2.a) left join t1 as t3 on (t2.a=t3.a);
|
||||||
grp a c id a c d a
|
grp a c id a c d a
|
||||||
1 1 a 1 1 a 1 1
|
1 1 a 1 1 a 1 1
|
||||||
|
2 2 b NULL NULL NULL NULL NULL
|
||||||
|
2 3 c NULL NULL NULL NULL NULL
|
||||||
3 4 E 3 4 A 4 4
|
3 4 E 3 4 A 4 4
|
||||||
3 5 C 3 5 B 5 5
|
3 5 C 3 5 B 5 5
|
||||||
3 6 D 3 6 C 6 6
|
3 6 D 3 6 C 6 6
|
||||||
2 2 b NULL NULL NULL NULL NULL
|
|
||||||
2 3 c NULL NULL NULL NULL NULL
|
|
||||||
NULL NULL NULL NULL NULL NULL NULL
|
NULL NULL NULL NULL NULL NULL NULL
|
||||||
explain select t1.*,t2.*,t3.a from t1 left join t2 on (t3.a=t2.a) left join t1 as t3 on (t1.a=t3.a);
|
explain select t1.*,t2.*,t3.a from t1 left join t2 on (t3.a=t2.a) left join t1 as t3 on (t1.a=t3.a);
|
||||||
ERROR 42S22: Unknown column 't3.a' in 'on clause'
|
ERROR 42S22: Unknown column 't3.a' in 'on clause'
|
||||||
@ -264,16 +264,16 @@ INSERT INTO t4 VALUES (2,-1,10361,1);
|
|||||||
INSERT INTO t4 VALUES (3,-1,10362,1);
|
INSERT INTO t4 VALUES (3,-1,10362,1);
|
||||||
SELECT DISTINCT fill,desc_larga_cat,cred_total,Grup,Places,PlacesOcupades FROM t4 LEFT JOIN t3 ON t3.cod_asig=fill AND estat='S' AND dni_pasaporte='11111111' AND t3.idPla=1 , t2,t1 WHERE fill=t1.cod_asig AND Places>PlacesOcupades AND fill=idAssignatura AND t4.idPla=1 AND papa=-1;
|
SELECT DISTINCT fill,desc_larga_cat,cred_total,Grup,Places,PlacesOcupades FROM t4 LEFT JOIN t3 ON t3.cod_asig=fill AND estat='S' AND dni_pasaporte='11111111' AND t3.idPla=1 , t2,t1 WHERE fill=t1.cod_asig AND Places>PlacesOcupades AND fill=idAssignatura AND t4.idPla=1 AND papa=-1;
|
||||||
fill desc_larga_cat cred_total Grup Places PlacesOcupades
|
fill desc_larga_cat cred_total Grup Places PlacesOcupades
|
||||||
|
10360 asdfggfg 6.0 0 55 0
|
||||||
10360 asdfggfg 6.0 12 333 0
|
10360 asdfggfg 6.0 12 333 0
|
||||||
10361 Components i Circuits Electronics I 6.0 30 2 0
|
|
||||||
10361 Components i Circuits Electronics I 6.0 40 3 0
|
|
||||||
10360 asdfggfg 6.0 45 10 0
|
|
||||||
10362 Laboratori d`Ordinadors 4.5 10 12 0
|
|
||||||
10360 asdfggfg 6.0 55 2 0
|
|
||||||
10360 asdfggfg 6.0 32767 7 0
|
10360 asdfggfg 6.0 32767 7 0
|
||||||
10360 asdfggfg 6.0 33 8 0
|
10360 asdfggfg 6.0 33 8 0
|
||||||
|
10360 asdfggfg 6.0 45 10 0
|
||||||
|
10360 asdfggfg 6.0 55 2 0
|
||||||
10360 asdfggfg 6.0 7887 85 0
|
10360 asdfggfg 6.0 7887 85 0
|
||||||
10360 asdfggfg 6.0 0 55 0
|
10361 Components i Circuits Electronics I 6.0 30 2 0
|
||||||
|
10361 Components i Circuits Electronics I 6.0 40 3 0
|
||||||
|
10362 Laboratori d`Ordinadors 4.5 10 12 0
|
||||||
10362 Laboratori d`Ordinadors 4.5 11 111 0
|
10362 Laboratori d`Ordinadors 4.5 11 111 0
|
||||||
SELECT DISTINCT fill,t3.idPla FROM t4 LEFT JOIN t3 ON t3.cod_asig=t4.fill AND t3.estat='S' AND t3.dni_pasaporte='1234' AND t3.idPla=1 ;
|
SELECT DISTINCT fill,t3.idPla FROM t4 LEFT JOIN t3 ON t3.cod_asig=t4.fill AND t3.estat='S' AND t3.dni_pasaporte='1234' AND t3.idPla=1 ;
|
||||||
fill idPla
|
fill idPla
|
||||||
@ -308,8 +308,8 @@ select t1.name, t2.name, t2.id from t1 left join t2 on (t1.id = t2.owner);
|
|||||||
name name id
|
name name id
|
||||||
Antonio Paz El Gato 1
|
Antonio Paz El Gato 1
|
||||||
Antonio Paz Perrito 2
|
Antonio Paz Perrito 2
|
||||||
Thimble Smith Happy 3
|
|
||||||
Lilliana Angelovska NULL NULL
|
Lilliana Angelovska NULL NULL
|
||||||
|
Thimble Smith Happy 3
|
||||||
select t1.name, t2.name, t2.id from t1 left join t2 on (t1.id = t2.owner) where t2.id is null;
|
select t1.name, t2.name, t2.id from t1 left join t2 on (t1.id = t2.owner) where t2.id is null;
|
||||||
name name id
|
name name id
|
||||||
Lilliana Angelovska NULL NULL
|
Lilliana Angelovska NULL NULL
|
||||||
@ -328,8 +328,8 @@ select t1.name, t2.name, t2.id from t2 right join t1 on (t1.id = t2.owner);
|
|||||||
name name id
|
name name id
|
||||||
Antonio Paz El Gato 1
|
Antonio Paz El Gato 1
|
||||||
Antonio Paz Perrito 2
|
Antonio Paz Perrito 2
|
||||||
Thimble Smith Happy 3
|
|
||||||
Lilliana Angelovska NULL NULL
|
Lilliana Angelovska NULL NULL
|
||||||
|
Thimble Smith Happy 3
|
||||||
select t1.name, t2.name, t2.id from t2 right join t1 on (t1.id = t2.owner) where t2.id is null;
|
select t1.name, t2.name, t2.id from t2 right join t1 on (t1.id = t2.owner) where t2.id is null;
|
||||||
name name id
|
name name id
|
||||||
Lilliana Angelovska NULL NULL
|
Lilliana Angelovska NULL NULL
|
||||||
@ -348,20 +348,20 @@ select t1.name, t2.name, t2.id,t3.id from t2 right join t1 on (t1.id = t2.owner)
|
|||||||
name name id id
|
name name id id
|
||||||
Antonio Paz El Gato 1 1
|
Antonio Paz El Gato 1 1
|
||||||
Antonio Paz Perrito 2 1
|
Antonio Paz Perrito 2 1
|
||||||
Thimble Smith Happy 3 3
|
|
||||||
Lilliana Angelovska NULL NULL NULL
|
Lilliana Angelovska NULL NULL NULL
|
||||||
|
Thimble Smith Happy 3 3
|
||||||
select t1.name, t2.name, t2.id,t3.id from t1 right join t2 on (t1.id = t2.owner) right join t1 as t3 on t3.id=t2.owner;
|
select t1.name, t2.name, t2.id,t3.id from t1 right join t2 on (t1.id = t2.owner) right join t1 as t3 on t3.id=t2.owner;
|
||||||
name name id id
|
name name id id
|
||||||
Antonio Paz El Gato 1 1
|
Antonio Paz El Gato 1 1
|
||||||
Antonio Paz Perrito 2 1
|
Antonio Paz Perrito 2 1
|
||||||
Thimble Smith Happy 3 3
|
|
||||||
NULL NULL NULL 2
|
NULL NULL NULL 2
|
||||||
|
Thimble Smith Happy 3 3
|
||||||
select t1.name, t2.name, t2.id, t2.owner, t3.id from t1 left join t2 on (t1.id = t2.owner) right join t1 as t3 on t3.id=t2.owner;
|
select t1.name, t2.name, t2.id, t2.owner, t3.id from t1 left join t2 on (t1.id = t2.owner) right join t1 as t3 on t3.id=t2.owner;
|
||||||
name name id owner id
|
name name id owner id
|
||||||
Antonio Paz El Gato 1 1 1
|
Antonio Paz El Gato 1 1 1
|
||||||
Antonio Paz Perrito 2 1 1
|
Antonio Paz Perrito 2 1 1
|
||||||
Thimble Smith Happy 3 3 3
|
|
||||||
NULL NULL NULL NULL 2
|
NULL NULL NULL NULL 2
|
||||||
|
Thimble Smith Happy 3 3 3
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
create table t1 (id int not null, str char(10), index(str));
|
create table t1 (id int not null, str char(10), index(str));
|
||||||
insert into t1 values (1, null), (2, null), (3, "foo"), (4, "bar");
|
insert into t1 values (1, null), (2, null), (3, "foo"), (4, "bar");
|
||||||
@ -642,9 +642,9 @@ fooID barID fooID
|
|||||||
30 3 30
|
30 3 30
|
||||||
select * from t2 left join t1 ignore index(primary) on t1.fooID = t2.fooID and t1.fooID = 30;
|
select * from t2 left join t1 ignore index(primary) on t1.fooID = t2.fooID and t1.fooID = 30;
|
||||||
fooID barID fooID
|
fooID barID fooID
|
||||||
30 3 30
|
|
||||||
10 1 NULL
|
10 1 NULL
|
||||||
20 2 NULL
|
20 2 NULL
|
||||||
|
30 3 30
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
create table t1 (i int);
|
create table t1 (i int);
|
||||||
create table t2 (i int);
|
create table t2 (i int);
|
||||||
@ -654,21 +654,21 @@ insert into t2 values(2),(3);
|
|||||||
insert into t3 values(2),(4);
|
insert into t3 values(2),(4);
|
||||||
select * from t1 natural left join t2 natural left join t3;
|
select * from t1 natural left join t2 natural left join t3;
|
||||||
i
|
i
|
||||||
2
|
|
||||||
1
|
1
|
||||||
|
2
|
||||||
select * from t1 natural left join t2 where (t2.i is not null)=0;
|
select * from t1 natural left join t2 where (t2.i is not null)=0;
|
||||||
i
|
i
|
||||||
1
|
1
|
||||||
select * from t1 natural left join t2 where (t2.i is not null) is not null;
|
select * from t1 natural left join t2 where (t2.i is not null) is not null;
|
||||||
i
|
i
|
||||||
2
|
|
||||||
1
|
1
|
||||||
|
2
|
||||||
select * from t1 natural left join t2 where (i is not null)=0;
|
select * from t1 natural left join t2 where (i is not null)=0;
|
||||||
i
|
i
|
||||||
select * from t1 natural left join t2 where (i is not null) is not null;
|
select * from t1 natural left join t2 where (i is not null) is not null;
|
||||||
i
|
i
|
||||||
2
|
|
||||||
1
|
1
|
||||||
|
2
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
create table t1 (f1 integer,f2 integer,f3 integer);
|
create table t1 (f1 integer,f2 integer,f3 integer);
|
||||||
create table t2 (f2 integer,f4 integer);
|
create table t2 (f2 integer,f4 integer);
|
||||||
@ -1027,40 +1027,40 @@ a b a b
|
|||||||
7 8 7 5
|
7 8 7 5
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t2.b > t1.a OR t1.a > t1.b;
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t2.b > t1.a OR t1.a > t1.b;
|
||||||
a b a b
|
a b a b
|
||||||
|
2 1 NULL NULL
|
||||||
3 2 3 0
|
3 2 3 0
|
||||||
4 3 4 1
|
4 3 4 1
|
||||||
6 5 6 4
|
6 5 6 4
|
||||||
2 1 NULL NULL
|
|
||||||
8 7 NULL NULL
|
8 7 NULL NULL
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a NOT BETWEEN t2.b AND t1.b;
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a NOT BETWEEN t2.b AND t1.b;
|
||||||
a b a b
|
a b a b
|
||||||
|
2 1 NULL NULL
|
||||||
3 2 3 0
|
3 2 3 0
|
||||||
4 3 4 1
|
4 3 4 1
|
||||||
6 5 6 4
|
6 5 6 4
|
||||||
2 1 NULL NULL
|
|
||||||
8 7 NULL NULL
|
8 7 NULL NULL
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE NOT(t1.a BETWEEN t2.b AND t1.b);
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE NOT(t1.a BETWEEN t2.b AND t1.b);
|
||||||
a b a b
|
a b a b
|
||||||
|
2 1 NULL NULL
|
||||||
3 2 3 0
|
3 2 3 0
|
||||||
4 3 4 1
|
4 3 4 1
|
||||||
6 5 6 4
|
6 5 6 4
|
||||||
2 1 NULL NULL
|
|
||||||
8 7 NULL NULL
|
8 7 NULL NULL
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a = t2.a OR t2.b > t1.a OR t1.a > t1.b;
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a = t2.a OR t2.b > t1.a OR t1.a > t1.b;
|
||||||
a b a b
|
a b a b
|
||||||
|
2 1 NULL NULL
|
||||||
3 2 3 0
|
3 2 3 0
|
||||||
4 3 4 1
|
4 3 4 1
|
||||||
6 5 6 4
|
6 5 6 4
|
||||||
7 8 7 5
|
7 8 7 5
|
||||||
2 1 NULL NULL
|
|
||||||
8 7 NULL NULL
|
8 7 NULL NULL
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE NOT(t1.a != t2.a AND t1.a BETWEEN t2.b AND t1.b);
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE NOT(t1.a != t2.a AND t1.a BETWEEN t2.b AND t1.b);
|
||||||
a b a b
|
a b a b
|
||||||
|
2 1 NULL NULL
|
||||||
3 2 3 0
|
3 2 3 0
|
||||||
4 3 4 1
|
4 3 4 1
|
||||||
6 5 6 4
|
6 5 6 4
|
||||||
7 8 7 5
|
7 8 7 5
|
||||||
2 1 NULL NULL
|
|
||||||
8 7 NULL NULL
|
8 7 NULL NULL
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a = t2.a AND (t2.b > t1.a OR t1.a > t1.b);
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a = t2.a AND (t2.b > t1.a OR t1.a > t1.b);
|
||||||
a b a b
|
a b a b
|
||||||
@ -1173,33 +1173,33 @@ INSERT INTO t1 VALUES (1), (2), (3), (4);
|
|||||||
INSERT INTO t2 VALUES (2), (3);
|
INSERT INTO t2 VALUES (2), (3);
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1);
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1);
|
||||||
a b
|
a b
|
||||||
|
1 NULL
|
||||||
2 2
|
2 2
|
||||||
3 3
|
3 3
|
||||||
1 NULL
|
|
||||||
4 NULL
|
4 NULL
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1 OR 1);
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1 OR 1);
|
||||||
a b
|
a b
|
||||||
|
1 NULL
|
||||||
2 2
|
2 2
|
||||||
3 3
|
3 3
|
||||||
1 NULL
|
|
||||||
4 NULL
|
4 NULL
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (0 OR 1);
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (0 OR 1);
|
||||||
a b
|
a b
|
||||||
|
1 NULL
|
||||||
2 2
|
2 2
|
||||||
3 3
|
3 3
|
||||||
1 NULL
|
|
||||||
4 NULL
|
4 NULL
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1 OR 2=2);
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1 OR 2=2);
|
||||||
a b
|
a b
|
||||||
|
1 NULL
|
||||||
2 2
|
2 2
|
||||||
3 3
|
3 3
|
||||||
1 NULL
|
|
||||||
4 NULL
|
4 NULL
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1 OR 1=0);
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1 OR 1=0);
|
||||||
a b
|
a b
|
||||||
|
1 NULL
|
||||||
2 2
|
2 2
|
||||||
3 3
|
3 3
|
||||||
1 NULL
|
|
||||||
4 NULL
|
4 NULL
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
@ -1407,6 +1407,248 @@ Warnings:
|
|||||||
Note 1003 select straight_join `test`.`jt1`.`f1` AS `f1` from `test`.`t1` `jt6` left join (`test`.`t1` `jt3` join `test`.`t1` `jt4` left join `test`.`t1` `jt5` on(1) left join `test`.`t1` `jt2` on(1)) on((`test`.`jt6`.`f1` and 1)) left join `test`.`t1` `jt1` on(1) where 1
|
Note 1003 select straight_join `test`.`jt1`.`f1` AS `f1` from `test`.`t1` `jt6` left join (`test`.`t1` `jt3` join `test`.`t1` `jt4` left join `test`.`t1` `jt5` on(1) left join `test`.`t1` `jt2` on(1)) on((`test`.`jt6`.`f1` and 1)) left join `test`.`t1` `jt1` on(1) where 1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
|
# Bug#57688 Assertion `!table || (!table->write_set || bitmap_is_set(table->write_set, field
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (f1 INT NOT NULL, PRIMARY KEY (f1));
|
||||||
|
CREATE TABLE t2 (f1 INT NOT NULL, f2 INT NOT NULL, PRIMARY KEY (f1, f2));
|
||||||
|
INSERT INTO t1 VALUES (4);
|
||||||
|
INSERT INTO t2 VALUES (3, 3);
|
||||||
|
INSERT INTO t2 VALUES (7, 7);
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
|
||||||
|
WHERE t1.f1 = 4
|
||||||
|
GROUP BY t2.f1, t2.f2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using temporary; Using filesort
|
||||||
|
1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using index
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
|
||||||
|
WHERE t1.f1 = 4
|
||||||
|
GROUP BY t2.f1, t2.f2;
|
||||||
|
f1 f1 f2
|
||||||
|
4 NULL NULL
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
|
||||||
|
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
|
||||||
|
GROUP BY t2.f1, t2.f2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort
|
||||||
|
1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
|
||||||
|
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
|
||||||
|
GROUP BY t2.f1, t2.f2;
|
||||||
|
f1 f1 f2
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
#
|
||||||
|
# Bug#57034 incorrect OUTER JOIN result when joined on unique key
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (pk INT PRIMARY KEY,
|
||||||
|
col_int INT,
|
||||||
|
col_int_unique INT UNIQUE KEY);
|
||||||
|
INSERT INTO t1 VALUES (1,NULL,2), (2,0,0);
|
||||||
|
CREATE TABLE t2 (pk INT PRIMARY KEY,
|
||||||
|
col_int INT,
|
||||||
|
col_int_unique INT UNIQUE KEY);
|
||||||
|
INSERT INTO t2 VALUES (1,0,1), (2,0,2);
|
||||||
|
EXPLAIN
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2
|
||||||
|
ON t1.col_int_unique = t2.col_int_unique AND t1.col_int = t2.col_int
|
||||||
|
WHERE t1.pk=1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
|
1 SIMPLE t2 const col_int_unique col_int_unique 5 const 1
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2
|
||||||
|
ON t1.col_int_unique = t2.col_int_unique AND t1.col_int = t2.col_int
|
||||||
|
WHERE t1.pk=1;
|
||||||
|
pk col_int col_int_unique pk col_int col_int_unique
|
||||||
|
1 NULL 2 NULL NULL NULL
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
#
|
||||||
|
# Bug#48046 Server incorrectly processing JOINs on NULL values
|
||||||
|
#
|
||||||
|
CREATE TABLE `BB` (
|
||||||
|
`pk` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`time_key` time DEFAULT NULL,
|
||||||
|
`varchar_key` varchar(1) DEFAULT NULL,
|
||||||
|
`varchar_nokey` varchar(1) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`pk`),
|
||||||
|
KEY `time_key` (`time_key`),
|
||||||
|
KEY `varchar_key` (`varchar_key`)
|
||||||
|
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
|
||||||
|
INSERT INTO `BB` VALUES (10,'18:27:58',NULL,NULL);
|
||||||
|
SELECT table1.time_key AS field1, table2.pk
|
||||||
|
FROM BB table1 LEFT JOIN BB table2
|
||||||
|
ON table2.varchar_nokey = table1.varchar_key
|
||||||
|
HAVING field1;
|
||||||
|
field1 pk
|
||||||
|
18:27:58 NULL
|
||||||
|
DROP TABLE BB;
|
||||||
|
#
|
||||||
|
# Bug#49600 Server incorrectly processing RIGHT JOIN with
|
||||||
|
# constant WHERE clause and no index
|
||||||
|
#
|
||||||
|
CREATE TABLE `BB` (
|
||||||
|
`col_datetime_key` datetime DEFAULT NULL,
|
||||||
|
`col_varchar_key` varchar(1) DEFAULT NULL,
|
||||||
|
`col_varchar_nokey` varchar(1) DEFAULT NULL,
|
||||||
|
KEY `col_datetime_key` (`col_datetime_key`),
|
||||||
|
KEY `col_varchar_key` (`col_varchar_key`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
INSERT INTO `BB` VALUES ('1900-01-01 00:00:00',NULL,NULL);
|
||||||
|
SELECT table1.col_datetime_key
|
||||||
|
FROM BB table1 RIGHT JOIN BB table2
|
||||||
|
ON table2 .col_varchar_nokey = table1.col_varchar_key
|
||||||
|
WHERE 7;
|
||||||
|
col_datetime_key
|
||||||
|
NULL
|
||||||
|
ALTER TABLE BB DISABLE KEYS;
|
||||||
|
SELECT table1.col_datetime_key
|
||||||
|
FROM BB table1 RIGHT JOIN BB table2
|
||||||
|
ON table2 .col_varchar_nokey = table1.col_varchar_key
|
||||||
|
WHERE 7;
|
||||||
|
col_datetime_key
|
||||||
|
NULL
|
||||||
|
DROP TABLE BB;
|
||||||
|
#
|
||||||
|
# Bug#58490: Incorrect result in multi level OUTER JOIN
|
||||||
|
# in combination with IS NULL
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (i INT NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES (0), (2),(3),(4);
|
||||||
|
CREATE TABLE t2 (i INT NOT NULL);
|
||||||
|
INSERT INTO t2 VALUES (0),(1), (3),(4);
|
||||||
|
CREATE TABLE t3 (i INT NOT NULL);
|
||||||
|
INSERT INTO t3 VALUES (0),(1),(2), (4);
|
||||||
|
CREATE TABLE t4 (i INT NOT NULL);
|
||||||
|
INSERT INTO t4 VALUES (0),(1),(2),(3) ;
|
||||||
|
SELECT * FROM
|
||||||
|
t1 LEFT JOIN
|
||||||
|
( t2 LEFT JOIN
|
||||||
|
( t3 LEFT JOIN
|
||||||
|
t4
|
||||||
|
ON t4.i = t3.i
|
||||||
|
)
|
||||||
|
ON t3.i = t2.i
|
||||||
|
)
|
||||||
|
ON t2.i = t1.i
|
||||||
|
;
|
||||||
|
i i i i
|
||||||
|
0 0 0 0
|
||||||
|
2 NULL NULL NULL
|
||||||
|
3 3 NULL NULL
|
||||||
|
4 4 4 NULL
|
||||||
|
SELECT * FROM
|
||||||
|
t1 LEFT JOIN
|
||||||
|
( t2 LEFT JOIN
|
||||||
|
( t3 LEFT JOIN
|
||||||
|
t4
|
||||||
|
ON t4.i = t3.i
|
||||||
|
)
|
||||||
|
ON t3.i = t2.i
|
||||||
|
)
|
||||||
|
ON t2.i = t1.i
|
||||||
|
WHERE t4.i IS NULL;
|
||||||
|
i i i i
|
||||||
|
2 NULL NULL NULL
|
||||||
|
3 3 NULL NULL
|
||||||
|
4 4 4 NULL
|
||||||
|
SELECT * FROM
|
||||||
|
t1 LEFT JOIN
|
||||||
|
( ( t2 LEFT JOIN
|
||||||
|
t3
|
||||||
|
ON t3.i = t2.i
|
||||||
|
)
|
||||||
|
)
|
||||||
|
ON t2.i = t1.i
|
||||||
|
WHERE t3.i IS NULL;
|
||||||
|
i i i
|
||||||
|
2 NULL NULL
|
||||||
|
3 3 NULL
|
||||||
|
SELECT * FROM
|
||||||
|
t1 LEFT JOIN
|
||||||
|
( ( t2 LEFT JOIN
|
||||||
|
t3
|
||||||
|
ON t3.i = t2.i
|
||||||
|
)
|
||||||
|
JOIN t4
|
||||||
|
ON t4.i=t2.i
|
||||||
|
)
|
||||||
|
ON t2.i = t1.i
|
||||||
|
WHERE t3.i IS NULL;
|
||||||
|
i i i i
|
||||||
|
2 NULL NULL NULL
|
||||||
|
3 3 NULL 3
|
||||||
|
4 NULL NULL NULL
|
||||||
|
SELECT * FROM
|
||||||
|
t1 LEFT JOIN
|
||||||
|
( ( t2 LEFT JOIN
|
||||||
|
t3
|
||||||
|
ON t3.i = t2.i
|
||||||
|
)
|
||||||
|
JOIN (t4 AS t4a JOIN t4 AS t4b ON t4a.i=t4b.i)
|
||||||
|
ON t4a.i=t2.i
|
||||||
|
)
|
||||||
|
ON t2.i = t1.i
|
||||||
|
WHERE t3.i IS NULL;
|
||||||
|
i i i i i
|
||||||
|
2 NULL NULL NULL NULL
|
||||||
|
3 3 NULL 3 3
|
||||||
|
4 NULL NULL NULL NULL
|
||||||
|
SELECT * FROM
|
||||||
|
t1 LEFT JOIN
|
||||||
|
( ( t2 LEFT JOIN
|
||||||
|
t3
|
||||||
|
ON t3.i = t2.i
|
||||||
|
)
|
||||||
|
JOIN (t4 AS t4a, t4 AS t4b)
|
||||||
|
ON t4a.i=t2.i
|
||||||
|
)
|
||||||
|
ON t2.i = t1.i
|
||||||
|
WHERE t3.i IS NULL;
|
||||||
|
i i i i i
|
||||||
|
2 NULL NULL NULL NULL
|
||||||
|
3 3 NULL 3 0
|
||||||
|
3 3 NULL 3 1
|
||||||
|
3 3 NULL 3 2
|
||||||
|
3 3 NULL 3 3
|
||||||
|
4 NULL NULL NULL NULL
|
||||||
|
DROP TABLE t1,t2,t3,t4;
|
||||||
|
#
|
||||||
|
# Bug#49322(Duplicate): Server is adding extra NULL row
|
||||||
|
# on processing a WHERE clause
|
||||||
|
#
|
||||||
|
CREATE TABLE h (pk INT NOT NULL, col_int_key INT);
|
||||||
|
INSERT INTO h VALUES (1,NULL),(4,2),(5,2),(3,4),(2,8);
|
||||||
|
CREATE TABLE m (pk INT NOT NULL, col_int_key INT);
|
||||||
|
INSERT INTO m VALUES (1,2),(2,7),(3,5),(4,7),(5,5),(6,NULL),(7,NULL),(8,9);
|
||||||
|
CREATE TABLE k (pk INT NOT NULL, col_int_key INT);
|
||||||
|
INSERT INTO k VALUES (1,9),(2,2),(3,5),(4,2),(5,7),(6,0),(7,5);
|
||||||
|
SELECT TABLE1.pk FROM k TABLE1
|
||||||
|
RIGHT JOIN h TABLE2 ON TABLE1.col_int_key=TABLE2.col_int_key
|
||||||
|
RIGHT JOIN m TABLE4 ON TABLE2.col_int_key=TABLE4.col_int_key;
|
||||||
|
pk
|
||||||
|
2
|
||||||
|
2
|
||||||
|
4
|
||||||
|
4
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
SELECT TABLE1.pk FROM k TABLE1
|
||||||
|
RIGHT JOIN h TABLE2 ON TABLE1.col_int_key=TABLE2.col_int_key
|
||||||
|
RIGHT JOIN m TABLE4 ON TABLE2.col_int_key=TABLE4.col_int_key
|
||||||
|
WHERE TABLE1.pk IS NULL;
|
||||||
|
pk
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
DROP TABLE h,m,k;
|
||||||
|
#
|
||||||
# Bug#49600: outer join of two single-row tables with joining attributes
|
# Bug#49600: outer join of two single-row tables with joining attributes
|
||||||
# evaluated to nulls
|
# evaluated to nulls
|
||||||
create table t1 (a int, b int);
|
create table t1 (a int, b int);
|
||||||
|
@ -145,6 +145,7 @@ f2
|
|||||||
0
|
0
|
||||||
SET DEBUG_SYNC = 'RESET';
|
SET DEBUG_SYNC = 'RESET';
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
SET SESSION optimizer_search_depth=0;
|
||||||
SET DEBUG_SYNC= 'before_join_optimize SIGNAL in_sync';
|
SET DEBUG_SYNC= 'before_join_optimize SIGNAL in_sync';
|
||||||
PREPARE stmt FROM 'EXPLAIN SELECT * FROM t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,t21,t22,t23,t24,t25,t26,t27,t28,t29,t30,t31,t32,t33,t34,t35,t36,t37,t38,t39,t40 WHERE a1=a2 AND a2=a3 AND a3=a4 AND a4=a5 AND a5=a6 AND a6=a7 AND a7=a8 AND a8=a9 AND a9=a10 AND a10=a11 AND a11=a12 AND a12=a13 AND a13=a14 AND a14=a15 AND a15=a16 AND a16=a17 AND a17=a18 AND a18=a19 AND a19=a20 AND a20=a21 AND a21=a22 AND a22=a23 AND a23=a24 AND a24=a25 AND a25=a26 AND a26=a27 AND a27=a28 AND a28=a29 AND a29=a30 AND a30=a31 AND a31=a32 AND a32=a33 AND a33=a34 AND a34=a35 AND a35=a36 AND a36=a37 AND a37=a38 AND a38=a39 AND a39=a40 ';
|
PREPARE stmt FROM 'EXPLAIN SELECT * FROM t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,t21,t22,t23,t24,t25,t26,t27,t28,t29,t30,t31,t32,t33,t34,t35,t36,t37,t38,t39,t40 WHERE a1=a2 AND a2=a3 AND a3=a4 AND a4=a5 AND a5=a6 AND a6=a7 AND a7=a8 AND a8=a9 AND a9=a10 AND a10=a11 AND a11=a12 AND a12=a13 AND a13=a14 AND a14=a15 AND a15=a16 AND a16=a17 AND a17=a18 AND a18=a19 AND a19=a20 AND a20=a21 AND a21=a22 AND a22=a23 AND a23=a24 AND a24=a25 AND a25=a26 AND a26=a27 AND a27=a28 AND a28=a29 AND a29=a30 AND a30=a31 AND a31=a32 AND a32=a33 AND a33=a34 AND a34=a35 AND a35=a36 AND a36=a37 AND a37=a38 AND a38=a39 AND a39=a40 ';
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
@ -347,7 +347,7 @@ GROUP BY t2.pk
|
|||||||
);
|
);
|
||||||
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 NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
|
||||||
2 SUBQUERY t2 ALL int_key int_key 5 3 33.33 Using index condition; Using filesort
|
2 SUBQUERY t2 ref int_key int_key 5 1 100.00 Using index condition; Using where; Using filesort
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select min(`test`.`t1`.`pk`) AS `MIN(t1.pk)` from `test`.`t1` where 0
|
Note 1003 select min(`test`.`t1`.`pk`) AS `MIN(t1.pk)` from `test`.`t1` where 0
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
@ -298,8 +298,7 @@ CHECK TABLE bug47205 FOR UPGRADE;
|
|||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.bug47205 check error Table upgrade required. Please do "REPAIR TABLE `bug47205`" or dump/reload to fix it!
|
test.bug47205 check error Table upgrade required. Please do "REPAIR TABLE `bug47205`" or dump/reload to fix it!
|
||||||
# Running mysqlcheck to check and upgrade
|
# Running mysqlcheck to check and upgrade
|
||||||
test.bug47205
|
test.bug47205 Needs upgrade
|
||||||
error : Table upgrade required. Please do "REPAIR TABLE `bug47205`" or dump/reload to fix it!
|
|
||||||
|
|
||||||
Repairing tables
|
Repairing tables
|
||||||
test.bug47205 OK
|
test.bug47205 OK
|
||||||
|
@ -374,6 +374,8 @@ The following options may be given as the first argument:
|
|||||||
Don't write queries to slow log that examine fewer rows
|
Don't write queries to slow log that examine fewer rows
|
||||||
than that
|
than that
|
||||||
--mrr-buffer-size=# Size of buffer to use when using MRR with range access
|
--mrr-buffer-size=# Size of buffer to use when using MRR with range access
|
||||||
|
--multi-range-count=#
|
||||||
|
Ignored. Use mrr_buffer_size instead
|
||||||
--myisam-block-size=#
|
--myisam-block-size=#
|
||||||
Block size to be used for MyISAM index pages
|
Block size to be used for MyISAM index pages
|
||||||
--myisam-data-pointer-size=#
|
--myisam-data-pointer-size=#
|
||||||
@ -907,6 +909,7 @@ max-write-lock-count 18446744073709551615
|
|||||||
memlock FALSE
|
memlock FALSE
|
||||||
min-examined-row-limit 0
|
min-examined-row-limit 0
|
||||||
mrr-buffer-size 262144
|
mrr-buffer-size 262144
|
||||||
|
multi-range-count 256
|
||||||
myisam-block-size 1024
|
myisam-block-size 1024
|
||||||
myisam-data-pointer-size 6
|
myisam-data-pointer-size 6
|
||||||
myisam-max-sort-file-size 9223372036853727232
|
myisam-max-sort-file-size 9223372036853727232
|
||||||
|
@ -189,7 +189,7 @@ UNLOCK TABLES;
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
SSL error: Unable to get private key from 'MYSQL_TEST_DIR/std_data/client-cert.pem'
|
SSL error: Unable to get private key from 'MYSQL_TEST_DIR/std_data/client-cert.pem'
|
||||||
mysqldump: Got error: 2026: SSL connection error: Unable to get private key when trying to connect
|
mysqldump: Got error: 2026: "SSL connection error: Unable to get private key" when trying to connect
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Ssl_cipher DHE-RSA-AES256-SHA
|
Ssl_cipher DHE-RSA-AES256-SHA
|
||||||
|
@ -75,9 +75,9 @@ SET SQL_MODE='IGNORE_BAD_TABLE_OPTIONS';
|
|||||||
#illegal value fixed
|
#illegal value fixed
|
||||||
CREATE TABLE t1 (a int) ENGINE=example ULL=10000000000000000000 one_or_two='ttt' YESNO=SSS;
|
CREATE TABLE t1 (a int) ENGINE=example ULL=10000000000000000000 one_or_two='ttt' YESNO=SSS;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1708 Incorrect value '10000000000000000000' for option 'ULL'
|
Warning 1723 Incorrect value '10000000000000000000' for option 'ULL'
|
||||||
Warning 1708 Incorrect value 'ttt' for option 'one_or_two'
|
Warning 1723 Incorrect value 'ttt' for option 'one_or_two'
|
||||||
Warning 1708 Incorrect value 'SSS' for option 'YESNO'
|
Warning 1723 Incorrect value 'SSS' for option 'YESNO'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
|
@ -44,7 +44,7 @@ ERROR 28000: Access denied for user 'plug'@'localhost' (using password: YES)
|
|||||||
## test correct default plugin
|
## test correct default plugin
|
||||||
select USER(),CURRENT_USER();
|
select USER(),CURRENT_USER();
|
||||||
USER() CURRENT_USER()
|
USER() CURRENT_USER()
|
||||||
plug@localhost plug@%
|
plug@localhost plug_dest@%
|
||||||
## test no_auto_create_user sql mode with plugin users
|
## test no_auto_create_user sql mode with plugin users
|
||||||
SET @@sql_mode=no_auto_create_user;
|
SET @@sql_mode=no_auto_create_user;
|
||||||
GRANT INSERT ON TEST.* TO grant_user IDENTIFIED WITH 'test_plugin_server';
|
GRANT INSERT ON TEST.* TO grant_user IDENTIFIED WITH 'test_plugin_server';
|
||||||
@ -72,13 +72,12 @@ DROP TABLE t1;
|
|||||||
REVOKE ALL PRIVILEGES ON test_grant_db.* FROM new_grant_user;
|
REVOKE ALL PRIVILEGES ON test_grant_db.* FROM new_grant_user;
|
||||||
# try re-create existing user via GRANT IDENTIFIED BY
|
# try re-create existing user via GRANT IDENTIFIED BY
|
||||||
GRANT ALL PRIVILEGES ON test_grant_db.* TO new_grant_user
|
GRANT ALL PRIVILEGES ON test_grant_db.* TO new_grant_user
|
||||||
IDENTIFIED BY 'unused_password';
|
IDENTIFIED BY 'new_password';
|
||||||
# make sure password doesn't take precendence
|
connect(localhost,new_grant_user,plug_dest,test,MYSQL_PORT,MYSQL_SOCK);
|
||||||
ERROR 28000: Access denied for user 'new_grant_user'@'localhost' (using password: YES)
|
ERROR 28000: Access denied for user 'new_grant_user'@'localhost' (using password: YES)
|
||||||
#make sure plugin auth still available
|
|
||||||
select USER(),CURRENT_USER();
|
select USER(),CURRENT_USER();
|
||||||
USER() CURRENT_USER()
|
USER() CURRENT_USER()
|
||||||
new_grant_user@localhost plug_dest@%
|
new_grant_user@localhost new_grant_user@%
|
||||||
USE test_grant_db;
|
USE test_grant_db;
|
||||||
CREATE TABLE t1 (a INT);
|
CREATE TABLE t1 (a INT);
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
@ -86,10 +85,8 @@ DROP USER new_grant_user;
|
|||||||
# try re-create existing user via GRANT IDENTIFIED WITH
|
# try re-create existing user via GRANT IDENTIFIED WITH
|
||||||
GRANT ALL PRIVILEGES ON test_grant_db.* TO plug
|
GRANT ALL PRIVILEGES ON test_grant_db.* TO plug
|
||||||
IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||||
ERROR HY000: GRANT with IDENTIFIED WITH is illegal because the user plug already exists
|
|
||||||
GRANT ALL PRIVILEGES ON test_grant_db.* TO plug_dest
|
GRANT ALL PRIVILEGES ON test_grant_db.* TO plug_dest
|
||||||
IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||||
ERROR HY000: GRANT with IDENTIFIED WITH is illegal because the user plug_dest already exists
|
|
||||||
REVOKE SELECT on test_grant_db.* FROM joro
|
REVOKE SELECT on test_grant_db.* FROM joro
|
||||||
INDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
INDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||||
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 'INDENTIFIED WITH 'test_plugin_server' AS 'plug_dest'' 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 'INDENTIFIED WITH 'test_plugin_server' AS 'plug_dest'' at line 2
|
||||||
@ -152,12 +149,12 @@ GRANT PROXY ON future_user TO grant_plug;
|
|||||||
in default connection
|
in default connection
|
||||||
SHOW GRANTS FOR grant_plug;
|
SHOW GRANTS FOR grant_plug;
|
||||||
Grants for grant_plug@%
|
Grants for grant_plug@%
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest' WITH GRANT OPTION
|
||||||
GRANT PROXY ON 'future_user'@'%' TO 'grant_plug'@'%'
|
GRANT PROXY ON 'future_user'@'%' TO 'grant_plug'@'%'
|
||||||
REVOKE PROXY ON future_user FROM grant_plug;
|
REVOKE PROXY ON future_user FROM grant_plug;
|
||||||
SHOW GRANTS FOR grant_plug;
|
SHOW GRANTS FOR grant_plug;
|
||||||
Grants for grant_plug@%
|
Grants for grant_plug@%
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest' WITH GRANT OPTION
|
||||||
## testing drop user
|
## testing drop user
|
||||||
CREATE USER test_drop@localhost;
|
CREATE USER test_drop@localhost;
|
||||||
GRANT PROXY ON future_user TO test_drop@localhost;
|
GRANT PROXY ON future_user TO test_drop@localhost;
|
||||||
@ -286,31 +283,6 @@ REVOKE ALL PRIVILEGES ON *.* FROM u1@localhost, u2@localhost;
|
|||||||
DROP USER u1@localhost,u2@localhost;
|
DROP USER u1@localhost,u2@localhost;
|
||||||
# test if FLUSH PRIVILEGES works without the proxies_priv table
|
# test if FLUSH PRIVILEGES works without the proxies_priv table
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
mtr.global_suppressions OK
|
|
||||||
mtr.test_suppressions OK
|
|
||||||
mysql.columns_priv OK
|
|
||||||
mysql.db OK
|
|
||||||
mysql.event OK
|
|
||||||
mysql.func OK
|
|
||||||
mysql.general_log OK
|
|
||||||
mysql.help_category OK
|
|
||||||
mysql.help_keyword OK
|
|
||||||
mysql.help_relation OK
|
|
||||||
mysql.help_topic OK
|
|
||||||
mysql.host OK
|
|
||||||
mysql.ndb_binlog_index OK
|
|
||||||
mysql.plugin OK
|
|
||||||
mysql.proc OK
|
|
||||||
mysql.procs_priv OK
|
|
||||||
mysql.servers OK
|
|
||||||
mysql.slow_log OK
|
|
||||||
mysql.tables_priv OK
|
|
||||||
mysql.time_zone OK
|
|
||||||
mysql.time_zone_leap_second OK
|
|
||||||
mysql.time_zone_name OK
|
|
||||||
mysql.time_zone_transition OK
|
|
||||||
mysql.time_zone_transition_type OK
|
|
||||||
mysql.user OK
|
|
||||||
SELECT Host,User,Proxied_host,Proxied_user,With_grant FROM mysql.proxies_priv;
|
SELECT Host,User,Proxied_host,Proxied_user,With_grant FROM mysql.proxies_priv;
|
||||||
Host localhost
|
Host localhost
|
||||||
User root
|
User root
|
||||||
@ -390,6 +362,8 @@ VALUES (
|
|||||||
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
|
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
|
||||||
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
|
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
|
||||||
/*!50001 'Y', 'Y', 'Y', 'Y', 'Y', */'', '', '', '', '0', '0', '0');
|
/*!50001 'Y', 'Y', 'Y', 'Y', 'Y', */'', '', '', '', '0', '0', '0');
|
||||||
|
Warnings:
|
||||||
|
Warning 1364 Field 'authentication_string' doesn't have a default value
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
DROP USER inserttest@localhost;
|
DROP USER inserttest@localhost;
|
||||||
SELECT IS_NULLABLE, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE
|
SELECT IS_NULLABLE, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE
|
||||||
@ -398,8 +372,8 @@ TABLE_NAME='user' AND
|
|||||||
TABLE_SCHEMA='mysql'
|
TABLE_SCHEMA='mysql'
|
||||||
ORDER BY COLUMN_NAME;
|
ORDER BY COLUMN_NAME;
|
||||||
IS_NULLABLE COLUMN_NAME
|
IS_NULLABLE COLUMN_NAME
|
||||||
YES authentication_string
|
NO authentication_string
|
||||||
YES plugin
|
NO plugin
|
||||||
#
|
#
|
||||||
# Bug #11936829: diff. between mysql.user (authentication_string)
|
# Bug #11936829: diff. between mysql.user (authentication_string)
|
||||||
# in fresh and upgraded 5.5.11
|
# in fresh and upgraded 5.5.11
|
||||||
@ -409,42 +383,16 @@ WHERE TABLE_SCHEMA= 'mysql' AND TABLE_NAME= 'user' AND
|
|||||||
COLUMN_NAME IN ('plugin', 'authentication_string')
|
COLUMN_NAME IN ('plugin', 'authentication_string')
|
||||||
ORDER BY COLUMN_NAME;
|
ORDER BY COLUMN_NAME;
|
||||||
IS_NULLABLE COLUMN_NAME
|
IS_NULLABLE COLUMN_NAME
|
||||||
YES authentication_string
|
NO authentication_string
|
||||||
YES plugin
|
NO plugin
|
||||||
ALTER TABLE mysql.user MODIFY plugin char(64) DEFAULT '' NOT NULL;
|
ALTER TABLE mysql.user MODIFY plugin char(64) DEFAULT '' NOT NULL;
|
||||||
ALTER TABLE mysql.user MODIFY authentication_string TEXT NOT NULL;
|
ALTER TABLE mysql.user MODIFY authentication_string TEXT NOT NULL;
|
||||||
Run mysql_upgrade on a 5.5.10 external authentication column layout
|
Run mysql_upgrade on a 5.5.10 external authentication column layout
|
||||||
mtr.global_suppressions OK
|
|
||||||
mtr.test_suppressions OK
|
|
||||||
mysql.columns_priv OK
|
|
||||||
mysql.db OK
|
|
||||||
mysql.event OK
|
|
||||||
mysql.func OK
|
|
||||||
mysql.general_log OK
|
|
||||||
mysql.help_category OK
|
|
||||||
mysql.help_keyword OK
|
|
||||||
mysql.help_relation OK
|
|
||||||
mysql.help_topic OK
|
|
||||||
mysql.host OK
|
|
||||||
mysql.ndb_binlog_index OK
|
|
||||||
mysql.plugin OK
|
|
||||||
mysql.proc OK
|
|
||||||
mysql.procs_priv OK
|
|
||||||
mysql.proxies_priv OK
|
|
||||||
mysql.servers OK
|
|
||||||
mysql.slow_log OK
|
|
||||||
mysql.tables_priv OK
|
|
||||||
mysql.time_zone OK
|
|
||||||
mysql.time_zone_leap_second OK
|
|
||||||
mysql.time_zone_name OK
|
|
||||||
mysql.time_zone_transition OK
|
|
||||||
mysql.time_zone_transition_type OK
|
|
||||||
mysql.user OK
|
|
||||||
SELECT IS_NULLABLE, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
|
SELECT IS_NULLABLE, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
WHERE TABLE_SCHEMA= 'mysql' AND TABLE_NAME= 'user' AND
|
WHERE TABLE_SCHEMA= 'mysql' AND TABLE_NAME= 'user' AND
|
||||||
COLUMN_NAME IN ('plugin', 'authentication_string')
|
COLUMN_NAME IN ('plugin', 'authentication_string')
|
||||||
ORDER BY COLUMN_NAME;
|
ORDER BY COLUMN_NAME;
|
||||||
IS_NULLABLE COLUMN_NAME
|
IS_NULLABLE COLUMN_NAME
|
||||||
YES authentication_string
|
NO authentication_string
|
||||||
YES plugin
|
NO plugin
|
||||||
End of 5.5 tests
|
End of 5.5 tests
|
||||||
|
@ -105,7 +105,7 @@ CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
|
|||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plug test_plugin_server plug_dest
|
plug test_plugin_server plug_dest
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
DROP USER plug, plug_dest;
|
DROP USER plug, plug_dest;
|
||||||
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
@ -115,7 +115,7 @@ DROP USER plug;
|
|||||||
CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
|
CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
DROP USER plug_dest;
|
DROP USER plug_dest;
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
@ -125,7 +125,7 @@ CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
|
|||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plug test_plugin_server plug_dest
|
plug test_plugin_server plug_dest
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
DROP USER plug, plug_dest;
|
DROP USER plug, plug_dest;
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED WITH test_plugin_server AS 'plug_dest';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED WITH test_plugin_server AS 'plug_dest';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
@ -135,7 +135,7 @@ DROP USER plug;
|
|||||||
CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
|
CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
DROP USER plug_dest;
|
DROP USER plug_dest;
|
||||||
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
@ -145,7 +145,7 @@ GRANT ALL PRIVILEGES ON test_user_db.* TO plug_dest IDENTIFIED BY 'plug_dest_pas
|
|||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plug test_plugin_server plug_dest
|
plug test_plugin_server plug_dest
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
DROP USER plug, plug_dest;
|
DROP USER plug, plug_dest;
|
||||||
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
@ -155,13 +155,11 @@ DROP USER plug;
|
|||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO plug_dest IDENTIFIED BY 'plug_dest_passwd';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO plug_dest IDENTIFIED BY 'plug_dest_passwd';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
DROP USER plug_dest;
|
DROP USER plug_dest;
|
||||||
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||||
ERROR HY000: GRANT with IDENTIFIED WITH is illegal because the user plug already exists
|
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED WITH 'test_plugin_server';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED WITH 'test_plugin_server';
|
||||||
ERROR HY000: GRANT with IDENTIFIED WITH is illegal because the user plug already exists
|
|
||||||
DROP USER plug;
|
DROP USER plug;
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED WITH test_plugin_server AS 'plug_dest';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED WITH test_plugin_server AS 'plug_dest';
|
||||||
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||||
@ -176,7 +174,7 @@ plug test_plugin_server plug_dest
|
|||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED BY 'plug_dest_passwd';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED BY 'plug_dest_passwd';
|
||||||
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string password
|
user plugin authentication_string password
|
||||||
plug test_plugin_server plug_dest *939AEE68989794C0F408277411C26055CDF41119
|
plug *939AEE68989794C0F408277411C26055CDF41119
|
||||||
DROP USER plug;
|
DROP USER plug;
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED WITH test_plugin_server AS 'plug_dest';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO plug IDENTIFIED WITH test_plugin_server AS 'plug_dest';
|
||||||
CREATE USER plug IDENTIFIED BY 'plug_dest_passwd';
|
CREATE USER plug IDENTIFIED BY 'plug_dest_passwd';
|
||||||
@ -210,7 +208,7 @@ DROP USER plüg;
|
|||||||
CREATE USER plüg_dest IDENTIFIED BY 'plug_dest_passwd';
|
CREATE USER plüg_dest IDENTIFIED BY 'plug_dest_passwd';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plüg_dest NULL
|
plüg_dest
|
||||||
DROP USER plüg_dest;
|
DROP USER plüg_dest;
|
||||||
SET NAMES ascii;
|
SET NAMES ascii;
|
||||||
CREATE USER 'plüg' IDENTIFIED WITH 'test_plugin_server' AS 'plüg_dest';
|
CREATE USER 'plüg' IDENTIFIED WITH 'test_plugin_server' AS 'plüg_dest';
|
||||||
@ -221,7 +219,7 @@ DROP USER 'plüg';
|
|||||||
CREATE USER 'plüg_dest' IDENTIFIED BY 'plug_dest_passwd';
|
CREATE USER 'plüg_dest' IDENTIFIED BY 'plug_dest_passwd';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
pl??g_dest NULL
|
pl??g_dest
|
||||||
DROP USER 'plüg_dest';
|
DROP USER 'plüg_dest';
|
||||||
SET NAMES latin1;
|
SET NAMES latin1;
|
||||||
========== test 1.1.1.5 ====================================
|
========== test 1.1.1.5 ====================================
|
||||||
@ -235,7 +233,7 @@ DROP USER 'plug';
|
|||||||
CREATE USER 'plüg_dest' IDENTIFIED BY 'plug_dest_passwd';
|
CREATE USER 'plüg_dest' IDENTIFIED BY 'plug_dest_passwd';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plüg_dest NULL
|
plüg_dest
|
||||||
DROP USER 'plüg_dest';
|
DROP USER 'plüg_dest';
|
||||||
SET NAMES utf8;
|
SET NAMES utf8;
|
||||||
CREATE USER plüg IDENTIFIED WITH 'test_plügin_server' AS 'plüg_dest';
|
CREATE USER plüg IDENTIFIED WITH 'test_plügin_server' AS 'plüg_dest';
|
||||||
@ -248,7 +246,7 @@ DROP USER 'plüg';
|
|||||||
CREATE USER 'plüg_dest' IDENTIFIED BY 'plug_dest_passwd';
|
CREATE USER 'plüg_dest' IDENTIFIED BY 'plug_dest_passwd';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plüg_dest NULL
|
plüg_dest
|
||||||
DROP USER 'plüg_dest';
|
DROP USER 'plüg_dest';
|
||||||
CREATE USER plüg IDENTIFIED WITH test_plugin_server AS 'plüg_dest';
|
CREATE USER plüg IDENTIFIED WITH test_plugin_server AS 'plüg_dest';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
@ -258,7 +256,7 @@ DROP USER plüg;
|
|||||||
CREATE USER plüg_dest IDENTIFIED BY 'plug_dest_passwd';
|
CREATE USER plüg_dest IDENTIFIED BY 'plug_dest_passwd';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plüg_dest NULL
|
plüg_dest
|
||||||
DROP USER plüg_dest;
|
DROP USER plüg_dest;
|
||||||
========== test 1.1.1.2/1.1.2.2=============================
|
========== test 1.1.1.2/1.1.2.2=============================
|
||||||
SET @auth_name= 'test_plugin_server';
|
SET @auth_name= 'test_plugin_server';
|
||||||
@ -278,7 +276,7 @@ DROP USER plug;
|
|||||||
CREATE USER 'hh''s_plug_dest' IDENTIFIED BY 'plug_dest_passwd';
|
CREATE USER 'hh''s_plug_dest' IDENTIFIED BY 'plug_dest_passwd';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
hh's_plug_dest NULL
|
hh's_plug_dest
|
||||||
DROP USER 'hh''s_plug_dest';
|
DROP USER 'hh''s_plug_dest';
|
||||||
========== test 1.1.1.4 ====================================
|
========== test 1.1.1.4 ====================================
|
||||||
CREATE USER plug IDENTIFIED WITH hh''s_test_plugin_server AS 'plug_dest';
|
CREATE USER plug IDENTIFIED WITH hh''s_test_plugin_server AS 'plug_dest';
|
||||||
@ -294,7 +292,7 @@ GRANT ALL PRIVILEGES ON test_user_db.* TO plug_dest;
|
|||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
grant_user test_plugin_server plug_dest
|
grant_user test_plugin_server plug_dest
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
DROP USER grant_user,plug_dest;
|
DROP USER grant_user,plug_dest;
|
||||||
set @save_sql_mode= @@sql_mode;
|
set @save_sql_mode= @@sql_mode;
|
||||||
SET @@sql_mode=no_auto_create_user;
|
SET @@sql_mode=no_auto_create_user;
|
||||||
@ -315,13 +313,13 @@ CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
|
|||||||
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string password
|
user plugin authentication_string password
|
||||||
grant_user test_plugin_server plug_dest
|
grant_user test_plugin_server plug_dest
|
||||||
plug_dest NULL *939AEE68989794C0F408277411C26055CDF41119
|
plug_dest *939AEE68989794C0F408277411C26055CDF41119
|
||||||
DROP USER plug_dest;
|
DROP USER plug_dest;
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO plug_dest IDENTIFIED BY 'plug_user_passwd';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO plug_dest IDENTIFIED BY 'plug_user_passwd';
|
||||||
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string password
|
user plugin authentication_string password
|
||||||
grant_user test_plugin_server plug_dest
|
grant_user test_plugin_server plug_dest
|
||||||
plug_dest NULL *560881EB651416CEF77314D07D55EDCD5FC1BD6D
|
plug_dest *560881EB651416CEF77314D07D55EDCD5FC1BD6D
|
||||||
DROP USER grant_user,plug_dest;
|
DROP USER grant_user,plug_dest;
|
||||||
set @@sql_mode= @save_sql_mode;
|
set @@sql_mode= @save_sql_mode;
|
||||||
DROP DATABASE test_user_db;
|
DROP DATABASE test_user_db;
|
||||||
|
@ -20,7 +20,7 @@ GRANT ALL PRIVILEGES ON test_user_db.* TO plug_dest IDENTIFIED BY 'plug_dest_pas
|
|||||||
GRANT PROXY ON plug_dest TO plug_user;
|
GRANT PROXY ON plug_dest TO plug_user;
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
plug_user test_plugin_server plug_dest
|
plug_user test_plugin_server plug_dest
|
||||||
1)
|
1)
|
||||||
current_user()
|
current_user()
|
||||||
@ -73,7 +73,7 @@ GRANT PROXY ON new_dest TO plug_user;
|
|||||||
ERROR 1045 (28000): Access denied for user 'plug_user'@'localhost' (using password: YES)
|
ERROR 1045 (28000): Access denied for user 'plug_user'@'localhost' (using password: YES)
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
new_dest NULL
|
new_dest
|
||||||
plug_user test_plugin_server plug_dest
|
plug_user test_plugin_server plug_dest
|
||||||
DROP USER plug_user,new_dest;
|
DROP USER plug_user,new_dest;
|
||||||
CREATE USER plug_user
|
CREATE USER plug_user
|
||||||
@ -91,7 +91,7 @@ GRANT PROXY ON new_dest TO plug_user;
|
|||||||
ERROR 1045 (28000): Access denied for user 'plug_user'@'localhost' (using password: YES)
|
ERROR 1045 (28000): Access denied for user 'plug_user'@'localhost' (using password: YES)
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
new_dest NULL
|
new_dest
|
||||||
plug_user test_plugin_server plug_dest
|
plug_user test_plugin_server plug_dest
|
||||||
DROP USER plug_user,new_dest;
|
DROP USER plug_user,new_dest;
|
||||||
CREATE USER plug_user
|
CREATE USER plug_user
|
||||||
@ -113,13 +113,13 @@ connection default;
|
|||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
new_user test_plugin_server plug_dest
|
new_user test_plugin_server plug_dest
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
disconnect plug_user;
|
disconnect plug_user;
|
||||||
UPDATE mysql.user SET user='plug_user' WHERE user='new_user';
|
UPDATE mysql.user SET user='plug_user' WHERE user='new_user';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
plug_user test_plugin_server plug_dest
|
plug_user test_plugin_server plug_dest
|
||||||
DROP USER plug_dest,plug_user;
|
DROP USER plug_dest,plug_user;
|
||||||
========== test 1.3 ========================================
|
========== test 1.3 ========================================
|
||||||
@ -135,26 +135,26 @@ connection default;
|
|||||||
disconnect plug_user;
|
disconnect plug_user;
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
plug_user test_plugin_server plug_dest
|
plug_user test_plugin_server plug_dest
|
||||||
UPDATE mysql.user SET user='new_user' WHERE user='plug_user';
|
UPDATE mysql.user SET user='new_user' WHERE user='plug_user';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
new_user test_plugin_server plug_dest
|
new_user test_plugin_server plug_dest
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
UPDATE mysql.user SET authentication_string='new_dest' WHERE user='new_user';
|
UPDATE mysql.user SET authentication_string='new_dest' WHERE user='new_user';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
new_user test_plugin_server new_dest
|
new_user test_plugin_server new_dest
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
UPDATE mysql.user SET plugin='new_plugin_server' WHERE user='new_user';
|
UPDATE mysql.user SET plugin='new_plugin_server' WHERE user='new_user';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
new_user new_plugin_server new_dest
|
new_user new_plugin_server new_dest
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
connect(plug_user,localhost,new_user,new_dest);
|
connect(plug_user,localhost,new_user,new_dest);
|
||||||
ERROR HY000: Plugin 'new_plugin_server' is not loaded
|
ERROR HY000: Plugin 'new_plugin_server' is not loaded
|
||||||
UPDATE mysql.user SET plugin='test_plugin_server' WHERE user='new_user';
|
UPDATE mysql.user SET plugin='test_plugin_server' WHERE user='new_user';
|
||||||
@ -163,7 +163,7 @@ FLUSH PRIVILEGES;
|
|||||||
GRANT PROXY ON new_dest TO new_user;
|
GRANT PROXY ON new_dest TO new_user;
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
new_dest NULL
|
new_dest
|
||||||
new_user test_plugin_server new_dest
|
new_user test_plugin_server new_dest
|
||||||
connect(plug_user,localhost,new_user,new_dest);
|
connect(plug_user,localhost,new_user,new_dest);
|
||||||
select USER(),CURRENT_USER();
|
select USER(),CURRENT_USER();
|
||||||
@ -176,9 +176,9 @@ FLUSH PRIVILEGES;
|
|||||||
CREATE USER new_dest IDENTIFIED BY 'new_dest_passwd';
|
CREATE USER new_dest IDENTIFIED BY 'new_dest_passwd';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
new_dest NULL
|
new_dest
|
||||||
new_user test_plugin_server new_dest
|
new_user test_plugin_server new_dest
|
||||||
plug_dest NULL
|
plug_dest
|
||||||
GRANT ALL PRIVILEGES ON test.* TO new_user;
|
GRANT ALL PRIVILEGES ON test.* TO new_user;
|
||||||
connect(plug_user,localhost,new_dest,new_dest_passwd);
|
connect(plug_user,localhost,new_dest,new_dest_passwd);
|
||||||
select USER(),CURRENT_USER();
|
select USER(),CURRENT_USER();
|
||||||
@ -193,7 +193,7 @@ CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd';
|
|||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
test_plugin_server proxied_user
|
test_plugin_server proxied_user
|
||||||
proxied_user NULL
|
proxied_user
|
||||||
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
||||||
SELECT USER(),CURRENT_USER();
|
SELECT USER(),CURRENT_USER();
|
||||||
USER() CURRENT_USER()
|
USER() CURRENT_USER()
|
||||||
@ -230,7 +230,7 @@ CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd';
|
|||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
test_plugin_server proxied_user
|
test_plugin_server proxied_user
|
||||||
proxied_user NULL
|
proxied_user
|
||||||
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
||||||
SELECT USER(),CURRENT_USER();
|
SELECT USER(),CURRENT_USER();
|
||||||
USER() CURRENT_USER()
|
USER() CURRENT_USER()
|
||||||
@ -273,11 +273,11 @@ GRANT PROXY ON proxied_user_5 TO ''@'';
|
|||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
test_plugin_server proxied_user
|
test_plugin_server proxied_user
|
||||||
proxied_user_1 NULL
|
proxied_user_1
|
||||||
proxied_user_2 NULL
|
proxied_user_2
|
||||||
proxied_user_3 NULL
|
proxied_user_3
|
||||||
proxied_user_4 NULL
|
proxied_user_4
|
||||||
proxied_user_5 NULL
|
proxied_user_5
|
||||||
connect(proxy_con_1,localhost,proxied_user_1,'proxied_user_1_pwd');
|
connect(proxy_con_1,localhost,proxied_user_1,'proxied_user_1_pwd');
|
||||||
connect(proxy_con_2,localhost,proxied_user_2,proxied_user_2_pwd);
|
connect(proxy_con_2,localhost,proxied_user_2,proxied_user_2_pwd);
|
||||||
connect(proxy_con_3,localhost,proxied_user_3,proxied_user_3_pwd);
|
connect(proxy_con_3,localhost,proxied_user_3,proxied_user_3_pwd);
|
||||||
|
@ -7,7 +7,7 @@ GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_1_dest identified by 'dest_pas
|
|||||||
GRANT PROXY ON qa_test_1_dest TO qa_test_1_user;
|
GRANT PROXY ON qa_test_1_dest TO qa_test_1_user;
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
qa_test_1_dest NULL
|
qa_test_1_dest
|
||||||
qa_test_1_user qa_auth_interface qa_test_1_dest
|
qa_test_1_user qa_auth_interface qa_test_1_dest
|
||||||
SELECT @@proxy_user;
|
SELECT @@proxy_user;
|
||||||
@@proxy_user
|
@@proxy_user
|
||||||
@ -15,12 +15,12 @@ NULL
|
|||||||
SELECT @@external_user;
|
SELECT @@external_user;
|
||||||
@@external_user
|
@@external_user
|
||||||
NULL
|
NULL
|
||||||
exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT -u qa_test_1_user --password=qa_test_1_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
exec MYSQL -h localhost -P MASTER_MYPORT -u qa_test_1_user --password=qa_test_1_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
||||||
current_user() user() @@local.proxy_user @@local.external_user
|
current_user() user() @@local.proxy_user @@local.external_user
|
||||||
qa_test_1_user@% qa_test_1_user@localhost NULL NULL
|
qa_test_1_user@% qa_test_1_user@localhost NULL NULL
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
qa_test_1_dest NULL
|
qa_test_1_dest
|
||||||
qa_test_1_user qa_auth_interface qa_test_1_dest
|
qa_test_1_user qa_auth_interface qa_test_1_dest
|
||||||
DROP USER qa_test_1_user;
|
DROP USER qa_test_1_user;
|
||||||
DROP USER qa_test_1_dest;
|
DROP USER qa_test_1_dest;
|
||||||
@ -33,8 +33,8 @@ GRANT PROXY ON qa_test_2_dest TO qa_test_2_user;
|
|||||||
GRANT PROXY ON authenticated_as TO qa_test_2_user;
|
GRANT PROXY ON authenticated_as TO qa_test_2_user;
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
authenticated_as NULL
|
authenticated_as
|
||||||
qa_test_2_dest NULL
|
qa_test_2_dest
|
||||||
qa_test_2_user qa_auth_interface qa_test_2_dest
|
qa_test_2_user qa_auth_interface qa_test_2_dest
|
||||||
SELECT @@proxy_user;
|
SELECT @@proxy_user;
|
||||||
@@proxy_user
|
@@proxy_user
|
||||||
@ -42,13 +42,13 @@ NULL
|
|||||||
SELECT @@external_user;
|
SELECT @@external_user;
|
||||||
@@external_user
|
@@external_user
|
||||||
NULL
|
NULL
|
||||||
exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT -u qa_test_2_user --password=qa_test_2_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
exec MYSQL -h localhost -P MASTER_MYPORT -u qa_test_2_user --password=qa_test_2_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
||||||
current_user() user() @@local.proxy_user @@local.external_user
|
current_user() user() @@local.proxy_user @@local.external_user
|
||||||
authenticated_as@% user_name@localhost 'qa_test_2_user'@'%' 'qa_test_2_user'@'%'
|
authenticated_as@% user_name@localhost 'qa_test_2_user'@'%' 'qa_test_2_user'@'%'
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
authenticated_as NULL
|
authenticated_as
|
||||||
qa_test_2_dest NULL
|
qa_test_2_dest
|
||||||
qa_test_2_user qa_auth_interface qa_test_2_dest
|
qa_test_2_user qa_auth_interface qa_test_2_dest
|
||||||
DROP USER qa_test_2_user;
|
DROP USER qa_test_2_user;
|
||||||
DROP USER qa_test_2_dest;
|
DROP USER qa_test_2_dest;
|
||||||
@ -58,7 +58,7 @@ CREATE USER qa_test_3_user IDENTIFIED WITH qa_auth_interface AS 'qa_test_3_dest'
|
|||||||
CREATE USER qa_test_3_dest IDENTIFIED BY 'dest_passwd';
|
CREATE USER qa_test_3_dest IDENTIFIED BY 'dest_passwd';
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_3_dest identified by 'dest_passwd';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_3_dest identified by 'dest_passwd';
|
||||||
GRANT PROXY ON qa_test_3_dest TO qa_test_3_user;
|
GRANT PROXY ON qa_test_3_dest TO qa_test_3_user;
|
||||||
exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT -u qa_test_3_user --password=qa_test_3_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
exec MYSQL -h localhost -P MASTER_MYPORT -u qa_test_3_user --password=qa_test_3_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
||||||
current_user() user() @@local.proxy_user @@local.external_user
|
current_user() user() @@local.proxy_user @@local.external_user
|
||||||
qa_test_3_dest@% qa_test_3_user@localhost 'qa_test_3_user'@'%' 'qa_test_3_user'@'%'
|
qa_test_3_dest@% qa_test_3_user@localhost 'qa_test_3_user'@'%' 'qa_test_3_user'@'%'
|
||||||
DROP USER qa_test_3_user;
|
DROP USER qa_test_3_user;
|
||||||
@ -68,7 +68,7 @@ CREATE USER qa_test_4_user IDENTIFIED WITH qa_auth_interface AS 'qa_test_4_dest'
|
|||||||
CREATE USER qa_test_4_dest IDENTIFIED BY 'dest_passwd';
|
CREATE USER qa_test_4_dest IDENTIFIED BY 'dest_passwd';
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_4_dest identified by 'dest_passwd';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_4_dest identified by 'dest_passwd';
|
||||||
GRANT PROXY ON qa_test_4_dest TO qa_test_4_user;
|
GRANT PROXY ON qa_test_4_dest TO qa_test_4_user;
|
||||||
exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT -u qa_test_4_user --password=qa_test_4_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
exec MYSQL -h localhost -P MASTER_MYPORT -u qa_test_4_user --password=qa_test_4_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
||||||
current_user() user() @@local.proxy_user @@local.external_user
|
current_user() user() @@local.proxy_user @@local.external_user
|
||||||
qa_test_4_dest@% qa_test_4_user@localhost 'qa_test_4_user'@'%' 'qa_test_4_user'@'%'
|
qa_test_4_dest@% qa_test_4_user@localhost 'qa_test_4_user'@'%' 'qa_test_4_user'@'%'
|
||||||
DROP USER qa_test_4_user;
|
DROP USER qa_test_4_user;
|
||||||
@ -83,10 +83,10 @@ GRANT PROXY ON qa_test_5_dest TO qa_test_5_user;
|
|||||||
GRANT PROXY ON qa_test_5_dest TO ''@'localhost';
|
GRANT PROXY ON qa_test_5_dest TO ''@'localhost';
|
||||||
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string password
|
user plugin authentication_string password
|
||||||
NULL *DFCACE76914AD7BD801FC1A1ECF6562272621A22
|
*DFCACE76914AD7BD801FC1A1ECF6562272621A22
|
||||||
qa_test_5_dest NULL *DFCACE76914AD7BD801FC1A1ECF6562272621A22
|
qa_test_5_dest *DFCACE76914AD7BD801FC1A1ECF6562272621A22
|
||||||
qa_test_5_user qa_auth_interface qa_test_5_dest
|
qa_test_5_user qa_auth_interface qa_test_5_dest
|
||||||
exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT --user=qa_test_5_user --password=qa_test_5_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
exec MYSQL -h localhost -P MASTER_MYPORT --user=qa_test_5_user --password=qa_test_5_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
||||||
ERROR 1045 (28000): Access denied for user 'qa_test_5_user'@'localhost' (using password: YES)
|
ERROR 1045 (28000): Access denied for user 'qa_test_5_user'@'localhost' (using password: YES)
|
||||||
DROP USER qa_test_5_user;
|
DROP USER qa_test_5_user;
|
||||||
DROP USER qa_test_5_dest;
|
DROP USER qa_test_5_dest;
|
||||||
@ -98,37 +98,37 @@ GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_6_dest identified by 'dest_pas
|
|||||||
GRANT PROXY ON qa_test_6_dest TO qa_test_6_user;
|
GRANT PROXY ON qa_test_6_dest TO qa_test_6_user;
|
||||||
SELECT user,plugin,authentication_string,password FROM mysql.user;
|
SELECT user,plugin,authentication_string,password FROM mysql.user;
|
||||||
user plugin authentication_string password
|
user plugin authentication_string password
|
||||||
qa_test_6_dest NULL *DFCACE76914AD7BD801FC1A1ECF6562272621A22
|
qa_test_6_dest *DFCACE76914AD7BD801FC1A1ECF6562272621A22
|
||||||
qa_test_6_user qa_auth_interface qa_test_6_dest
|
qa_test_6_user qa_auth_interface qa_test_6_dest
|
||||||
root
|
root
|
||||||
root
|
root
|
||||||
root
|
root
|
||||||
root
|
root
|
||||||
exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT --user=qa_test_6_user --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
exec MYSQL -h localhost -P MASTER_MYPORT --user=qa_test_6_user --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
||||||
ERROR 1045 (28000): Access denied for user 'qa_test_6_user'@'localhost' (using password: YES)
|
ERROR 1045 (28000): Access denied for user 'qa_test_6_user'@'localhost' (using password: YES)
|
||||||
GRANT PROXY ON qa_test_6_dest TO root IDENTIFIED WITH qa_auth_interface AS 'qa_test_6_dest';
|
GRANT PROXY ON qa_test_6_dest TO root IDENTIFIED WITH qa_auth_interface AS 'qa_test_6_dest';
|
||||||
SELECT user,plugin,authentication_string,password FROM mysql.user;
|
SELECT user,plugin,authentication_string,password FROM mysql.user;
|
||||||
user plugin authentication_string password
|
user plugin authentication_string password
|
||||||
qa_test_6_dest NULL *DFCACE76914AD7BD801FC1A1ECF6562272621A22
|
qa_test_6_dest *DFCACE76914AD7BD801FC1A1ECF6562272621A22
|
||||||
qa_test_6_user qa_auth_interface qa_test_6_dest
|
qa_test_6_user qa_auth_interface qa_test_6_dest
|
||||||
root
|
root
|
||||||
root
|
root
|
||||||
root
|
root
|
||||||
root
|
root
|
||||||
root qa_auth_interface qa_test_6_dest
|
root qa_auth_interface qa_test_6_dest
|
||||||
exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
exec MYSQL -h localhost -P MASTER_MYPORT --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
||||||
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
|
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
|
||||||
REVOKE PROXY ON qa_test_6_dest FROM root;
|
REVOKE PROXY ON qa_test_6_dest FROM root;
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user;
|
SELECT user,plugin,authentication_string FROM mysql.user;
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
qa_test_6_dest NULL
|
qa_test_6_dest
|
||||||
qa_test_6_user qa_auth_interface qa_test_6_dest
|
qa_test_6_user qa_auth_interface qa_test_6_dest
|
||||||
root
|
root
|
||||||
root
|
root
|
||||||
root
|
root
|
||||||
root
|
root
|
||||||
root qa_auth_interface qa_test_6_dest
|
root qa_auth_interface qa_test_6_dest
|
||||||
exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
exec MYSQL -h localhost -P MASTER_MYPORT --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
||||||
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
|
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
|
||||||
DROP USER qa_test_6_user;
|
DROP USER qa_test_6_user;
|
||||||
DROP USER qa_test_6_dest;
|
DROP USER qa_test_6_dest;
|
||||||
@ -144,7 +144,7 @@ CREATE USER qa_test_11_user IDENTIFIED WITH qa_auth_interface AS 'qa_test_11_des
|
|||||||
CREATE USER qa_test_11_dest IDENTIFIED BY 'dest_passwd';
|
CREATE USER qa_test_11_dest IDENTIFIED BY 'dest_passwd';
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_11_dest identified by 'dest_passwd';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_11_dest identified by 'dest_passwd';
|
||||||
GRANT PROXY ON qa_test_11_dest TO qa_test_11_user;
|
GRANT PROXY ON qa_test_11_dest TO qa_test_11_user;
|
||||||
exec MYSQL PLUGIN_AUTH_OPT --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
exec MYSQL --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
||||||
ERROR 1045 (28000): Access denied for user 'qa_test_11_user'@'localhost' (using password: YES)
|
ERROR 1045 (28000): Access denied for user 'qa_test_11_user'@'localhost' (using password: YES)
|
||||||
DROP USER qa_test_11_user, qa_test_11_dest;
|
DROP USER qa_test_11_user, qa_test_11_dest;
|
||||||
DROP DATABASE test_user_db;
|
DROP DATABASE test_user_db;
|
||||||
|
@ -2,10 +2,10 @@ CREATE DATABASE test_user_db;
|
|||||||
CREATE USER qa_test_11_user IDENTIFIED WITH qa_auth_server AS 'qa_test_11_dest';
|
CREATE USER qa_test_11_user IDENTIFIED WITH qa_auth_server AS 'qa_test_11_dest';
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_11_dest identified by 'dest_passwd';
|
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_11_dest identified by 'dest_passwd';
|
||||||
GRANT PROXY ON qa_test_11_dest TO qa_test_11_user;
|
GRANT PROXY ON qa_test_11_dest TO qa_test_11_user;
|
||||||
exec MYSQL PLUGIN_AUTH_OPT --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
exec MYSQL --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
||||||
current_user() user() @@local.proxy_user @@local.external_user
|
current_user() user() @@local.proxy_user @@local.external_user
|
||||||
qa_test_11_dest@% qa_test_11_user@localhost 'qa_test_11_user'@'%' 'qa_test_11_user'@'%'
|
qa_test_11_dest@% qa_test_11_user@localhost 'qa_test_11_user'@'%' 'qa_test_11_user'@'%'
|
||||||
exec MYSQL PLUGIN_AUTH_OPT --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_2_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
exec MYSQL --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_2_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
|
||||||
ERROR 1045 (28000): Access denied for user 'qa_test_2_user'@'localhost' (using password: NO)
|
ERROR 1045 (28000): Access denied for user 'qa_test_2_user'@'localhost' (using password: NO)
|
||||||
DROP USER qa_test_11_user, qa_test_11_dest;
|
DROP USER qa_test_11_user, qa_test_11_dest;
|
||||||
DROP DATABASE test_user_db;
|
DROP DATABASE test_user_db;
|
||||||
|
@ -1689,7 +1689,7 @@ pk i4
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 WHERE 10 BETWEEN 10 AND i4;
|
SELECT * FROM t1 WHERE 10 BETWEEN 10 AND i4;
|
||||||
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 i4_uq i4_uq 5 NULL 3 Using where
|
1 SIMPLE t1 range i4_uq i4_uq 5 NULL 3 Using index condition; Using MRR
|
||||||
SELECT * FROM t1 WHERE 10 BETWEEN 10 AND i4;
|
SELECT * FROM t1 WHERE 10 BETWEEN 10 AND i4;
|
||||||
pk i4
|
pk i4
|
||||||
1 10
|
1 10
|
||||||
@ -1698,7 +1698,7 @@ pk i4
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 WHERE 10 BETWEEN i4 AND 10;
|
SELECT * FROM t1 WHERE 10 BETWEEN i4 AND 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 range i4_uq i4_uq 5 NULL 1 Using where
|
1 SIMPLE t1 range i4_uq i4_uq 5 NULL 1 Using index condition; Using MRR
|
||||||
SELECT * FROM t1 WHERE 10 BETWEEN i4 AND 10;
|
SELECT * FROM t1 WHERE 10 BETWEEN i4 AND 10;
|
||||||
pk i4
|
pk i4
|
||||||
1 10
|
1 10
|
||||||
@ -1732,7 +1732,7 @@ pk i4
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND 99999999999999999;
|
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND 99999999999999999;
|
||||||
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 i4_uq i4_uq 5 NULL 2 Using where
|
1 SIMPLE t1 range i4_uq i4_uq 5 NULL 2 Using index condition; Using MRR
|
||||||
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND 99999999999999999;
|
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND 99999999999999999;
|
||||||
pk i4
|
pk i4
|
||||||
1 10
|
1 10
|
||||||
@ -1747,7 +1747,7 @@ pk i4
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND '20';
|
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND '20';
|
||||||
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 i4_uq i4_uq 5 NULL 1 Using where
|
1 SIMPLE t1 range i4_uq i4_uq 5 NULL 1 Using index condition; Using MRR
|
||||||
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND '20';
|
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND '20';
|
||||||
pk i4
|
pk i4
|
||||||
1 10
|
1 10
|
||||||
@ -1756,14 +1756,14 @@ EXPLAIN
|
|||||||
SELECT * FROM t1, t1 as t2 WHERE t2.pk BETWEEN t1.i4 AND t1.i4;
|
SELECT * FROM t1, t1 as t2 WHERE t2.pk BETWEEN t1.i4 AND t1.i4;
|
||||||
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 i4_uq NULL NULL NULL 3
|
1 SIMPLE t1 ALL i4_uq NULL NULL NULL 3
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.i4 1 Using where
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.i4 1 Using index condition
|
||||||
SELECT * FROM t1, t1 as t2 WHERE t2.pk BETWEEN t1.i4 AND t1.i4;
|
SELECT * FROM t1, t1 as t2 WHERE t2.pk BETWEEN t1.i4 AND t1.i4;
|
||||||
pk i4 pk i4
|
pk i4 pk i4
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1, t1 as t2 WHERE t1.i4 BETWEEN t2.pk AND t2.pk;
|
SELECT * FROM t1, t1 as t2 WHERE t1.i4 BETWEEN t2.pk AND t2.pk;
|
||||||
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 i4_uq NULL NULL NULL 3
|
1 SIMPLE t1 ALL i4_uq NULL NULL NULL 3
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.i4 1 Using where
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.i4 1 Using index condition
|
||||||
SELECT * FROM t1, t1 as t2 WHERE t1.i4 BETWEEN t2.pk AND t2.pk;
|
SELECT * FROM t1, t1 as t2 WHERE t1.i4 BETWEEN t2.pk AND t2.pk;
|
||||||
pk i4 pk i4
|
pk i4 pk i4
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@ -2258,20 +2258,20 @@ a
|
|||||||
3
|
3
|
||||||
select * from (t1 as t2 left join t1 as t3 using (a)) right join t1 on t1.a>1;
|
select * from (t1 as t2 left join t1 as t3 using (a)) right join t1 on t1.a>1;
|
||||||
a a
|
a a
|
||||||
NULL 1
|
|
||||||
1 2
|
1 2
|
||||||
2 2
|
|
||||||
3 2
|
|
||||||
1 3
|
1 3
|
||||||
|
2 2
|
||||||
2 3
|
2 3
|
||||||
|
3 2
|
||||||
3 3
|
3 3
|
||||||
|
NULL 1
|
||||||
select * from t1 right join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
|
select * from t1 right join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
|
||||||
a a
|
a a
|
||||||
2 1
|
2 1
|
||||||
3 1
|
|
||||||
2 2
|
2 2
|
||||||
3 2
|
|
||||||
2 3
|
2 3
|
||||||
|
3 1
|
||||||
|
3 2
|
||||||
3 3
|
3 3
|
||||||
select * from (t1 as t2 left join t1 as t3 using (a)) right outer join t1 using ( a );
|
select * from (t1 as t2 left join t1 as t3 using (a)) right outer join t1 using ( a );
|
||||||
a
|
a
|
||||||
|
@ -2226,20 +2226,20 @@ a
|
|||||||
select * from (t1 as t2 left join t1 as t3 using (a)) left outer join t1 on t1.a>1;
|
select * from (t1 as t2 left join t1 as t3 using (a)) left outer join t1 on t1.a>1;
|
||||||
a a
|
a a
|
||||||
1 2
|
1 2
|
||||||
2 2
|
|
||||||
3 2
|
|
||||||
1 3
|
1 3
|
||||||
|
2 2
|
||||||
2 3
|
2 3
|
||||||
|
3 2
|
||||||
3 3
|
3 3
|
||||||
select * from t1 left outer join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
|
select * from t1 left outer join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
|
||||||
a a
|
a a
|
||||||
2 1
|
|
||||||
3 1
|
|
||||||
2 2
|
|
||||||
3 2
|
|
||||||
2 3
|
|
||||||
3 3
|
|
||||||
1 NULL
|
1 NULL
|
||||||
|
2 1
|
||||||
|
2 2
|
||||||
|
2 3
|
||||||
|
3 1
|
||||||
|
3 2
|
||||||
|
3 3
|
||||||
select * from (t1 as t2 left join t1 as t3 using (a)) left join t1 using ( a );
|
select * from (t1 as t2 left join t1 as t3 using (a)) left join t1 using ( a );
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
@ -2967,26 +2967,26 @@ create view v2 (c) as select a1 from t1;
|
|||||||
select * from t1 natural left join t2;
|
select * from t1 natural left join t2;
|
||||||
a1 a2
|
a1 a2
|
||||||
1 1
|
1 1
|
||||||
2 1
|
|
||||||
1 2
|
1 2
|
||||||
|
2 1
|
||||||
2 2
|
2 2
|
||||||
select * from t1 natural right join t2;
|
select * from t1 natural right join t2;
|
||||||
a2 a1
|
a2 a1
|
||||||
1 1
|
1 1
|
||||||
2 1
|
|
||||||
1 2
|
1 2
|
||||||
|
2 1
|
||||||
2 2
|
2 2
|
||||||
select * from v2 natural left join t2;
|
select * from v2 natural left join t2;
|
||||||
c a2
|
c a2
|
||||||
1 1
|
1 1
|
||||||
2 1
|
|
||||||
1 2
|
1 2
|
||||||
|
2 1
|
||||||
2 2
|
2 2
|
||||||
select * from v2 natural right join t2;
|
select * from v2 natural right join t2;
|
||||||
a2 c
|
a2 c
|
||||||
1 1
|
1 1
|
||||||
2 1
|
|
||||||
1 2
|
1 2
|
||||||
|
2 1
|
||||||
2 2
|
2 2
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
drop view v2;
|
drop view v2;
|
||||||
@ -3166,9 +3166,9 @@ id
|
|||||||
102
|
102
|
||||||
select t1.id from t1 left join v3 using (id);
|
select t1.id from t1 left join v3 using (id);
|
||||||
id
|
id
|
||||||
102
|
|
||||||
100
|
100
|
||||||
101
|
101
|
||||||
|
102
|
||||||
select * from t1 left join v2 using (id);
|
select * from t1 left join v2 using (id);
|
||||||
id
|
id
|
||||||
100
|
100
|
||||||
@ -3181,9 +3181,9 @@ id
|
|||||||
102
|
102
|
||||||
select * from t1 left join v3 using (id);
|
select * from t1 left join v3 using (id);
|
||||||
id
|
id
|
||||||
102
|
|
||||||
100
|
100
|
||||||
101
|
101
|
||||||
|
102
|
||||||
select v1.id from v1 left join v2 using (id);
|
select v1.id from v1 left join v2 using (id);
|
||||||
id
|
id
|
||||||
100
|
100
|
||||||
@ -3196,9 +3196,9 @@ id
|
|||||||
102
|
102
|
||||||
select v1.id from v1 left join v3 using (id);
|
select v1.id from v1 left join v3 using (id);
|
||||||
id
|
id
|
||||||
102
|
|
||||||
100
|
100
|
||||||
101
|
101
|
||||||
|
102
|
||||||
select * from v1 left join v2 using (id);
|
select * from v1 left join v2 using (id);
|
||||||
id
|
id
|
||||||
100
|
100
|
||||||
@ -3211,9 +3211,9 @@ id
|
|||||||
102
|
102
|
||||||
select * from v1 left join v3 using (id);
|
select * from v1 left join v3 using (id);
|
||||||
id
|
id
|
||||||
102
|
|
||||||
100
|
100
|
||||||
101
|
101
|
||||||
|
102
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
drop view v1, v2, v3;
|
drop view v1, v2, v3;
|
||||||
create table t1 (id int(11) not null default '0');
|
create table t1 (id int(11) not null default '0');
|
||||||
@ -4870,6 +4870,70 @@ SELECT 1 FROM t1 ORDER BY a COLLATE latin1_german2_ci;
|
|||||||
1
|
1
|
||||||
1
|
1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #58422: Incorrect result when OUTER JOIN'ing
|
||||||
|
# with an empty table
|
||||||
|
#
|
||||||
|
CREATE TABLE t_empty(pk INT PRIMARY KEY, i INT) ENGINE = MYISAM;
|
||||||
|
CREATE TABLE t1(pk INT PRIMARY KEY, i INT) ENGINE = MYISAM;
|
||||||
|
INSERT INTO t1 VALUES (1,1), (2,2), (3,3);
|
||||||
|
CREATE TABLE t2(pk INT PRIMARY KEY, i INT) ENGINE = MYISAM;
|
||||||
|
INSERT INTO t2 VALUES (1,1), (2,2), (3,3);
|
||||||
|
EXPLAIN
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
t1
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(t2 INNER JOIN t_empty ON TRUE)
|
||||||
|
ON t1.pk=t2.pk
|
||||||
|
WHERE t2.pk <> 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
t1
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(t2 INNER JOIN t_empty ON TRUE)
|
||||||
|
ON t1.pk=t2.pk
|
||||||
|
WHERE t2.pk <> 2;
|
||||||
|
pk i pk i pk i
|
||||||
|
EXPLAIN
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
t1
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(t2 CROSS JOIN t_empty)
|
||||||
|
ON t1.pk=t2.pk
|
||||||
|
WHERE t2.pk <> 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
t1
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(t2 CROSS JOIN t_empty)
|
||||||
|
ON t1.pk=t2.pk
|
||||||
|
WHERE t2.pk <> 2;
|
||||||
|
pk i pk i pk i
|
||||||
|
EXPLAIN
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
t1
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(t2 INNER JOIN t_empty ON t_empty.i=t2.i)
|
||||||
|
ON t1.pk=t2.pk
|
||||||
|
WHERE t2.pk <> 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
t1
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(t2 INNER JOIN t_empty ON t_empty.i=t2.i)
|
||||||
|
ON t1.pk=t2.pk
|
||||||
|
WHERE t2.pk <> 2;
|
||||||
|
pk i pk i pk i
|
||||||
|
DROP TABLE t1,t2,t_empty;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
#
|
#
|
||||||
# Bug#54515: Crash in opt_range.cc::get_best_group_min_max on
|
# Bug#54515: Crash in opt_range.cc::get_best_group_min_max on
|
||||||
@ -4890,6 +4954,25 @@ col_int_key
|
|||||||
DROP VIEW view_t1;
|
DROP VIEW view_t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
# End of test BUG#54515
|
# End of test BUG#54515
|
||||||
|
#
|
||||||
|
# Bug #57203 Assertion `field_length <= 255' failed.
|
||||||
|
#
|
||||||
|
SELECT coalesce((avg(distinct (geomfromtext("point(25379 -22010)")))))
|
||||||
|
UNION ALL
|
||||||
|
SELECT coalesce((avg(distinct (geomfromtext("point(25379 -22010)")))))
|
||||||
|
AS foo
|
||||||
|
;
|
||||||
|
coalesce((avg(distinct (geomfromtext("point(25379 -22010)")))))
|
||||||
|
0.0000
|
||||||
|
0.0000
|
||||||
|
CREATE table t1(a text);
|
||||||
|
INSERT INTO t1 VALUES (''), ('');
|
||||||
|
SELECT avg(distinct(t1.a)) FROM t1, t1 t2
|
||||||
|
GROUP BY t2.a ORDER BY t1.a;
|
||||||
|
avg(distinct(t1.a))
|
||||||
|
0
|
||||||
|
DROP TABLE t1;
|
||||||
|
# End of test BUG#57203
|
||||||
set join_cache_level=default;
|
set join_cache_level=default;
|
||||||
show variables like 'join_cache_level';
|
show variables like 'join_cache_level';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
|
@ -2258,20 +2258,20 @@ a
|
|||||||
3
|
3
|
||||||
select * from (t1 as t2 left join t1 as t3 using (a)) right join t1 on t1.a>1;
|
select * from (t1 as t2 left join t1 as t3 using (a)) right join t1 on t1.a>1;
|
||||||
a a
|
a a
|
||||||
NULL 1
|
|
||||||
1 2
|
1 2
|
||||||
2 2
|
|
||||||
3 2
|
|
||||||
1 3
|
1 3
|
||||||
|
2 2
|
||||||
2 3
|
2 3
|
||||||
|
3 2
|
||||||
3 3
|
3 3
|
||||||
|
NULL 1
|
||||||
select * from t1 right join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
|
select * from t1 right join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
|
||||||
a a
|
a a
|
||||||
2 1
|
2 1
|
||||||
3 1
|
|
||||||
2 2
|
2 2
|
||||||
3 2
|
|
||||||
2 3
|
2 3
|
||||||
|
3 1
|
||||||
|
3 2
|
||||||
3 3
|
3 3
|
||||||
select * from (t1 as t2 left join t1 as t3 using (a)) right outer join t1 using ( a );
|
select * from (t1 as t2 left join t1 as t3 using (a)) right outer join t1 using ( a );
|
||||||
a
|
a
|
||||||
@ -4866,6 +4866,70 @@ SELECT 1 FROM t1 ORDER BY a COLLATE latin1_german2_ci;
|
|||||||
1
|
1
|
||||||
1
|
1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #58422: Incorrect result when OUTER JOIN'ing
|
||||||
|
# with an empty table
|
||||||
|
#
|
||||||
|
CREATE TABLE t_empty(pk INT PRIMARY KEY, i INT) ENGINE = MYISAM;
|
||||||
|
CREATE TABLE t1(pk INT PRIMARY KEY, i INT) ENGINE = MYISAM;
|
||||||
|
INSERT INTO t1 VALUES (1,1), (2,2), (3,3);
|
||||||
|
CREATE TABLE t2(pk INT PRIMARY KEY, i INT) ENGINE = MYISAM;
|
||||||
|
INSERT INTO t2 VALUES (1,1), (2,2), (3,3);
|
||||||
|
EXPLAIN
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
t1
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(t2 INNER JOIN t_empty ON TRUE)
|
||||||
|
ON t1.pk=t2.pk
|
||||||
|
WHERE t2.pk <> 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
t1
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(t2 INNER JOIN t_empty ON TRUE)
|
||||||
|
ON t1.pk=t2.pk
|
||||||
|
WHERE t2.pk <> 2;
|
||||||
|
pk i pk i pk i
|
||||||
|
EXPLAIN
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
t1
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(t2 CROSS JOIN t_empty)
|
||||||
|
ON t1.pk=t2.pk
|
||||||
|
WHERE t2.pk <> 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
t1
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(t2 CROSS JOIN t_empty)
|
||||||
|
ON t1.pk=t2.pk
|
||||||
|
WHERE t2.pk <> 2;
|
||||||
|
pk i pk i pk i
|
||||||
|
EXPLAIN
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
t1
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(t2 INNER JOIN t_empty ON t_empty.i=t2.i)
|
||||||
|
ON t1.pk=t2.pk
|
||||||
|
WHERE t2.pk <> 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
|
SELECT *
|
||||||
|
FROM
|
||||||
|
t1
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(t2 INNER JOIN t_empty ON t_empty.i=t2.i)
|
||||||
|
ON t1.pk=t2.pk
|
||||||
|
WHERE t2.pk <> 2;
|
||||||
|
pk i pk i pk i
|
||||||
|
DROP TABLE t1,t2,t_empty;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
#
|
#
|
||||||
# Bug#54515: Crash in opt_range.cc::get_best_group_min_max on
|
# Bug#54515: Crash in opt_range.cc::get_best_group_min_max on
|
||||||
@ -4886,3 +4950,22 @@ col_int_key
|
|||||||
DROP VIEW view_t1;
|
DROP VIEW view_t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
# End of test BUG#54515
|
# End of test BUG#54515
|
||||||
|
#
|
||||||
|
# Bug #57203 Assertion `field_length <= 255' failed.
|
||||||
|
#
|
||||||
|
SELECT coalesce((avg(distinct (geomfromtext("point(25379 -22010)")))))
|
||||||
|
UNION ALL
|
||||||
|
SELECT coalesce((avg(distinct (geomfromtext("point(25379 -22010)")))))
|
||||||
|
AS foo
|
||||||
|
;
|
||||||
|
coalesce((avg(distinct (geomfromtext("point(25379 -22010)")))))
|
||||||
|
0.0000
|
||||||
|
0.0000
|
||||||
|
CREATE table t1(a text);
|
||||||
|
INSERT INTO t1 VALUES (''), ('');
|
||||||
|
SELECT avg(distinct(t1.a)) FROM t1, t1 t2
|
||||||
|
GROUP BY t2.a ORDER BY t1.a;
|
||||||
|
avg(distinct(t1.a))
|
||||||
|
0
|
||||||
|
DROP TABLE t1;
|
||||||
|
# End of test BUG#57203
|
||||||
|
@ -198,7 +198,7 @@ VALUES('%', 'mysqltest_1', password(''), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'N',
|
|||||||
'N', 'N', 'N', 'Y', 'Y', 'N', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', 'Y', 'Y', 'N', '',
|
'N', 'N', 'N', 'Y', 'Y', 'N', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', 'Y', 'Y', 'N', '',
|
||||||
'', '', '', '0', '0', '0', '0');
|
'', '', '', '0', '0', '0', '0');
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1364 Field 'auth_string' doesn't have a default value
|
Warning 1364 Field 'authentication_string' doesn't have a default value
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
CREATE PROCEDURE p1(i INT) BEGIN END;
|
CREATE PROCEDURE p1(i INT) BEGIN END;
|
||||||
DROP PROCEDURE p1;
|
DROP PROCEDURE p1;
|
||||||
|
@ -882,9 +882,6 @@ Level Code Message
|
|||||||
Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #2
|
Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #2
|
||||||
Note 1276 Field or reference 'test.t1.c' of SELECT #3 was resolved in SELECT #2
|
Note 1276 Field or reference 'test.t1.c' of SELECT #3 was resolved in SELECT #2
|
||||||
Error 1054 Unknown column 'c' in 'field list'
|
Error 1054 Unknown column 'c' in 'field list'
|
||||||
Note 1003 select `c` AS `c` from (select <expr_cache><count(`test`.`t1`.`a`),`test`.`t1`.`c`>((select count(`test`.`t1`.`a`) from dual group by `t1`.`c`)) AS `(SELECT COUNT(a) FROM
|
|
||||||
(SELECT COUNT(b) FROM t1) AS x GROUP BY c
|
|
||||||
)` from `test`.`t1` group by `test`.`t1`.`b`) `y`
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
#
|
#
|
||||||
|
@ -886,9 +886,6 @@ Level Code Message
|
|||||||
Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #2
|
Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #2
|
||||||
Note 1276 Field or reference 'test.t1.c' of SELECT #3 was resolved in SELECT #2
|
Note 1276 Field or reference 'test.t1.c' of SELECT #3 was resolved in SELECT #2
|
||||||
Error 1054 Unknown column 'c' in 'field list'
|
Error 1054 Unknown column 'c' in 'field list'
|
||||||
Note 1003 select `c` AS `c` from (select <expr_cache><count(`test`.`t1`.`a`),`test`.`t1`.`c`>((select count(`test`.`t1`.`a`) from dual group by `t1`.`c`)) AS `(SELECT COUNT(a) FROM
|
|
||||||
(SELECT COUNT(b) FROM t1) AS x GROUP BY c
|
|
||||||
)` from `test`.`t1` group by `test`.`t1`.`b`) `y`
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
#
|
#
|
||||||
|
@ -5256,8 +5256,90 @@ ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
|||||||
SELECT * FROM t2 UNION SELECT * FROM t2
|
SELECT * FROM t2 UNION SELECT * FROM t2
|
||||||
ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
#
|
||||||
|
# Bug #58818: Incorrect result for IN/ANY subquery
|
||||||
|
# with HAVING condition
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(i INT);
|
||||||
|
INSERT INTO t1 VALUES (1), (2), (3);
|
||||||
|
CREATE TABLE t1s(i INT);
|
||||||
|
INSERT INTO t1s VALUES (10), (20), (30);
|
||||||
|
CREATE TABLE t2s(i INT);
|
||||||
|
INSERT INTO t2s VALUES (100), (200), (300);
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.i NOT IN
|
||||||
|
(
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
);
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.I IN
|
||||||
|
(
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
) IS UNKNOWN;
|
||||||
|
i
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE NOT t1.I = ANY
|
||||||
|
(
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
);
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.i = ANY (
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
) IS UNKNOWN;
|
||||||
|
i
|
||||||
|
DROP TABLE t1,t1s,t2s;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
#
|
#
|
||||||
|
# Bug #11765713 58705:
|
||||||
|
# OPTIMIZER LET ENGINE DEPEND ON UNINITIALIZED VALUES
|
||||||
|
# CREATED BY OPT_SUM_QUERY
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(a INT NOT NULL, KEY (a));
|
||||||
|
INSERT INTO t1 VALUES (0), (1);
|
||||||
|
SELECT 1 as foo FROM t1 WHERE a < SOME
|
||||||
|
(SELECT a FROM t1 WHERE a <=>
|
||||||
|
(SELECT a FROM t1)
|
||||||
|
);
|
||||||
|
ERROR 21000: Subquery returns more than 1 row
|
||||||
|
SELECT 1 as foo FROM t1 WHERE a < SOME
|
||||||
|
(SELECT a FROM t1 WHERE a <=>
|
||||||
|
(SELECT a FROM t1 where a is null)
|
||||||
|
);
|
||||||
|
foo
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #57704: Cleanup code dies with void TABLE::set_keyread(bool):
|
||||||
|
# Assertion `file' failed.
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
SELECT 1 FROM
|
||||||
|
(SELECT ROW(
|
||||||
|
(SELECT 1 FROM t1 RIGHT JOIN
|
||||||
|
(SELECT 1 FROM t1, t1 t2) AS d ON 1),
|
||||||
|
1) FROM t1) AS e;
|
||||||
|
ERROR 21000: Operand should contain 1 column(s)
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
# No BUG#, a case brought from 5.2's innodb_mysql_lock.test
|
# No BUG#, a case brought from 5.2's innodb_mysql_lock.test
|
||||||
#
|
#
|
||||||
create table t1 (i int not null primary key);
|
create table t1 (i int not null primary key);
|
||||||
|
@ -5253,8 +5253,90 @@ ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
|||||||
SELECT * FROM t2 UNION SELECT * FROM t2
|
SELECT * FROM t2 UNION SELECT * FROM t2
|
||||||
ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
#
|
||||||
|
# Bug #58818: Incorrect result for IN/ANY subquery
|
||||||
|
# with HAVING condition
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(i INT);
|
||||||
|
INSERT INTO t1 VALUES (1), (2), (3);
|
||||||
|
CREATE TABLE t1s(i INT);
|
||||||
|
INSERT INTO t1s VALUES (10), (20), (30);
|
||||||
|
CREATE TABLE t2s(i INT);
|
||||||
|
INSERT INTO t2s VALUES (100), (200), (300);
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.i NOT IN
|
||||||
|
(
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
);
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.I IN
|
||||||
|
(
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
) IS UNKNOWN;
|
||||||
|
i
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE NOT t1.I = ANY
|
||||||
|
(
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
);
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.i = ANY (
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
) IS UNKNOWN;
|
||||||
|
i
|
||||||
|
DROP TABLE t1,t1s,t2s;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
#
|
#
|
||||||
|
# Bug #11765713 58705:
|
||||||
|
# OPTIMIZER LET ENGINE DEPEND ON UNINITIALIZED VALUES
|
||||||
|
# CREATED BY OPT_SUM_QUERY
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(a INT NOT NULL, KEY (a));
|
||||||
|
INSERT INTO t1 VALUES (0), (1);
|
||||||
|
SELECT 1 as foo FROM t1 WHERE a < SOME
|
||||||
|
(SELECT a FROM t1 WHERE a <=>
|
||||||
|
(SELECT a FROM t1)
|
||||||
|
);
|
||||||
|
ERROR 21000: Subquery returns more than 1 row
|
||||||
|
SELECT 1 as foo FROM t1 WHERE a < SOME
|
||||||
|
(SELECT a FROM t1 WHERE a <=>
|
||||||
|
(SELECT a FROM t1 where a is null)
|
||||||
|
);
|
||||||
|
foo
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #57704: Cleanup code dies with void TABLE::set_keyread(bool):
|
||||||
|
# Assertion `file' failed.
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
SELECT 1 FROM
|
||||||
|
(SELECT ROW(
|
||||||
|
(SELECT 1 FROM t1 RIGHT JOIN
|
||||||
|
(SELECT 1 FROM t1, t1 t2) AS d ON 1),
|
||||||
|
1) FROM t1) AS e;
|
||||||
|
ERROR 21000: Operand should contain 1 column(s)
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
# No BUG#, a case brought from 5.2's innodb_mysql_lock.test
|
# No BUG#, a case brought from 5.2's innodb_mysql_lock.test
|
||||||
#
|
#
|
||||||
create table t1 (i int not null primary key);
|
create table t1 (i int not null primary key);
|
||||||
|
@ -5253,8 +5253,90 @@ ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
|||||||
SELECT * FROM t2 UNION SELECT * FROM t2
|
SELECT * FROM t2 UNION SELECT * FROM t2
|
||||||
ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
#
|
||||||
|
# Bug #58818: Incorrect result for IN/ANY subquery
|
||||||
|
# with HAVING condition
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(i INT);
|
||||||
|
INSERT INTO t1 VALUES (1), (2), (3);
|
||||||
|
CREATE TABLE t1s(i INT);
|
||||||
|
INSERT INTO t1s VALUES (10), (20), (30);
|
||||||
|
CREATE TABLE t2s(i INT);
|
||||||
|
INSERT INTO t2s VALUES (100), (200), (300);
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.i NOT IN
|
||||||
|
(
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
);
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.I IN
|
||||||
|
(
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
) IS UNKNOWN;
|
||||||
|
i
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE NOT t1.I = ANY
|
||||||
|
(
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
);
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.i = ANY (
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
) IS UNKNOWN;
|
||||||
|
i
|
||||||
|
DROP TABLE t1,t1s,t2s;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
#
|
#
|
||||||
|
# Bug #11765713 58705:
|
||||||
|
# OPTIMIZER LET ENGINE DEPEND ON UNINITIALIZED VALUES
|
||||||
|
# CREATED BY OPT_SUM_QUERY
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(a INT NOT NULL, KEY (a));
|
||||||
|
INSERT INTO t1 VALUES (0), (1);
|
||||||
|
SELECT 1 as foo FROM t1 WHERE a < SOME
|
||||||
|
(SELECT a FROM t1 WHERE a <=>
|
||||||
|
(SELECT a FROM t1)
|
||||||
|
);
|
||||||
|
ERROR 21000: Subquery returns more than 1 row
|
||||||
|
SELECT 1 as foo FROM t1 WHERE a < SOME
|
||||||
|
(SELECT a FROM t1 WHERE a <=>
|
||||||
|
(SELECT a FROM t1 where a is null)
|
||||||
|
);
|
||||||
|
foo
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #57704: Cleanup code dies with void TABLE::set_keyread(bool):
|
||||||
|
# Assertion `file' failed.
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
SELECT 1 FROM
|
||||||
|
(SELECT ROW(
|
||||||
|
(SELECT 1 FROM t1 RIGHT JOIN
|
||||||
|
(SELECT 1 FROM t1, t1 t2) AS d ON 1),
|
||||||
|
1) FROM t1) AS e;
|
||||||
|
ERROR 21000: Operand should contain 1 column(s)
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
# No BUG#, a case brought from 5.2's innodb_mysql_lock.test
|
# No BUG#, a case brought from 5.2's innodb_mysql_lock.test
|
||||||
#
|
#
|
||||||
create table t1 (i int not null primary key);
|
create table t1 (i int not null primary key);
|
||||||
|
@ -3,9 +3,9 @@ SET @OLD_SQL_MODE=@@SQL_MODE;
|
|||||||
SET SQL_MODE='IGNORE_BAD_TABLE_OPTIONS';
|
SET SQL_MODE='IGNORE_BAD_TABLE_OPTIONS';
|
||||||
create table t1 (a int fkey=vvv, key akey (a) dff=vvv) tkey1='1v1';
|
create table t1 (a int fkey=vvv, key akey (a) dff=vvv) tkey1='1v1';
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1707 Unknown option 'fkey'
|
Warning 1722 Unknown option 'fkey'
|
||||||
Warning 1707 Unknown option 'dff'
|
Warning 1722 Unknown option 'dff'
|
||||||
Warning 1707 Unknown option 'tkey1'
|
Warning 1722 Unknown option 'tkey1'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -16,10 +16,10 @@ drop table t1;
|
|||||||
#reassiginig options in the same line
|
#reassiginig options in the same line
|
||||||
create table t1 (a int fkey=vvv, key akey (a) dff=vvv) tkey1=1v1 TKEY1=DEFAULT tkey1=1v2 tkey2=2v1;
|
create table t1 (a int fkey=vvv, key akey (a) dff=vvv) tkey1=1v1 TKEY1=DEFAULT tkey1=1v2 tkey2=2v1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1707 Unknown option 'fkey'
|
Warning 1722 Unknown option 'fkey'
|
||||||
Warning 1707 Unknown option 'dff'
|
Warning 1722 Unknown option 'dff'
|
||||||
Warning 1707 Unknown option 'tkey1'
|
Warning 1722 Unknown option 'tkey1'
|
||||||
Warning 1707 Unknown option 'tkey2'
|
Warning 1722 Unknown option 'tkey2'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -29,7 +29,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
#add option
|
#add option
|
||||||
alter table t1 tkey4=4v1;
|
alter table t1 tkey4=4v1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1707 Unknown option 'tkey4'
|
Warning 1722 Unknown option 'tkey4'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -39,8 +39,8 @@ t1 CREATE TABLE `t1` (
|
|||||||
#remove options
|
#remove options
|
||||||
alter table t1 tkey3=DEFAULT tkey4=DEFAULT;
|
alter table t1 tkey3=DEFAULT tkey4=DEFAULT;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1707 Unknown option 'tkey3'
|
Warning 1722 Unknown option 'tkey3'
|
||||||
Warning 1707 Unknown option 'tkey4'
|
Warning 1722 Unknown option 'tkey4'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -50,11 +50,11 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int fkey1=v1, key akey (a) kkey1=v1) tkey1=1v1 tkey1=1v2 TKEY1=DEFAULT tkey2=2v1 tkey3=3v1;
|
create table t1 (a int fkey1=v1, key akey (a) kkey1=v1) tkey1=1v1 tkey1=1v2 TKEY1=DEFAULT tkey2=2v1 tkey3=3v1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1707 Unknown option 'fkey1'
|
Warning 1722 Unknown option 'fkey1'
|
||||||
Warning 1707 Unknown option 'kkey1'
|
Warning 1722 Unknown option 'kkey1'
|
||||||
Warning 1707 Unknown option 'TKEY1'
|
Warning 1722 Unknown option 'TKEY1'
|
||||||
Warning 1707 Unknown option 'tkey2'
|
Warning 1722 Unknown option 'tkey2'
|
||||||
Warning 1707 Unknown option 'tkey3'
|
Warning 1722 Unknown option 'tkey3'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -64,7 +64,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
#change field with option with the same value
|
#change field with option with the same value
|
||||||
alter table t1 change a a int `FKEY1`='v1';
|
alter table t1 change a a int `FKEY1`='v1';
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1707 Unknown option 'FKEY1'
|
Warning 1722 Unknown option 'FKEY1'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -74,7 +74,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
#change field with option with a different value
|
#change field with option with a different value
|
||||||
alter table t1 change a a int fkey1=v2;
|
alter table t1 change a a int fkey1=v2;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1707 Unknown option 'fkey1'
|
Warning 1722 Unknown option 'fkey1'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -93,7 +93,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
#new key with options
|
#new key with options
|
||||||
alter table t1 add key bkey (b) kkey2=v1;
|
alter table t1 add key bkey (b) kkey2=v1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1707 Unknown option 'kkey2'
|
Warning 1722 Unknown option 'kkey2'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -105,8 +105,8 @@ t1 CREATE TABLE `t1` (
|
|||||||
#new column with options
|
#new column with options
|
||||||
alter table t1 add column c int fkey1=v1 fkey2=v2;
|
alter table t1 add column c int fkey1=v1 fkey2=v2;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1707 Unknown option 'fkey1'
|
Warning 1722 Unknown option 'fkey1'
|
||||||
Warning 1707 Unknown option 'fkey2'
|
Warning 1722 Unknown option 'fkey2'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -141,7 +141,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
#add column with options after delete
|
#add column with options after delete
|
||||||
alter table t1 add column b int fkey2=v1;
|
alter table t1 add column b int fkey2=v1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1707 Unknown option 'fkey2'
|
Warning 1722 Unknown option 'fkey2'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -154,7 +154,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
#add key
|
#add key
|
||||||
alter table t1 add key bkey (b) kkey2=v2;
|
alter table t1 add key bkey (b) kkey2=v2;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1707 Unknown option 'kkey2'
|
Warning 1722 Unknown option 'kkey2'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -168,7 +168,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int) tkey1=100;
|
create table t1 (a int) tkey1=100;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1707 Unknown option 'tkey1'
|
Warning 1722 Unknown option 'tkey1'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
|
@ -1542,6 +1542,7 @@ INSERT INTO t1 VALUES (0.2),(0.1);
|
|||||||
SELECT 1 FROM t1 GROUP BY @a:= (SELECT ROUND(f1) FROM t1 WHERE @a=f1);
|
SELECT 1 FROM t1 GROUP BY @a:= (SELECT ROUND(f1) FROM t1 WHERE @a=f1);
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
|
1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 AS SELECT @a:= CAST(1 AS UNSIGNED) AS a;
|
CREATE TABLE t1 AS SELECT @a:= CAST(1 AS UNSIGNED) AS a;
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
|
@ -206,8 +206,8 @@ DROP TABLE t1;
|
|||||||
# FAILED
|
# FAILED
|
||||||
#
|
#
|
||||||
DROP TABLE IF EXISTS t1, t2;
|
DROP TABLE IF EXISTS t1, t2;
|
||||||
CREATE TABLE t1 (a INT);
|
CREATE TABLE t1 (a INT) engine=innodb;
|
||||||
CREATE TABLE t2 (a INT);
|
CREATE TABLE t2 (a INT) engine=innodb;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
# Connection con2
|
# Connection con2
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
# correctly. We test all three modes in the same file to avoid
|
# correctly. We test all three modes in the same file to avoid
|
||||||
# unecessary server restarts.
|
# unecessary server restarts.
|
||||||
|
|
||||||
|
--source include/have_innodb.inc
|
||||||
|
--source include/have_binlog_format_statement.inc
|
||||||
|
|
||||||
set binlog_format=statement;
|
set binlog_format=statement;
|
||||||
source extra/binlog_tests/database.test;
|
source extra/binlog_tests/database.test;
|
||||||
set binlog_format=mixed;
|
set binlog_format=mixed;
|
||||||
|
@ -1 +1 @@
|
|||||||
--innodb $EXAMPLE_PLUGIN_OPT
|
--innodb
|
||||||
|
@ -1 +1 @@
|
|||||||
$UDF_EXAMPLE_LIB_OPT --log-output=file,table
|
--log-output=file,table
|
||||||
|
@ -10,35 +10,10 @@
|
|||||||
# error that occurs during a query against I_S.TABLES.de
|
# error that occurs during a query against I_S.TABLES.de
|
||||||
CREATE DATABASE federated;
|
CREATE DATABASE federated;
|
||||||
CREATE DATABASE federated;
|
CREATE DATABASE federated;
|
||||||
CREATE DATABASE IF NOT EXISTS realdb;
|
|
||||||
DROP TABLE IF EXISTS realdb.t0;
|
|
||||||
DROP TABLE IF EXISTS federated.t0;
|
DROP TABLE IF EXISTS federated.t0;
|
||||||
#
|
#
|
||||||
# Create the base table to be referenced
|
|
||||||
#
|
|
||||||
CREATE TABLE realdb.t0 (a text, b text) ENGINE=MYISAM;
|
|
||||||
#
|
|
||||||
# Create a federated table with a bogus port number
|
|
||||||
#
|
|
||||||
CREATE TABLE federated.t0 (a text, b text) ENGINE=FEDERATED
|
|
||||||
CONNECTION='mysql://root@127.0.0.1:63333/realdb/t0';
|
|
||||||
#
|
|
||||||
# Trigger a federated system error during a INFORMATION_SCHEMA.TABLES query
|
|
||||||
#
|
|
||||||
SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, ENGINE, ROW_FORMAT, TABLE_ROWS, DATA_LENGTH, TABLE_COMMENT
|
|
||||||
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'realdb' or TABLE_SCHEMA = 'federated';
|
|
||||||
TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE ROW_FORMAT TABLE_ROWS DATA_LENGTH TABLE_COMMENT
|
|
||||||
federated t0 BASE TABLE FEDERATED NULL 0 Unable to connect to foreign data source: Can't connect to MySQL server on '127.0.0.1' (socket errno)
|
|
||||||
realdb t0 BASE TABLE MyISAM Dynamic 0 0
|
|
||||||
Warnings:
|
|
||||||
Warning 1429 Unable to connect to foreign data source: Can't connect to MySQL server on '127.0.0.1' (socket errno)
|
|
||||||
SHOW WARNINGS;
|
|
||||||
Level Code Message
|
|
||||||
Warning 1429 Unable to connect to foreign data source: Can't connect to MySQL server on '127.0.0.1' (socket errno)
|
|
||||||
#
|
|
||||||
# Create a MyISAM table then corrupt the file
|
# Create a MyISAM table then corrupt the file
|
||||||
#
|
#
|
||||||
USE realdb;
|
|
||||||
CREATE TABLE t1 (c1 int) ENGINE=MYISAM;
|
CREATE TABLE t1 (c1 int) ENGINE=MYISAM;
|
||||||
#
|
#
|
||||||
# Corrupt the MyISAM table by deleting the base file
|
# Corrupt the MyISAM table by deleting the base file
|
||||||
@ -49,19 +24,18 @@ CREATE TABLE t1 (c1 int) ENGINE=MYISAM;
|
|||||||
SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, ENGINE, ROW_FORMAT, TABLE_ROWS, DATA_LENGTH, TABLE_COMMENT
|
SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, ENGINE, ROW_FORMAT, TABLE_ROWS, DATA_LENGTH, TABLE_COMMENT
|
||||||
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
|
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
|
||||||
TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE ROW_FORMAT TABLE_ROWS DATA_LENGTH TABLE_COMMENT
|
TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE ROW_FORMAT TABLE_ROWS DATA_LENGTH TABLE_COMMENT
|
||||||
realdb t1 BASE TABLE NULL NULL NULL NULL Can't find file: 't1' (errno: 2)
|
test t1 BASE TABLE NULL NULL NULL NULL Can't find file: 't1' (errno: 2)
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1017 Can't find file: 't1' (errno: 2)
|
Warning 1017 Can't find file: 't1' (errno: 2)
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
Warning 1017 Can't find file: 't1' (errno: 2)
|
Warning 1017 Can't find file: 't1' (errno: 2)
|
||||||
|
DROP TABLE t1;
|
||||||
|
ERROR 42S02: Unknown table 't1'
|
||||||
#
|
#
|
||||||
# Cleanup
|
# Cleanup
|
||||||
#
|
#
|
||||||
DROP TABLE IF EXISTS realdb.t0;
|
|
||||||
DROP TABLE IF EXISTS federated.t0;
|
|
||||||
DROP DATABASE realdb;
|
|
||||||
DROP TABLE IF EXISTS federated.t1;
|
DROP TABLE IF EXISTS federated.t1;
|
||||||
DROP DATABASE federated;
|
DROP DATABASE IF EXISTS federated;
|
||||||
DROP TABLE IF EXISTS federated.t1;
|
DROP TABLE IF EXISTS federated.t1;
|
||||||
DROP DATABASE federated;
|
DROP DATABASE IF EXISTS federated;
|
||||||
|
@ -12,12 +12,13 @@
|
|||||||
--source federated.inc
|
--source federated.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
CREATE DATABASE IF NOT EXISTS realdb;
|
|
||||||
# Federated database exists
|
# Federated database exists
|
||||||
DROP TABLE IF EXISTS realdb.t0;
|
|
||||||
DROP TABLE IF EXISTS federated.t0;
|
DROP TABLE IF EXISTS federated.t0;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
|
--disable_parsing
|
||||||
|
# This test doesn't work with federatedx, as it doesn't allow wrong connections
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Create the base table to be referenced
|
--echo # Create the base table to be referenced
|
||||||
--echo #
|
--echo #
|
||||||
@ -42,18 +43,20 @@ SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, ENGINE, ROW_FORMAT, TABLE_ROWS, DAT
|
|||||||
# Remove O/S-specific socket error
|
# Remove O/S-specific socket error
|
||||||
--replace_regex /\(.*\)/(socket errno)/
|
--replace_regex /\(.*\)/(socket errno)/
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
|
DROP TABLE federated.t0;
|
||||||
|
|
||||||
|
--enable_parsing
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Create a MyISAM table then corrupt the file
|
--echo # Create a MyISAM table then corrupt the file
|
||||||
--echo #
|
--echo #
|
||||||
USE realdb;
|
|
||||||
CREATE TABLE t1 (c1 int) ENGINE=MYISAM;
|
CREATE TABLE t1 (c1 int) ENGINE=MYISAM;
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Corrupt the MyISAM table by deleting the base file
|
--echo # Corrupt the MyISAM table by deleting the base file
|
||||||
--echo #
|
--echo #
|
||||||
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||||
--remove_file $MYSQLD_DATADIR/realdb/t1.MYD
|
--remove_file $MYSQLD_DATADIR/test/t1.MYD
|
||||||
--remove_file $MYSQLD_DATADIR/realdb/t1.MYI
|
--remove_file $MYSQLD_DATADIR/test/t1.MYI
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Trigger a MyISAM system error during an INFORMATION_SCHEMA.TABLES query
|
--echo # Trigger a MyISAM system error during an INFORMATION_SCHEMA.TABLES query
|
||||||
@ -62,13 +65,13 @@ SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, ENGINE, ROW_FORMAT, TABLE_ROWS, DAT
|
|||||||
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
|
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
|
||||||
|
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
|
--disable_warnings
|
||||||
|
--error 1051
|
||||||
|
DROP TABLE t1;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Cleanup
|
--echo # Cleanup
|
||||||
--echo #
|
--echo #
|
||||||
--disable_warnings
|
|
||||||
DROP TABLE IF EXISTS realdb.t0;
|
|
||||||
DROP TABLE IF EXISTS federated.t0;
|
|
||||||
DROP DATABASE realdb;
|
|
||||||
--enable_warnings
|
|
||||||
|
|
||||||
--source federated_cleanup.inc
|
--source federated_cleanup.inc
|
||||||
|
@ -19,7 +19,7 @@ eval CREATE TABLE t1(a INT) ENGINE=FEDERATED
|
|||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
|
|
||||||
--echo # Start a asynchronous reload
|
--echo # Start a asynchronous reload
|
||||||
--exec $MYSQLADMIN --no-defaults --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= refresh 2>&1
|
--exec $MYSQLADMIN --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= refresh 2>&1
|
||||||
|
|
||||||
--echo # Wait for tables to be closed
|
--echo # Wait for tables to be closed
|
||||||
let $show_statement= SHOW STATUS LIKE 'Open_tables';
|
let $show_statement= SHOW STATUS LIKE 'Open_tables';
|
||||||
|
@ -80,26 +80,26 @@ SHOW WARNINGS;
|
|||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=8
|
t1 Compressed row_format=COMPRESSED key_block_size=8
|
||||||
ALTER TABLE t1 ADD COLUMN f1 INT;
|
ALTER TABLE t1 ADD COLUMN f1 INT;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=8
|
t1 Compressed row_format=COMPRESSED key_block_size=8
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16;
|
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed KEY_BLOCK_SIZE=16
|
t1 Compressed key_block_size=16
|
||||||
ALTER TABLE t1 ADD COLUMN f1 INT;
|
ALTER TABLE t1 ADD COLUMN f1 INT;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed KEY_BLOCK_SIZE=16
|
t1 Compressed key_block_size=16
|
||||||
# Test 3) StrictMode=ON, ALTER with each ROW_FORMAT & a valid non-zero KEY_BLOCK_SIZE
|
# Test 3) StrictMode=ON, ALTER with each ROW_FORMAT & a valid non-zero KEY_BLOCK_SIZE
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT );
|
CREATE TABLE t1 ( i INT );
|
||||||
@ -132,13 +132,13 @@ SHOW WARNINGS;
|
|||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed KEY_BLOCK_SIZE=16
|
t1 Compressed key_block_size=16
|
||||||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
ALTER TABLE t1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=1
|
t1 Compressed row_format=COMPRESSED key_block_size=1
|
||||||
# Test 4) StrictMode=ON, CREATE with ROW_FORMAT=COMPACT, ALTER with a valid non-zero KEY_BLOCK_SIZE
|
# Test 4) StrictMode=ON, CREATE with ROW_FORMAT=COMPACT, ALTER with a valid non-zero KEY_BLOCK_SIZE
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT;
|
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT;
|
||||||
@ -186,7 +186,7 @@ SHOW WARNINGS;
|
|||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=16
|
t1 Compressed row_format=COMPRESSED key_block_size=16
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT;
|
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT;
|
||||||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=1;
|
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=1;
|
||||||
@ -194,7 +194,7 @@ SHOW WARNINGS;
|
|||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed KEY_BLOCK_SIZE=1
|
t1 Compressed key_block_size=1
|
||||||
# Test 5) StrictMode=ON, CREATE with a valid KEY_BLOCK_SIZE
|
# Test 5) StrictMode=ON, CREATE with a valid KEY_BLOCK_SIZE
|
||||||
# ALTER with each ROW_FORMAT
|
# ALTER with each ROW_FORMAT
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
@ -234,7 +234,7 @@ SHOW WARNINGS;
|
|||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=2
|
t1 Compressed row_format=COMPRESSED key_block_size=2
|
||||||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0;
|
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
@ -495,7 +495,7 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compact row_format=COMPACT KEY_BLOCK_SIZE=1
|
t1 Compact row_format=COMPACT key_block_size=1
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=2;
|
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=2;
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -505,7 +505,7 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Redundant row_format=REDUNDANT KEY_BLOCK_SIZE=2
|
t1 Redundant row_format=REDUNDANT key_block_size=2
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4;
|
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4;
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -515,33 +515,33 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=4 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=4 unless ROW_FORMAT=COMPRESSED.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Dynamic row_format=DYNAMIC KEY_BLOCK_SIZE=4
|
t1 Dynamic row_format=DYNAMIC key_block_size=4
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
|
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=8
|
t1 Compressed row_format=COMPRESSED key_block_size=8
|
||||||
ALTER TABLE t1 ADD COLUMN f1 INT;
|
ALTER TABLE t1 ADD COLUMN f1 INT;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=8
|
t1 Compressed row_format=COMPRESSED key_block_size=8
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16;
|
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed KEY_BLOCK_SIZE=16
|
t1 Compressed key_block_size=16
|
||||||
ALTER TABLE t1 ADD COLUMN f1 INT;
|
ALTER TABLE t1 ADD COLUMN f1 INT;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed KEY_BLOCK_SIZE=16
|
t1 Compressed key_block_size=16
|
||||||
# Test 11) StrictMode=OFF, ALTER with each ROW_FORMAT & a valid KEY_BLOCK_SIZE
|
# Test 11) StrictMode=OFF, ALTER with each ROW_FORMAT & a valid KEY_BLOCK_SIZE
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT );
|
CREATE TABLE t1 ( i INT );
|
||||||
@ -555,7 +555,7 @@ Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=1 unless ROW_FORMAT=COMPRESSED.
|
|||||||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
|
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compact row_format=FIXED KEY_BLOCK_SIZE=1
|
t1 Compact row_format=FIXED key_block_size=1
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT );
|
CREATE TABLE t1 ( i INT );
|
||||||
ALTER TABLE t1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=2;
|
ALTER TABLE t1 ROW_FORMAT=COMPACT KEY_BLOCK_SIZE=2;
|
||||||
@ -566,7 +566,7 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compact row_format=COMPACT KEY_BLOCK_SIZE=2
|
t1 Compact row_format=COMPACT key_block_size=2
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT );
|
CREATE TABLE t1 ( i INT );
|
||||||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4;
|
ALTER TABLE t1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4;
|
||||||
@ -577,7 +577,7 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=4 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=4 unless ROW_FORMAT=COMPRESSED.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Dynamic row_format=DYNAMIC KEY_BLOCK_SIZE=4
|
t1 Dynamic row_format=DYNAMIC key_block_size=4
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT );
|
CREATE TABLE t1 ( i INT );
|
||||||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=8;
|
ALTER TABLE t1 ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=8;
|
||||||
@ -588,7 +588,7 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=8 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=8 unless ROW_FORMAT=COMPRESSED.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Redundant row_format=REDUNDANT KEY_BLOCK_SIZE=8
|
t1 Redundant row_format=REDUNDANT key_block_size=8
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT );
|
CREATE TABLE t1 ( i INT );
|
||||||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16;
|
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16;
|
||||||
@ -596,13 +596,13 @@ SHOW WARNINGS;
|
|||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed KEY_BLOCK_SIZE=16
|
t1 Compressed key_block_size=16
|
||||||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
ALTER TABLE t1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=1
|
t1 Compressed row_format=COMPRESSED key_block_size=1
|
||||||
# Test 12) StrictMode=OFF, CREATE with ROW_FORMAT=COMPACT, ALTER with a valid KEY_BLOCK_SIZE
|
# Test 12) StrictMode=OFF, CREATE with ROW_FORMAT=COMPACT, ALTER with a valid KEY_BLOCK_SIZE
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT;
|
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT;
|
||||||
@ -617,7 +617,7 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compact row_format=COMPACT KEY_BLOCK_SIZE=2
|
t1 Compact row_format=COMPACT key_block_size=2
|
||||||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT;
|
ALTER TABLE t1 ROW_FORMAT=REDUNDANT;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
||||||
@ -626,7 +626,7 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Redundant row_format=REDUNDANT KEY_BLOCK_SIZE=2
|
t1 Redundant row_format=REDUNDANT key_block_size=2
|
||||||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC;
|
ALTER TABLE t1 ROW_FORMAT=DYNAMIC;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
||||||
@ -635,19 +635,19 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=2 unless ROW_FORMAT=COMPRESSED.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Dynamic row_format=DYNAMIC KEY_BLOCK_SIZE=2
|
t1 Dynamic row_format=DYNAMIC key_block_size=2
|
||||||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED;
|
ALTER TABLE t1 ROW_FORMAT=COMPRESSED;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=2
|
t1 Compressed row_format=COMPRESSED key_block_size=2
|
||||||
ALTER TABLE t1 KEY_BLOCK_SIZE=4;
|
ALTER TABLE t1 KEY_BLOCK_SIZE=4;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=4
|
t1 Compressed row_format=COMPRESSED key_block_size=4
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT;
|
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT;
|
||||||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=8;
|
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=8;
|
||||||
@ -655,7 +655,7 @@ SHOW WARNINGS;
|
|||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed KEY_BLOCK_SIZE=8
|
t1 Compressed key_block_size=8
|
||||||
# Test 13) StrictMode=OFF, CREATE with a valid KEY_BLOCK_SIZE
|
# Test 13) StrictMode=OFF, CREATE with a valid KEY_BLOCK_SIZE
|
||||||
# ALTER with each ROW_FORMAT
|
# ALTER with each ROW_FORMAT
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
@ -684,7 +684,7 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compact row_format=COMPACT KEY_BLOCK_SIZE=16
|
t1 Compact row_format=COMPACT key_block_size=16
|
||||||
ALTER TABLE t1 ROW_FORMAT=REDUNDANT;
|
ALTER TABLE t1 ROW_FORMAT=REDUNDANT;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED.
|
||||||
@ -693,7 +693,7 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Redundant row_format=REDUNDANT KEY_BLOCK_SIZE=16
|
t1 Redundant row_format=REDUNDANT key_block_size=16
|
||||||
ALTER TABLE t1 ROW_FORMAT=DYNAMIC;
|
ALTER TABLE t1 ROW_FORMAT=DYNAMIC;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED.
|
||||||
@ -702,13 +702,13 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16 unless ROW_FORMAT=COMPRESSED.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Dynamic row_format=DYNAMIC KEY_BLOCK_SIZE=16
|
t1 Dynamic row_format=DYNAMIC key_block_size=16
|
||||||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED;
|
ALTER TABLE t1 ROW_FORMAT=COMPRESSED;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=16
|
t1 Compressed row_format=COMPRESSED key_block_size=16
|
||||||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0;
|
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=0;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
@ -731,7 +731,7 @@ Level Code Message
|
|||||||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=15.
|
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=15.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compact KEY_BLOCK_SIZE=15
|
t1 Compact key_block_size=15
|
||||||
# Test 15) StrictMode=OFF, Make sure ROW_FORMAT= COMPRESSED & DYNAMIC and a
|
# Test 15) StrictMode=OFF, Make sure ROW_FORMAT= COMPRESSED & DYNAMIC and a
|
||||||
valid KEY_BLOCK_SIZE are remembered but not used when ROW_FORMAT
|
valid KEY_BLOCK_SIZE are remembered but not used when ROW_FORMAT
|
||||||
is reverted to Antelope and then used again when ROW_FORMAT=Barracuda.
|
is reverted to Antelope and then used again when ROW_FORMAT=Barracuda.
|
||||||
@ -741,7 +741,7 @@ SHOW WARNINGS;
|
|||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=1
|
t1 Compressed row_format=COMPRESSED key_block_size=1
|
||||||
SET GLOBAL innodb_file_format=Antelope;
|
SET GLOBAL innodb_file_format=Antelope;
|
||||||
ALTER TABLE t1 ADD COLUMN f1 INT;
|
ALTER TABLE t1 ADD COLUMN f1 INT;
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -757,14 +757,14 @@ Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelop
|
|||||||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
|
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compact row_format=COMPRESSED KEY_BLOCK_SIZE=1
|
t1 Compact row_format=COMPRESSED key_block_size=1
|
||||||
SET GLOBAL innodb_file_format=Barracuda;
|
SET GLOBAL innodb_file_format=Barracuda;
|
||||||
ALTER TABLE t1 ADD COLUMN f2 INT;
|
ALTER TABLE t1 ADD COLUMN f2 INT;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=1
|
t1 Compressed row_format=COMPRESSED key_block_size=1
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC;
|
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
@ -800,7 +800,7 @@ SHOW WARNINGS;
|
|||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=2
|
t1 Compressed row_format=COMPRESSED key_block_size=2
|
||||||
SET GLOBAL innodb_file_per_table=OFF;
|
SET GLOBAL innodb_file_per_table=OFF;
|
||||||
ALTER TABLE t1 ADD COLUMN f1 INT;
|
ALTER TABLE t1 ADD COLUMN f1 INT;
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -816,14 +816,14 @@ Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_per_table.
|
|||||||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
|
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compact row_format=COMPRESSED KEY_BLOCK_SIZE=2
|
t1 Compact row_format=COMPRESSED key_block_size=2
|
||||||
SET GLOBAL innodb_file_per_table=ON;
|
SET GLOBAL innodb_file_per_table=ON;
|
||||||
ALTER TABLE t1 ADD COLUMN f2 INT;
|
ALTER TABLE t1 ADD COLUMN f2 INT;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||||
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
TABLE_NAME ROW_FORMAT CREATE_OPTIONS
|
||||||
t1 Compressed row_format=COMPRESSED KEY_BLOCK_SIZE=2
|
t1 Compressed row_format=COMPRESSED key_block_size=2
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC;
|
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC;
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
|
@ -1,48 +0,0 @@
|
|||||||
SELECT @@GLOBAL.innodb_use_sys_malloc;
|
|
||||||
@@GLOBAL.innodb_use_sys_malloc
|
|
||||||
1
|
|
||||||
1 Expected
|
|
||||||
SET @@GLOBAL.innodb_use_sys_malloc=0;
|
|
||||||
ERROR HY000: Variable 'innodb_use_sys_malloc' is a read only variable
|
|
||||||
Expected error 'Read only variable'
|
|
||||||
SELECT @@GLOBAL.innodb_use_sys_malloc;
|
|
||||||
@@GLOBAL.innodb_use_sys_malloc
|
|
||||||
1
|
|
||||||
1 Expected
|
|
||||||
drop table if exists t1;
|
|
||||||
create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1;
|
|
||||||
insert into t1 values (1),(2),(3),(4),(5),(6),(7);
|
|
||||||
select * from t1;
|
|
||||||
a
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
drop table t1;
|
|
||||||
SELECT @@GLOBAL.innodb_use_sys_malloc;
|
|
||||||
@@GLOBAL.innodb_use_sys_malloc
|
|
||||||
1
|
|
||||||
1 Expected
|
|
||||||
SET @@GLOBAL.innodb_use_sys_malloc=0;
|
|
||||||
ERROR HY000: Variable 'innodb_use_sys_malloc' is a read only variable
|
|
||||||
Expected error 'Read only variable'
|
|
||||||
SELECT @@GLOBAL.innodb_use_sys_malloc;
|
|
||||||
@@GLOBAL.innodb_use_sys_malloc
|
|
||||||
1
|
|
||||||
1 Expected
|
|
||||||
drop table if exists t1;
|
|
||||||
create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1;
|
|
||||||
insert into t1 values (1),(2),(3),(4),(5),(6),(7);
|
|
||||||
select * from t1;
|
|
||||||
a
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
drop table t1;
|
|
@ -37,7 +37,7 @@ select @@session.tx_isolation;
|
|||||||
REPEATABLE-READ
|
REPEATABLE-READ
|
||||||
explain select a1, a2 = repeat("a", 10000) from worklog5743 where a1 = 9;
|
explain select a1, a2 = repeat("a", 10000) from worklog5743 where a1 = 9;
|
||||||
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 worklog5743 ref idx idx 5 const 1 Using where
|
1 SIMPLE worklog5743 ref idx idx 5 const 1
|
||||||
select a1, a2 = repeat("a", 10000) from worklog5743 where a1 = 9;
|
select a1, a2 = repeat("a", 10000) from worklog5743 where a1 = 9;
|
||||||
a1 a2 = repeat("a", 10000)
|
a1 a2 = repeat("a", 10000)
|
||||||
9 1
|
9 1
|
||||||
@ -60,7 +60,7 @@ select @@session.tx_isolation;
|
|||||||
REPEATABLE-READ
|
REPEATABLE-READ
|
||||||
explain select a1, a2 = repeat("a", 10000) from worklog5743 where a1 = 9;
|
explain select a1, a2 = repeat("a", 10000) from worklog5743 where a1 = 9;
|
||||||
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 worklog5743 ref idx idx 5 const 1 Using where
|
1 SIMPLE worklog5743 ref idx idx 5 const 1
|
||||||
select a1, a2 = repeat("a", 10000) from worklog5743 where a1 = 9;
|
select a1, a2 = repeat("a", 10000) from worklog5743 where a1 = 9;
|
||||||
a1 a2 = repeat("a", 10000)
|
a1 a2 = repeat("a", 10000)
|
||||||
9 1
|
9 1
|
||||||
@ -92,7 +92,7 @@ select @@session.tx_isolation;
|
|||||||
REPEATABLE-READ
|
REPEATABLE-READ
|
||||||
explain select a1, a2 = repeat("a", 10000) from worklog5743_2 where a1 = 9;
|
explain select a1, a2 = repeat("a", 10000) from worklog5743_2 where a1 = 9;
|
||||||
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 worklog5743_2 ref idx1 idx1 5 const 1 Using where
|
1 SIMPLE worklog5743_2 ref idx1 idx1 5 const 1
|
||||||
select a1, a2 = repeat("a", 10000) from worklog5743_2 where a1 = 9;
|
select a1, a2 = repeat("a", 10000) from worklog5743_2 where a1 = 9;
|
||||||
a1 a2 = repeat("a", 10000)
|
a1 a2 = repeat("a", 10000)
|
||||||
9 1
|
9 1
|
||||||
@ -121,7 +121,7 @@ select @@session.tx_isolation;
|
|||||||
REPEATABLE-READ
|
REPEATABLE-READ
|
||||||
explain select a1 from worklog5743 where a1 = 9;
|
explain select a1 from worklog5743 where a1 = 9;
|
||||||
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 worklog5743 ref idx idx 5 const 1 Using where; Using index
|
1 SIMPLE worklog5743 ref idx idx 5 const 1 Using index
|
||||||
select a1 from worklog5743 where a1 = 9;
|
select a1 from worklog5743 where a1 = 9;
|
||||||
a1
|
a1
|
||||||
9
|
9
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
--default-storage-engine=MyISAM
|
|
||||||
--loose-innodb-use-sys-malloc=true
|
|
@ -1,27 +0,0 @@
|
|||||||
# XtraDB has lots of "still reachable" memory leak warnings at shutdown when
|
|
||||||
# --innodb-use-sys-malloc
|
|
||||||
--source include/not_valgrind.inc
|
|
||||||
|
|
||||||
#display current value of innodb_use_sys_malloc
|
|
||||||
SELECT @@GLOBAL.innodb_use_sys_malloc;
|
|
||||||
--echo 1 Expected
|
|
||||||
|
|
||||||
#try changing it. Should fail.
|
|
||||||
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
|
||||||
SET @@GLOBAL.innodb_use_sys_malloc=0;
|
|
||||||
--echo Expected error 'Read only variable'
|
|
||||||
|
|
||||||
SELECT @@GLOBAL.innodb_use_sys_malloc;
|
|
||||||
--echo 1 Expected
|
|
||||||
|
|
||||||
|
|
||||||
#do some stuff to see if it works.
|
|
||||||
--disable_warnings
|
|
||||||
drop table if exists t1;
|
|
||||||
--enable_warnings
|
|
||||||
|
|
||||||
create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1;
|
|
||||||
insert into t1 values (1),(2),(3),(4),(5),(6),(7);
|
|
||||||
select * from t1;
|
|
||||||
drop table t1;
|
|
||||||
|
|
@ -136,6 +136,42 @@ t1 CREATE TABLE `t1` (
|
|||||||
PRIMARY KEY (`c1`)
|
PRIMARY KEY (`c1`)
|
||||||
) ENGINE=Aria AUTO_INCREMENT=102 DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
|
) ENGINE=Aria AUTO_INCREMENT=102 DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1
|
||||||
|
(a INT NULL AUTO_INCREMENT,
|
||||||
|
UNIQUE KEY (a))
|
||||||
|
ENGINE='Aria';
|
||||||
|
SET LAST_INSERT_ID = 999;
|
||||||
|
SET INSERT_ID = 0;
|
||||||
|
INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL;
|
||||||
|
SELECT LAST_INSERT_ID();
|
||||||
|
LAST_INSERT_ID()
|
||||||
|
999
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL;
|
||||||
|
SELECT LAST_INSERT_ID();
|
||||||
|
LAST_INSERT_ID()
|
||||||
|
999
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a
|
||||||
|
0
|
||||||
|
UPDATE t1 SET a = 1 WHERE a IS NULL;
|
||||||
|
SELECT LAST_INSERT_ID();
|
||||||
|
LAST_INSERT_ID()
|
||||||
|
999
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a
|
||||||
|
0
|
||||||
|
UPDATE t1 SET a = NULL WHERE a = 1;
|
||||||
|
SELECT LAST_INSERT_ID();
|
||||||
|
LAST_INSERT_ID()
|
||||||
|
999
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a
|
||||||
|
0
|
||||||
|
DROP TABLE t1;
|
||||||
|
SET INSERT_ID = 1;
|
||||||
# Simple test with NULL
|
# Simple test with NULL
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
c1 INT NOT NULL AUTO_INCREMENT,
|
c1 INT NOT NULL AUTO_INCREMENT,
|
||||||
@ -1070,4 +1106,40 @@ c1 c2
|
|||||||
2 20
|
2 20
|
||||||
127 40
|
127 40
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
|
CREATE TABLE t1
|
||||||
|
(a INT NULL AUTO_INCREMENT,
|
||||||
|
UNIQUE KEY (a))
|
||||||
|
ENGINE='Aria'
|
||||||
|
PARTITION BY KEY(a) PARTITIONS 2;
|
||||||
|
SET LAST_INSERT_ID = 999;
|
||||||
|
SET INSERT_ID = 0;
|
||||||
|
INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL;
|
||||||
|
SELECT LAST_INSERT_ID();
|
||||||
|
LAST_INSERT_ID()
|
||||||
|
999
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
INSERT INTO t1 SET a = 1 ON DUPLICATE KEY UPDATE a = NULL;
|
||||||
|
SELECT LAST_INSERT_ID();
|
||||||
|
LAST_INSERT_ID()
|
||||||
|
999
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a
|
||||||
|
0
|
||||||
|
UPDATE t1 SET a = 1 WHERE a IS NULL;
|
||||||
|
SELECT LAST_INSERT_ID();
|
||||||
|
LAST_INSERT_ID()
|
||||||
|
999
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a
|
||||||
|
0
|
||||||
|
UPDATE t1 SET a = NULL WHERE a = 1;
|
||||||
|
SELECT LAST_INSERT_ID();
|
||||||
|
LAST_INSERT_ID()
|
||||||
|
999
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a
|
||||||
|
0
|
||||||
|
DROP TABLE t1;
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
@ -109,33 +109,6 @@ SUBPARTITIONS 2
|
|||||||
PARTITION pa8 VALUES LESS THAN (8) ENGINE = InnoDB,
|
PARTITION pa8 VALUES LESS THAN (8) ENGINE = InnoDB,
|
||||||
PARTITION pa10 VALUES LESS THAN (10) ENGINE = InnoDB) */
|
PARTITION pa10 VALUES LESS THAN (10) ENGINE = InnoDB) */
|
||||||
9*3 inserts;
|
9*3 inserts;
|
||||||
insert into t3 values (9);
|
|
||||||
insert into t3 values (9+0.333333333);
|
|
||||||
insert into t3 values (9+0.755555555);
|
|
||||||
insert into t3 values (8);
|
|
||||||
insert into t3 values (8+0.333333333);
|
|
||||||
insert into t3 values (8+0.755555555);
|
|
||||||
insert into t3 values (7);
|
|
||||||
insert into t3 values (7+0.333333333);
|
|
||||||
insert into t3 values (7+0.755555555);
|
|
||||||
insert into t3 values (6);
|
|
||||||
insert into t3 values (6+0.333333333);
|
|
||||||
insert into t3 values (6+0.755555555);
|
|
||||||
insert into t3 values (5);
|
|
||||||
insert into t3 values (5+0.333333333);
|
|
||||||
insert into t3 values (5+0.755555555);
|
|
||||||
insert into t3 values (4);
|
|
||||||
insert into t3 values (4+0.333333333);
|
|
||||||
insert into t3 values (4+0.755555555);
|
|
||||||
insert into t3 values (3);
|
|
||||||
insert into t3 values (3+0.333333333);
|
|
||||||
insert into t3 values (3+0.755555555);
|
|
||||||
insert into t3 values (2);
|
|
||||||
insert into t3 values (2+0.333333333);
|
|
||||||
insert into t3 values (2+0.755555555);
|
|
||||||
insert into t3 values (1);
|
|
||||||
insert into t3 values (1+0.333333333);
|
|
||||||
insert into t3 values (1+0.755555555);
|
|
||||||
select count(*) from t3;
|
select count(*) from t3;
|
||||||
count(*)
|
count(*)
|
||||||
27
|
27
|
||||||
@ -163,33 +136,6 @@ SUBPARTITIONS 2
|
|||||||
PARTITION pa8 VALUES IN (7,8) ENGINE = InnoDB,
|
PARTITION pa8 VALUES IN (7,8) ENGINE = InnoDB,
|
||||||
PARTITION pa10 VALUES IN (9,10) ENGINE = InnoDB) */
|
PARTITION pa10 VALUES IN (9,10) ENGINE = InnoDB) */
|
||||||
9*3 inserts;
|
9*3 inserts;
|
||||||
insert into t4 values (9);
|
|
||||||
insert into t4 values (9+0.333333333);
|
|
||||||
insert into t4 values (9+0.755555555);
|
|
||||||
insert into t4 values (8);
|
|
||||||
insert into t4 values (8+0.333333333);
|
|
||||||
insert into t4 values (8+0.755555555);
|
|
||||||
insert into t4 values (7);
|
|
||||||
insert into t4 values (7+0.333333333);
|
|
||||||
insert into t4 values (7+0.755555555);
|
|
||||||
insert into t4 values (6);
|
|
||||||
insert into t4 values (6+0.333333333);
|
|
||||||
insert into t4 values (6+0.755555555);
|
|
||||||
insert into t4 values (5);
|
|
||||||
insert into t4 values (5+0.333333333);
|
|
||||||
insert into t4 values (5+0.755555555);
|
|
||||||
insert into t4 values (4);
|
|
||||||
insert into t4 values (4+0.333333333);
|
|
||||||
insert into t4 values (4+0.755555555);
|
|
||||||
insert into t4 values (3);
|
|
||||||
insert into t4 values (3+0.333333333);
|
|
||||||
insert into t4 values (3+0.755555555);
|
|
||||||
insert into t4 values (2);
|
|
||||||
insert into t4 values (2+0.333333333);
|
|
||||||
insert into t4 values (2+0.755555555);
|
|
||||||
insert into t4 values (1);
|
|
||||||
insert into t4 values (1+0.333333333);
|
|
||||||
insert into t4 values (1+0.755555555);
|
|
||||||
select count(*) from t4;
|
select count(*) from t4;
|
||||||
count(*)
|
count(*)
|
||||||
27
|
27
|
||||||
|
@ -109,33 +109,6 @@ SUBPARTITIONS 2
|
|||||||
PARTITION pa8 VALUES LESS THAN (8) ENGINE = MyISAM,
|
PARTITION pa8 VALUES LESS THAN (8) ENGINE = MyISAM,
|
||||||
PARTITION pa10 VALUES LESS THAN (10) ENGINE = MyISAM) */
|
PARTITION pa10 VALUES LESS THAN (10) ENGINE = MyISAM) */
|
||||||
9*3 inserts;
|
9*3 inserts;
|
||||||
insert into t3 values (9);
|
|
||||||
insert into t3 values (9+0.333333333);
|
|
||||||
insert into t3 values (9+0.755555555);
|
|
||||||
insert into t3 values (8);
|
|
||||||
insert into t3 values (8+0.333333333);
|
|
||||||
insert into t3 values (8+0.755555555);
|
|
||||||
insert into t3 values (7);
|
|
||||||
insert into t3 values (7+0.333333333);
|
|
||||||
insert into t3 values (7+0.755555555);
|
|
||||||
insert into t3 values (6);
|
|
||||||
insert into t3 values (6+0.333333333);
|
|
||||||
insert into t3 values (6+0.755555555);
|
|
||||||
insert into t3 values (5);
|
|
||||||
insert into t3 values (5+0.333333333);
|
|
||||||
insert into t3 values (5+0.755555555);
|
|
||||||
insert into t3 values (4);
|
|
||||||
insert into t3 values (4+0.333333333);
|
|
||||||
insert into t3 values (4+0.755555555);
|
|
||||||
insert into t3 values (3);
|
|
||||||
insert into t3 values (3+0.333333333);
|
|
||||||
insert into t3 values (3+0.755555555);
|
|
||||||
insert into t3 values (2);
|
|
||||||
insert into t3 values (2+0.333333333);
|
|
||||||
insert into t3 values (2+0.755555555);
|
|
||||||
insert into t3 values (1);
|
|
||||||
insert into t3 values (1+0.333333333);
|
|
||||||
insert into t3 values (1+0.755555555);
|
|
||||||
select count(*) from t3;
|
select count(*) from t3;
|
||||||
count(*)
|
count(*)
|
||||||
27
|
27
|
||||||
@ -163,33 +136,6 @@ SUBPARTITIONS 2
|
|||||||
PARTITION pa8 VALUES IN (7,8) ENGINE = MyISAM,
|
PARTITION pa8 VALUES IN (7,8) ENGINE = MyISAM,
|
||||||
PARTITION pa10 VALUES IN (9,10) ENGINE = MyISAM) */
|
PARTITION pa10 VALUES IN (9,10) ENGINE = MyISAM) */
|
||||||
9*3 inserts;
|
9*3 inserts;
|
||||||
insert into t4 values (9);
|
|
||||||
insert into t4 values (9+0.333333333);
|
|
||||||
insert into t4 values (9+0.755555555);
|
|
||||||
insert into t4 values (8);
|
|
||||||
insert into t4 values (8+0.333333333);
|
|
||||||
insert into t4 values (8+0.755555555);
|
|
||||||
insert into t4 values (7);
|
|
||||||
insert into t4 values (7+0.333333333);
|
|
||||||
insert into t4 values (7+0.755555555);
|
|
||||||
insert into t4 values (6);
|
|
||||||
insert into t4 values (6+0.333333333);
|
|
||||||
insert into t4 values (6+0.755555555);
|
|
||||||
insert into t4 values (5);
|
|
||||||
insert into t4 values (5+0.333333333);
|
|
||||||
insert into t4 values (5+0.755555555);
|
|
||||||
insert into t4 values (4);
|
|
||||||
insert into t4 values (4+0.333333333);
|
|
||||||
insert into t4 values (4+0.755555555);
|
|
||||||
insert into t4 values (3);
|
|
||||||
insert into t4 values (3+0.333333333);
|
|
||||||
insert into t4 values (3+0.755555555);
|
|
||||||
insert into t4 values (2);
|
|
||||||
insert into t4 values (2+0.333333333);
|
|
||||||
insert into t4 values (2+0.755555555);
|
|
||||||
insert into t4 values (1);
|
|
||||||
insert into t4 values (1+0.333333333);
|
|
||||||
insert into t4 values (1+0.755555555);
|
|
||||||
select count(*) from t4;
|
select count(*) from t4;
|
||||||
count(*)
|
count(*)
|
||||||
27
|
27
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
call mtr.add_suppression("..test.t1_will_crash");
|
call mtr.add_suppression("..test.t1_will_crash");
|
||||||
call mtr.add_suppression("Got an error from unknown thread, ha_myisam.cc");
|
call mtr.add_suppression("Got an error from unknown thread");
|
||||||
CREATE TABLE t1_will_crash (a INT, KEY (a)) ENGINE=MyISAM;
|
CREATE TABLE t1_will_crash (a INT, KEY (a)) ENGINE=MyISAM;
|
||||||
INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11);
|
INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11);
|
||||||
FLUSH TABLES;
|
FLUSH TABLES;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# test the auto-recover (--myisam-recover) of partitioned myisam tables
|
# test the auto-recover (--myisam-recover) of partitioned myisam tables
|
||||||
|
|
||||||
call mtr.add_suppression("..test.t1_will_crash");
|
call mtr.add_suppression("..test.t1_will_crash");
|
||||||
call mtr.add_suppression("Got an error from unknown thread, ha_myisam.cc");
|
call mtr.add_suppression("Got an error from unknown thread");
|
||||||
|
|
||||||
--source include/have_partition.inc
|
--source include/have_partition.inc
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
|
@ -8,24 +8,24 @@ use performance_schema;
|
|||||||
show tables like "user_table";
|
show tables like "user_table";
|
||||||
Tables_in_performance_schema (user_table)
|
Tables_in_performance_schema (user_table)
|
||||||
user_table
|
user_table
|
||||||
ERROR 1050 (42S01) at line 183: Table 'cond_instances' already exists
|
ERROR 1050 (42S01) at line 181: Table 'cond_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 213: Table 'events_waits_current' already exists
|
ERROR 1050 (42S01) at line 211: Table 'events_waits_current' already exists
|
||||||
ERROR 1050 (42S01) at line 227: Table 'events_waits_history' already exists
|
ERROR 1050 (42S01) at line 225: Table 'events_waits_history' already exists
|
||||||
ERROR 1050 (42S01) at line 241: Table 'events_waits_history_long' already exists
|
ERROR 1050 (42S01) at line 239: Table 'events_waits_history_long' already exists
|
||||||
ERROR 1050 (42S01) at line 262: Table 'events_waits_summary_by_instance' already exists
|
ERROR 1050 (42S01) at line 260: Table 'events_waits_summary_by_instance' already exists
|
||||||
ERROR 1050 (42S01) at line 283: Table 'events_waits_summary_by_thread_by_event_name' already exists
|
ERROR 1050 (42S01) at line 281: Table 'events_waits_summary_by_thread_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 303: Table 'events_waits_summary_global_by_event_name' already exists
|
ERROR 1050 (42S01) at line 301: Table 'events_waits_summary_global_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 320: Table 'file_instances' already exists
|
ERROR 1050 (42S01) at line 318: Table 'file_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 339: Table 'file_summary_by_event_name' already exists
|
ERROR 1050 (42S01) at line 337: Table 'file_summary_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 359: Table 'file_summary_by_instance' already exists
|
ERROR 1050 (42S01) at line 357: Table 'file_summary_by_instance' already exists
|
||||||
ERROR 1050 (42S01) at line 376: Table 'mutex_instances' already exists
|
ERROR 1050 (42S01) at line 374: Table 'mutex_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 394: Table 'performance_timers' already exists
|
ERROR 1050 (42S01) at line 392: Table 'performance_timers' already exists
|
||||||
ERROR 1050 (42S01) at line 412: Table 'rwlock_instances' already exists
|
ERROR 1050 (42S01) at line 410: Table 'rwlock_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 428: Table 'setup_consumers' already exists
|
ERROR 1050 (42S01) at line 426: Table 'setup_consumers' already exists
|
||||||
ERROR 1050 (42S01) at line 445: Table 'setup_instruments' already exists
|
ERROR 1050 (42S01) at line 443: Table 'setup_instruments' already exists
|
||||||
ERROR 1050 (42S01) at line 461: Table 'setup_timers' already exists
|
ERROR 1050 (42S01) at line 459: Table 'setup_timers' already exists
|
||||||
ERROR 1050 (42S01) at line 478: Table 'threads' already exists
|
ERROR 1050 (42S01) at line 476: Table 'threads' already exists
|
||||||
ERROR 1644 (HY000) at line 1122: Unexpected content found in the performance_schema database.
|
ERROR 1644 (HY000) at line 1120: Unexpected content found in the performance_schema database.
|
||||||
FATAL ERROR: Upgrade failed
|
FATAL ERROR: Upgrade failed
|
||||||
show tables like "user_table";
|
show tables like "user_table";
|
||||||
Tables_in_performance_schema (user_table)
|
Tables_in_performance_schema (user_table)
|
||||||
@ -38,24 +38,24 @@ use performance_schema;
|
|||||||
show tables like "user_view";
|
show tables like "user_view";
|
||||||
Tables_in_performance_schema (user_view)
|
Tables_in_performance_schema (user_view)
|
||||||
user_view
|
user_view
|
||||||
ERROR 1050 (42S01) at line 183: Table 'cond_instances' already exists
|
ERROR 1050 (42S01) at line 181: Table 'cond_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 213: Table 'events_waits_current' already exists
|
ERROR 1050 (42S01) at line 211: Table 'events_waits_current' already exists
|
||||||
ERROR 1050 (42S01) at line 227: Table 'events_waits_history' already exists
|
ERROR 1050 (42S01) at line 225: Table 'events_waits_history' already exists
|
||||||
ERROR 1050 (42S01) at line 241: Table 'events_waits_history_long' already exists
|
ERROR 1050 (42S01) at line 239: Table 'events_waits_history_long' already exists
|
||||||
ERROR 1050 (42S01) at line 262: Table 'events_waits_summary_by_instance' already exists
|
ERROR 1050 (42S01) at line 260: Table 'events_waits_summary_by_instance' already exists
|
||||||
ERROR 1050 (42S01) at line 283: Table 'events_waits_summary_by_thread_by_event_name' already exists
|
ERROR 1050 (42S01) at line 281: Table 'events_waits_summary_by_thread_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 303: Table 'events_waits_summary_global_by_event_name' already exists
|
ERROR 1050 (42S01) at line 301: Table 'events_waits_summary_global_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 320: Table 'file_instances' already exists
|
ERROR 1050 (42S01) at line 318: Table 'file_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 339: Table 'file_summary_by_event_name' already exists
|
ERROR 1050 (42S01) at line 337: Table 'file_summary_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 359: Table 'file_summary_by_instance' already exists
|
ERROR 1050 (42S01) at line 357: Table 'file_summary_by_instance' already exists
|
||||||
ERROR 1050 (42S01) at line 376: Table 'mutex_instances' already exists
|
ERROR 1050 (42S01) at line 374: Table 'mutex_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 394: Table 'performance_timers' already exists
|
ERROR 1050 (42S01) at line 392: Table 'performance_timers' already exists
|
||||||
ERROR 1050 (42S01) at line 412: Table 'rwlock_instances' already exists
|
ERROR 1050 (42S01) at line 410: Table 'rwlock_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 428: Table 'setup_consumers' already exists
|
ERROR 1050 (42S01) at line 426: Table 'setup_consumers' already exists
|
||||||
ERROR 1050 (42S01) at line 445: Table 'setup_instruments' already exists
|
ERROR 1050 (42S01) at line 443: Table 'setup_instruments' already exists
|
||||||
ERROR 1050 (42S01) at line 461: Table 'setup_timers' already exists
|
ERROR 1050 (42S01) at line 459: Table 'setup_timers' already exists
|
||||||
ERROR 1050 (42S01) at line 478: Table 'threads' already exists
|
ERROR 1050 (42S01) at line 476: Table 'threads' already exists
|
||||||
ERROR 1644 (HY000) at line 1122: Unexpected content found in the performance_schema database.
|
ERROR 1644 (HY000) at line 1120: Unexpected content found in the performance_schema database.
|
||||||
FATAL ERROR: Upgrade failed
|
FATAL ERROR: Upgrade failed
|
||||||
show tables like "user_view";
|
show tables like "user_view";
|
||||||
Tables_in_performance_schema (user_view)
|
Tables_in_performance_schema (user_view)
|
||||||
@ -66,24 +66,24 @@ drop view test.user_view;
|
|||||||
create procedure test.user_proc()
|
create procedure test.user_proc()
|
||||||
select "Not supposed to be here";
|
select "Not supposed to be here";
|
||||||
update mysql.proc set db='performance_schema' where name='user_proc';
|
update mysql.proc set db='performance_schema' where name='user_proc';
|
||||||
ERROR 1050 (42S01) at line 183: Table 'cond_instances' already exists
|
ERROR 1050 (42S01) at line 181: Table 'cond_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 213: Table 'events_waits_current' already exists
|
ERROR 1050 (42S01) at line 211: Table 'events_waits_current' already exists
|
||||||
ERROR 1050 (42S01) at line 227: Table 'events_waits_history' already exists
|
ERROR 1050 (42S01) at line 225: Table 'events_waits_history' already exists
|
||||||
ERROR 1050 (42S01) at line 241: Table 'events_waits_history_long' already exists
|
ERROR 1050 (42S01) at line 239: Table 'events_waits_history_long' already exists
|
||||||
ERROR 1050 (42S01) at line 262: Table 'events_waits_summary_by_instance' already exists
|
ERROR 1050 (42S01) at line 260: Table 'events_waits_summary_by_instance' already exists
|
||||||
ERROR 1050 (42S01) at line 283: Table 'events_waits_summary_by_thread_by_event_name' already exists
|
ERROR 1050 (42S01) at line 281: Table 'events_waits_summary_by_thread_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 303: Table 'events_waits_summary_global_by_event_name' already exists
|
ERROR 1050 (42S01) at line 301: Table 'events_waits_summary_global_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 320: Table 'file_instances' already exists
|
ERROR 1050 (42S01) at line 318: Table 'file_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 339: Table 'file_summary_by_event_name' already exists
|
ERROR 1050 (42S01) at line 337: Table 'file_summary_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 359: Table 'file_summary_by_instance' already exists
|
ERROR 1050 (42S01) at line 357: Table 'file_summary_by_instance' already exists
|
||||||
ERROR 1050 (42S01) at line 376: Table 'mutex_instances' already exists
|
ERROR 1050 (42S01) at line 374: Table 'mutex_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 394: Table 'performance_timers' already exists
|
ERROR 1050 (42S01) at line 392: Table 'performance_timers' already exists
|
||||||
ERROR 1050 (42S01) at line 412: Table 'rwlock_instances' already exists
|
ERROR 1050 (42S01) at line 410: Table 'rwlock_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 428: Table 'setup_consumers' already exists
|
ERROR 1050 (42S01) at line 426: Table 'setup_consumers' already exists
|
||||||
ERROR 1050 (42S01) at line 445: Table 'setup_instruments' already exists
|
ERROR 1050 (42S01) at line 443: Table 'setup_instruments' already exists
|
||||||
ERROR 1050 (42S01) at line 461: Table 'setup_timers' already exists
|
ERROR 1050 (42S01) at line 459: Table 'setup_timers' already exists
|
||||||
ERROR 1050 (42S01) at line 478: Table 'threads' already exists
|
ERROR 1050 (42S01) at line 476: Table 'threads' already exists
|
||||||
ERROR 1644 (HY000) at line 1122: Unexpected content found in the performance_schema database.
|
ERROR 1644 (HY000) at line 1120: Unexpected content found in the performance_schema database.
|
||||||
FATAL ERROR: Upgrade failed
|
FATAL ERROR: Upgrade failed
|
||||||
select name from mysql.proc where db='performance_schema';
|
select name from mysql.proc where db='performance_schema';
|
||||||
name
|
name
|
||||||
@ -94,24 +94,24 @@ drop procedure test.user_proc;
|
|||||||
create function test.user_func() returns integer
|
create function test.user_func() returns integer
|
||||||
return 0;
|
return 0;
|
||||||
update mysql.proc set db='performance_schema' where name='user_func';
|
update mysql.proc set db='performance_schema' where name='user_func';
|
||||||
ERROR 1050 (42S01) at line 183: Table 'cond_instances' already exists
|
ERROR 1050 (42S01) at line 181: Table 'cond_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 213: Table 'events_waits_current' already exists
|
ERROR 1050 (42S01) at line 211: Table 'events_waits_current' already exists
|
||||||
ERROR 1050 (42S01) at line 227: Table 'events_waits_history' already exists
|
ERROR 1050 (42S01) at line 225: Table 'events_waits_history' already exists
|
||||||
ERROR 1050 (42S01) at line 241: Table 'events_waits_history_long' already exists
|
ERROR 1050 (42S01) at line 239: Table 'events_waits_history_long' already exists
|
||||||
ERROR 1050 (42S01) at line 262: Table 'events_waits_summary_by_instance' already exists
|
ERROR 1050 (42S01) at line 260: Table 'events_waits_summary_by_instance' already exists
|
||||||
ERROR 1050 (42S01) at line 283: Table 'events_waits_summary_by_thread_by_event_name' already exists
|
ERROR 1050 (42S01) at line 281: Table 'events_waits_summary_by_thread_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 303: Table 'events_waits_summary_global_by_event_name' already exists
|
ERROR 1050 (42S01) at line 301: Table 'events_waits_summary_global_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 320: Table 'file_instances' already exists
|
ERROR 1050 (42S01) at line 318: Table 'file_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 339: Table 'file_summary_by_event_name' already exists
|
ERROR 1050 (42S01) at line 337: Table 'file_summary_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 359: Table 'file_summary_by_instance' already exists
|
ERROR 1050 (42S01) at line 357: Table 'file_summary_by_instance' already exists
|
||||||
ERROR 1050 (42S01) at line 376: Table 'mutex_instances' already exists
|
ERROR 1050 (42S01) at line 374: Table 'mutex_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 394: Table 'performance_timers' already exists
|
ERROR 1050 (42S01) at line 392: Table 'performance_timers' already exists
|
||||||
ERROR 1050 (42S01) at line 412: Table 'rwlock_instances' already exists
|
ERROR 1050 (42S01) at line 410: Table 'rwlock_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 428: Table 'setup_consumers' already exists
|
ERROR 1050 (42S01) at line 426: Table 'setup_consumers' already exists
|
||||||
ERROR 1050 (42S01) at line 445: Table 'setup_instruments' already exists
|
ERROR 1050 (42S01) at line 443: Table 'setup_instruments' already exists
|
||||||
ERROR 1050 (42S01) at line 461: Table 'setup_timers' already exists
|
ERROR 1050 (42S01) at line 459: Table 'setup_timers' already exists
|
||||||
ERROR 1050 (42S01) at line 478: Table 'threads' already exists
|
ERROR 1050 (42S01) at line 476: Table 'threads' already exists
|
||||||
ERROR 1644 (HY000) at line 1122: Unexpected content found in the performance_schema database.
|
ERROR 1644 (HY000) at line 1120: Unexpected content found in the performance_schema database.
|
||||||
FATAL ERROR: Upgrade failed
|
FATAL ERROR: Upgrade failed
|
||||||
select name from mysql.proc where db='performance_schema';
|
select name from mysql.proc where db='performance_schema';
|
||||||
name
|
name
|
||||||
@ -122,24 +122,24 @@ drop function test.user_func;
|
|||||||
create event test.user_event on schedule every 1 day do
|
create event test.user_event on schedule every 1 day do
|
||||||
select "not supposed to be here";
|
select "not supposed to be here";
|
||||||
update mysql.event set db='performance_schema' where name='user_event';
|
update mysql.event set db='performance_schema' where name='user_event';
|
||||||
ERROR 1050 (42S01) at line 183: Table 'cond_instances' already exists
|
ERROR 1050 (42S01) at line 181: Table 'cond_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 213: Table 'events_waits_current' already exists
|
ERROR 1050 (42S01) at line 211: Table 'events_waits_current' already exists
|
||||||
ERROR 1050 (42S01) at line 227: Table 'events_waits_history' already exists
|
ERROR 1050 (42S01) at line 225: Table 'events_waits_history' already exists
|
||||||
ERROR 1050 (42S01) at line 241: Table 'events_waits_history_long' already exists
|
ERROR 1050 (42S01) at line 239: Table 'events_waits_history_long' already exists
|
||||||
ERROR 1050 (42S01) at line 262: Table 'events_waits_summary_by_instance' already exists
|
ERROR 1050 (42S01) at line 260: Table 'events_waits_summary_by_instance' already exists
|
||||||
ERROR 1050 (42S01) at line 283: Table 'events_waits_summary_by_thread_by_event_name' already exists
|
ERROR 1050 (42S01) at line 281: Table 'events_waits_summary_by_thread_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 303: Table 'events_waits_summary_global_by_event_name' already exists
|
ERROR 1050 (42S01) at line 301: Table 'events_waits_summary_global_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 320: Table 'file_instances' already exists
|
ERROR 1050 (42S01) at line 318: Table 'file_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 339: Table 'file_summary_by_event_name' already exists
|
ERROR 1050 (42S01) at line 337: Table 'file_summary_by_event_name' already exists
|
||||||
ERROR 1050 (42S01) at line 359: Table 'file_summary_by_instance' already exists
|
ERROR 1050 (42S01) at line 357: Table 'file_summary_by_instance' already exists
|
||||||
ERROR 1050 (42S01) at line 376: Table 'mutex_instances' already exists
|
ERROR 1050 (42S01) at line 374: Table 'mutex_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 394: Table 'performance_timers' already exists
|
ERROR 1050 (42S01) at line 392: Table 'performance_timers' already exists
|
||||||
ERROR 1050 (42S01) at line 412: Table 'rwlock_instances' already exists
|
ERROR 1050 (42S01) at line 410: Table 'rwlock_instances' already exists
|
||||||
ERROR 1050 (42S01) at line 428: Table 'setup_consumers' already exists
|
ERROR 1050 (42S01) at line 426: Table 'setup_consumers' already exists
|
||||||
ERROR 1050 (42S01) at line 445: Table 'setup_instruments' already exists
|
ERROR 1050 (42S01) at line 443: Table 'setup_instruments' already exists
|
||||||
ERROR 1050 (42S01) at line 461: Table 'setup_timers' already exists
|
ERROR 1050 (42S01) at line 459: Table 'setup_timers' already exists
|
||||||
ERROR 1050 (42S01) at line 478: Table 'threads' already exists
|
ERROR 1050 (42S01) at line 476: Table 'threads' already exists
|
||||||
ERROR 1644 (HY000) at line 1122: Unexpected content found in the performance_schema database.
|
ERROR 1644 (HY000) at line 1120: Unexpected content found in the performance_schema database.
|
||||||
FATAL ERROR: Upgrade failed
|
FATAL ERROR: Upgrade failed
|
||||||
select name from mysql.event where db='performance_schema';
|
select name from mysql.event where db='performance_schema';
|
||||||
name
|
name
|
||||||
|
@ -1,15 +1,8 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
|
|
||||||
-------- switch to master -------
|
-------- switch to master -------
|
||||||
SET AUTOCOMMIT = 1;
|
SET AUTOCOMMIT = 1;
|
||||||
DROP DATABASE IF EXISTS mysqltest1;
|
|
||||||
DROP DATABASE IF EXISTS mysqltest2;
|
|
||||||
DROP DATABASE IF EXISTS mysqltest3;
|
|
||||||
CREATE DATABASE mysqltest1;
|
CREATE DATABASE mysqltest1;
|
||||||
CREATE DATABASE mysqltest2;
|
CREATE DATABASE mysqltest2;
|
||||||
CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE=InnoDB;
|
CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE=InnoDB;
|
||||||
@ -1626,3 +1619,4 @@ use test;
|
|||||||
-------- switch to master -------
|
-------- switch to master -------
|
||||||
DROP DATABASE mysqltest1;
|
DROP DATABASE mysqltest1;
|
||||||
DROP DATABASE mysqltest3;
|
DROP DATABASE mysqltest3;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -158,9 +158,9 @@ SELECT * FROM mysql.procs_priv;
|
|||||||
Host Db User Routine_name Routine_type Grantor Proc_priv Timestamp
|
Host Db User Routine_name Routine_type Grantor Proc_priv Timestamp
|
||||||
SELECT upgrade_alter_func();
|
SELECT upgrade_alter_func();
|
||||||
ERROR HY000: The user specified as a definer ('create_rout_db'@'localhost') does not exist
|
ERROR HY000: The user specified as a definer ('create_rout_db'@'localhost') does not exist
|
||||||
USE test;
|
USE bug42217_db;
|
||||||
DROP FUNCTION bug42217_db.upgrade_del_func;
|
DROP FUNCTION upgrade_del_func;
|
||||||
DROP FUNCTION bug42217_db.upgrade_alter_func;
|
DROP FUNCTION upgrade_alter_func;
|
||||||
DROP DATABASE bug42217_db;
|
DROP DATABASE bug42217_db;
|
||||||
SET SQL_LOG_BIN= 0;
|
SET SQL_LOG_BIN= 0;
|
||||||
DROP USER 'create_rout_db'@'localhost';
|
DROP USER 'create_rout_db'@'localhost';
|
||||||
|
@ -30,7 +30,7 @@ Warnings:
|
|||||||
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
||||||
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
||||||
Warning 1364 Field 'x509_subject' doesn't have a default value
|
Warning 1364 Field 'x509_subject' doesn't have a default value
|
||||||
Warning 1364 Field 'auth_string' doesn't have a default value
|
Warning 1364 Field 'authentication_string' doesn't have a default value
|
||||||
GRANT SELECT ON *.* TO mysqltest6@localhost;
|
GRANT SELECT ON *.* TO mysqltest6@localhost;
|
||||||
GRANT INSERT ON *.* TO mysqltest6@localhost;
|
GRANT INSERT ON *.* TO mysqltest6@localhost;
|
||||||
GRANT INSERT ON test.* TO mysqltest6@localhost;
|
GRANT INSERT ON test.* TO mysqltest6@localhost;
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
include/master-slave.inc
|
include/master-slave.inc
|
||||||
[connection master]
|
[connection master]
|
||||||
|
create table if not exists t1 (n int);
|
||||||
|
drop table t1;
|
||||||
call mtr.add_suppression ("Slave I/O: Got fatal error 1236 from master when reading data from binary");
|
call mtr.add_suppression ("Slave I/O: Got fatal error 1236 from master when reading data from binary");
|
||||||
call mtr.add_suppression ("Error in Log_event::read_log_event");
|
call mtr.add_suppression ("Error in Log_event::read_log_event");
|
||||||
show master status;
|
show master status;
|
||||||
@ -7,7 +9,6 @@ File Position Binlog_Do_DB Binlog_Ignore_DB
|
|||||||
master-bin.000001 # <Binlog_Do_DB> <Binlog_Ignore_DB>
|
master-bin.000001 # <Binlog_Do_DB> <Binlog_Ignore_DB>
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
change master to master_log_pos=MASTER_LOG_POS;
|
change master to master_log_pos=MASTER_LOG_POS;
|
||||||
Read_Master_Log_Pos = '75'
|
|
||||||
start slave;
|
start slave;
|
||||||
include/wait_for_slave_io_error.inc [errno=1236]
|
include/wait_for_slave_io_error.inc [errno=1236]
|
||||||
Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master''
|
Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master''
|
||||||
|
@ -26,16 +26,29 @@ include/diff_tables.inc [master:t1,slave:t1]
|
|||||||
TRUNCATE TABLE t1;
|
TRUNCATE TABLE t1;
|
||||||
TRUNCATE TABLE t2;
|
TRUNCATE TABLE t2;
|
||||||
TRUNCATE TABLE t3;
|
TRUNCATE TABLE t3;
|
||||||
|
set default_storage_engine=innodb;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (7, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (8, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (9, 's');;
|
||||||
|
ALTER TABLE t3 ADD COLUMN d int;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (19, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (20, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (21, 's');;
|
||||||
|
CREATE TABLE t4 SELECT * FROM t1;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (27, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (28, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (29, 's');;
|
||||||
|
CREATE TABLE t5 (a int);
|
||||||
include/diff_tables.inc [master:t1,slave:t1]
|
include/diff_tables.inc [master:t1,slave:t1]
|
||||||
########################################################################################
|
########################################################################################
|
||||||
# 3 - BEGIN - COMMIT
|
# 3 - BEGIN - COMMIT
|
||||||
@ -97,6 +110,9 @@ BEGIN;
|
|||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (7, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (8, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (9, 's');;
|
||||||
ROLLBACK TO sv;
|
ROLLBACK TO sv;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||||
@ -112,6 +128,10 @@ BEGIN;
|
|||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (8, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (9, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (10, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (11, 's');;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
include/master-slave.inc
|
include/master-slave.inc
|
||||||
[connection master]
|
[connection master]
|
||||||
|
set session storage_engine=innodb;
|
||||||
#########################################################################
|
#########################################################################
|
||||||
# CONFIGURATION
|
# CONFIGURATION
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
include/master-slave.inc
|
include/master-slave.inc
|
||||||
[connection master]
|
[connection master]
|
||||||
|
drop tables if exists t1;
|
||||||
create table t1 (a int not null auto_increment primary key, b int, key(b));
|
create table t1 (a int not null auto_increment primary key, b int, key(b));
|
||||||
INSERT INTO t1 (a) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
INSERT INTO t1 (a) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
||||||
INSERT INTO t1 (a) SELECT null FROM t1;
|
INSERT INTO t1 (a) SELECT null FROM t1;
|
||||||
|
@ -88,8 +88,8 @@ master-bin.000009 # <Binlog_Do_DB> <Binlog_Ignore_DB>
|
|||||||
select * from t4;
|
select * from t4;
|
||||||
a
|
a
|
||||||
testing temporary tables part 2
|
testing temporary tables part 2
|
||||||
Master_Log_File master-bin.000009
|
Master_Log_File = 'master-bin.000009'
|
||||||
Relay_Master_Log_File master-bin.000009
|
Relay_Master_Log_File = 'master-bin.000009'
|
||||||
include/check_slave_is_running.inc
|
include/check_slave_is_running.inc
|
||||||
lock tables t3 read;
|
lock tables t3 read;
|
||||||
select count(*) from t3 where n >= 4;
|
select count(*) from t3 where n >= 4;
|
||||||
|
@ -26,17 +26,30 @@ include/diff_tables.inc [master:t1,slave:t1]
|
|||||||
TRUNCATE TABLE t1;
|
TRUNCATE TABLE t1;
|
||||||
TRUNCATE TABLE t2;
|
TRUNCATE TABLE t2;
|
||||||
TRUNCATE TABLE t3;
|
TRUNCATE TABLE t3;
|
||||||
|
set default_storage_engine=innodb;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (7, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (8, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (9, 's');;
|
||||||
|
ALTER TABLE t3 ADD COLUMN d int;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (19, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (20, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (21, 's');;
|
||||||
|
CREATE TABLE t4 SELECT * FROM t1;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
BEGIN;
|
BEGIN;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (27, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (28, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (29, 's');;
|
||||||
|
CREATE TABLE t5 (a int);
|
||||||
include/diff_tables.inc [master:t1,slave:t1]
|
include/diff_tables.inc [master:t1,slave:t1]
|
||||||
########################################################################################
|
########################################################################################
|
||||||
# 3 - BEGIN - COMMIT
|
# 3 - BEGIN - COMMIT
|
||||||
@ -98,6 +111,9 @@ BEGIN;
|
|||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (7, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (8, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (9, 's');;
|
||||||
ROLLBACK TO sv;
|
ROLLBACK TO sv;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||||
@ -113,6 +129,10 @@ BEGIN;
|
|||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (8, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (9, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (10, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (11, 's');;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
include/master-slave.inc
|
include/master-slave.inc
|
||||||
[connection master]
|
[connection master]
|
||||||
|
set session storage_engine=innodb;
|
||||||
#########################################################################
|
#########################################################################
|
||||||
# CONFIGURATION
|
# CONFIGURATION
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
@ -62,7 +62,7 @@ Warnings:
|
|||||||
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
Warning 1364 Field 'ssl_cipher' doesn't have a default value
|
||||||
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
Warning 1364 Field 'x509_issuer' doesn't have a default value
|
||||||
Warning 1364 Field 'x509_subject' doesn't have a default value
|
Warning 1364 Field 'x509_subject' doesn't have a default value
|
||||||
Warning 1364 Field 'auth_string' doesn't have a default value
|
Warning 1364 Field 'authentication_string' doesn't have a default value
|
||||||
select select_priv,user from mysql.user where user = _binary'blafasel2';
|
select select_priv,user from mysql.user where user = _binary'blafasel2';
|
||||||
select_priv user
|
select_priv user
|
||||||
N blafasel2
|
N blafasel2
|
||||||
|
@ -26,16 +26,29 @@ include/diff_tables.inc [master:t1,slave:t1]
|
|||||||
TRUNCATE TABLE t1;
|
TRUNCATE TABLE t1;
|
||||||
TRUNCATE TABLE t2;
|
TRUNCATE TABLE t2;
|
||||||
TRUNCATE TABLE t3;
|
TRUNCATE TABLE t3;
|
||||||
|
set default_storage_engine=innodb;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (7, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (8, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (9, 's');;
|
||||||
|
ALTER TABLE t3 ADD COLUMN d int;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (19, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (20, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (21, 's');;
|
||||||
|
CREATE TABLE t4 SELECT * FROM t1;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (27, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (28, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (29, 's');;
|
||||||
|
CREATE TABLE t5 (a int);
|
||||||
include/diff_tables.inc [master:t1,slave:t1]
|
include/diff_tables.inc [master:t1,slave:t1]
|
||||||
########################################################################################
|
########################################################################################
|
||||||
# 3 - BEGIN - COMMIT
|
# 3 - BEGIN - COMMIT
|
||||||
@ -97,6 +110,9 @@ BEGIN;
|
|||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (7, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (8, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (9, 's');;
|
||||||
ROLLBACK TO sv;
|
ROLLBACK TO sv;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||||
@ -112,6 +128,10 @@ BEGIN;
|
|||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
INSERT INTO t1 (a, data) VALUES (8, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (9, 's');;
|
||||||
|
INSERT INTO t2 (a, data) VALUES (10, 's');;
|
||||||
|
INSERT INTO t1 (a, data) VALUES (11, 's');;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
CALL mtr.add_suppression('Unsafe statement written to the binary log using statement format');
|
CALL mtr.add_suppression('Unsafe statement written to the binary log using statement format');
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
DROP TABLE IF EXISTS t2;
|
DROP TABLE IF EXISTS t2;
|
||||||
@ -50,3 +46,4 @@ a name old_a old_b truncate(rand_value,4)
|
|||||||
106 t2 5 0 0.6699
|
106 t2 5 0 0.6699
|
||||||
107 t2 500 0 0.3593
|
107 t2 500 0 0.3593
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
install plugin example soname 'ha_example.so';
|
install plugin example soname 'ha_example.so';
|
||||||
set storage_engine=example;
|
set storage_engine=example;
|
||||||
create table t1 (a int not null) ull=12340;
|
create table t1 (a int not null) ull=12340;
|
||||||
@ -23,3 +19,4 @@ select 1;
|
|||||||
1
|
1
|
||||||
1
|
1
|
||||||
uninstall plugin example;
|
uninstall plugin example;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -23,7 +23,7 @@ include/rpl_connect.inc [creating master]
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
[on slave]
|
[on slave]
|
||||||
include/rpl_reset.inc
|
include/rpl_reset.inc
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a int) engine=innodb;
|
||||||
CREATE TABLE t2 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) );
|
CREATE TABLE t2 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) );
|
||||||
CREATE TABLE t3 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) );
|
CREATE TABLE t3 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) );
|
||||||
CREATE TRIGGER tr1 AFTER DELETE ON t2 FOR EACH ROW INSERT INTO t3 () VALUES ();
|
CREATE TRIGGER tr1 AFTER DELETE ON t2 FOR EACH ROW INSERT INTO t3 () VALUES ();
|
||||||
@ -47,7 +47,7 @@ Slave_open_temp_tables 0
|
|||||||
DROP TABLE t3, t1;
|
DROP TABLE t3, t1;
|
||||||
show binlog events from <binlog_start>;
|
show binlog events from <binlog_start>;
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a int)
|
slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a int) engine=innodb
|
||||||
slave-bin.000001 # Query # # use `test`; CREATE TABLE t2 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) )
|
slave-bin.000001 # Query # # use `test`; CREATE TABLE t2 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) )
|
||||||
slave-bin.000001 # Query # # use `test`; CREATE TABLE t3 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) )
|
slave-bin.000001 # Query # # use `test`; CREATE TABLE t3 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) )
|
||||||
slave-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` TRIGGER tr1 AFTER DELETE ON t2 FOR EACH ROW INSERT INTO t3 () VALUES ()
|
slave-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` TRIGGER tr1 AFTER DELETE ON t2 FOR EACH ROW INSERT INTO t3 () VALUES ()
|
||||||
@ -93,7 +93,7 @@ BEGIN;
|
|||||||
DROP TEMPORARY TABLE t1;
|
DROP TEMPORARY TABLE t1;
|
||||||
# The rows event will binlogged before 'DROP TEMPORARY TABLE t1',
|
# The rows event will binlogged before 'DROP TEMPORARY TABLE t1',
|
||||||
# as t1 is non-transactional table
|
# as t1 is non-transactional table
|
||||||
INSERT INTO t1 VALUES(Rand());
|
INSERT INTO t1 SELECT Rand();
|
||||||
COMMIT;
|
COMMIT;
|
||||||
show binlog events in 'master-bin.000001' from <binlog_start>;
|
show binlog events in 'master-bin.000001' from <binlog_start>;
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
include/master-slave.inc
|
include/master-slave.inc
|
||||||
[connection master]
|
[connection master]
|
||||||
call mtr.add_suppression("Slave: Can\'t find record in \'user\' Error_code: 1032");
|
SET sql_log_bin = 0;
|
||||||
|
SET sql_log_bin = 1;
|
||||||
reset master;
|
reset master;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TEMPORARY TABLE t1 (a char(1));
|
CREATE TEMPORARY TABLE t1 (a char(1));
|
||||||
|
@ -200,17 +200,12 @@ SELECT upgrade_alter_func();
|
|||||||
disconnect create_rout_db_master;
|
disconnect create_rout_db_master;
|
||||||
disconnect create_rout_db_slave;
|
disconnect create_rout_db_slave;
|
||||||
connection master;
|
connection master;
|
||||||
USE test;
|
USE bug42217_db;
|
||||||
DROP FUNCTION bug42217_db.upgrade_del_func;
|
DROP FUNCTION upgrade_del_func;
|
||||||
DROP FUNCTION bug42217_db.upgrade_alter_func;
|
DROP FUNCTION upgrade_alter_func;
|
||||||
DROP DATABASE bug42217_db;
|
DROP DATABASE bug42217_db;
|
||||||
|
|
||||||
-- sync_slave_with_master
|
-- sync_slave_with_master
|
||||||
# Drop the user that was already dropped on the slave
|
-- connection master
|
||||||
connection slave;
|
|
||||||
--disable_warnings
|
|
||||||
stop slave;
|
|
||||||
connection master;
|
|
||||||
|
|
||||||
# user was already dropped in the slave before
|
# user was already dropped in the slave before
|
||||||
# so we should not replicate this statement.
|
# so we should not replicate this statement.
|
||||||
@ -218,8 +213,6 @@ SET SQL_LOG_BIN= 0;
|
|||||||
DROP USER 'create_rout_db'@'localhost';
|
DROP USER 'create_rout_db'@'localhost';
|
||||||
SET SQL_LOG_BIN= 1;
|
SET SQL_LOG_BIN= 1;
|
||||||
|
|
||||||
--enable_warnings
|
|
||||||
|
|
||||||
# finish entire clean up (remove binlogs)
|
# finish entire clean up (remove binlogs)
|
||||||
# so that we leave a pristine environment for the
|
# so that we leave a pristine environment for the
|
||||||
# following tests
|
# following tests
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# depends on the binlog output
|
# depends on the binlog output
|
||||||
-- source include/have_binlog_format_row.inc
|
-- source include/have_binlog_format_row.inc
|
||||||
|
|
||||||
let $rename_event_pos= 926;
|
let $rename_event_pos= 912;
|
||||||
|
|
||||||
# Bug#18326: Do not lock table for writing during prepare of statement
|
# Bug#18326: Do not lock table for writing during prepare of statement
|
||||||
# The use of the ps protocol causes extra table maps in the binlog, so
|
# The use of the ps protocol causes extra table maps in the binlog, so
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# depends on the binlog output
|
# depends on the binlog output
|
||||||
--source include/have_binlog_format_mixed_or_statement.inc
|
--source include/have_binlog_format_mixed_or_statement.inc
|
||||||
|
|
||||||
let $rename_event_pos= 959;
|
let $rename_event_pos= 945;
|
||||||
-- source extra/rpl_tests/rpl_flsh_tbls.test
|
-- source extra/rpl_tests/rpl_flsh_tbls.test
|
||||||
|
@ -54,3 +54,5 @@ sync_slave_with_master;
|
|||||||
connection master;
|
connection master;
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
|
|
||||||
|
--source include/rpl_end.inc
|
||||||
|
@ -29,3 +29,5 @@ drop table t1;
|
|||||||
set storage_engine=default;
|
set storage_engine=default;
|
||||||
select 1;
|
select 1;
|
||||||
uninstall plugin example;
|
uninstall plugin example;
|
||||||
|
|
||||||
|
source include/rpl_end.inc;
|
||||||
|
@ -97,7 +97,7 @@ sync_slave_with_master;
|
|||||||
-- connection master
|
-- connection master
|
||||||
|
|
||||||
# action: setup environment
|
# action: setup environment
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a int) engine=innodb;
|
||||||
CREATE TABLE t2 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) );
|
CREATE TABLE t2 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) );
|
||||||
CREATE TABLE t3 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) );
|
CREATE TABLE t3 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) );
|
||||||
CREATE TRIGGER tr1 AFTER DELETE ON t2 FOR EACH ROW INSERT INTO t3 () VALUES ();
|
CREATE TRIGGER tr1 AFTER DELETE ON t2 FOR EACH ROW INSERT INTO t3 () VALUES ();
|
||||||
@ -193,7 +193,7 @@ DROP TEMPORARY TABLE t1;
|
|||||||
|
|
||||||
--echo # The rows event will binlogged before 'DROP TEMPORARY TABLE t1',
|
--echo # The rows event will binlogged before 'DROP TEMPORARY TABLE t1',
|
||||||
--echo # as t1 is non-transactional table
|
--echo # as t1 is non-transactional table
|
||||||
INSERT INTO t1 VALUES(Rand());
|
INSERT INTO t1 SELECT Rand();
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
source include/show_binlog_events.inc;
|
source include/show_binlog_events.inc;
|
||||||
|
@ -8,84 +8,122 @@ SELECT @start_session_value;
|
|||||||
256
|
256
|
||||||
'#--------------------FN_DYNVARS_090_01-------------------------#'
|
'#--------------------FN_DYNVARS_090_01-------------------------#'
|
||||||
SET @@global.multi_range_count = 100;
|
SET @@global.multi_range_count = 100;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SET @@global.multi_range_count = DEFAULT;
|
SET @@global.multi_range_count = DEFAULT;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
256
|
256
|
||||||
SET @@session.multi_range_count = 200;
|
SET @@session.multi_range_count = 200;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SET @@session.multi_range_count = DEFAULT;
|
SET @@session.multi_range_count = DEFAULT;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@session.multi_range_count;
|
SELECT @@session.multi_range_count;
|
||||||
@@session.multi_range_count
|
@@session.multi_range_count
|
||||||
256
|
256
|
||||||
'#--------------------FN_DYNVARS_090_02-------------------------#'
|
'#--------------------FN_DYNVARS_090_02-------------------------#'
|
||||||
SET @@global.multi_range_count = DEFAULT;
|
SET @@global.multi_range_count = DEFAULT;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@global.multi_range_count = 256;
|
SELECT @@global.multi_range_count = 256;
|
||||||
@@global.multi_range_count = 256
|
@@global.multi_range_count = 256
|
||||||
1
|
1
|
||||||
SET @@session.multi_range_count = DEFAULT;
|
SET @@session.multi_range_count = DEFAULT;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@session.multi_range_count = 256;
|
SELECT @@session.multi_range_count = 256;
|
||||||
@@session.multi_range_count = 256
|
@@session.multi_range_count = 256
|
||||||
1
|
1
|
||||||
'#--------------------FN_DYNVARS_090_03-------------------------#'
|
'#--------------------FN_DYNVARS_090_03-------------------------#'
|
||||||
SET @@global.multi_range_count = 1;
|
SET @@global.multi_range_count = 1;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
1
|
1
|
||||||
SET @@global.multi_range_count = 60020;
|
SET @@global.multi_range_count = 60020;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
60020
|
60020
|
||||||
SET @@global.multi_range_count = 65535;
|
SET @@global.multi_range_count = 65535;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
65535
|
65535
|
||||||
SET @@global.multi_range_count = 4294967295;
|
SET @@global.multi_range_count = 4294967295;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
4294967295
|
4294967295
|
||||||
SET @@global.multi_range_count = 4294967294;
|
SET @@global.multi_range_count = 4294967294;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
4294967294
|
4294967294
|
||||||
'#--------------------FN_DYNVARS_090_04-------------------------#'
|
'#--------------------FN_DYNVARS_090_04-------------------------#'
|
||||||
SET @@session.multi_range_count = 1;
|
SET @@session.multi_range_count = 1;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@session.multi_range_count;
|
SELECT @@session.multi_range_count;
|
||||||
@@session.multi_range_count
|
@@session.multi_range_count
|
||||||
1
|
1
|
||||||
SET @@session.multi_range_count = 50050;
|
SET @@session.multi_range_count = 50050;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@session.multi_range_count;
|
SELECT @@session.multi_range_count;
|
||||||
@@session.multi_range_count
|
@@session.multi_range_count
|
||||||
50050
|
50050
|
||||||
SET @@session.multi_range_count = 65535;
|
SET @@session.multi_range_count = 65535;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@session.multi_range_count;
|
SELECT @@session.multi_range_count;
|
||||||
@@session.multi_range_count
|
@@session.multi_range_count
|
||||||
65535
|
65535
|
||||||
SET @@session.multi_range_count = 4294967295;
|
SET @@session.multi_range_count = 4294967295;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@session.multi_range_count;
|
SELECT @@session.multi_range_count;
|
||||||
@@session.multi_range_count
|
@@session.multi_range_count
|
||||||
4294967295
|
4294967295
|
||||||
SET @@session.multi_range_count = 4294967294;
|
SET @@session.multi_range_count = 4294967294;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@session.multi_range_count;
|
SELECT @@session.multi_range_count;
|
||||||
@@session.multi_range_count
|
@@session.multi_range_count
|
||||||
4294967294
|
4294967294
|
||||||
'#------------------FN_DYNVARS_090_05-----------------------#'
|
'#------------------FN_DYNVARS_090_05-----------------------#'
|
||||||
SET @@global.multi_range_count = 0;
|
SET @@global.multi_range_count = 0;
|
||||||
Warnings:
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
Warning 1292 Truncated incorrect multi_range_count value: '0'
|
Warning 1292 Truncated incorrect multi_range_count value: '0'
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
1
|
1
|
||||||
SET @@global.multi_range_count = 4294967296;
|
SET @@global.multi_range_count = 4294967296;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
4294967296
|
4294967296
|
||||||
SET @@global.multi_range_count = -1024;
|
SET @@global.multi_range_count = -1024;
|
||||||
Warnings:
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
Warning 1292 Truncated incorrect multi_range_count value: '-1024'
|
Warning 1292 Truncated incorrect multi_range_count value: '-1024'
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
1
|
1
|
||||||
SET @@global.multi_range_count = 429496729500;
|
SET @@global.multi_range_count = 429496729500;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
429496729500
|
429496729500
|
||||||
@ -101,16 +139,20 @@ SELECT @@global.multi_range_count;
|
|||||||
429496729500
|
429496729500
|
||||||
SET @@session.multi_range_count = 0;
|
SET @@session.multi_range_count = 0;
|
||||||
Warnings:
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
Warning 1292 Truncated incorrect multi_range_count value: '0'
|
Warning 1292 Truncated incorrect multi_range_count value: '0'
|
||||||
SELECT @@session.multi_range_count;
|
SELECT @@session.multi_range_count;
|
||||||
@@session.multi_range_count
|
@@session.multi_range_count
|
||||||
1
|
1
|
||||||
SET @@session.multi_range_count = 4294967296;
|
SET @@session.multi_range_count = 4294967296;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@session.multi_range_count;
|
SELECT @@session.multi_range_count;
|
||||||
@@session.multi_range_count
|
@@session.multi_range_count
|
||||||
4294967296
|
4294967296
|
||||||
SET @@session.multi_range_count = -1;
|
SET @@session.multi_range_count = -1;
|
||||||
Warnings:
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
Warning 1292 Truncated incorrect multi_range_count value: '-1'
|
Warning 1292 Truncated incorrect multi_range_count value: '-1'
|
||||||
SELECT @@session.multi_range_count;
|
SELECT @@session.multi_range_count;
|
||||||
@@session.multi_range_count
|
@@session.multi_range_count
|
||||||
@ -118,6 +160,8 @@ SELECT @@session.multi_range_count;
|
|||||||
SET @@session.multi_range_count = 65530.34.;
|
SET @@session.multi_range_count = 65530.34.;
|
||||||
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
|
||||||
SET @@session.multi_range_count = 4294967295021;
|
SET @@session.multi_range_count = 4294967295021;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@session.multi_range_count;
|
SELECT @@session.multi_range_count;
|
||||||
@@session.multi_range_count
|
@@session.multi_range_count
|
||||||
4294967295021
|
4294967295021
|
||||||
@ -141,22 +185,29 @@ WHERE VARIABLE_NAME='multi_range_count';
|
|||||||
1
|
1
|
||||||
'#------------------FN_DYNVARS_090_08-----------------------#'
|
'#------------------FN_DYNVARS_090_08-----------------------#'
|
||||||
SET @@global.multi_range_count = TRUE;
|
SET @@global.multi_range_count = TRUE;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
1
|
1
|
||||||
SET @@global.multi_range_count = FALSE;
|
SET @@global.multi_range_count = FALSE;
|
||||||
Warnings:
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
Warning 1292 Truncated incorrect multi_range_count value: '0'
|
Warning 1292 Truncated incorrect multi_range_count value: '0'
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
1
|
1
|
||||||
'#---------------------FN_DYNVARS_090_09----------------------#'
|
'#---------------------FN_DYNVARS_090_09----------------------#'
|
||||||
SET @@global.multi_range_count = 10;
|
SET @@global.multi_range_count = 10;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@multi_range_count = @@global.multi_range_count;
|
SELECT @@multi_range_count = @@global.multi_range_count;
|
||||||
@@multi_range_count = @@global.multi_range_count
|
@@multi_range_count = @@global.multi_range_count
|
||||||
0
|
0
|
||||||
'#---------------------FN_DYNVARS_090_10----------------------#'
|
'#---------------------FN_DYNVARS_090_10----------------------#'
|
||||||
SET @@multi_range_count = 100;
|
SET @@multi_range_count = 100;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@multi_range_count = @@local.multi_range_count;
|
SELECT @@multi_range_count = @@local.multi_range_count;
|
||||||
@@multi_range_count = @@local.multi_range_count
|
@@multi_range_count = @@local.multi_range_count
|
||||||
1
|
1
|
||||||
@ -165,6 +216,8 @@ SELECT @@local.multi_range_count = @@session.multi_range_count;
|
|||||||
1
|
1
|
||||||
'#---------------------FN_DYNVARS_090_11----------------------#'
|
'#---------------------FN_DYNVARS_090_11----------------------#'
|
||||||
SET multi_range_count = 1;
|
SET multi_range_count = 1;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@multi_range_count;
|
SELECT @@multi_range_count;
|
||||||
@@multi_range_count
|
@@multi_range_count
|
||||||
1
|
1
|
||||||
@ -175,10 +228,14 @@ ERROR 42S02: Unknown table 'session' in field list
|
|||||||
SELECT multi_range_count = @@session.multi_range_count;
|
SELECT multi_range_count = @@session.multi_range_count;
|
||||||
ERROR 42S22: Unknown column 'multi_range_count' in 'field list'
|
ERROR 42S22: Unknown column 'multi_range_count' in 'field list'
|
||||||
SET @@global.multi_range_count = @start_global_value;
|
SET @@global.multi_range_count = @start_global_value;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@global.multi_range_count;
|
SELECT @@global.multi_range_count;
|
||||||
@@global.multi_range_count
|
@@global.multi_range_count
|
||||||
256
|
256
|
||||||
SET @@session.multi_range_count = @start_session_value;
|
SET @@session.multi_range_count = @start_session_value;
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 The syntax '@@multi_range_count' is deprecated and will be removed in MySQL 5.7. Please use '@@mrr_buffer_size' instead
|
||||||
SELECT @@session.multi_range_count;
|
SELECT @@session.multi_range_count;
|
||||||
@@session.multi_range_count
|
@@session.multi_range_count
|
||||||
256
|
256
|
||||||
|
@ -5,7 +5,7 @@ SET @session_max_join_size = @@SESSION.max_join_size;
|
|||||||
SET @global_max_join_size = @@GLOBAL.max_join_size;
|
SET @global_max_join_size = @@GLOBAL.max_join_size;
|
||||||
SET SQL_MAX_JOIN_SIZE=9;
|
SET SQL_MAX_JOIN_SIZE=9;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1287 The syntax '@@sql_max_join_size' is deprecated and will be removed in MySQL 7.0.
|
Warning 1287 The syntax '@@sql_max_join_size' is deprecated and will be removed in MySQL 7.0. Please use '@@max_join_size' instead
|
||||||
CREATE TEMPORARY TABLE t1(a varchar(20) not null, b varchar(20));
|
CREATE TEMPORARY TABLE t1(a varchar(20) not null, b varchar(20));
|
||||||
CREATE TEMPORARY TABLE t2(a varchar(20) null, b varchar(20));
|
CREATE TEMPORARY TABLE t2(a varchar(20) null, b varchar(20));
|
||||||
INSERT INTO t1 VALUES('aa','bb');
|
INSERT INTO t1 VALUES('aa','bb');
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user