mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
post-merge fixes.
most tests pass. 5.3 merge is next
This commit is contained in:
parent
9809f05199
commit
b4a0b2c2f8
221 changed files with 2070 additions and 1880 deletions
2
VERSION
2
VERSION
|
@ -1,4 +1,4 @@
|
|||
MYSQL_VERSION_MAJOR=5
|
||||
MYSQL_VERSION_MINOR=5
|
||||
MYSQL_VERSION_PATCH=15
|
||||
MYSQL_VERSION_EXTRA=
|
||||
MYSQL_VERSION_EXTRA=-MariaDB
|
||||
|
|
|
@ -37,13 +37,12 @@
|
|||
#include "sql_common.h"
|
||||
#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_list.h" // needed for Rpl_filter
|
||||
#include "rpl_filter.h"
|
||||
|
||||
#include "mysqld.h"
|
||||
|
||||
Rpl_filter *binlog_filter;
|
||||
|
||||
#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)
|
||||
|
||||
/* Needed for Rpl_filter */
|
||||
CHARSET_INFO* system_charset_info= &my_charset_utf8_general_ci;
|
||||
|
||||
char server_version[SERVER_VERSION_LENGTH];
|
||||
ulong server_id = 0;
|
||||
|
||||
|
@ -66,7 +68,7 @@ static FILE *result_file;
|
|||
#ifndef DBUG_OFF
|
||||
static const char* default_dbug_option = "d:t:o,/tmp/mysqlbinlog.trace";
|
||||
#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 warning(const char *format, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
|
||||
|
@ -89,7 +91,7 @@ static char* host = 0;
|
|||
static int port= 0;
|
||||
static uint my_end_arg;
|
||||
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
|
||||
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;
|
||||
memcpy(ptr,bname,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)
|
||||
{
|
||||
|
@ -1069,7 +1071,7 @@ end:
|
|||
}
|
||||
|
||||
|
||||
static struct my_option my_long_options[] =
|
||||
static struct my_option my_options[] =
|
||||
{
|
||||
{"help", '?', "Display this help and exit.",
|
||||
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.",
|
||||
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"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},
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"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\
|
||||
the mysql command line client.\n\n");
|
||||
printf("Usage: %s [options] log-files\n", my_progname);
|
||||
my_print_help(my_long_options);
|
||||
my_print_variables(my_long_options);
|
||||
my_print_help(my_options);
|
||||
my_print_variables(my_options);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1482,7 +1484,7 @@ static int parse_args(int *argc, char*** argv)
|
|||
int ho_error;
|
||||
|
||||
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);
|
||||
if (debug_info_flag)
|
||||
my_end_arg= MY_CHECK_ERROR | MY_GIVE_INFO;
|
||||
|
@ -1513,8 +1515,8 @@ static Exit_status safe_connect()
|
|||
return ERROR_STOP;
|
||||
}
|
||||
|
||||
if (opt_plugin_dir && *opt_plugin_dir)
|
||||
mysql_options(mysql, MYSQL_PLUGIN_DIR, opt_plugin_dir);
|
||||
if (opt_plugindir && *opt_plugindir)
|
||||
mysql_options(mysql, MYSQL_PLUGIN_DIR, opt_plugindir);
|
||||
|
||||
if (opt_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);
|
||||
}
|
||||
|
||||
if (load_defaults("my", load_default_groups, &argc, &argv))
|
||||
if (load_defaults("my", load_groups, &argc, &argv))
|
||||
exit(1);
|
||||
|
||||
defaults_argv= argv;
|
||||
|
|
|
@ -750,8 +750,7 @@ static int handle_request_for_tables(char *tables, uint length)
|
|||
if (opt_all_in_1)
|
||||
{
|
||||
/* No backticks here as we added them before */
|
||||
query_length= my_sprintf(query,
|
||||
(query, "%s TABLE %s %s", op, tables, options));
|
||||
query_length= sprintf(query, "%s TABLE %s %s", op, tables, options);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -484,7 +484,7 @@ CHECK_FUNCTION_EXISTS(rdtscll HAVE_RDTSCLL)
|
|||
# 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(tzname "time.h" HAVE_TZNAME)
|
||||
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
|
||||
Mark each debugger output line with the PID (or thread ID) of the
|
||||
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
|
||||
Mark each debugger output line with the source file line number of
|
||||
the macro causing the output.
|
||||
|
@ -1078,76 +1069,7 @@ all writes to a file are always followed by a flush.
|
|||
|
||||
.SK
|
||||
.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
|
||||
.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_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
|
||||
{
|
||||
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_PRIMARY 32 /* if primary collation */
|
||||
#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_AVAILABLE 512 /* If either compiled-in or loaded*/
|
||||
#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_upper;
|
||||
const uchar *sort_order;
|
||||
uint16 *contractions;
|
||||
const MY_CONTRACTIONS *contractions;
|
||||
const uint16 *const *sort_order_big;
|
||||
const uint16 *tab_to_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_latin1;
|
||||
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_chinese_ci;
|
||||
|
@ -351,31 +369,11 @@ extern struct charset_info_st my_charset_utf8mb4_unicode_ci;
|
|||
#define MY_UTF8MB3 "utf8"
|
||||
#define MY_UTF8MB4 "utf8mb4"
|
||||
|
||||
/* Helper functions to handle contraction */
|
||||
static inline my_bool
|
||||
my_cs_have_contractions(CHARSET_INFO *cs)
|
||||
{
|
||||
return cs->contractions != NULL;
|
||||
}
|
||||
|
||||
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];
|
||||
}
|
||||
|
||||
my_bool my_cs_have_contractions(CHARSET_INFO *cs);
|
||||
my_bool my_cs_can_be_contraction_head(CHARSET_INFO *cs, my_wc_t wc);
|
||||
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,
|
||||
my_wc_t wc2);
|
||||
|
||||
/* declarations for simple charsets */
|
||||
extern size_t my_strnxfrm_simple(CHARSET_INFO *, uchar *, size_t,
|
||||
|
|
|
@ -25,7 +25,7 @@ extern "C" {
|
|||
#include <my_sys.h>
|
||||
#include <m_ctype.h>
|
||||
#include "../storage/maria/ma_pagecache.h"
|
||||
#include "my_handler.h"
|
||||
#include "my_compare.h"
|
||||
#include "ft_global.h"
|
||||
#include <myisamchk.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 */
|
||||
{
|
||||
struct st_maria_share *share; /* Pointer to base (set in open) */
|
||||
#ifdef THREAD
|
||||
rw_lock_t root_lock; /* locking of tree */
|
||||
#endif
|
||||
uint16 keysegs; /* Number of key-segment */
|
||||
uint16 flag; /* NOSAME, PACK_USED */
|
||||
|
||||
|
@ -356,11 +354,9 @@ typedef struct st_maria_bit_buff
|
|||
|
||||
typedef struct st_maria_sort_info
|
||||
{
|
||||
#ifdef THREAD
|
||||
/* sync things */
|
||||
pthread_mutex_t mutex;
|
||||
pthread_cond_t cond;
|
||||
#endif
|
||||
MARIA_HA *info, *new_info;
|
||||
HA_CHECK *param;
|
||||
char *buff;
|
||||
|
|
|
@ -40,7 +40,7 @@ extern "C" {
|
|||
*/
|
||||
|
||||
#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_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) \
|
||||
set_rec_bits(0, bit_ptr, bit_ofs, bit_len)
|
||||
|
||||
extern int ha_compare_text(CHARSET_INFO *, uchar *, uint, uchar *, uint ,
|
||||
my_bool, my_bool);
|
||||
extern int ha_key_cmp(register HA_KEYSEG *keyseg, register uchar *a,
|
||||
register uchar *b, uint key_length, uint nextflag,
|
||||
extern int ha_compare_text(CHARSET_INFO *, const uchar *, uint,
|
||||
const uchar *, uint , my_bool, my_bool);
|
||||
extern int ha_key_cmp(HA_KEYSEG *keyseg, const uchar *a,
|
||||
const uchar *b, uint key_length, uint nextflag,
|
||||
uint *diff_pos);
|
||||
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
|
||||
|
||||
/**
|
||||
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 */
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#define _my_sys_h
|
||||
|
||||
#include "my_global.h" /* C_MODE_START, C_MODE_END */
|
||||
#include "my_valgrind.h"
|
||||
|
||||
C_MODE_START
|
||||
|
||||
|
@ -35,14 +34,14 @@ typedef struct my_aio_result {
|
|||
#define IF_VALGRIND(A,B) B
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_valgrind)&& defined(HAVE_VALGRIND_MEMCHECK_H)
|
||||
#if defined(HAVE_valgrind) && defined(HAVE_VALGRIND_MEMCHECK_H)
|
||||
# include <valgrind/memcheck.h>
|
||||
# define MEM_UNDEFINED(a,len) VALGRIND_MAKE_MEM_UNDEFINED(a,len)
|
||||
# define MEM_NOACCESS(a,len) VALGRIND_MAKE_MEM_NOACCESS(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)
|
||||
#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_CHECK_ADDRESSABLE(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_strndup(const char *from, size_t length,
|
||||
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)
|
||||
#endif
|
||||
|
||||
#if defined(ENABLED_DEBUG_SYNC)
|
||||
extern void (*debug_sync_C_callback_ptr)(const char *, size_t);
|
||||
#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 (*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 *
|
||||
mysql_load_plugin(struct st_mysql *mysql, const char *name, int type,
|
||||
int argc, ...);
|
||||
|
|
|
@ -102,6 +102,22 @@ struct st_mysql_plugin
|
|||
struct st_mysql_sys_var **system_vars;
|
||||
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.h"
|
||||
enum enum_ftparser_mode
|
||||
|
@ -131,16 +147,16 @@ typedef struct st_mysql_ftparser_boolean_info
|
|||
typedef 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 *,
|
||||
char *word, int word_len,
|
||||
const char *word, int word_len,
|
||||
MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info);
|
||||
void *ftparser_state;
|
||||
void *mysql_ftparam;
|
||||
struct charset_info_st *cs;
|
||||
char *doc;
|
||||
const struct charset_info_st *cs;
|
||||
const char *doc;
|
||||
int length;
|
||||
int flags;
|
||||
unsigned int flags;
|
||||
enum enum_ftparser_mode mode;
|
||||
} MYSQL_FTPARSER_PARAM;
|
||||
struct st_mysql_ftparser
|
||||
|
@ -178,13 +194,14 @@ int thd_in_lock_tables(const void* thd);
|
|||
int thd_tablespace_op(const void* thd);
|
||||
long long thd_test_options(const void* thd, long long test_options);
|
||||
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_storage_lock_wait(void* thd, long long value);
|
||||
int thd_tx_isolation(const void* thd);
|
||||
char *thd_security_context(void* thd, char *buffer, unsigned int length,
|
||||
unsigned int max_query_len);
|
||||
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 thd_killed(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.
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ typedef struct st_pagecache_wqueue
|
|||
threads */
|
||||
} WQUEUE;
|
||||
|
||||
#ifdef 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_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);
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -167,7 +167,7 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
|||
#endif
|
||||
|
||||
end:
|
||||
thd->restore_globals();
|
||||
thd->reset_globals();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -98,6 +98,7 @@ connection master;
|
|||
TRUNCATE TABLE t1;
|
||||
TRUNCATE TABLE t2;
|
||||
TRUNCATE TABLE t3;
|
||||
set default_storage_engine=innodb;
|
||||
|
||||
BEGIN;
|
||||
--disable_query_log
|
||||
|
@ -110,14 +111,12 @@ BEGIN;
|
|||
--eval INSERT INTO t1 (a, data) VALUES (5, $data);
|
||||
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval INSERT INTO t1 (a, data) VALUES (6, $data);
|
||||
--enable_query_log
|
||||
--eval INSERT INTO t1 (a, data) VALUES (7, 's');
|
||||
--eval INSERT INTO t2 (a, data) VALUES (8, 's');
|
||||
--eval INSERT INTO t1 (a, data) VALUES (9, 's');
|
||||
--enable_query_log
|
||||
|
||||
--disable_query_log
|
||||
ALTER TABLE t3 ADD COLUMN d int;
|
||||
--enable_query_log
|
||||
|
||||
--disable_query_log
|
||||
--eval INSERT INTO t2 (a, data) VALUES (10, $data);
|
||||
|
@ -135,23 +134,19 @@ BEGIN;
|
|||
--eval INSERT INTO t1 (a, data) VALUES (17, $data);
|
||||
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval INSERT INTO t1 (a, data) VALUES (18, $data);
|
||||
--enable_query_log
|
||||
--eval INSERT INTO t1 (a, data) VALUES (19, 's');
|
||||
--eval INSERT INTO t2 (a, data) VALUES (20, 's');
|
||||
--eval INSERT INTO t1 (a, data) VALUES (21, 's');
|
||||
--enable_query_log
|
||||
|
||||
if (`SELECT @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
--disable_query_log
|
||||
CREATE TABLE t4 SELECT * FROM t1;
|
||||
--enable_query_log
|
||||
}
|
||||
if (`SELECT @@binlog_format = 'ROW'`)
|
||||
{
|
||||
--disable_query_log
|
||||
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
CREATE TABLE t4 SELECT * FROM t1;
|
||||
--enable_query_log
|
||||
}
|
||||
|
||||
--disable_query_log
|
||||
|
@ -167,14 +162,12 @@ BEGIN;
|
|||
--eval INSERT INTO t1 (a, data) VALUES (25, $data);
|
||||
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval INSERT INTO t1 (a, data) VALUES (26, $data);
|
||||
--enable_query_log
|
||||
--eval INSERT INTO t1 (a, data) VALUES (27, 's');
|
||||
--eval INSERT INTO t2 (a, data) VALUES (28, 's');
|
||||
--eval INSERT INTO t1 (a, data) VALUES (29, 's');
|
||||
--enable_query_log
|
||||
|
||||
--disable_query_log
|
||||
CREATE TABLE t5 (a int);
|
||||
--enable_query_log
|
||||
|
||||
--sync_slave_with_master
|
||||
--let $diff_tables= master:t1,slave:t1
|
||||
|
@ -311,10 +304,10 @@ SAVEPOINT sv;
|
|||
--eval INSERT INTO t1 (a, data) VALUES (5, $data);
|
||||
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval INSERT INTO t1 (a, data) VALUES (6, $data);
|
||||
--enable_query_log
|
||||
--eval INSERT INTO t1 (a, data) VALUES (7, 's');
|
||||
--eval INSERT INTO t2 (a, data) VALUES (8, 's');
|
||||
--eval INSERT INTO t1 (a, data) VALUES (9, 's');
|
||||
--enable_query_log
|
||||
ROLLBACK TO sv;
|
||||
COMMIT;
|
||||
|
||||
|
@ -344,11 +337,11 @@ BEGIN;
|
|||
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval INSERT INTO t1 (a, data) VALUES (7, $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 (9, 's');
|
||||
--eval INSERT INTO t2 (a, data) VALUES (10, 's');
|
||||
--eval INSERT INTO t1 (a, data) VALUES (11, 's');
|
||||
--enable_query_log
|
||||
COMMIT;
|
||||
|
||||
BEGIN;
|
||||
|
|
|
@ -8,7 +8,7 @@ source include/master-slave.inc;
|
|||
|
||||
let $SERVER_VERSION=`select version()`;
|
||||
|
||||
create table t1 (a int) ENGINE=MyISAM;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (10);
|
||||
create table t2 (a int) ENGINE=MyISAM;
|
||||
create table t3 (a int) engine=merge union(t1);
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
# when running tests - not to depend on the current machine localization.
|
||||
#
|
||||
|
||||
[client]
|
||||
plugin-dir=@OPT.plugindir
|
||||
|
||||
[mysql]
|
||||
default-character-set=latin1
|
||||
|
||||
|
|
|
@ -23,6 +23,8 @@ character-set-server= latin1
|
|||
# disconnects when test servers are put under load see BUG#28359
|
||||
connect-timeout= 60
|
||||
|
||||
plugin-dir=@OPT.plugindir
|
||||
|
||||
log-bin-trust-function-creators=1
|
||||
key_buffer_size= 1M
|
||||
sort_buffer= 256K
|
||||
|
|
|
@ -63,7 +63,6 @@ create table t1
|
|||
key(key3),
|
||||
key(key4)
|
||||
) ;
|
||||
|
||||
# Fill table
|
||||
create table t0 as select * from t1;
|
||||
--disable_query_log
|
||||
|
|
|
@ -645,6 +645,7 @@ sub new_config {
|
|||
# add auto-options
|
||||
$config->insert('OPT', 'port' => sub { fix_port($self, $config) });
|
||||
$config->insert('OPT', 'vardir' => sub { $self->{ARGS}->{vardir} });
|
||||
$config->insert('OPT', 'plugindir' => sub { $::plugindir });
|
||||
|
||||
{
|
||||
# Run pre rules
|
||||
|
|
|
@ -97,7 +97,7 @@ sub read_test {
|
|||
chomp($serialized);
|
||||
$serialized =~ s/\\([0-9a-fA-F]{2})/chr(hex($1))/eg;
|
||||
my $test= Storable::thaw($serialized);
|
||||
die "wrong class (hack attempt?)"
|
||||
die "wrong class (hack attempt?): ".ref($test)
|
||||
unless ref($test) eq 'My::Test';
|
||||
resfile_from_test($test) if $::opt_resfile;
|
||||
return $test;
|
||||
|
|
|
@ -281,8 +281,6 @@ my $opt_valgrind_mysqld= 0;
|
|||
my $opt_valgrind_mysqltest= 0;
|
||||
my @default_valgrind_args= ("--show-reachable=yes");
|
||||
my @valgrind_args;
|
||||
our $opt_valgrind_mysqld= 0;
|
||||
my $opt_valgrind_mysqltest= 0;
|
||||
my $opt_strace= 0;
|
||||
my $opt_strace_client;
|
||||
my @strace_args;
|
||||
|
@ -431,6 +429,7 @@ sub main {
|
|||
template_path => "include/default_my.cnf",
|
||||
master_opt => [],
|
||||
slave_opt => [],
|
||||
suite => 'main',
|
||||
);
|
||||
unshift(@$tests, $tinfo);
|
||||
}
|
||||
|
@ -476,19 +475,6 @@ sub main {
|
|||
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
|
||||
my %children;
|
||||
for my $child_num (1..$opt_parallel){
|
||||
|
@ -586,8 +572,6 @@ sub main {
|
|||
$opt_gcov_msg, $opt_gcov_err);
|
||||
}
|
||||
|
||||
mtr_report_stats($prefix, $fail, $completed, $extra_warnings);
|
||||
|
||||
if ($ctest_report) {
|
||||
print "$ctest_report\n";
|
||||
mtr_print_line();
|
||||
|
@ -595,7 +579,7 @@ sub main {
|
|||
|
||||
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)
|
||||
{
|
||||
|
@ -811,6 +795,7 @@ sub run_test_server ($$$) {
|
|||
# Test failure due to warnings, force is off
|
||||
return ("Warnings in log", 1, $completed, $extra_warnings);
|
||||
}
|
||||
}
|
||||
elsif ($line =~ /^SPENT/) {
|
||||
add_total_times($line);
|
||||
}
|
||||
|
@ -1652,17 +1637,14 @@ sub command_line_setup {
|
|||
$opt_dbx || $opt_client_dbx || $opt_manual_dbx ||
|
||||
$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() )
|
||||
{
|
||||
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)
|
||||
$opt_testcase_timeout= 7 * 24 * 60;
|
||||
$opt_suite_timeout= 7 * 24 * 60;
|
||||
|
@ -1681,8 +1663,8 @@ sub command_line_setup {
|
|||
}
|
||||
if ($opt_debug)
|
||||
{
|
||||
$opt_testcase_timeout= 60*60*24; # Don't abort debugging with timeout
|
||||
$opt_suite_timeout= $opt_testcase_timeout;
|
||||
$opt_testcase_timeout= 7 * 24 * 60;
|
||||
$opt_suite_timeout= 7 * 24 * 60;
|
||||
$opt_retry= 1;
|
||||
$opt_retry_failure= 1;
|
||||
}
|
||||
|
@ -2275,62 +2257,6 @@ sub find_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 {
|
||||
|
||||
umask(022);
|
||||
|
@ -2499,7 +2425,7 @@ sub environment_setup {
|
|||
$ENV{'MYSQL'}= client_arguments("mysql");
|
||||
$ENV{'MYSQL_SLAVE'}= client_arguments("mysql", ".2");
|
||||
$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{'EXE_MYSQL'}= $exe_mysql;
|
||||
|
||||
|
@ -2739,7 +2665,6 @@ sub setup_vardir() {
|
|||
if ($source_dist)
|
||||
{
|
||||
$plugindir="$opt_vardir/plugins";
|
||||
unshift (@opt_extra_mysqld_opt, "--plugin-dir=$plugindir");
|
||||
mkpath($plugindir);
|
||||
if (IS_WINDOWS)
|
||||
{
|
||||
|
@ -2765,6 +2690,7 @@ sub setup_vardir() {
|
|||
}
|
||||
else
|
||||
{
|
||||
$plugindir= $mysqld_variables{'plugin-dir'} || '.';
|
||||
# hm, what paths work for debs and for rpms ?
|
||||
for (<$basedir/lib/mysql/plugin/*.so>,
|
||||
<$basedir/lib/plugin/*.dll>)
|
||||
|
@ -3097,7 +3023,7 @@ sub ndbd_stop {
|
|||
# by sending "shutdown" to ndb_mgmd
|
||||
}
|
||||
|
||||
my $exe_ndbmtd_counter= 0;
|
||||
our $exe_ndbmtd_counter= 0;
|
||||
|
||||
sub ndbd_start {
|
||||
my ($cluster, $ndbd)= @_;
|
||||
|
@ -4136,7 +4062,7 @@ sub all_servers {
|
|||
}
|
||||
|
||||
# Storage for changed environment variables
|
||||
my %old_env;
|
||||
our %old_env;
|
||||
|
||||
sub resfile_report_test ($) {
|
||||
my $tinfo= shift;
|
||||
|
@ -4598,7 +4524,7 @@ sub restore_error_log {
|
|||
# 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
|
||||
# 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,
|
||||
# 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|mysqld: Table '\./mtr/test_suppressions' is marked as crashed and should be repaired|,
|
||||
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|Error while setting value 'pool-of-threads' to 'thread_handling'|,
|
||||
);
|
||||
|
@ -5429,7 +5355,7 @@ sub mysqld_start ($$) {
|
|||
{
|
||||
ddd_arguments(\$args, \$exe, $mysqld->name());
|
||||
}
|
||||
if ( $opt_dbx || $opt_manual_dbx ) {
|
||||
elsif ( $opt_dbx || $opt_manual_dbx ) {
|
||||
dbx_arguments(\$args, \$exe, $mysqld->name());
|
||||
}
|
||||
elsif ( $opt_debugger )
|
||||
|
@ -6604,7 +6530,7 @@ sub time_format($) {
|
|||
sprintf '%d:%02d:%02d', $_[0]/3600, ($_[0]/60)%60, $_[0]%60;
|
||||
}
|
||||
|
||||
my $num_tests;
|
||||
our $num_tests;
|
||||
|
||||
sub xterm_stat {
|
||||
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';
|
||||
Variable_name Value
|
||||
have_innodb DISABLED
|
||||
SELECT SUPPORT FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb';
|
||||
SUPPORT
|
||||
NO
|
||||
SELECT 'bug' as '' FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb'
|
||||
and SUPPORT='YES';
|
||||
|
||||
End of 5.5 tests
|
||||
|
|
|
@ -2761,11 +2761,11 @@ KEY(date_column));
|
|||
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';
|
||||
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;
|
||||
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
|
||||
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;
|
||||
#
|
||||
# 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');
|
||||
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
|
||||
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;
|
||||
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
|
||||
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;
|
||||
#
|
||||
# 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');
|
||||
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
|
||||
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;
|
||||
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
|
||||
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;
|
||||
#
|
||||
# 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;
|
||||
EXPLAIN SELECT * FROM t1 WHERE a LIKE 'd%';
|
||||
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,'%'));
|
||||
hex(concat('d',_ucs2 0x017E,'%'))
|
||||
0064017E0025
|
||||
|
|
|
@ -4895,11 +4895,11 @@ KEY(date_column));
|
|||
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';
|
||||
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;
|
||||
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
|
||||
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;
|
||||
#
|
||||
# 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')))
|
||||
NULL
|
||||
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
|
||||
#
|
||||
|
|
|
@ -54,7 +54,7 @@ max_updates 0
|
|||
max_connections 0
|
||||
max_user_connections 0
|
||||
plugin
|
||||
authentication_string NULL
|
||||
authentication_string
|
||||
show grants for mysqltest_1@localhost;
|
||||
Grants for mysqltest_1@localhost
|
||||
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_user_connections 0
|
||||
plugin
|
||||
authentication_string NULL
|
||||
authentication_string
|
||||
show grants for mysqltest_1@localhost;
|
||||
Grants for mysqltest_1@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' WITH MAX_QUERIES_PER_HOUR 10
|
||||
|
@ -172,7 +172,7 @@ max_updates 20
|
|||
max_connections 30
|
||||
max_user_connections 0
|
||||
plugin
|
||||
authentication_string NULL
|
||||
authentication_string
|
||||
show 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
|
||||
|
@ -284,7 +284,7 @@ Warnings:
|
|||
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_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
|
||||
('localhost', 'a%', 'test11', 'Y'), ('localhost', 'ab%', 'test11', 'Y');
|
||||
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 'x509_issuer' 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@'%';
|
||||
rename user mysqltest_B@'%' to 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 'x509_issuer' 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
|
||||
('%','TESTDB','mysqltest_1','Y');
|
||||
FLUSH PRIVILEGES;
|
||||
|
|
|
@ -1899,8 +1899,8 @@ SELECT a, AVG(t1.b),
|
|||
FROM t1 GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 index NULL a 10 NULL 9 Using index
|
||||
3 DEPENDENT SUBQUERY t12 ref a a 10 func,func 2 Using where
|
||||
2 DEPENDENT SUBQUERY t11 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 index condition
|
||||
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 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
|
||||
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
|
||||
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
|
||||
key1a = 2 and key1b is null and key2a = 2 and key2b is null;
|
||||
count(*)
|
||||
|
@ -951,7 +951,7 @@ count(*)
|
|||
explain select count(*) from t1 where
|
||||
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
|
||||
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
|
||||
key1a = 2 and key1b is null and key3a = 2 and key3b is null;
|
||||
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
|
||||
10360 asdfggfg 6.0 0 55 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 45 10 0
|
||||
10360 asdfggfg 6.0 55 2 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 40 3 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;
|
||||
pk
|
||||
2
|
||||
4
|
||||
2
|
||||
4
|
||||
4
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
|
@ -1644,6 +1644,7 @@ NULL
|
|||
NULL
|
||||
NULL
|
||||
DROP TABLE h,m,k;
|
||||
#
|
||||
# Bug#49600: outer join of two single-row tables with joining attributes
|
||||
# evaluated to nulls
|
||||
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);
|
||||
grp a c id a c d
|
||||
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 5 C 3 5 B 5
|
||||
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
|
||||
select t1.*,t2.* from t1 left join t2 using (a) where t1.a=t2.a;
|
||||
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
|
||||
2 2 b 3 5 B 5
|
||||
2 3 c 3 6 C 6
|
||||
3 4 E NULL NULL NULL NULL
|
||||
3 5 C 3 6 C 6
|
||||
3 6 D 4 7 D 7
|
||||
3 4 E NULL NULL NULL NULL
|
||||
NULL NULL NULL NULL NULL NULL
|
||||
select t1.*,t2.* from t1 natural left outer join t2;
|
||||
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);
|
||||
grp a c id a c d a
|
||||
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 5 C 3 5 B 5 5
|
||||
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
|
||||
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'
|
||||
|
@ -264,16 +264,16 @@ INSERT INTO t4 VALUES (2,-1,10361,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;
|
||||
fill desc_larga_cat cred_total Grup Places PlacesOcupades
|
||||
10360 asdfggfg 6.0 0 55 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 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 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
|
||||
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
|
||||
|
@ -308,8 +308,8 @@ select t1.name, t2.name, t2.id from t1 left join t2 on (t1.id = t2.owner);
|
|||
name name id
|
||||
Antonio Paz El Gato 1
|
||||
Antonio Paz Perrito 2
|
||||
Thimble Smith Happy 3
|
||||
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;
|
||||
name name id
|
||||
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
|
||||
Antonio Paz El Gato 1
|
||||
Antonio Paz Perrito 2
|
||||
Thimble Smith Happy 3
|
||||
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;
|
||||
name name id
|
||||
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
|
||||
Antonio Paz El Gato 1 1
|
||||
Antonio Paz Perrito 2 1
|
||||
Thimble Smith Happy 3 3
|
||||
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;
|
||||
name name id id
|
||||
Antonio Paz El Gato 1 1
|
||||
Antonio Paz Perrito 2 1
|
||||
Thimble Smith Happy 3 3
|
||||
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;
|
||||
name name id owner id
|
||||
Antonio Paz El Gato 1 1 1
|
||||
Antonio Paz Perrito 2 1 1
|
||||
Thimble Smith Happy 3 3 3
|
||||
NULL NULL NULL NULL 2
|
||||
Thimble Smith Happy 3 3 3
|
||||
drop table t1,t2;
|
||||
create table t1 (id int not null, str char(10), index(str));
|
||||
insert into t1 values (1, null), (2, null), (3, "foo"), (4, "bar");
|
||||
|
@ -642,9 +642,9 @@ fooID barID fooID
|
|||
30 3 30
|
||||
select * from t2 left join t1 ignore index(primary) on t1.fooID = t2.fooID and t1.fooID = 30;
|
||||
fooID barID fooID
|
||||
30 3 30
|
||||
10 1 NULL
|
||||
20 2 NULL
|
||||
30 3 30
|
||||
drop table t1,t2;
|
||||
create table t1 (i int);
|
||||
create table t2 (i int);
|
||||
|
@ -654,21 +654,21 @@ insert into t2 values(2),(3);
|
|||
insert into t3 values(2),(4);
|
||||
select * from t1 natural left join t2 natural left join t3;
|
||||
i
|
||||
2
|
||||
1
|
||||
2
|
||||
select * from t1 natural left join t2 where (t2.i is not null)=0;
|
||||
i
|
||||
1
|
||||
select * from t1 natural left join t2 where (t2.i is not null) is not null;
|
||||
i
|
||||
2
|
||||
1
|
||||
2
|
||||
select * from t1 natural left join t2 where (i is not null)=0;
|
||||
i
|
||||
select * from t1 natural left join t2 where (i is not null) is not null;
|
||||
i
|
||||
2
|
||||
1
|
||||
2
|
||||
drop table t1,t2,t3;
|
||||
create table t1 (f1 integer,f2 integer,f3 integer);
|
||||
create table t2 (f2 integer,f4 integer);
|
||||
|
@ -1027,40 +1027,40 @@ a b a b
|
|||
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;
|
||||
a b a b
|
||||
2 1 NULL NULL
|
||||
3 2 3 0
|
||||
4 3 4 1
|
||||
6 5 6 4
|
||||
2 1 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;
|
||||
a b a b
|
||||
2 1 NULL NULL
|
||||
3 2 3 0
|
||||
4 3 4 1
|
||||
6 5 6 4
|
||||
2 1 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);
|
||||
a b a b
|
||||
2 1 NULL NULL
|
||||
3 2 3 0
|
||||
4 3 4 1
|
||||
6 5 6 4
|
||||
2 1 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;
|
||||
a b a b
|
||||
2 1 NULL NULL
|
||||
3 2 3 0
|
||||
4 3 4 1
|
||||
6 5 6 4
|
||||
7 8 7 5
|
||||
2 1 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);
|
||||
a b a b
|
||||
2 1 NULL NULL
|
||||
3 2 3 0
|
||||
4 3 4 1
|
||||
6 5 6 4
|
||||
7 8 7 5
|
||||
2 1 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);
|
||||
a b a b
|
||||
|
@ -1173,33 +1173,33 @@ INSERT INTO t1 VALUES (1), (2), (3), (4);
|
|||
INSERT INTO t2 VALUES (2), (3);
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1);
|
||||
a b
|
||||
1 NULL
|
||||
2 2
|
||||
3 3
|
||||
1 NULL
|
||||
4 NULL
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1 OR 1);
|
||||
a b
|
||||
1 NULL
|
||||
2 2
|
||||
3 3
|
||||
1 NULL
|
||||
4 NULL
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (0 OR 1);
|
||||
a b
|
||||
1 NULL
|
||||
2 2
|
||||
3 3
|
||||
1 NULL
|
||||
4 NULL
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1 OR 2=2);
|
||||
a b
|
||||
1 NULL
|
||||
2 2
|
||||
3 3
|
||||
1 NULL
|
||||
4 NULL
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.b WHERE (1=1 OR 1=0);
|
||||
a b
|
||||
1 NULL
|
||||
2 2
|
||||
3 3
|
||||
1 NULL
|
||||
4 NULL
|
||||
DROP TABLE t1,t2;
|
||||
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
|
||||
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
|
||||
# evaluated to nulls
|
||||
create table t1 (a int, b int);
|
||||
|
|
|
@ -145,6 +145,7 @@ f2
|
|||
0
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
DROP TABLE t1, t2;
|
||||
SET SESSION optimizer_search_depth=0;
|
||||
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 ';
|
||||
EXECUTE stmt;
|
||||
|
|
|
@ -347,7 +347,7 @@ GROUP BY t2.pk
|
|||
);
|
||||
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
|
||||
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:
|
||||
Note 1003 select min(`test`.`t1`.`pk`) AS `MIN(t1.pk)` from `test`.`t1` where 0
|
||||
DROP TABLE t1, t2;
|
||||
|
|
|
@ -298,8 +298,7 @@ CHECK TABLE bug47205 FOR UPGRADE;
|
|||
Table Op Msg_type Msg_text
|
||||
test.bug47205 check error Table upgrade required. Please do "REPAIR TABLE `bug47205`" or dump/reload to fix it!
|
||||
# Running mysqlcheck to check and upgrade
|
||||
test.bug47205
|
||||
error : Table upgrade required. Please do "REPAIR TABLE `bug47205`" or dump/reload to fix it!
|
||||
test.bug47205 Needs upgrade
|
||||
|
||||
Repairing tables
|
||||
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
|
||||
than that
|
||||
--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=#
|
||||
Block size to be used for MyISAM index pages
|
||||
--myisam-data-pointer-size=#
|
||||
|
@ -907,6 +909,7 @@ max-write-lock-count 18446744073709551615
|
|||
memlock FALSE
|
||||
min-examined-row-limit 0
|
||||
mrr-buffer-size 262144
|
||||
multi-range-count 256
|
||||
myisam-block-size 1024
|
||||
myisam-data-pointer-size 6
|
||||
myisam-max-sort-file-size 9223372036853727232
|
||||
|
|
|
@ -189,7 +189,7 @@ UNLOCK TABLES;
|
|||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
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;
|
||||
Variable_name Value
|
||||
Ssl_cipher DHE-RSA-AES256-SHA
|
||||
|
|
|
@ -75,9 +75,9 @@ SET SQL_MODE='IGNORE_BAD_TABLE_OPTIONS';
|
|||
#illegal value fixed
|
||||
CREATE TABLE t1 (a int) ENGINE=example ULL=10000000000000000000 one_or_two='ttt' YESNO=SSS;
|
||||
Warnings:
|
||||
Warning 1708 Incorrect value '10000000000000000000' for option 'ULL'
|
||||
Warning 1708 Incorrect value 'ttt' for option 'one_or_two'
|
||||
Warning 1708 Incorrect value 'SSS' for option 'YESNO'
|
||||
Warning 1723 Incorrect value '10000000000000000000' for option 'ULL'
|
||||
Warning 1723 Incorrect value 'ttt' for option 'one_or_two'
|
||||
Warning 1723 Incorrect value 'SSS' for option 'YESNO'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
|
|
@ -44,7 +44,7 @@ ERROR 28000: Access denied for user 'plug'@'localhost' (using password: YES)
|
|||
## test correct default plugin
|
||||
select USER(),CURRENT_USER();
|
||||
USER() CURRENT_USER()
|
||||
plug@localhost plug@%
|
||||
plug@localhost plug_dest@%
|
||||
## test no_auto_create_user sql mode with plugin users
|
||||
SET @@sql_mode=no_auto_create_user;
|
||||
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;
|
||||
# try re-create existing user via GRANT IDENTIFIED BY
|
||||
GRANT ALL PRIVILEGES ON test_grant_db.* TO new_grant_user
|
||||
IDENTIFIED BY 'unused_password';
|
||||
# make sure password doesn't take precendence
|
||||
IDENTIFIED BY 'new_password';
|
||||
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)
|
||||
#make sure plugin auth still available
|
||||
select USER(),CURRENT_USER();
|
||||
USER() CURRENT_USER()
|
||||
new_grant_user@localhost plug_dest@%
|
||||
new_grant_user@localhost new_grant_user@%
|
||||
USE test_grant_db;
|
||||
CREATE TABLE t1 (a INT);
|
||||
DROP TABLE t1;
|
||||
|
@ -86,10 +85,8 @@ DROP USER new_grant_user;
|
|||
# try re-create existing user via GRANT IDENTIFIED WITH
|
||||
GRANT ALL PRIVILEGES ON test_grant_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_grant_db.* TO 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
|
||||
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
|
||||
|
@ -152,12 +149,12 @@ GRANT PROXY ON future_user TO grant_plug;
|
|||
in default connection
|
||||
SHOW 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'@'%'
|
||||
REVOKE PROXY ON future_user FROM grant_plug;
|
||||
SHOW 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
|
||||
CREATE USER 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;
|
||||
# test if FLUSH PRIVILEGES works without the proxies_priv table
|
||||
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;
|
||||
Host localhost
|
||||
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',
|
||||
/*!50001 'Y', 'Y', 'Y', 'Y', 'Y', */'', '', '', '', '0', '0', '0');
|
||||
Warnings:
|
||||
Warning 1364 Field 'authentication_string' doesn't have a default value
|
||||
FLUSH PRIVILEGES;
|
||||
DROP USER inserttest@localhost;
|
||||
SELECT IS_NULLABLE, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE
|
||||
|
@ -398,8 +372,8 @@ TABLE_NAME='user' AND
|
|||
TABLE_SCHEMA='mysql'
|
||||
ORDER BY COLUMN_NAME;
|
||||
IS_NULLABLE COLUMN_NAME
|
||||
YES authentication_string
|
||||
YES plugin
|
||||
NO authentication_string
|
||||
NO plugin
|
||||
#
|
||||
# Bug #11936829: diff. between mysql.user (authentication_string)
|
||||
# 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')
|
||||
ORDER BY COLUMN_NAME;
|
||||
IS_NULLABLE COLUMN_NAME
|
||||
YES authentication_string
|
||||
YES plugin
|
||||
NO authentication_string
|
||||
NO plugin
|
||||
ALTER TABLE mysql.user MODIFY plugin char(64) DEFAULT '' NOT NULL;
|
||||
ALTER TABLE mysql.user MODIFY authentication_string TEXT NOT NULL;
|
||||
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
|
||||
WHERE TABLE_SCHEMA= 'mysql' AND TABLE_NAME= 'user' AND
|
||||
COLUMN_NAME IN ('plugin', 'authentication_string')
|
||||
ORDER BY COLUMN_NAME;
|
||||
IS_NULLABLE COLUMN_NAME
|
||||
YES authentication_string
|
||||
YES plugin
|
||||
NO authentication_string
|
||||
NO plugin
|
||||
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';
|
||||
user plugin authentication_string
|
||||
plug test_plugin_server plug_dest
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
DROP USER plug, plug_dest;
|
||||
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||
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';
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
DROP USER 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';
|
||||
|
@ -125,7 +125,7 @@ CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
|
|||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
plug test_plugin_server plug_dest
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
DROP USER plug, 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';
|
||||
|
@ -135,7 +135,7 @@ DROP USER plug;
|
|||
CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
DROP USER plug_dest;
|
||||
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||
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';
|
||||
user plugin authentication_string
|
||||
plug test_plugin_server plug_dest
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
DROP USER plug, plug_dest;
|
||||
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
|
||||
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';
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
DROP USER 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';
|
||||
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';
|
||||
ERROR HY000: GRANT with IDENTIFIED WITH is illegal because the user plug already exists
|
||||
DROP USER plug;
|
||||
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';
|
||||
|
@ -176,7 +174,7 @@ plug test_plugin_server plug_dest
|
|||
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';
|
||||
user plugin authentication_string password
|
||||
plug test_plugin_server plug_dest *939AEE68989794C0F408277411C26055CDF41119
|
||||
plug *939AEE68989794C0F408277411C26055CDF41119
|
||||
DROP USER plug;
|
||||
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';
|
||||
|
@ -210,7 +208,7 @@ DROP USER plüg;
|
|||
CREATE USER plüg_dest IDENTIFIED BY 'plug_dest_passwd';
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
plüg_dest NULL
|
||||
plüg_dest
|
||||
DROP USER plüg_dest;
|
||||
SET NAMES ascii;
|
||||
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';
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
pl??g_dest NULL
|
||||
pl??g_dest
|
||||
DROP USER 'plüg_dest';
|
||||
SET NAMES latin1;
|
||||
========== test 1.1.1.5 ====================================
|
||||
|
@ -235,7 +233,7 @@ DROP USER 'plug';
|
|||
CREATE USER 'plüg_dest' IDENTIFIED BY 'plug_dest_passwd';
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
plüg_dest NULL
|
||||
plüg_dest
|
||||
DROP USER 'plüg_dest';
|
||||
SET NAMES utf8;
|
||||
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';
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
plüg_dest NULL
|
||||
plüg_dest
|
||||
DROP USER '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';
|
||||
|
@ -258,7 +256,7 @@ DROP USER plüg;
|
|||
CREATE USER plüg_dest IDENTIFIED BY 'plug_dest_passwd';
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
plüg_dest NULL
|
||||
plüg_dest
|
||||
DROP USER plüg_dest;
|
||||
========== test 1.1.1.2/1.1.2.2=============================
|
||||
SET @auth_name= 'test_plugin_server';
|
||||
|
@ -278,7 +276,7 @@ DROP USER plug;
|
|||
CREATE USER 'hh''s_plug_dest' IDENTIFIED BY 'plug_dest_passwd';
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
hh's_plug_dest NULL
|
||||
hh's_plug_dest
|
||||
DROP USER 'hh''s_plug_dest';
|
||||
========== test 1.1.1.4 ====================================
|
||||
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';
|
||||
user plugin authentication_string
|
||||
grant_user test_plugin_server plug_dest
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
DROP USER grant_user,plug_dest;
|
||||
set @save_sql_mode= @@sql_mode;
|
||||
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';
|
||||
user plugin authentication_string password
|
||||
grant_user test_plugin_server plug_dest
|
||||
plug_dest NULL *939AEE68989794C0F408277411C26055CDF41119
|
||||
plug_dest *939AEE68989794C0F408277411C26055CDF41119
|
||||
DROP USER plug_dest;
|
||||
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';
|
||||
user plugin authentication_string password
|
||||
grant_user test_plugin_server plug_dest
|
||||
plug_dest NULL *560881EB651416CEF77314D07D55EDCD5FC1BD6D
|
||||
plug_dest *560881EB651416CEF77314D07D55EDCD5FC1BD6D
|
||||
DROP USER grant_user,plug_dest;
|
||||
set @@sql_mode= @save_sql_mode;
|
||||
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;
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
plug_user test_plugin_server plug_dest
|
||||
1)
|
||||
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)
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
new_dest NULL
|
||||
new_dest
|
||||
plug_user test_plugin_server plug_dest
|
||||
DROP USER plug_user,new_dest;
|
||||
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)
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
new_dest NULL
|
||||
new_dest
|
||||
plug_user test_plugin_server plug_dest
|
||||
DROP USER plug_user,new_dest;
|
||||
CREATE USER plug_user
|
||||
|
@ -113,13 +113,13 @@ connection default;
|
|||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
new_user test_plugin_server plug_dest
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
disconnect plug_user;
|
||||
UPDATE mysql.user SET user='plug_user' WHERE user='new_user';
|
||||
FLUSH PRIVILEGES;
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
plug_user test_plugin_server plug_dest
|
||||
DROP USER plug_dest,plug_user;
|
||||
========== test 1.3 ========================================
|
||||
|
@ -135,26 +135,26 @@ connection default;
|
|||
disconnect plug_user;
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
plug_user test_plugin_server plug_dest
|
||||
UPDATE mysql.user SET user='new_user' WHERE user='plug_user';
|
||||
FLUSH PRIVILEGES;
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
new_user test_plugin_server plug_dest
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
UPDATE mysql.user SET authentication_string='new_dest' WHERE user='new_user';
|
||||
FLUSH PRIVILEGES;
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
new_user test_plugin_server new_dest
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
UPDATE mysql.user SET plugin='new_plugin_server' WHERE user='new_user';
|
||||
FLUSH PRIVILEGES;
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
new_user new_plugin_server new_dest
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
connect(plug_user,localhost,new_user,new_dest);
|
||||
ERROR HY000: Plugin 'new_plugin_server' is not loaded
|
||||
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;
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
new_dest NULL
|
||||
new_dest
|
||||
new_user test_plugin_server new_dest
|
||||
connect(plug_user,localhost,new_user,new_dest);
|
||||
select USER(),CURRENT_USER();
|
||||
|
@ -176,9 +176,9 @@ FLUSH PRIVILEGES;
|
|||
CREATE USER new_dest IDENTIFIED BY 'new_dest_passwd';
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
new_dest NULL
|
||||
new_dest
|
||||
new_user test_plugin_server new_dest
|
||||
plug_dest NULL
|
||||
plug_dest
|
||||
GRANT ALL PRIVILEGES ON test.* TO new_user;
|
||||
connect(plug_user,localhost,new_dest,new_dest_passwd);
|
||||
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';
|
||||
user plugin authentication_string
|
||||
test_plugin_server proxied_user
|
||||
proxied_user NULL
|
||||
proxied_user
|
||||
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
||||
SELECT 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';
|
||||
user plugin authentication_string
|
||||
test_plugin_server proxied_user
|
||||
proxied_user NULL
|
||||
proxied_user
|
||||
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
||||
SELECT 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';
|
||||
user plugin authentication_string
|
||||
test_plugin_server proxied_user
|
||||
proxied_user_1 NULL
|
||||
proxied_user_2 NULL
|
||||
proxied_user_3 NULL
|
||||
proxied_user_4 NULL
|
||||
proxied_user_5 NULL
|
||||
proxied_user_1
|
||||
proxied_user_2
|
||||
proxied_user_3
|
||||
proxied_user_4
|
||||
proxied_user_5
|
||||
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_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;
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
qa_test_1_dest NULL
|
||||
qa_test_1_dest
|
||||
qa_test_1_user qa_auth_interface qa_test_1_dest
|
||||
SELECT @@proxy_user;
|
||||
@@proxy_user
|
||||
|
@ -15,12 +15,12 @@ NULL
|
|||
SELECT @@external_user;
|
||||
@@external_user
|
||||
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
|
||||
qa_test_1_user@% qa_test_1_user@localhost NULL NULL
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
qa_test_1_dest NULL
|
||||
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_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;
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
authenticated_as NULL
|
||||
qa_test_2_dest NULL
|
||||
authenticated_as
|
||||
qa_test_2_dest
|
||||
qa_test_2_user qa_auth_interface qa_test_2_dest
|
||||
SELECT @@proxy_user;
|
||||
@@proxy_user
|
||||
|
@ -42,13 +42,13 @@ NULL
|
|||
SELECT @@external_user;
|
||||
@@external_user
|
||||
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
|
||||
authenticated_as@% user_name@localhost 'qa_test_2_user'@'%' 'qa_test_2_user'@'%'
|
||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string
|
||||
authenticated_as NULL
|
||||
qa_test_2_dest NULL
|
||||
authenticated_as
|
||||
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_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';
|
||||
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;
|
||||
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
|
||||
qa_test_3_dest@% qa_test_3_user@localhost 'qa_test_3_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';
|
||||
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;
|
||||
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
|
||||
qa_test_4_dest@% qa_test_4_user@localhost 'qa_test_4_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';
|
||||
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
|
||||
user plugin authentication_string password
|
||||
NULL *DFCACE76914AD7BD801FC1A1ECF6562272621A22
|
||||
qa_test_5_dest NULL *DFCACE76914AD7BD801FC1A1ECF6562272621A22
|
||||
*DFCACE76914AD7BD801FC1A1ECF6562272621A22
|
||||
qa_test_5_dest *DFCACE76914AD7BD801FC1A1ECF6562272621A22
|
||||
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)
|
||||
DROP USER qa_test_5_user;
|
||||
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;
|
||||
SELECT user,plugin,authentication_string,password FROM mysql.user;
|
||||
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
|
||||
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)
|
||||
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;
|
||||
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
|
||||
root
|
||||
root
|
||||
root
|
||||
root
|
||||
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)
|
||||
REVOKE PROXY ON qa_test_6_dest FROM root;
|
||||
SELECT user,plugin,authentication_string FROM mysql.user;
|
||||
user plugin authentication_string
|
||||
qa_test_6_dest NULL
|
||||
qa_test_6_dest
|
||||
qa_test_6_user qa_auth_interface qa_test_6_dest
|
||||
root
|
||||
root
|
||||
root
|
||||
root
|
||||
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)
|
||||
DROP USER qa_test_6_user;
|
||||
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';
|
||||
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;
|
||||
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)
|
||||
DROP USER qa_test_11_user, qa_test_11_dest;
|
||||
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';
|
||||
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;
|
||||
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
|
||||
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)
|
||||
DROP USER qa_test_11_user, qa_test_11_dest;
|
||||
DROP DATABASE test_user_db;
|
||||
|
|
|
@ -1689,7 +1689,7 @@ pk i4
|
|||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE 10 BETWEEN 10 AND i4;
|
||||
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;
|
||||
pk i4
|
||||
1 10
|
||||
|
@ -1698,7 +1698,7 @@ pk i4
|
|||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE 10 BETWEEN i4 AND 10;
|
||||
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;
|
||||
pk i4
|
||||
1 10
|
||||
|
@ -1732,7 +1732,7 @@ pk i4
|
|||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND 99999999999999999;
|
||||
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;
|
||||
pk i4
|
||||
1 10
|
||||
|
@ -1747,7 +1747,7 @@ pk i4
|
|||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND '20';
|
||||
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';
|
||||
pk i4
|
||||
1 10
|
||||
|
@ -1756,14 +1756,14 @@ EXPLAIN
|
|||
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
|
||||
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;
|
||||
pk i4 pk i4
|
||||
EXPLAIN
|
||||
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
|
||||
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;
|
||||
pk i4 pk i4
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -2258,20 +2258,20 @@ a
|
|||
3
|
||||
select * from (t1 as t2 left join t1 as t3 using (a)) right join t1 on t1.a>1;
|
||||
a a
|
||||
NULL 1
|
||||
1 2
|
||||
2 2
|
||||
3 2
|
||||
1 3
|
||||
2 2
|
||||
2 3
|
||||
3 2
|
||||
3 3
|
||||
NULL 1
|
||||
select * from t1 right join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
|
||||
a a
|
||||
2 1
|
||||
3 1
|
||||
2 2
|
||||
3 2
|
||||
2 3
|
||||
3 1
|
||||
3 2
|
||||
3 3
|
||||
select * from (t1 as t2 left join t1 as t3 using (a)) right outer join t1 using ( 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;
|
||||
a a
|
||||
1 2
|
||||
2 2
|
||||
3 2
|
||||
1 3
|
||||
2 2
|
||||
2 3
|
||||
3 2
|
||||
3 3
|
||||
select * from t1 left outer join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
|
||||
a a
|
||||
2 1
|
||||
3 1
|
||||
2 2
|
||||
3 2
|
||||
2 3
|
||||
3 3
|
||||
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 );
|
||||
a
|
||||
1
|
||||
|
@ -2967,26 +2967,26 @@ create view v2 (c) as select a1 from t1;
|
|||
select * from t1 natural left join t2;
|
||||
a1 a2
|
||||
1 1
|
||||
2 1
|
||||
1 2
|
||||
2 1
|
||||
2 2
|
||||
select * from t1 natural right join t2;
|
||||
a2 a1
|
||||
1 1
|
||||
2 1
|
||||
1 2
|
||||
2 1
|
||||
2 2
|
||||
select * from v2 natural left join t2;
|
||||
c a2
|
||||
1 1
|
||||
2 1
|
||||
1 2
|
||||
2 1
|
||||
2 2
|
||||
select * from v2 natural right join t2;
|
||||
a2 c
|
||||
1 1
|
||||
2 1
|
||||
1 2
|
||||
2 1
|
||||
2 2
|
||||
drop table t1, t2;
|
||||
drop view v2;
|
||||
|
@ -3166,9 +3166,9 @@ id
|
|||
102
|
||||
select t1.id from t1 left join v3 using (id);
|
||||
id
|
||||
102
|
||||
100
|
||||
101
|
||||
102
|
||||
select * from t1 left join v2 using (id);
|
||||
id
|
||||
100
|
||||
|
@ -3181,9 +3181,9 @@ id
|
|||
102
|
||||
select * from t1 left join v3 using (id);
|
||||
id
|
||||
102
|
||||
100
|
||||
101
|
||||
102
|
||||
select v1.id from v1 left join v2 using (id);
|
||||
id
|
||||
100
|
||||
|
@ -3196,9 +3196,9 @@ id
|
|||
102
|
||||
select v1.id from v1 left join v3 using (id);
|
||||
id
|
||||
102
|
||||
100
|
||||
101
|
||||
102
|
||||
select * from v1 left join v2 using (id);
|
||||
id
|
||||
100
|
||||
|
@ -3211,9 +3211,9 @@ id
|
|||
102
|
||||
select * from v1 left join v3 using (id);
|
||||
id
|
||||
102
|
||||
100
|
||||
101
|
||||
102
|
||||
drop table t1, t2;
|
||||
drop view v1, v2, v3;
|
||||
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
|
||||
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
|
||||
#
|
||||
# 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 TABLE t1;
|
||||
# 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;
|
||||
show variables like 'join_cache_level';
|
||||
Variable_name Value
|
||||
|
|
|
@ -2258,20 +2258,20 @@ a
|
|||
3
|
||||
select * from (t1 as t2 left join t1 as t3 using (a)) right join t1 on t1.a>1;
|
||||
a a
|
||||
NULL 1
|
||||
1 2
|
||||
2 2
|
||||
3 2
|
||||
1 3
|
||||
2 2
|
||||
2 3
|
||||
3 2
|
||||
3 3
|
||||
NULL 1
|
||||
select * from t1 right join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
|
||||
a a
|
||||
2 1
|
||||
3 1
|
||||
2 2
|
||||
3 2
|
||||
2 3
|
||||
3 1
|
||||
3 2
|
||||
3 3
|
||||
select * from (t1 as t2 left join t1 as t3 using (a)) right outer join t1 using ( a );
|
||||
a
|
||||
|
@ -4866,6 +4866,70 @@ SELECT 1 FROM t1 ORDER BY a COLLATE latin1_german2_ci;
|
|||
1
|
||||
1
|
||||
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
|
||||
#
|
||||
# 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 TABLE t1;
|
||||
# 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', '',
|
||||
'', '', '', '0', '0', '0', '0');
|
||||
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;
|
||||
CREATE PROCEDURE p1(i INT) BEGIN END;
|
||||
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.c' of SELECT #3 was resolved in SELECT #2
|
||||
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;
|
||||
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.c' of SELECT #3 was resolved in SELECT #2
|
||||
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;
|
||||
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
|
||||
ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
||||
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
|
||||
#
|
||||
# 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
|
||||
#
|
||||
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
|
||||
ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
||||
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
|
||||
#
|
||||
# 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
|
||||
#
|
||||
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
|
||||
ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
||||
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
|
||||
#
|
||||
# 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
|
||||
#
|
||||
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';
|
||||
create table t1 (a int fkey=vvv, key akey (a) dff=vvv) tkey1='1v1';
|
||||
Warnings:
|
||||
Warning 1707 Unknown option 'fkey'
|
||||
Warning 1707 Unknown option 'dff'
|
||||
Warning 1707 Unknown option 'tkey1'
|
||||
Warning 1722 Unknown option 'fkey'
|
||||
Warning 1722 Unknown option 'dff'
|
||||
Warning 1722 Unknown option 'tkey1'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -16,10 +16,10 @@ drop table t1;
|
|||
#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;
|
||||
Warnings:
|
||||
Warning 1707 Unknown option 'fkey'
|
||||
Warning 1707 Unknown option 'dff'
|
||||
Warning 1707 Unknown option 'tkey1'
|
||||
Warning 1707 Unknown option 'tkey2'
|
||||
Warning 1722 Unknown option 'fkey'
|
||||
Warning 1722 Unknown option 'dff'
|
||||
Warning 1722 Unknown option 'tkey1'
|
||||
Warning 1722 Unknown option 'tkey2'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -29,7 +29,7 @@ t1 CREATE TABLE `t1` (
|
|||
#add option
|
||||
alter table t1 tkey4=4v1;
|
||||
Warnings:
|
||||
Warning 1707 Unknown option 'tkey4'
|
||||
Warning 1722 Unknown option 'tkey4'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -39,8 +39,8 @@ t1 CREATE TABLE `t1` (
|
|||
#remove options
|
||||
alter table t1 tkey3=DEFAULT tkey4=DEFAULT;
|
||||
Warnings:
|
||||
Warning 1707 Unknown option 'tkey3'
|
||||
Warning 1707 Unknown option 'tkey4'
|
||||
Warning 1722 Unknown option 'tkey3'
|
||||
Warning 1722 Unknown option 'tkey4'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -50,11 +50,11 @@ t1 CREATE 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;
|
||||
Warnings:
|
||||
Warning 1707 Unknown option 'fkey1'
|
||||
Warning 1707 Unknown option 'kkey1'
|
||||
Warning 1707 Unknown option 'TKEY1'
|
||||
Warning 1707 Unknown option 'tkey2'
|
||||
Warning 1707 Unknown option 'tkey3'
|
||||
Warning 1722 Unknown option 'fkey1'
|
||||
Warning 1722 Unknown option 'kkey1'
|
||||
Warning 1722 Unknown option 'TKEY1'
|
||||
Warning 1722 Unknown option 'tkey2'
|
||||
Warning 1722 Unknown option 'tkey3'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -64,7 +64,7 @@ t1 CREATE TABLE `t1` (
|
|||
#change field with option with the same value
|
||||
alter table t1 change a a int `FKEY1`='v1';
|
||||
Warnings:
|
||||
Warning 1707 Unknown option 'FKEY1'
|
||||
Warning 1722 Unknown option 'FKEY1'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -74,7 +74,7 @@ t1 CREATE TABLE `t1` (
|
|||
#change field with option with a different value
|
||||
alter table t1 change a a int fkey1=v2;
|
||||
Warnings:
|
||||
Warning 1707 Unknown option 'fkey1'
|
||||
Warning 1722 Unknown option 'fkey1'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -93,7 +93,7 @@ t1 CREATE TABLE `t1` (
|
|||
#new key with options
|
||||
alter table t1 add key bkey (b) kkey2=v1;
|
||||
Warnings:
|
||||
Warning 1707 Unknown option 'kkey2'
|
||||
Warning 1722 Unknown option 'kkey2'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -105,8 +105,8 @@ t1 CREATE TABLE `t1` (
|
|||
#new column with options
|
||||
alter table t1 add column c int fkey1=v1 fkey2=v2;
|
||||
Warnings:
|
||||
Warning 1707 Unknown option 'fkey1'
|
||||
Warning 1707 Unknown option 'fkey2'
|
||||
Warning 1722 Unknown option 'fkey1'
|
||||
Warning 1722 Unknown option 'fkey2'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -141,7 +141,7 @@ t1 CREATE TABLE `t1` (
|
|||
#add column with options after delete
|
||||
alter table t1 add column b int fkey2=v1;
|
||||
Warnings:
|
||||
Warning 1707 Unknown option 'fkey2'
|
||||
Warning 1722 Unknown option 'fkey2'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -154,7 +154,7 @@ t1 CREATE TABLE `t1` (
|
|||
#add key
|
||||
alter table t1 add key bkey (b) kkey2=v2;
|
||||
Warnings:
|
||||
Warning 1707 Unknown option 'kkey2'
|
||||
Warning 1722 Unknown option 'kkey2'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -168,7 +168,7 @@ t1 CREATE TABLE `t1` (
|
|||
drop table t1;
|
||||
create table t1 (a int) tkey1=100;
|
||||
Warnings:
|
||||
Warning 1707 Unknown option 'tkey1'
|
||||
Warning 1722 Unknown option 'tkey1'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
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);
|
||||
1
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 AS SELECT @a:= CAST(1 AS UNSIGNED) AS a;
|
||||
SHOW CREATE TABLE t1;
|
||||
|
|
|
@ -206,8 +206,8 @@ DROP TABLE t1;
|
|||
# FAILED
|
||||
#
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
CREATE TABLE t1 (a INT);
|
||||
CREATE TABLE t2 (a INT);
|
||||
CREATE TABLE t1 (a INT) engine=innodb;
|
||||
CREATE TABLE t2 (a INT) engine=innodb;
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 VALUES (1);
|
||||
# Connection con2
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
# correctly. We test all three modes in the same file to avoid
|
||||
# unecessary server restarts.
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_binlog_format_statement.inc
|
||||
|
||||
set binlog_format=statement;
|
||||
source extra/binlog_tests/database.test;
|
||||
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
|
||||
CREATE DATABASE federated;
|
||||
CREATE DATABASE federated;
|
||||
CREATE DATABASE IF NOT EXISTS realdb;
|
||||
DROP TABLE IF EXISTS realdb.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
|
||||
#
|
||||
USE realdb;
|
||||
CREATE TABLE t1 (c1 int) ENGINE=MYISAM;
|
||||
#
|
||||
# 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
|
||||
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1';
|
||||
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:
|
||||
Warning 1017 Can't find file: 't1' (errno: 2)
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1017 Can't find file: 't1' (errno: 2)
|
||||
DROP TABLE t1;
|
||||
ERROR 42S02: Unknown table 't1'
|
||||
#
|
||||
# Cleanup
|
||||
#
|
||||
DROP TABLE IF EXISTS realdb.t0;
|
||||
DROP TABLE IF EXISTS federated.t0;
|
||||
DROP DATABASE realdb;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
|
|
|
@ -12,12 +12,13 @@
|
|||
--source federated.inc
|
||||
|
||||
--disable_warnings
|
||||
CREATE DATABASE IF NOT EXISTS realdb;
|
||||
# Federated database exists
|
||||
DROP TABLE IF EXISTS realdb.t0;
|
||||
DROP TABLE IF EXISTS federated.t0;
|
||||
--enable_warnings
|
||||
|
||||
--disable_parsing
|
||||
# This test doesn't work with federatedx, as it doesn't allow wrong connections
|
||||
|
||||
--echo #
|
||||
--echo # Create the base table to be referenced
|
||||
--echo #
|
||||
|
@ -42,18 +43,20 @@ SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, ENGINE, ROW_FORMAT, TABLE_ROWS, DAT
|
|||
# Remove O/S-specific socket error
|
||||
--replace_regex /\(.*\)/(socket errno)/
|
||||
SHOW WARNINGS;
|
||||
DROP TABLE federated.t0;
|
||||
|
||||
--enable_parsing
|
||||
|
||||
--echo #
|
||||
--echo # Create a MyISAM table then corrupt the file
|
||||
--echo #
|
||||
USE realdb;
|
||||
CREATE TABLE t1 (c1 int) ENGINE=MYISAM;
|
||||
--echo #
|
||||
--echo # Corrupt the MyISAM table by deleting the base file
|
||||
--echo #
|
||||
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||
--remove_file $MYSQLD_DATADIR/realdb/t1.MYD
|
||||
--remove_file $MYSQLD_DATADIR/realdb/t1.MYI
|
||||
--remove_file $MYSQLD_DATADIR/test/t1.MYD
|
||||
--remove_file $MYSQLD_DATADIR/test/t1.MYI
|
||||
|
||||
--echo #
|
||||
--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';
|
||||
|
||||
SHOW WARNINGS;
|
||||
--disable_warnings
|
||||
--error 1051
|
||||
DROP TABLE t1;
|
||||
--enable_warnings
|
||||
|
||||
--echo #
|
||||
--echo # Cleanup
|
||||
--echo #
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS realdb.t0;
|
||||
DROP TABLE IF EXISTS federated.t0;
|
||||
DROP DATABASE realdb;
|
||||
--enable_warnings
|
||||
|
||||
--source federated_cleanup.inc
|
||||
|
|
|
@ -19,7 +19,7 @@ eval CREATE TABLE t1(a INT) ENGINE=FEDERATED
|
|||
SELECT * FROM t1;
|
||||
|
||||
--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
|
||||
let $show_statement= SHOW STATUS LIKE 'Open_tables';
|
||||
|
|
|
@ -80,26 +80,26 @@ SHOW WARNINGS;
|
|||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 ( i INT );
|
||||
|
@ -132,13 +132,13 @@ SHOW WARNINGS;
|
|||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT;
|
||||
|
@ -186,7 +186,7 @@ SHOW WARNINGS;
|
|||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT;
|
||||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=1;
|
||||
|
@ -194,7 +194,7 @@ SHOW WARNINGS;
|
|||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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
|
||||
# ALTER with each ROW_FORMAT
|
||||
DROP TABLE IF EXISTS t1;
|
||||
|
@ -234,7 +234,7 @@ SHOW WARNINGS;
|
|||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
|
@ -495,7 +495,7 @@ Level Code Message
|
|||
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';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=2;
|
||||
Warnings:
|
||||
|
@ -505,7 +505,7 @@ Level Code Message
|
|||
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';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4;
|
||||
Warnings:
|
||||
|
@ -515,33 +515,33 @@ Level Code Message
|
|||
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';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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
|
||||
DROP TABLE IF EXISTS t1;
|
||||
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.
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT );
|
||||
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.
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT );
|
||||
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.
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT );
|
||||
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.
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT );
|
||||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=16;
|
||||
|
@ -596,13 +596,13 @@ SHOW WARNINGS;
|
|||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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
|
||||
DROP TABLE IF EXISTS t1;
|
||||
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.
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
Warnings:
|
||||
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.
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
Warnings:
|
||||
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.
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPACT;
|
||||
ALTER TABLE t1 ROW_FORMAT=DEFAULT KEY_BLOCK_SIZE=8;
|
||||
|
@ -655,7 +655,7 @@ SHOW WARNINGS;
|
|||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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
|
||||
# ALTER with each ROW_FORMAT
|
||||
DROP TABLE IF EXISTS t1;
|
||||
|
@ -684,7 +684,7 @@ Level Code Message
|
|||
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';
|
||||
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;
|
||||
Warnings:
|
||||
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.
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
Warnings:
|
||||
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.
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
|
@ -731,7 +731,7 @@ Level Code Message
|
|||
Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=15.
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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
|
||||
valid KEY_BLOCK_SIZE are remembered but not used when ROW_FORMAT
|
||||
is reverted to Antelope and then used again when ROW_FORMAT=Barracuda.
|
||||
|
@ -741,7 +741,7 @@ SHOW WARNINGS;
|
|||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
ALTER TABLE t1 ADD COLUMN f1 INT;
|
||||
Warnings:
|
||||
|
@ -757,14 +757,14 @@ Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelop
|
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
ALTER TABLE t1 ADD COLUMN f2 INT;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC;
|
||||
SHOW WARNINGS;
|
||||
|
@ -800,7 +800,7 @@ SHOW WARNINGS;
|
|||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
ALTER TABLE t1 ADD COLUMN f1 INT;
|
||||
Warnings:
|
||||
|
@ -816,14 +816,14 @@ Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_per_table.
|
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
ALTER TABLE t1 ADD COLUMN f2 INT;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
SELECT TABLE_NAME,ROW_FORMAT,CREATE_OPTIONS FROM information_schema.tables WHERE TABLE_NAME = 't1';
|
||||
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;
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC;
|
||||
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
|
||||
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
|
||||
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;
|
||||
a1 a2 = repeat("a", 10000)
|
||||
9 1
|
||||
|
@ -60,7 +60,7 @@ select @@session.tx_isolation;
|
|||
REPEATABLE-READ
|
||||
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
|
||||
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;
|
||||
a1 a2 = repeat("a", 10000)
|
||||
9 1
|
||||
|
@ -92,7 +92,7 @@ select @@session.tx_isolation;
|
|||
REPEATABLE-READ
|
||||
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
|
||||
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;
|
||||
a1 a2 = repeat("a", 10000)
|
||||
9 1
|
||||
|
@ -121,7 +121,7 @@ select @@session.tx_isolation;
|
|||
REPEATABLE-READ
|
||||
explain select a1 from worklog5743 where a1 = 9;
|
||||
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;
|
||||
a1
|
||||
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`)
|
||||
) ENGINE=Aria AUTO_INCREMENT=102 DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
|
||||
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
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
|
@ -1070,4 +1106,40 @@ c1 c2
|
|||
2 20
|
||||
127 40
|
||||
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 pa10 VALUES LESS THAN (10) ENGINE = InnoDB) */
|
||||
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;
|
||||
count(*)
|
||||
27
|
||||
|
@ -163,33 +136,6 @@ SUBPARTITIONS 2
|
|||
PARTITION pa8 VALUES IN (7,8) ENGINE = InnoDB,
|
||||
PARTITION pa10 VALUES IN (9,10) ENGINE = InnoDB) */
|
||||
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;
|
||||
count(*)
|
||||
27
|
||||
|
|
|
@ -109,33 +109,6 @@ SUBPARTITIONS 2
|
|||
PARTITION pa8 VALUES LESS THAN (8) ENGINE = MyISAM,
|
||||
PARTITION pa10 VALUES LESS THAN (10) ENGINE = MyISAM) */
|
||||
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;
|
||||
count(*)
|
||||
27
|
||||
|
@ -163,33 +136,6 @@ SUBPARTITIONS 2
|
|||
PARTITION pa8 VALUES IN (7,8) ENGINE = MyISAM,
|
||||
PARTITION pa10 VALUES IN (9,10) ENGINE = MyISAM) */
|
||||
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;
|
||||
count(*)
|
||||
27
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
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;
|
||||
INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11);
|
||||
FLUSH TABLES;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# test the auto-recover (--myisam-recover) of partitioned myisam tables
|
||||
|
||||
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
|
||||
--disable_warnings
|
||||
|
|
|
@ -8,24 +8,24 @@ use performance_schema;
|
|||
show tables like "user_table";
|
||||
Tables_in_performance_schema (user_table)
|
||||
user_table
|
||||
ERROR 1050 (42S01) at line 183: Table 'cond_instances' already exists
|
||||
ERROR 1050 (42S01) at line 213: Table 'events_waits_current' already exists
|
||||
ERROR 1050 (42S01) at line 227: Table 'events_waits_history' already exists
|
||||
ERROR 1050 (42S01) at line 241: 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 283: 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 320: Table 'file_instances' already exists
|
||||
ERROR 1050 (42S01) at line 339: 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 376: Table 'mutex_instances' already exists
|
||||
ERROR 1050 (42S01) at line 394: Table 'performance_timers' already exists
|
||||
ERROR 1050 (42S01) at line 412: Table 'rwlock_instances' already exists
|
||||
ERROR 1050 (42S01) at line 428: Table 'setup_consumers' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'setup_instruments' already exists
|
||||
ERROR 1050 (42S01) at line 461: Table 'setup_timers' already exists
|
||||
ERROR 1050 (42S01) at line 478: Table 'threads' already exists
|
||||
ERROR 1644 (HY000) at line 1122: Unexpected content found in the performance_schema database.
|
||||
ERROR 1050 (42S01) at line 181: Table 'cond_instances' already exists
|
||||
ERROR 1050 (42S01) at line 211: Table 'events_waits_current' already exists
|
||||
ERROR 1050 (42S01) at line 225: Table 'events_waits_history' already exists
|
||||
ERROR 1050 (42S01) at line 239: Table 'events_waits_history_long' already exists
|
||||
ERROR 1050 (42S01) at line 260: Table 'events_waits_summary_by_instance' already exists
|
||||
ERROR 1050 (42S01) at line 281: Table 'events_waits_summary_by_thread_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 318: Table 'file_instances' already exists
|
||||
ERROR 1050 (42S01) at line 337: Table 'file_summary_by_event_name' already exists
|
||||
ERROR 1050 (42S01) at line 357: Table 'file_summary_by_instance' already exists
|
||||
ERROR 1050 (42S01) at line 374: Table 'mutex_instances' already exists
|
||||
ERROR 1050 (42S01) at line 392: Table 'performance_timers' already exists
|
||||
ERROR 1050 (42S01) at line 410: Table 'rwlock_instances' already exists
|
||||
ERROR 1050 (42S01) at line 426: Table 'setup_consumers' already exists
|
||||
ERROR 1050 (42S01) at line 443: Table 'setup_instruments' already exists
|
||||
ERROR 1050 (42S01) at line 459: Table 'setup_timers' already exists
|
||||
ERROR 1050 (42S01) at line 476: Table 'threads' already exists
|
||||
ERROR 1644 (HY000) at line 1120: Unexpected content found in the performance_schema database.
|
||||
FATAL ERROR: Upgrade failed
|
||||
show tables like "user_table";
|
||||
Tables_in_performance_schema (user_table)
|
||||
|
@ -38,24 +38,24 @@ use performance_schema;
|
|||
show tables like "user_view";
|
||||
Tables_in_performance_schema (user_view)
|
||||
user_view
|
||||
ERROR 1050 (42S01) at line 183: Table 'cond_instances' already exists
|
||||
ERROR 1050 (42S01) at line 213: Table 'events_waits_current' already exists
|
||||
ERROR 1050 (42S01) at line 227: Table 'events_waits_history' already exists
|
||||
ERROR 1050 (42S01) at line 241: 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 283: 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 320: Table 'file_instances' already exists
|
||||
ERROR 1050 (42S01) at line 339: 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 376: Table 'mutex_instances' already exists
|
||||
ERROR 1050 (42S01) at line 394: Table 'performance_timers' already exists
|
||||
ERROR 1050 (42S01) at line 412: Table 'rwlock_instances' already exists
|
||||
ERROR 1050 (42S01) at line 428: Table 'setup_consumers' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'setup_instruments' already exists
|
||||
ERROR 1050 (42S01) at line 461: Table 'setup_timers' already exists
|
||||
ERROR 1050 (42S01) at line 478: Table 'threads' already exists
|
||||
ERROR 1644 (HY000) at line 1122: Unexpected content found in the performance_schema database.
|
||||
ERROR 1050 (42S01) at line 181: Table 'cond_instances' already exists
|
||||
ERROR 1050 (42S01) at line 211: Table 'events_waits_current' already exists
|
||||
ERROR 1050 (42S01) at line 225: Table 'events_waits_history' already exists
|
||||
ERROR 1050 (42S01) at line 239: Table 'events_waits_history_long' already exists
|
||||
ERROR 1050 (42S01) at line 260: Table 'events_waits_summary_by_instance' already exists
|
||||
ERROR 1050 (42S01) at line 281: Table 'events_waits_summary_by_thread_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 318: Table 'file_instances' already exists
|
||||
ERROR 1050 (42S01) at line 337: Table 'file_summary_by_event_name' already exists
|
||||
ERROR 1050 (42S01) at line 357: Table 'file_summary_by_instance' already exists
|
||||
ERROR 1050 (42S01) at line 374: Table 'mutex_instances' already exists
|
||||
ERROR 1050 (42S01) at line 392: Table 'performance_timers' already exists
|
||||
ERROR 1050 (42S01) at line 410: Table 'rwlock_instances' already exists
|
||||
ERROR 1050 (42S01) at line 426: Table 'setup_consumers' already exists
|
||||
ERROR 1050 (42S01) at line 443: Table 'setup_instruments' already exists
|
||||
ERROR 1050 (42S01) at line 459: Table 'setup_timers' already exists
|
||||
ERROR 1050 (42S01) at line 476: Table 'threads' already exists
|
||||
ERROR 1644 (HY000) at line 1120: Unexpected content found in the performance_schema database.
|
||||
FATAL ERROR: Upgrade failed
|
||||
show tables like "user_view";
|
||||
Tables_in_performance_schema (user_view)
|
||||
|
@ -66,24 +66,24 @@ drop view test.user_view;
|
|||
create procedure test.user_proc()
|
||||
select "Not supposed to be here";
|
||||
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 213: Table 'events_waits_current' already exists
|
||||
ERROR 1050 (42S01) at line 227: Table 'events_waits_history' already exists
|
||||
ERROR 1050 (42S01) at line 241: 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 283: 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 320: Table 'file_instances' already exists
|
||||
ERROR 1050 (42S01) at line 339: 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 376: Table 'mutex_instances' already exists
|
||||
ERROR 1050 (42S01) at line 394: Table 'performance_timers' already exists
|
||||
ERROR 1050 (42S01) at line 412: Table 'rwlock_instances' already exists
|
||||
ERROR 1050 (42S01) at line 428: Table 'setup_consumers' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'setup_instruments' already exists
|
||||
ERROR 1050 (42S01) at line 461: Table 'setup_timers' already exists
|
||||
ERROR 1050 (42S01) at line 478: Table 'threads' already exists
|
||||
ERROR 1644 (HY000) at line 1122: Unexpected content found in the performance_schema database.
|
||||
ERROR 1050 (42S01) at line 181: Table 'cond_instances' already exists
|
||||
ERROR 1050 (42S01) at line 211: Table 'events_waits_current' already exists
|
||||
ERROR 1050 (42S01) at line 225: Table 'events_waits_history' already exists
|
||||
ERROR 1050 (42S01) at line 239: Table 'events_waits_history_long' already exists
|
||||
ERROR 1050 (42S01) at line 260: Table 'events_waits_summary_by_instance' already exists
|
||||
ERROR 1050 (42S01) at line 281: Table 'events_waits_summary_by_thread_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 318: Table 'file_instances' already exists
|
||||
ERROR 1050 (42S01) at line 337: Table 'file_summary_by_event_name' already exists
|
||||
ERROR 1050 (42S01) at line 357: Table 'file_summary_by_instance' already exists
|
||||
ERROR 1050 (42S01) at line 374: Table 'mutex_instances' already exists
|
||||
ERROR 1050 (42S01) at line 392: Table 'performance_timers' already exists
|
||||
ERROR 1050 (42S01) at line 410: Table 'rwlock_instances' already exists
|
||||
ERROR 1050 (42S01) at line 426: Table 'setup_consumers' already exists
|
||||
ERROR 1050 (42S01) at line 443: Table 'setup_instruments' already exists
|
||||
ERROR 1050 (42S01) at line 459: Table 'setup_timers' already exists
|
||||
ERROR 1050 (42S01) at line 476: Table 'threads' already exists
|
||||
ERROR 1644 (HY000) at line 1120: Unexpected content found in the performance_schema database.
|
||||
FATAL ERROR: Upgrade failed
|
||||
select name from mysql.proc where db='performance_schema';
|
||||
name
|
||||
|
@ -94,24 +94,24 @@ drop procedure test.user_proc;
|
|||
create function test.user_func() returns integer
|
||||
return 0;
|
||||
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 213: Table 'events_waits_current' already exists
|
||||
ERROR 1050 (42S01) at line 227: Table 'events_waits_history' already exists
|
||||
ERROR 1050 (42S01) at line 241: 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 283: 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 320: Table 'file_instances' already exists
|
||||
ERROR 1050 (42S01) at line 339: 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 376: Table 'mutex_instances' already exists
|
||||
ERROR 1050 (42S01) at line 394: Table 'performance_timers' already exists
|
||||
ERROR 1050 (42S01) at line 412: Table 'rwlock_instances' already exists
|
||||
ERROR 1050 (42S01) at line 428: Table 'setup_consumers' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'setup_instruments' already exists
|
||||
ERROR 1050 (42S01) at line 461: Table 'setup_timers' already exists
|
||||
ERROR 1050 (42S01) at line 478: Table 'threads' already exists
|
||||
ERROR 1644 (HY000) at line 1122: Unexpected content found in the performance_schema database.
|
||||
ERROR 1050 (42S01) at line 181: Table 'cond_instances' already exists
|
||||
ERROR 1050 (42S01) at line 211: Table 'events_waits_current' already exists
|
||||
ERROR 1050 (42S01) at line 225: Table 'events_waits_history' already exists
|
||||
ERROR 1050 (42S01) at line 239: Table 'events_waits_history_long' already exists
|
||||
ERROR 1050 (42S01) at line 260: Table 'events_waits_summary_by_instance' already exists
|
||||
ERROR 1050 (42S01) at line 281: Table 'events_waits_summary_by_thread_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 318: Table 'file_instances' already exists
|
||||
ERROR 1050 (42S01) at line 337: Table 'file_summary_by_event_name' already exists
|
||||
ERROR 1050 (42S01) at line 357: Table 'file_summary_by_instance' already exists
|
||||
ERROR 1050 (42S01) at line 374: Table 'mutex_instances' already exists
|
||||
ERROR 1050 (42S01) at line 392: Table 'performance_timers' already exists
|
||||
ERROR 1050 (42S01) at line 410: Table 'rwlock_instances' already exists
|
||||
ERROR 1050 (42S01) at line 426: Table 'setup_consumers' already exists
|
||||
ERROR 1050 (42S01) at line 443: Table 'setup_instruments' already exists
|
||||
ERROR 1050 (42S01) at line 459: Table 'setup_timers' already exists
|
||||
ERROR 1050 (42S01) at line 476: Table 'threads' already exists
|
||||
ERROR 1644 (HY000) at line 1120: Unexpected content found in the performance_schema database.
|
||||
FATAL ERROR: Upgrade failed
|
||||
select name from mysql.proc where db='performance_schema';
|
||||
name
|
||||
|
@ -122,24 +122,24 @@ drop function test.user_func;
|
|||
create event test.user_event on schedule every 1 day do
|
||||
select "not supposed to be here";
|
||||
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 213: Table 'events_waits_current' already exists
|
||||
ERROR 1050 (42S01) at line 227: Table 'events_waits_history' already exists
|
||||
ERROR 1050 (42S01) at line 241: 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 283: 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 320: Table 'file_instances' already exists
|
||||
ERROR 1050 (42S01) at line 339: 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 376: Table 'mutex_instances' already exists
|
||||
ERROR 1050 (42S01) at line 394: Table 'performance_timers' already exists
|
||||
ERROR 1050 (42S01) at line 412: Table 'rwlock_instances' already exists
|
||||
ERROR 1050 (42S01) at line 428: Table 'setup_consumers' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'setup_instruments' already exists
|
||||
ERROR 1050 (42S01) at line 461: Table 'setup_timers' already exists
|
||||
ERROR 1050 (42S01) at line 478: Table 'threads' already exists
|
||||
ERROR 1644 (HY000) at line 1122: Unexpected content found in the performance_schema database.
|
||||
ERROR 1050 (42S01) at line 181: Table 'cond_instances' already exists
|
||||
ERROR 1050 (42S01) at line 211: Table 'events_waits_current' already exists
|
||||
ERROR 1050 (42S01) at line 225: Table 'events_waits_history' already exists
|
||||
ERROR 1050 (42S01) at line 239: Table 'events_waits_history_long' already exists
|
||||
ERROR 1050 (42S01) at line 260: Table 'events_waits_summary_by_instance' already exists
|
||||
ERROR 1050 (42S01) at line 281: Table 'events_waits_summary_by_thread_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 318: Table 'file_instances' already exists
|
||||
ERROR 1050 (42S01) at line 337: Table 'file_summary_by_event_name' already exists
|
||||
ERROR 1050 (42S01) at line 357: Table 'file_summary_by_instance' already exists
|
||||
ERROR 1050 (42S01) at line 374: Table 'mutex_instances' already exists
|
||||
ERROR 1050 (42S01) at line 392: Table 'performance_timers' already exists
|
||||
ERROR 1050 (42S01) at line 410: Table 'rwlock_instances' already exists
|
||||
ERROR 1050 (42S01) at line 426: Table 'setup_consumers' already exists
|
||||
ERROR 1050 (42S01) at line 443: Table 'setup_instruments' already exists
|
||||
ERROR 1050 (42S01) at line 459: Table 'setup_timers' already exists
|
||||
ERROR 1050 (42S01) at line 476: Table 'threads' already exists
|
||||
ERROR 1644 (HY000) at line 1120: Unexpected content found in the performance_schema database.
|
||||
FATAL ERROR: Upgrade failed
|
||||
select name from mysql.event where db='performance_schema';
|
||||
name
|
||||
|
|
|
@ -1,15 +1,8 @@
|
|||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
include/master-slave.inc
|
||||
[connection master]
|
||||
|
||||
-------- switch to master -------
|
||||
SET AUTOCOMMIT = 1;
|
||||
DROP DATABASE IF EXISTS mysqltest1;
|
||||
DROP DATABASE IF EXISTS mysqltest2;
|
||||
DROP DATABASE IF EXISTS mysqltest3;
|
||||
CREATE DATABASE mysqltest1;
|
||||
CREATE DATABASE mysqltest2;
|
||||
CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE=InnoDB;
|
||||
|
@ -1626,3 +1619,4 @@ use test;
|
|||
-------- switch to master -------
|
||||
DROP DATABASE mysqltest1;
|
||||
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
|
||||
SELECT upgrade_alter_func();
|
||||
ERROR HY000: The user specified as a definer ('create_rout_db'@'localhost') does not exist
|
||||
USE test;
|
||||
DROP FUNCTION bug42217_db.upgrade_del_func;
|
||||
DROP FUNCTION bug42217_db.upgrade_alter_func;
|
||||
USE bug42217_db;
|
||||
DROP FUNCTION upgrade_del_func;
|
||||
DROP FUNCTION upgrade_alter_func;
|
||||
DROP DATABASE bug42217_db;
|
||||
SET SQL_LOG_BIN= 0;
|
||||
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 'x509_issuer' 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 INSERT ON *.* TO mysqltest6@localhost;
|
||||
GRANT INSERT ON test.* TO mysqltest6@localhost;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
include/master-slave.inc
|
||||
[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 ("Error in Log_event::read_log_event");
|
||||
show master status;
|
||||
|
@ -7,7 +9,6 @@ File Position Binlog_Do_DB Binlog_Ignore_DB
|
|||
master-bin.000001 # <Binlog_Do_DB> <Binlog_Ignore_DB>
|
||||
include/stop_slave.inc
|
||||
change master to master_log_pos=MASTER_LOG_POS;
|
||||
Read_Master_Log_Pos = '75'
|
||||
start slave;
|
||||
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''
|
||||
|
|
|
@ -26,16 +26,29 @@ include/diff_tables.inc [master:t1,slave:t1]
|
|||
TRUNCATE TABLE t1;
|
||||
TRUNCATE TABLE t2;
|
||||
TRUNCATE TABLE t3;
|
||||
set default_storage_engine=innodb;
|
||||
BEGIN;
|
||||
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;
|
||||
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;
|
||||
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]
|
||||
########################################################################################
|
||||
# 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
|
||||
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;
|
||||
Warnings:
|
||||
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
|
||||
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;
|
||||
BEGIN;
|
||||
Got one of the listed errors
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
include/master-slave.inc
|
||||
[connection master]
|
||||
set session storage_engine=innodb;
|
||||
#########################################################################
|
||||
# CONFIGURATION
|
||||
#########################################################################
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
include/master-slave.inc
|
||||
[connection master]
|
||||
drop tables if exists t1;
|
||||
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) SELECT null FROM t1;
|
||||
|
|
|
@ -88,8 +88,8 @@ master-bin.000009 # <Binlog_Do_DB> <Binlog_Ignore_DB>
|
|||
select * from t4;
|
||||
a
|
||||
testing temporary tables part 2
|
||||
Master_Log_File master-bin.000009
|
||||
Relay_Master_Log_File master-bin.000009
|
||||
Master_Log_File = 'master-bin.000009'
|
||||
Relay_Master_Log_File = 'master-bin.000009'
|
||||
include/check_slave_is_running.inc
|
||||
lock tables t3 read;
|
||||
select count(*) from t3 where n >= 4;
|
||||
|
|
|
@ -26,17 +26,30 @@ include/diff_tables.inc [master:t1,slave:t1]
|
|||
TRUNCATE TABLE t1;
|
||||
TRUNCATE TABLE t2;
|
||||
TRUNCATE TABLE t3;
|
||||
set default_storage_engine=innodb;
|
||||
BEGIN;
|
||||
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;
|
||||
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
|
||||
BEGIN;
|
||||
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]
|
||||
########################################################################################
|
||||
# 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
|
||||
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;
|
||||
Warnings:
|
||||
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
|
||||
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;
|
||||
BEGIN;
|
||||
Got one of the listed errors
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
include/master-slave.inc
|
||||
[connection master]
|
||||
set session storage_engine=innodb;
|
||||
#########################################################################
|
||||
# CONFIGURATION
|
||||
#########################################################################
|
||||
|
|
|
@ -62,7 +62,7 @@ Warnings:
|
|||
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_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_priv user
|
||||
N blafasel2
|
||||
|
|
|
@ -26,16 +26,29 @@ include/diff_tables.inc [master:t1,slave:t1]
|
|||
TRUNCATE TABLE t1;
|
||||
TRUNCATE TABLE t2;
|
||||
TRUNCATE TABLE t3;
|
||||
set default_storage_engine=innodb;
|
||||
BEGIN;
|
||||
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;
|
||||
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;
|
||||
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]
|
||||
########################################################################################
|
||||
# 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
|
||||
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;
|
||||
Warnings:
|
||||
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
|
||||
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;
|
||||
BEGIN;
|
||||
Got one of the listed errors
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
include/master-slave.inc
|
||||
[connection master]
|
||||
CALL mtr.add_suppression('Unsafe statement written to the binary log using statement format');
|
||||
DROP TABLE IF EXISTS t1;
|
||||
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
|
||||
107 t2 500 0 0.3593
|
||||
drop table t1,t2,t3;
|
||||
include/rpl_end.inc
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
include/master-slave.inc
|
||||
[connection master]
|
||||
install plugin example soname 'ha_example.so';
|
||||
set storage_engine=example;
|
||||
create table t1 (a int not null) ull=12340;
|
||||
|
@ -23,3 +19,4 @@ select 1;
|
|||
1
|
||||
1
|
||||
uninstall plugin example;
|
||||
include/rpl_end.inc
|
||||
|
|
|
@ -23,7 +23,7 @@ include/rpl_connect.inc [creating master]
|
|||
DROP TABLE t1;
|
||||
[on slave]
|
||||
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 t3 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) );
|
||||
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;
|
||||
show binlog events from <binlog_start>;
|
||||
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 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 ()
|
||||
|
@ -93,7 +93,7 @@ BEGIN;
|
|||
DROP TEMPORARY TABLE t1;
|
||||
# The rows event will binlogged before 'DROP TEMPORARY TABLE t1',
|
||||
# as t1 is non-transactional table
|
||||
INSERT INTO t1 VALUES(Rand());
|
||||
INSERT INTO t1 SELECT Rand();
|
||||
COMMIT;
|
||||
show binlog events in 'master-bin.000001' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
include/master-slave.inc
|
||||
[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;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TEMPORARY TABLE t1 (a char(1));
|
||||
|
|
|
@ -200,17 +200,12 @@ SELECT upgrade_alter_func();
|
|||
disconnect create_rout_db_master;
|
||||
disconnect create_rout_db_slave;
|
||||
connection master;
|
||||
USE test;
|
||||
DROP FUNCTION bug42217_db.upgrade_del_func;
|
||||
DROP FUNCTION bug42217_db.upgrade_alter_func;
|
||||
USE bug42217_db;
|
||||
DROP FUNCTION upgrade_del_func;
|
||||
DROP FUNCTION upgrade_alter_func;
|
||||
DROP DATABASE bug42217_db;
|
||||
|
||||
-- sync_slave_with_master
|
||||
# Drop the user that was already dropped on the slave
|
||||
connection slave;
|
||||
--disable_warnings
|
||||
stop slave;
|
||||
connection master;
|
||||
-- connection master
|
||||
|
||||
# user was already dropped in the slave before
|
||||
# so we should not replicate this statement.
|
||||
|
@ -218,8 +213,6 @@ SET SQL_LOG_BIN= 0;
|
|||
DROP USER 'create_rout_db'@'localhost';
|
||||
SET SQL_LOG_BIN= 1;
|
||||
|
||||
--enable_warnings
|
||||
|
||||
# finish entire clean up (remove binlogs)
|
||||
# so that we leave a pristine environment for the
|
||||
# following tests
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# depends on the binlog output
|
||||
-- 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
|
||||
# The use of the ps protocol causes extra table maps in the binlog, so
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# depends on the binlog output
|
||||
--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
|
||||
|
|
|
@ -54,3 +54,5 @@ sync_slave_with_master;
|
|||
connection master;
|
||||
drop table t1,t2,t3;
|
||||
sync_slave_with_master;
|
||||
|
||||
--source include/rpl_end.inc
|
||||
|
|
|
@ -29,3 +29,5 @@ drop table t1;
|
|||
set storage_engine=default;
|
||||
select 1;
|
||||
uninstall plugin example;
|
||||
|
||||
source include/rpl_end.inc;
|
||||
|
|
|
@ -97,7 +97,7 @@ sync_slave_with_master;
|
|||
-- connection master
|
||||
|
||||
# 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 t3 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1) );
|
||||
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 # as t1 is non-transactional table
|
||||
INSERT INTO t1 VALUES(Rand());
|
||||
INSERT INTO t1 SELECT Rand();
|
||||
COMMIT;
|
||||
|
||||
source include/show_binlog_events.inc;
|
||||
|
|
|
@ -8,84 +8,122 @@ SELECT @start_session_value;
|
|||
256
|
||||
'#--------------------FN_DYNVARS_090_01-------------------------#'
|
||||
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;
|
||||
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;
|
||||
@@global.multi_range_count
|
||||
256
|
||||
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;
|
||||
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;
|
||||
@@session.multi_range_count
|
||||
256
|
||||
'#--------------------FN_DYNVARS_090_02-------------------------#'
|
||||
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;
|
||||
@@global.multi_range_count = 256
|
||||
1
|
||||
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;
|
||||
@@session.multi_range_count = 256
|
||||
1
|
||||
'#--------------------FN_DYNVARS_090_03-------------------------#'
|
||||
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;
|
||||
@@global.multi_range_count
|
||||
1
|
||||
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;
|
||||
@@global.multi_range_count
|
||||
60020
|
||||
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;
|
||||
@@global.multi_range_count
|
||||
65535
|
||||
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;
|
||||
@@global.multi_range_count
|
||||
4294967295
|
||||
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;
|
||||
@@global.multi_range_count
|
||||
4294967294
|
||||
'#--------------------FN_DYNVARS_090_04-------------------------#'
|
||||
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;
|
||||
@@session.multi_range_count
|
||||
1
|
||||
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;
|
||||
@@session.multi_range_count
|
||||
50050
|
||||
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;
|
||||
@@session.multi_range_count
|
||||
65535
|
||||
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;
|
||||
@@session.multi_range_count
|
||||
4294967295
|
||||
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;
|
||||
@@session.multi_range_count
|
||||
4294967294
|
||||
'#------------------FN_DYNVARS_090_05-----------------------#'
|
||||
SET @@global.multi_range_count = 0;
|
||||
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'
|
||||
SELECT @@global.multi_range_count;
|
||||
@@global.multi_range_count
|
||||
1
|
||||
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;
|
||||
@@global.multi_range_count
|
||||
4294967296
|
||||
SET @@global.multi_range_count = -1024;
|
||||
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'
|
||||
SELECT @@global.multi_range_count;
|
||||
@@global.multi_range_count
|
||||
1
|
||||
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;
|
||||
@@global.multi_range_count
|
||||
429496729500
|
||||
|
@ -101,16 +139,20 @@ SELECT @@global.multi_range_count;
|
|||
429496729500
|
||||
SET @@session.multi_range_count = 0;
|
||||
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'
|
||||
SELECT @@session.multi_range_count;
|
||||
@@session.multi_range_count
|
||||
1
|
||||
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;
|
||||
@@session.multi_range_count
|
||||
4294967296
|
||||
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
|
||||
Warning 1292 Truncated incorrect multi_range_count value: '-1'
|
||||
SELECT @@session.multi_range_count;
|
||||
@@session.multi_range_count
|
||||
|
@ -118,6 +160,8 @@ SELECT @@session.multi_range_count;
|
|||
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
|
||||
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;
|
||||
@@session.multi_range_count
|
||||
4294967295021
|
||||
|
@ -141,22 +185,29 @@ WHERE VARIABLE_NAME='multi_range_count';
|
|||
1
|
||||
'#------------------FN_DYNVARS_090_08-----------------------#'
|
||||
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;
|
||||
@@global.multi_range_count
|
||||
1
|
||||
SET @@global.multi_range_count = FALSE;
|
||||
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'
|
||||
SELECT @@global.multi_range_count;
|
||||
@@global.multi_range_count
|
||||
1
|
||||
'#---------------------FN_DYNVARS_090_09----------------------#'
|
||||
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;
|
||||
@@multi_range_count = @@global.multi_range_count
|
||||
0
|
||||
'#---------------------FN_DYNVARS_090_10----------------------#'
|
||||
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;
|
||||
@@multi_range_count = @@local.multi_range_count
|
||||
1
|
||||
|
@ -165,6 +216,8 @@ SELECT @@local.multi_range_count = @@session.multi_range_count;
|
|||
1
|
||||
'#---------------------FN_DYNVARS_090_11----------------------#'
|
||||
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;
|
||||
@@multi_range_count
|
||||
1
|
||||
|
@ -175,10 +228,14 @@ ERROR 42S02: Unknown table 'session' in field list
|
|||
SELECT multi_range_count = @@session.multi_range_count;
|
||||
ERROR 42S22: Unknown column 'multi_range_count' in 'field list'
|
||||
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;
|
||||
@@global.multi_range_count
|
||||
256
|
||||
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;
|
||||
@@session.multi_range_count
|
||||
256
|
||||
|
|
|
@ -5,7 +5,7 @@ SET @session_max_join_size = @@SESSION.max_join_size;
|
|||
SET @global_max_join_size = @@GLOBAL.max_join_size;
|
||||
SET SQL_MAX_JOIN_SIZE=9;
|
||||
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 t2(a varchar(20) null, b varchar(20));
|
||||
INSERT INTO t1 VALUES('aa','bb');
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue