merge
This commit is contained in:
commit
c6de041ebc
2
VERSION
2
VERSION
@ -1,4 +1,4 @@
|
||||
MYSQL_VERSION_MAJOR=5
|
||||
MYSQL_VERSION_MINOR=5
|
||||
MYSQL_VERSION_PATCH=9
|
||||
MYSQL_VERSION_PATCH=10
|
||||
MYSQL_VERSION_EXTRA=
|
||||
|
@ -85,6 +85,7 @@ enum options_client
|
||||
OPT_WRITE_BINLOG, OPT_DUMP_DATE,
|
||||
OPT_INIT_COMMAND,
|
||||
OPT_PLUGIN_DIR,
|
||||
OPT_DEFAULT_AUTH,
|
||||
OPT_DEFAULT_PLUGIN,
|
||||
OPT_MAX_CLIENT_OPTION
|
||||
};
|
||||
|
@ -162,7 +162,7 @@ static int wait_time = 5;
|
||||
static STATUS status;
|
||||
static ulong select_limit,max_join_size,opt_connect_timeout=0;
|
||||
static char mysql_charsets_dir[FN_REFLEN+1];
|
||||
static char *opt_plugin_dir= 0, *opt_default_auth;
|
||||
static char *opt_plugin_dir= 0, *opt_default_auth= 0;
|
||||
static const char *xmlmeta[] = {
|
||||
"&", "&",
|
||||
"<", "<",
|
||||
@ -1564,7 +1564,7 @@ static struct my_option my_long_options[] =
|
||||
{"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
|
||||
(uchar**) &opt_plugin_dir, (uchar**) &opt_plugin_dir, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"default_auth", OPT_PLUGIN_DIR,
|
||||
{"default_auth", OPT_DEFAULT_AUTH,
|
||||
"Default authentication client-side plugin to use.",
|
||||
(uchar**) &opt_default_auth, (uchar**) &opt_default_auth, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
|
@ -45,6 +45,8 @@ static DYNAMIC_STRING ds_args;
|
||||
static DYNAMIC_STRING conn_args;
|
||||
|
||||
static char *opt_password= 0;
|
||||
static char *opt_plugin_dir= 0, *opt_default_auth= 0;
|
||||
|
||||
static my_bool tty_password= 0;
|
||||
|
||||
static char opt_tmpdir[FN_REFLEN] = "";
|
||||
@ -88,6 +90,10 @@ static struct my_option my_long_options[]=
|
||||
{"default-character-set", OPT_DEFAULT_CHARSET,
|
||||
"Set the default character set.", 0,
|
||||
0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"default_auth", OPT_DEFAULT_AUTH,
|
||||
"Default authentication client-side plugin to use.",
|
||||
(uchar**) &opt_default_auth, (uchar**) &opt_default_auth, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"force", 'f', "Force execution of mysqlcheck even if mysql_upgrade "
|
||||
"has already been executed for the current version of MySQL.",
|
||||
&opt_force, &opt_force, 0,
|
||||
@ -102,6 +108,9 @@ static struct my_option my_long_options[]=
|
||||
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0,
|
||||
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
|
||||
(uchar**) &opt_plugin_dir, (uchar**) &opt_plugin_dir, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
@ -283,6 +292,8 @@ get_one_option(int optid, const struct my_option *opt,
|
||||
case 'S': /* --socket */
|
||||
case OPT_MYSQL_PROTOCOL: /* --protocol */
|
||||
case OPT_SHARED_MEMORY_BASE_NAME: /* --shared-memory-base-name */
|
||||
case OPT_PLUGIN_DIR: /* --plugin-dir */
|
||||
case OPT_DEFAULT_AUTH: /* --default-auth */
|
||||
add_one_option(&conn_args, opt, argument);
|
||||
break;
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ static uint tcp_port = 0, option_wait = 0, option_silent=0, nr_iterations;
|
||||
static uint opt_count_iterations= 0, my_end_arg;
|
||||
static ulong opt_connect_timeout, opt_shutdown_timeout;
|
||||
static char * unix_port=0;
|
||||
static char *opt_plugin_dir= 0, *opt_default_auth;
|
||||
static char *opt_plugin_dir= 0, *opt_default_auth= 0;
|
||||
|
||||
#ifdef HAVE_SMEM
|
||||
static char *shared_memory_base_name=0;
|
||||
@ -208,7 +208,7 @@ static struct my_option my_long_options[] =
|
||||
{"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
|
||||
(uchar**) &opt_plugin_dir, (uchar**) &opt_plugin_dir, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"default_auth", OPT_PLUGIN_DIR,
|
||||
{"default_auth", OPT_DEFAULT_AUTH,
|
||||
"Default authentication client-side plugin to use.",
|
||||
(uchar**) &opt_default_auth, (uchar**) &opt_default_auth, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
@ -413,6 +413,9 @@ int main(int argc,char *argv[])
|
||||
|
||||
if (interval) /* --sleep=interval given */
|
||||
{
|
||||
if (opt_count_iterations && --nr_iterations == 0)
|
||||
break;
|
||||
|
||||
/*
|
||||
If connection was dropped (unintentionally, or due to SHUTDOWN),
|
||||
re-establish it if --wait ("retry-connect") was given and user
|
||||
|
@ -79,6 +79,8 @@ 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;
|
||||
|
||||
#ifdef HAVE_SMEM
|
||||
static char *shared_memory_base_name= 0;
|
||||
#endif
|
||||
@ -1039,6 +1041,10 @@ static struct my_option my_long_options[] =
|
||||
{"debug-info", OPT_DEBUG_INFO, "Print some debug info at exit.",
|
||||
&debug_info_flag, &debug_info_flag,
|
||||
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"default_auth", OPT_DEFAULT_AUTH,
|
||||
"Default authentication client-side plugin to use.",
|
||||
(uchar**) &opt_default_auth, (uchar**) &opt_default_auth, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"disable-log-bin", 'D', "Disable binary log. This is useful, if you "
|
||||
"enabled --to-last-log and are sending the output to the same MySQL server. "
|
||||
"This way you could avoid an endless loop. You would also like to use it "
|
||||
@ -1064,6 +1070,9 @@ static struct my_option my_long_options[] =
|
||||
0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"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.",
|
||||
(uchar**) &opt_plugin_dir, (uchar**) &opt_plugin_dir, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
@ -1381,6 +1390,12 @@ 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_default_auth && *opt_default_auth)
|
||||
mysql_options(mysql, MYSQL_DEFAULT_AUTH, opt_default_auth);
|
||||
|
||||
if (opt_protocol)
|
||||
mysql_options(mysql, MYSQL_OPT_PROTOCOL, (char*) &opt_protocol);
|
||||
#ifdef HAVE_SMEM
|
||||
|
@ -40,6 +40,7 @@ static int my_end_arg;
|
||||
static char * opt_mysql_unix_port = 0;
|
||||
static char *opt_password = 0, *current_user = 0,
|
||||
*default_charset= 0, *current_host= 0;
|
||||
static char *opt_plugin_dir= 0, *opt_default_auth= 0;
|
||||
static int first_error = 0;
|
||||
DYNAMIC_ARRAY tables4repair;
|
||||
#ifdef HAVE_SMEM
|
||||
@ -99,6 +100,10 @@ static struct my_option my_long_options[] =
|
||||
{"default-character-set", OPT_DEFAULT_CHARSET,
|
||||
"Set the default character set.", &default_charset,
|
||||
&default_charset, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"default_auth", OPT_DEFAULT_AUTH,
|
||||
"Default authentication client-side plugin to use.",
|
||||
(uchar**) &opt_default_auth, (uchar**) &opt_default_auth, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"fast",'F', "Check only tables that haven't been closed properly.",
|
||||
&opt_fast, &opt_fast, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
|
||||
0},
|
||||
@ -136,6 +141,9 @@ static struct my_option my_long_options[] =
|
||||
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
|
||||
(uchar**) &opt_plugin_dir, (uchar**) &opt_plugin_dir, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
@ -796,6 +804,13 @@ static int dbConnect(char *host, char *user, char *passwd)
|
||||
if (shared_memory_base_name)
|
||||
mysql_options(&mysql_connection,MYSQL_SHARED_MEMORY_BASE_NAME,shared_memory_base_name);
|
||||
#endif
|
||||
|
||||
if (opt_plugin_dir && *opt_plugin_dir)
|
||||
mysql_options(&mysql_connection, MYSQL_PLUGIN_DIR, opt_plugin_dir);
|
||||
|
||||
if (opt_default_auth && *opt_default_auth)
|
||||
mysql_options(&mysql_connection, MYSQL_DEFAULT_AUTH, opt_default_auth);
|
||||
|
||||
mysql_options(&mysql_connection, MYSQL_SET_CHARSET_NAME, default_charset);
|
||||
if (!(sock = mysql_real_connect(&mysql_connection, host, user, passwd,
|
||||
NULL, opt_mysql_port, opt_mysql_unix_port, 0)))
|
||||
|
@ -137,7 +137,7 @@ FILE *stderror_file=0;
|
||||
static char *shared_memory_base_name=0;
|
||||
#endif
|
||||
static uint opt_protocol= 0;
|
||||
static char *opt_plugin_dir= 0, *opt_default_auth;
|
||||
static char *opt_plugin_dir= 0, *opt_default_auth= 0;
|
||||
|
||||
/*
|
||||
Dynamic_string wrapper functions. In this file use these
|
||||
@ -503,7 +503,7 @@ static struct my_option my_long_options[] =
|
||||
{"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
|
||||
(uchar**) &opt_plugin_dir, (uchar**) &opt_plugin_dir, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"default_auth", OPT_PLUGIN_DIR,
|
||||
{"default_auth", OPT_DEFAULT_AUTH,
|
||||
"Default authentication client-side plugin to use.",
|
||||
(uchar**) &opt_default_auth, (uchar**) &opt_default_auth, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
@ -2237,6 +2237,15 @@ static uint get_table_structure(char *table, char *db, char *table_type,
|
||||
const char *insert_option;
|
||||
char name_buff[NAME_LEN+3],table_buff[NAME_LEN*2+3];
|
||||
char table_buff2[NAME_LEN*2+3], query_buff[QUERY_LENGTH];
|
||||
const char *show_fields_stmt= "SELECT `COLUMN_NAME` AS `Field`, "
|
||||
"`COLUMN_TYPE` AS `Type`, "
|
||||
"`IS_NULLABLE` AS `Null`, "
|
||||
"`COLUMN_KEY` AS `Key`, "
|
||||
"`COLUMN_DEFAULT` AS `Default`, "
|
||||
"`EXTRA` AS `Extra`, "
|
||||
"`COLUMN_COMMENT` AS `Comment` "
|
||||
"FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE "
|
||||
"TABLE_SCHEMA = '%s' AND TABLE_NAME = '%s'";
|
||||
FILE *sql_file= md_result_file;
|
||||
int len;
|
||||
MYSQL_RES *result;
|
||||
@ -2504,8 +2513,8 @@ static uint get_table_structure(char *table, char *db, char *table_type,
|
||||
verbose_msg("%s: Warning: Can't set SQL_QUOTE_SHOW_CREATE option (%s)\n",
|
||||
my_progname, mysql_error(mysql));
|
||||
|
||||
my_snprintf(query_buff, sizeof(query_buff), "show fields from %s",
|
||||
result_table);
|
||||
my_snprintf(query_buff, sizeof(query_buff), show_fields_stmt, db, table);
|
||||
|
||||
if (mysql_query_with_error_report(mysql, &result, query_buff))
|
||||
DBUG_RETURN(0);
|
||||
|
||||
|
@ -60,6 +60,7 @@ static char *opt_password=0, *current_user=0,
|
||||
*default_charset= (char*) MYSQL_AUTODETECT_CHARSET_NAME;
|
||||
static uint opt_mysql_port= 0, opt_protocol= 0;
|
||||
static char * opt_mysql_unix_port=0;
|
||||
static char *opt_plugin_dir= 0, *opt_default_auth= 0;
|
||||
static longlong opt_ignore_lines= -1;
|
||||
#include <sslopt-vars.h>
|
||||
|
||||
@ -90,6 +91,10 @@ static struct my_option my_long_options[] =
|
||||
{"debug-info", OPT_DEBUG_INFO, "Print some debug info at exit.",
|
||||
&debug_info_flag, &debug_info_flag,
|
||||
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"default_auth", OPT_DEFAULT_AUTH,
|
||||
"Default authentication client-side plugin to use.",
|
||||
(uchar**) &opt_default_auth, (uchar**) &opt_default_auth, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"delete", 'd', "First delete all rows from table.", &opt_delete,
|
||||
&opt_delete, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"fields-terminated-by", OPT_FTB,
|
||||
@ -139,6 +144,9 @@ static struct my_option my_long_options[] =
|
||||
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
|
||||
(uchar**) &opt_plugin_dir, (uchar**) &opt_plugin_dir, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
@ -429,6 +437,13 @@ static MYSQL *db_connect(char *host, char *database,
|
||||
if (shared_memory_base_name)
|
||||
mysql_options(mysql,MYSQL_SHARED_MEMORY_BASE_NAME,shared_memory_base_name);
|
||||
#endif
|
||||
|
||||
if (opt_plugin_dir && *opt_plugin_dir)
|
||||
mysql_options(mysql, MYSQL_PLUGIN_DIR, opt_plugin_dir);
|
||||
|
||||
if (opt_default_auth && *opt_default_auth)
|
||||
mysql_options(mysql, MYSQL_DEFAULT_AUTH, opt_default_auth);
|
||||
|
||||
mysql_options(mysql, MYSQL_SET_CHARSET_NAME, default_charset);
|
||||
if (!(mysql_real_connect(mysql,host,user,passwd,
|
||||
database,opt_mysql_port,opt_mysql_unix_port,
|
||||
|
@ -34,6 +34,7 @@ static my_bool debug_info_flag= 0, debug_check_flag= 0;
|
||||
static uint my_end_arg= 0;
|
||||
static uint opt_verbose=0;
|
||||
static char *default_charset= (char*) MYSQL_AUTODETECT_CHARSET_NAME;
|
||||
static char *opt_plugin_dir= 0, *opt_default_auth= 0;
|
||||
|
||||
#ifdef HAVE_SMEM
|
||||
static char *shared_memory_base_name=0;
|
||||
@ -124,6 +125,12 @@ int main(int argc, char **argv)
|
||||
#endif
|
||||
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, default_charset);
|
||||
|
||||
if (opt_plugin_dir && *opt_plugin_dir)
|
||||
mysql_options(&mysql, MYSQL_PLUGIN_DIR, opt_plugin_dir);
|
||||
|
||||
if (opt_default_auth && *opt_default_auth)
|
||||
mysql_options(&mysql, MYSQL_DEFAULT_AUTH, opt_default_auth);
|
||||
|
||||
if (!(mysql_real_connect(&mysql,host,user,opt_password,
|
||||
(first_argument_uses_wildcards) ? "" :
|
||||
argv[0],opt_mysql_port,opt_mysql_unix_port,
|
||||
@ -182,6 +189,10 @@ static struct my_option my_long_options[] =
|
||||
{"debug-info", OPT_DEBUG_INFO, "Print some debug info at exit.",
|
||||
&debug_info_flag, &debug_info_flag,
|
||||
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"default_auth", OPT_DEFAULT_AUTH,
|
||||
"Default authentication client-side plugin to use.",
|
||||
(uchar**) &opt_default_auth, (uchar**) &opt_default_auth, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"help", '?', "Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG,
|
||||
0, 0, 0, 0, 0, 0},
|
||||
{"host", 'h', "Connect to host.", &host, &host, 0, GET_STR,
|
||||
@ -195,6 +206,9 @@ static struct my_option my_long_options[] =
|
||||
"Password to use when connecting to server. If password is not given, it's "
|
||||
"solicited on the tty.",
|
||||
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
|
||||
(uchar**) &opt_plugin_dir, (uchar**) &opt_plugin_dir, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
|
@ -122,6 +122,7 @@ static char *host= NULL, *opt_password= NULL, *user= NULL,
|
||||
*pre_system= NULL,
|
||||
*post_system= NULL,
|
||||
*opt_mysql_unix_port= NULL;
|
||||
static char *opt_plugin_dir= 0, *opt_default_auth= 0;
|
||||
|
||||
const char *delimiter= "\n";
|
||||
|
||||
@ -338,6 +339,12 @@ int main(int argc, char **argv)
|
||||
#endif
|
||||
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, default_charset);
|
||||
|
||||
if (opt_plugin_dir && *opt_plugin_dir)
|
||||
mysql_options(&mysql, MYSQL_PLUGIN_DIR, opt_plugin_dir);
|
||||
|
||||
if (opt_default_auth && *opt_default_auth)
|
||||
mysql_options(&mysql, MYSQL_DEFAULT_AUTH, opt_default_auth);
|
||||
|
||||
if (!opt_only_print)
|
||||
{
|
||||
if (!(mysql_real_connect(&mysql, host, user, opt_password,
|
||||
@ -581,6 +588,10 @@ static struct my_option my_long_options[] =
|
||||
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"debug-info", 'T', "Print some debug info at exit.", &debug_info_flag,
|
||||
&debug_info_flag, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"default_auth", OPT_DEFAULT_AUTH,
|
||||
"Default authentication client-side plugin to use.",
|
||||
(uchar**) &opt_default_auth, (uchar**) &opt_default_auth, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"delimiter", 'F',
|
||||
"Delimiter to use in SQL statements supplied in file or command line.",
|
||||
&delimiter, &delimiter, 0, GET_STR, REQUIRED_ARG,
|
||||
@ -620,6 +631,9 @@ static struct my_option my_long_options[] =
|
||||
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
|
||||
(uchar**) &opt_plugin_dir, (uchar**) &opt_plugin_dir, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection.", &opt_mysql_port,
|
||||
&opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0,
|
||||
0},
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||
# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -13,17 +13,19 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
#Charsets and collations
|
||||
# Charsets and collations
|
||||
IF(NOT DEFAULT_CHARSET)
|
||||
SET(DEFAULT_CHARSET "latin1")
|
||||
SET(DEFAULT_CHARSET "latin1")
|
||||
ENDIF()
|
||||
|
||||
IF(NOT DEFAULT_COLLATIONS)
|
||||
SET(DEFAULT_COLLATION "latin1_swedish_ci")
|
||||
IF(NOT DEFAULT_COLLATION)
|
||||
SET(DEFAULT_COLLATION "latin1_swedish_ci")
|
||||
ENDIF()
|
||||
|
||||
SET(CHARSETS ${DEFAULT_CHARSET} latin1 utf8 utf8mb4)
|
||||
SET(CHARSETS_COMPLEX big5 cp1250 cp932 eucjpms euckr gb2312 gbk latin1 latin2 sjis tis620 ucs2 ujis utf8 utf8mb4 utf16 utf32)
|
||||
SET(CHARSETS_COMPLEX
|
||||
big5 cp1250 cp932 eucjpms euckr gb2312 gbk latin1 latin2
|
||||
sjis tis620 ucs2 ujis utf8 utf8mb4 utf16 utf32)
|
||||
|
||||
SET(CHARSETS_AVAILABLE
|
||||
binary armscii8 ascii big5 cp1250 cp1251 cp1256 cp1257
|
||||
|
@ -1,6 +1,5 @@
|
||||
/* Copyright (C) 2009, 2011, Oracle and/or its affiliates. All rights
|
||||
reserved
|
||||
|
||||
/* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
@ -516,8 +515,8 @@
|
||||
#cmakedefine CYBOZU 1
|
||||
|
||||
/* Character sets and collations */
|
||||
#cmakedefine MYSQL_DEFAULT_CHARSET_NAME "latin1"
|
||||
#cmakedefine MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci"
|
||||
#cmakedefine MYSQL_DEFAULT_CHARSET_NAME "@MYSQL_DEFAULT_CHARSET_NAME@"
|
||||
#cmakedefine MYSQL_DEFAULT_COLLATION_NAME "@MYSQL_DEFAULT_COLLATION_NAME@"
|
||||
|
||||
#cmakedefine USE_MB 1
|
||||
#cmakedefine USE_MB_IDENT 1
|
||||
|
@ -193,7 +193,7 @@ int main(int argc, char **argv)
|
||||
}
|
||||
|
||||
for (argument= arguments+1 ; *argument ; argument++)
|
||||
if (*argument != args_separator) /* skip arguments separator */
|
||||
if (!my_getopt_is_args_separator(*argument)) /* skip arguments separator */
|
||||
puts(*argument);
|
||||
my_free(load_default_groups);
|
||||
free_defaults(arguments);
|
||||
|
@ -819,7 +819,8 @@ extern void *memdup_root(MEM_ROOT *root,const void *str, size_t len);
|
||||
extern int get_defaults_options(int argc, char **argv,
|
||||
char **defaults, char **extra_defaults,
|
||||
char **group_suffix);
|
||||
extern const char *args_separator;
|
||||
extern my_bool my_getopt_use_args_separator;
|
||||
extern my_bool my_getopt_is_args_separator(const char* arg);
|
||||
extern int my_load_defaults(const char *conf_file, const char **groups,
|
||||
int *argc, char ***argv, const char ***);
|
||||
extern int load_defaults(const char *conf_file, const char **groups,
|
||||
|
@ -10,9 +10,7 @@ innodb.innodb_information_schema # Bug#48883 2010-05-11 alik Test "innod
|
||||
main.func_math @freebsd # Bug#43020 2010-05-04 alik main.func_math fails on FreeBSD in PB2
|
||||
main.gis # Bug#52208 2010-11-24 alik gis fails on some platforms (Solaris, HP-UX, Linux)
|
||||
main.gis-rtree @freebsd # Bug#38965 2010-05-04 alik test cases gis-rtree, type_float, type_newdecimal fail in embedded server
|
||||
main.information_schema # Bug#47449 2009-09-19 alik main.information_schema and innodb.innodb_information_schema fail sporadically
|
||||
main.lock_multi_bug38499 # Bug#47448 2009-09-19 alik main.lock_multi_bug38499 times out sporadically
|
||||
main.lowercase_table2 @darwin # Bug#55509 2010-07-26 alik main.lowercase_table2 fails on Mac OSX (again)
|
||||
main.outfile_loaddata @solaris # Bug#46895 2010-01-20 alik Test "outfile_loaddata" fails (reproducible)
|
||||
main.signal_demo3 @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
||||
main.sp @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
||||
|
17
mysql-test/extra/rpl_tests/rpl_show_binlog_events.inc
Normal file
17
mysql-test/extra/rpl_tests/rpl_show_binlog_events.inc
Normal file
@ -0,0 +1,17 @@
|
||||
# Include file for rpl_show_relaylog_events.inc
|
||||
|
||||
--let $log_type= BINLOG
|
||||
if ($is_relay_log) {
|
||||
--let $log_type= RELAYLOG
|
||||
}
|
||||
--let $args=
|
||||
if ($binlog_file != '') {
|
||||
--let $args= IN <FILE>
|
||||
}
|
||||
if ($binlog_limit) {
|
||||
--let $args= $args LIMIT $binlog_limit
|
||||
}
|
||||
--echo ******** [$CURRENT_CONNECTION] SHOW $log_type EVENTS $args ********
|
||||
--source include/show_events.inc
|
||||
|
||||
|
@ -0,0 +1,11 @@
|
||||
# Include file for rpl_show_log_events.inc
|
||||
|
||||
--let $binlog_limit=
|
||||
--source extra/rpl_tests/rpl_show_binlog_events.inc
|
||||
--let $binlog_limit= 1
|
||||
--source extra/rpl_tests/rpl_show_binlog_events.inc
|
||||
--let $binlog_limit= 1,3
|
||||
--source extra/rpl_tests/rpl_show_binlog_events.inc
|
||||
--let $binlog_limit=
|
||||
--let $binlog_file=
|
||||
--source extra/rpl_tests/rpl_show_binlog_events.inc
|
@ -1,103 +1,62 @@
|
||||
-- connection master
|
||||
-- source include/rpl_reset.inc
|
||||
|
||||
-- connection master
|
||||
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
INSERT INTO t1 VALUES (2);
|
||||
INSERT INTO t1 VALUES (3);
|
||||
INSERT INTO t1 VALUES (4);
|
||||
INSERT INTO t1 VALUES (5);
|
||||
INSERT INTO t1 VALUES (6);
|
||||
|
||||
-- echo [MASTER] ********* SOW BINLOG EVENTS IN ... *********
|
||||
-- source include/show_binlog_events.inc
|
||||
# PART I
|
||||
#
|
||||
# SHOWs contents of binary logs on the master and both, binary and
|
||||
# relay logs, on the slave.
|
||||
#
|
||||
|
||||
-- echo [MASTER] ********* SOW BINLOG EVENTS *********
|
||||
let $binlog_file= ;
|
||||
-- source include/show_binlog_events.inc
|
||||
--let $is_relay_log= 0
|
||||
--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--source extra/rpl_tests/rpl_show_log_events_with_varying_options.inc
|
||||
|
||||
-- echo [MASTER] ********* SOW BINLOG EVENTS ... LIMIT rows *********
|
||||
let $binlog_limit= 3;
|
||||
-- source include/show_binlog_events.inc
|
||||
--sync_slave_with_master
|
||||
--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--source extra/rpl_tests/rpl_show_log_events_with_varying_options.inc
|
||||
|
||||
-- echo [MASTER] ********* SOW BINLOG EVENTS ... LIMIT offset,rows *********
|
||||
let $binlog_limit= 1,4;
|
||||
-- source include/show_binlog_events.inc
|
||||
--let $is_relay_log= 1
|
||||
--let $binlog_file= query_get_value(SHOW SLAVE STATUS, Relay_Log_File, 1)
|
||||
--source extra/rpl_tests/rpl_show_log_events_with_varying_options.inc
|
||||
|
||||
# clear show_binlog_event/show_relaylog_events parameters
|
||||
let $binlog_limit= ;
|
||||
|
||||
-- sync_slave_with_master
|
||||
|
||||
-- echo [SLAVE] ********* SOW BINLOG EVENTS IN ... *********
|
||||
-- source include/show_binlog_events.inc
|
||||
|
||||
-- echo [SLAVE] ********* SOW BINLOG EVENTS *********
|
||||
let $binlog_file= ;
|
||||
-- source include/show_binlog_events.inc
|
||||
|
||||
-- echo [SLAVE] ********* SOW BINLOG EVENTS ... LIMIT rows *********
|
||||
let $binlog_limit= 3;
|
||||
-- source include/show_binlog_events.inc
|
||||
|
||||
-- echo [SLAVE] ********* SOW BINLOG EVENTS ... LIMIT offset,rows *********
|
||||
let $binlog_limit= 1,4;
|
||||
-- source include/show_binlog_events.inc
|
||||
|
||||
# clear show_binlog_event/show_relaylog_events parameters
|
||||
let $binlog_limit= ;
|
||||
|
||||
-- echo [SLAVE] ********* SOW RELAYLOG EVENTS IN ... *********
|
||||
let $binlog_file= query_get_value(SHOW SLAVE STATUS, Relay_Log_File, 1);
|
||||
-- source include/show_relaylog_events.inc
|
||||
|
||||
-- echo [SLAVE] ********* SOW RELAYLOG EVENTS *********
|
||||
let $binlog_file= ;
|
||||
-- source include/show_relaylog_events.inc
|
||||
|
||||
-- echo [MASTER] ********* SOW RELAYLOG EVENTS ... LIMIT rows *********
|
||||
let $binlog_file= query_get_value(SHOW SLAVE STATUS, Relay_Log_File, 1);
|
||||
let $binlog_limit= 3;
|
||||
-- source include/show_relaylog_events.inc
|
||||
|
||||
-- echo [MASTER] ********* SOW RELAYLOG EVENTS ... LIMIT offset,rows *********
|
||||
let $binlog_limit= 1,3;
|
||||
-- source include/show_relaylog_events.inc
|
||||
#
|
||||
# PART II
|
||||
#
|
||||
# Although this second part of the test may seem redudant it is
|
||||
# actually needed to assert that SHOW RELAYLOG EVENTS works properly
|
||||
# with respect to the ordering of the relay log in relay-log.index.
|
||||
#
|
||||
# If no file is specified with "IN" then first relay log file in
|
||||
# relay-log.index (ie, the oldest one) should be picked and its
|
||||
# contents displayed. The same happens for SHOW BINLOG EVENTS, so we
|
||||
# show them both. All in all, this is the reason for re-assert after
|
||||
# MASTER and SLAVE's FLUSH LOGS operations.
|
||||
#
|
||||
|
||||
FLUSH LOGS;
|
||||
let $binlog_file= query_get_value(SHOW SLAVE STATUS, Relay_Log_File, 1);
|
||||
|
||||
-- connection master
|
||||
FLUSH LOGS;
|
||||
DROP TABLE t1;
|
||||
|
||||
# clear show_binlog_event/show_relaylog_events parameters
|
||||
let $binlog_file= ;
|
||||
let $binlog_limit= ;
|
||||
--let $is_relay_log= 0
|
||||
--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--source extra/rpl_tests/rpl_show_log_events_with_varying_options.inc
|
||||
|
||||
-- echo [MASTER] ********* SOW BINLOG EVENTS IN ... *********
|
||||
let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1);
|
||||
-- source include/show_binlog_events.inc
|
||||
--sync_slave_with_master
|
||||
--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--source extra/rpl_tests/rpl_show_log_events_with_varying_options.inc
|
||||
|
||||
-- echo [MASTER] ********* SOW BINLOG EVENTS *********
|
||||
let $binlog_file= ;
|
||||
-- source include/show_binlog_events.inc
|
||||
--let $is_relay_log= 1
|
||||
--let $binlog_file= query_get_value(SHOW SLAVE STATUS, Relay_Log_File, 1)
|
||||
--source extra/rpl_tests/rpl_show_log_events_with_varying_options.inc
|
||||
|
||||
-- sync_slave_with_master
|
||||
|
||||
-- echo [SLAVE] ********* SOW BINLOG EVENTS IN ... *********
|
||||
let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1);
|
||||
-- source include/show_binlog_events.inc
|
||||
|
||||
-- echo [SLAVE] ********* SOW BINLOG EVENTS *********
|
||||
let $binlog_file= ;
|
||||
-- source include/show_binlog_events.inc
|
||||
|
||||
-- echo [SLAVE] ********* SOW RELAYLOG EVENTS IN ... *********
|
||||
-- source include/show_relaylog_events.inc
|
||||
|
||||
-- echo [SLAVE] ********* SOW RELAYLOG EVENTS *********
|
||||
let $binlog_file= ;
|
||||
-- source include/show_relaylog_events.inc
|
||||
|
||||
# clear show_binlog_event/show_relaylog_events parameters
|
||||
let $binlog_file= ;
|
||||
|
43
mysql-test/include/restart_slave_sql.inc
Normal file
43
mysql-test/include/restart_slave_sql.inc
Normal file
@ -0,0 +1,43 @@
|
||||
# ==== Purpose ====
|
||||
#
|
||||
# Provide a earier way to restart SQL thread when you want to stop sql thread
|
||||
# and then start it immediately.
|
||||
#
|
||||
# Sources stop_slave_sql.inc to stop SQL thread on the current connection.
|
||||
# Then issues START SLAVE SQL_THREAD and then waits until
|
||||
# the SQL threads have started, or until a timeout is reached.
|
||||
#
|
||||
# Please use this instead of 'STOP|START SLAVE SQL_THREAD', to reduce the risk of
|
||||
# test case bugs.
|
||||
#
|
||||
#
|
||||
# ==== Usage ====
|
||||
#
|
||||
# [--let $slave_timeout= NUMBER]
|
||||
# [--let $rpl_debug= 1]
|
||||
# --source include/restart_slave_sql.inc
|
||||
#
|
||||
# Parameters:
|
||||
# $slave_timeout
|
||||
# See include/wait_for_slave_param.inc
|
||||
#
|
||||
# $rpl_debug
|
||||
# See include/rpl_init.inc
|
||||
|
||||
|
||||
--let $include_filename= restart_slave.inc
|
||||
--source include/begin_include_file.inc
|
||||
|
||||
|
||||
if (!$rpl_debug)
|
||||
{
|
||||
--disable_query_log
|
||||
}
|
||||
|
||||
source include/stop_slave_sql.inc;
|
||||
START SLAVE SQL_THREAD;
|
||||
source include/wait_for_slave_sql_to_start.inc;
|
||||
|
||||
|
||||
--let $include_filename= restart_slave.inc
|
||||
--source include/end_include_file.inc
|
2
mysql-test/include/rpl_connection_master.inc
Normal file
2
mysql-test/include/rpl_connection_master.inc
Normal file
@ -0,0 +1,2 @@
|
||||
let $rpl_connection_name= master;
|
||||
source include/rpl_connection.inc;
|
2
mysql-test/include/rpl_connection_slave.inc
Normal file
2
mysql-test/include/rpl_connection_slave.inc
Normal file
@ -0,0 +1,2 @@
|
||||
let $rpl_connection_name= slave;
|
||||
source include/rpl_connection.inc;
|
2
mysql-test/include/rpl_connection_slave1.inc
Normal file
2
mysql-test/include/rpl_connection_slave1.inc
Normal file
@ -0,0 +1,2 @@
|
||||
let $rpl_connection_name= slave1;
|
||||
source include/rpl_connection.inc;
|
@ -45,7 +45,15 @@ if ($rpl_server_parameters)
|
||||
--source include/rpl_connection.inc
|
||||
|
||||
# Write file to make mysql-test-run.pl start up the server again
|
||||
--exec echo "$_rpl_start_server_command" > $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
|
||||
--let WRITE_TO_FILE= $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
|
||||
--let WRITE_TO_VAR= $_rpl_start_server_command
|
||||
perl;
|
||||
my $file= $ENV{'WRITE_TO_FILE'};
|
||||
my $var= $ENV{'WRITE_TO_VAR'};
|
||||
open WRITE_FILE, ">> $file" or die "Error opening $file: $!";
|
||||
print WRITE_FILE $var, "\n" or die "Error appending to $file: $!";
|
||||
close WRITE_FILE or die "Error closing $file: $!";
|
||||
EOF
|
||||
|
||||
--source include/rpl_reconnect.inc
|
||||
|
||||
|
@ -44,7 +44,9 @@ if ($rpl_debug)
|
||||
|
||||
# Write file to make mysql-test-run.pl expect the "crash", but don't start
|
||||
# it until it's told to
|
||||
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
|
||||
--append_file $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect
|
||||
wait
|
||||
EOF
|
||||
|
||||
# Send shutdown to the connected server and give
|
||||
# it 10 seconds to die before zapping it
|
||||
|
@ -74,6 +74,7 @@ let $_fake_relay_index= $_fake_datadir/$_fake_filename.index;
|
||||
let $_fake_relay_log_purge= `SELECT @@global.relay_log_purge`;
|
||||
|
||||
RESET SLAVE;
|
||||
let $_orphan_relay_file= query_get_value(SHOW SLAVE STATUS, Relay_Log_File, 1);
|
||||
|
||||
# Create relay log file.
|
||||
--copy_file $fake_relay_log $_fake_relay_log
|
||||
@ -102,6 +103,8 @@ RESET SLAVE;
|
||||
# Setup replication from existing relay log.
|
||||
eval CHANGE MASTER TO MASTER_HOST='dummy.localdomain', RELAY_LOG_FILE='$_fake_filename-fake.000001', RELAY_LOG_POS=4;
|
||||
|
||||
# remove the orphan log file (became spurious)
|
||||
-- remove_file $_fake_datadir/$_orphan_relay_file
|
||||
|
||||
--let $include_filename= setup_fake_relay_log.inc
|
||||
--source include/end_include_file.inc
|
||||
|
@ -21,9 +21,9 @@ insert into t1 values (1, 2, 'a&b a<b a>b');
|
||||
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<database name="test">
|
||||
<table_structure name="t1">
|
||||
<field Field="a&b" Type="int(11)" Null="YES" Key="" Extra="" />
|
||||
<field Field="a<b" Type="int(11)" Null="YES" Key="" Extra="" />
|
||||
<field Field="a>b" Type="text" Null="YES" Key="" Extra="" />
|
||||
<field Field="a&b" Type="int(11)" Null="YES" Key="" Extra="" Comment="" />
|
||||
<field Field="a<b" Type="int(11)" Null="YES" Key="" Extra="" Comment="" />
|
||||
<field Field="a>b" Type="text" Null="YES" Key="" Extra="" Comment="" />
|
||||
</table_structure>
|
||||
<table_data name="t1">
|
||||
<row>
|
||||
|
@ -1684,6 +1684,21 @@ ARMENIAN CAPIT ECH 2
|
||||
ARMENIAN CAPIT ZA 2
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Start of 5.1 tests
|
||||
#
|
||||
#
|
||||
# Bug#58371 Assertion failed: !s.uses_buffer_owned_by(this) with format string function
|
||||
#
|
||||
SET NAMES latin1;
|
||||
DO CONVERT(CAST(SUBSTRING_INDEX(FORMAT(1,'1111'), FORMAT('','Zpq'),1)
|
||||
AS BINARY(0)) USING utf8);
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: 'Zpq'
|
||||
Warning 1292 Truncated incorrect BINARY(0) value: '1.'
|
||||
#
|
||||
# End of 5.1 tests
|
||||
#
|
||||
#
|
||||
# Start of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
@ -182,4 +182,9 @@ INSERT INTO t2 VALUES (1), (2), (3);
|
||||
SELECT 1 FROM t2 JOIN t1 ON 1 LIKE a GROUP BY a;
|
||||
1
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# Bug#59149 valgrind warnings with "like .. escape .." function
|
||||
#
|
||||
SELECT '' LIKE '1' ESCAPE COUNT(1);
|
||||
ERROR HY000: Incorrect arguments to ESCAPE
|
||||
End of 5.1 tests
|
||||
|
@ -641,3 +641,18 @@ INSERT INTO t1 (SELECT -pi());
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'a' at row 1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #59241 invalid memory read
|
||||
# in do_div_mod with doubly assigned variables
|
||||
#
|
||||
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
|
||||
#
|
||||
# Bug #59498 div function broken in mysql-trunk
|
||||
#
|
||||
SELECT 1 div null;
|
||||
1 div null
|
||||
NULL
|
||||
|
@ -2,3 +2,11 @@ mysqld is alive
|
||||
mysqladmin: unknown variable 'database=db1'
|
||||
Warning: mysqladmin: unknown variable 'loose-database=db2'
|
||||
mysqld is alive
|
||||
#
|
||||
# Bug#58221 : mysqladmin --sleep=x --count=x keeps looping
|
||||
#
|
||||
# Executing mysqladmin with --sleep=1 and --count=2.
|
||||
# Done.
|
||||
# Displaying the output :
|
||||
mysqld is alive
|
||||
mysqld is alive
|
||||
|
@ -20,6 +20,7 @@ The following options may be given as the first argument:
|
||||
Offset added to Auto-increment columns. Used when
|
||||
auto-increment-increment != 1
|
||||
--autocommit Set default value for autocommit (0 or 1)
|
||||
(Defaults to on; use --skip-autocommit to disable.)
|
||||
--automatic-sp-privileges
|
||||
Creating and dropping stored procedures alters ACLs
|
||||
(Defaults to on; use --skip-automatic-sp-privileges to disable.)
|
||||
@ -732,6 +733,7 @@ abort-slave-event-count 0
|
||||
allow-suspicious-udfs FALSE
|
||||
auto-increment-increment 1
|
||||
auto-increment-offset 1
|
||||
autocommit TRUE
|
||||
automatic-sp-privileges TRUE
|
||||
back-log 50
|
||||
big-tables FALSE
|
||||
|
@ -20,6 +20,7 @@ The following options may be given as the first argument:
|
||||
Offset added to Auto-increment columns. Used when
|
||||
auto-increment-increment != 1
|
||||
--autocommit Set default value for autocommit (0 or 1)
|
||||
(Defaults to on; use --skip-autocommit to disable.)
|
||||
--automatic-sp-privileges
|
||||
Creating and dropping stored procedures alters ACLs
|
||||
(Defaults to on; use --skip-automatic-sp-privileges to disable.)
|
||||
@ -736,6 +737,7 @@ abort-slave-event-count 0
|
||||
allow-suspicious-udfs FALSE
|
||||
auto-increment-increment 1
|
||||
auto-increment-offset 1
|
||||
autocommit TRUE
|
||||
automatic-sp-privileges TRUE
|
||||
back-log 50
|
||||
big-tables FALSE
|
||||
|
@ -14,7 +14,7 @@ INSERT INTO t1 VALUES (1), (2);
|
||||
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<database name="test">
|
||||
<table_structure name="t1">
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="MUL" Extra="" />
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="MUL" Extra="" Comment="" />
|
||||
<key Table="t1" Non_unique="1" Key_name="a" Seq_in_index="1" Column_name="a" Collation="A" Null="YES" Index_type="BTREE" Comment="" Index_comment="" />
|
||||
</table_structure>
|
||||
<table_data name="t1">
|
||||
@ -150,9 +150,9 @@ INSERT INTO t1 VALUES (1, "test", "tes"), (2, "TEST", "TES");
|
||||
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<database name="test">
|
||||
<table_structure name="t1">
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
|
||||
<field Field="b" Type="text" Null="YES" Key="" Extra="" />
|
||||
<field Field="c" Type="varchar(3)" Null="YES" Key="" Extra="" />
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" Comment="" />
|
||||
<field Field="b" Type="text" Null="YES" Key="" Extra="" Comment="" />
|
||||
<field Field="c" Type="varchar(3)" Null="YES" Key="" Extra="" Comment="" />
|
||||
</table_structure>
|
||||
<table_data name="t1">
|
||||
<row>
|
||||
@ -178,7 +178,7 @@ INSERT INTO t1 VALUES ("1\""), ("\"2");
|
||||
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<database name="test">
|
||||
<table_structure name="t1">
|
||||
<field Field="a"b"" Type="char(2)" Null="YES" Key="" Extra="" />
|
||||
<field Field="a"b"" Type="char(2)" Null="YES" Key="" Extra="" Comment="" />
|
||||
</table_structure>
|
||||
<table_data name="t1">
|
||||
<row>
|
||||
@ -1612,10 +1612,10 @@ CREATE TABLE `t2` (
|
||||
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<database name="mysqldump_test_db">
|
||||
<table_structure name="t1">
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" Comment="" />
|
||||
</table_structure>
|
||||
<table_structure name="t2">
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" Comment="" />
|
||||
</table_structure>
|
||||
</database>
|
||||
</mysqldump>
|
||||
@ -1623,10 +1623,10 @@ CREATE TABLE `t2` (
|
||||
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<database name="mysqldump_test_db">
|
||||
<table_structure name="t1">
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" Comment="" />
|
||||
</table_structure>
|
||||
<table_structure name="t2">
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" Comment="" />
|
||||
</table_structure>
|
||||
</database>
|
||||
</mysqldump>
|
||||
@ -3644,8 +3644,8 @@ INSERT INTO t1 VALUES(1,0xff00fef0);
|
||||
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<database name="test">
|
||||
<table_structure name="t1">
|
||||
<field Field="f1" Type="int(10)" Null="YES" Key="" Extra="" />
|
||||
<field Field="data" Type="mediumblob" Null="YES" Key="" Extra="" />
|
||||
<field Field="f1" Type="int(10)" Null="YES" Key="" Extra="" Comment="" />
|
||||
<field Field="data" Type="mediumblob" Null="YES" Key="" Extra="" Comment="" />
|
||||
</table_structure>
|
||||
<table_data name="t1">
|
||||
<row>
|
||||
@ -4576,5 +4576,20 @@ LENGTH(a)
|
||||
800
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# Bug #13618 : mysqldump --xml ommit comment on table field
|
||||
#
|
||||
CREATE TABLE `comment_table` (i INT COMMENT 'FIELD COMMENT') COMMENT = 'TABLE COMMENT';
|
||||
<?xml version="1.0"?>
|
||||
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<database name="test">
|
||||
<table_structure name="comment_table">
|
||||
<field Field="i" Type="int(11)" Null="YES" Key="" Extra="" Comment="FIELD COMMENT" />
|
||||
</table_structure>
|
||||
<table_data name="comment_table">
|
||||
</table_data>
|
||||
</database>
|
||||
</mysqldump>
|
||||
DROP TABLE `comment_table`;
|
||||
#
|
||||
# End of 5.1 tests
|
||||
#
|
||||
|
@ -319,7 +319,7 @@ Proxied_user
|
||||
With_grant 1
|
||||
FLUSH PRIVILEGES;
|
||||
#
|
||||
# Bug#58139 : default-auth option not recognized in MySQL standardi
|
||||
# Bug#58139 : default-auth option not recognized in MySQL standard
|
||||
# command line clients
|
||||
#
|
||||
# Executing 'mysql'
|
||||
@ -328,4 +328,6 @@ FLUSH PRIVILEGES;
|
||||
# Executing 'mysqladmin'
|
||||
mysqld is alive
|
||||
# Executing 'mysqldump'
|
||||
# Executing 'mysql_upgrade'
|
||||
The --upgrade-system-tables option was used, databases won't be touched.
|
||||
End of 5.5 tests
|
||||
|
@ -1325,6 +1325,17 @@ Tables_in_test Table_type
|
||||
été BASE TABLE
|
||||
drop table `été`;
|
||||
set names latin1;
|
||||
#
|
||||
# Bug#4374 SHOW TABLE STATUS FROM ignores collation_connection
|
||||
# Character set: Latin-1 (ISO-8859-1)
|
||||
#
|
||||
SET NAMES latin1;
|
||||
CREATE DATABASE `ä`;
|
||||
CREATE TABLE `ä`.`ä` (a int) ENGINE=Memory;
|
||||
SHOW TABLE STATUS FROM `ä` LIKE 'ä';
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
ä MEMORY 10 Fixed 0 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
|
||||
DROP DATABASE `ä`;
|
||||
show columns from `#mysql50#????????`;
|
||||
Got one of the listed errors
|
||||
DROP TABLE IF EXISTS t1;
|
||||
|
@ -1113,6 +1113,17 @@ SELECT UPDATEXML(NULL, (LPAD(0.1111E-15, '2011', 1)), 1);
|
||||
ERROR 22007: Illegal double '111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' value found during parsing
|
||||
SELECT EXTRACTVALUE('', LPAD(0.1111E-15, '2011', 1));
|
||||
ERROR 22007: Illegal double '111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' value found during parsing
|
||||
#
|
||||
# Bug #44332 my_xml_scan reads behind the end of buffer
|
||||
#
|
||||
SELECT UPDATEXML(CONVERT(_latin1'<' USING utf8),'1','1');
|
||||
UPDATEXML(CONVERT(_latin1'<' USING utf8),'1','1')
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1525 Incorrect XML value: 'parse error at line 1 pos 2: END-OF-INPUT unexpected (ident or '/' wanted)'
|
||||
SELECT UPDATEXML(CONVERT(_latin1'<!--' USING utf8),'1','1');
|
||||
UPDATEXML(CONVERT(_latin1'<!--' USING utf8),'1','1')
|
||||
NULL
|
||||
End of 5.1 tests
|
||||
#
|
||||
# Start of 5.5 tests
|
||||
|
@ -1,13 +1,37 @@
|
||||
include/master-slave.inc
|
||||
[connection master]
|
||||
include/rpl_reset.inc
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
INSERT INTO t1 VALUES (2);
|
||||
INSERT INTO t1 VALUES (3);
|
||||
INSERT INTO t1 VALUES (4);
|
||||
INSERT INTO t1 VALUES (5);
|
||||
INSERT INTO t1 VALUES (6);
|
||||
[MASTER] ********* SOW BINLOG EVENTS IN ... *********
|
||||
******** [master] SHOW BINLOG EVENTS IN <FILE> ********
|
||||
show binlog events in 'master-bin.000001' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
******** [master] SHOW BINLOG EVENTS IN <FILE> LIMIT 1 ********
|
||||
show binlog events in 'master-bin.000001' from <binlog_start> limit 1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
******** [master] SHOW BINLOG EVENTS IN <FILE> LIMIT 1,3 ********
|
||||
show binlog events in 'master-bin.000001' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
******** [master] SHOW BINLOG EVENTS ********
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
@ -23,60 +47,33 @@ master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
[MASTER] ********* SOW BINLOG EVENTS *********
|
||||
show binlog events from <binlog_start>;
|
||||
******** [slave] SHOW BINLOG EVENTS IN <FILE> ********
|
||||
show binlog events in 'slave-bin.000001' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
[MASTER] ********* SOW BINLOG EVENTS ... LIMIT rows *********
|
||||
show binlog events from <binlog_start> limit 3;
|
||||
slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
******** [slave] SHOW BINLOG EVENTS IN <FILE> LIMIT 1 ********
|
||||
show binlog events in 'slave-bin.000001' from <binlog_start> limit 1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
[MASTER] ********* SOW BINLOG EVENTS ... LIMIT offset,rows *********
|
||||
show binlog events from <binlog_start> limit 1,4;
|
||||
slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
******** [slave] SHOW BINLOG EVENTS IN <FILE> LIMIT 1,3 ********
|
||||
show binlog events in 'slave-bin.000001' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
[SLAVE] ********* SOW BINLOG EVENTS IN ... *********
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
******** [slave] SHOW BINLOG EVENTS ********
|
||||
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)
|
||||
@ -92,113 +89,53 @@ slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
[SLAVE] ********* SOW BINLOG EVENTS *********
|
||||
show binlog events from <binlog_start>;
|
||||
******** [slave] SHOW RELAYLOG EVENTS IN <FILE> ********
|
||||
show relaylog events in 'slave-relay-bin.000003' 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 # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
[SLAVE] ********* SOW BINLOG EVENTS ... LIMIT rows *********
|
||||
show binlog events from <binlog_start> limit 3;
|
||||
slave-relay-bin.000003 # Rotate # # master-bin.000001;pos=4
|
||||
slave-relay-bin.000003 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000003 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
slave-relay-bin.000003 # Query # # BEGIN
|
||||
slave-relay-bin.000003 # Table_map # # table_id: # (test.t1)
|
||||
slave-relay-bin.000003 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-relay-bin.000003 # Query # # COMMIT
|
||||
slave-relay-bin.000003 # Query # # BEGIN
|
||||
slave-relay-bin.000003 # Table_map # # table_id: # (test.t1)
|
||||
slave-relay-bin.000003 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-relay-bin.000003 # Query # # COMMIT
|
||||
slave-relay-bin.000003 # Query # # BEGIN
|
||||
slave-relay-bin.000003 # Table_map # # table_id: # (test.t1)
|
||||
slave-relay-bin.000003 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-relay-bin.000003 # Query # # COMMIT
|
||||
******** [slave] SHOW RELAYLOG EVENTS IN <FILE> LIMIT 1 ********
|
||||
show relaylog events in 'slave-relay-bin.000003' from <binlog_start> limit 1;
|
||||
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 # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
[SLAVE] ********* SOW BINLOG EVENTS ... LIMIT offset,rows *********
|
||||
show binlog events from <binlog_start> limit 1,4;
|
||||
slave-relay-bin.000003 # Rotate # # master-bin.000001;pos=4
|
||||
******** [slave] SHOW RELAYLOG EVENTS IN <FILE> LIMIT 1,3 ********
|
||||
show relaylog events in 'slave-relay-bin.000003' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
[SLAVE] ********* SOW RELAYLOG EVENTS IN ... *********
|
||||
show relaylog events in 'slave-relay-bin.000002' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000002 # Rotate # # master-bin.000001;pos=4
|
||||
slave-relay-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000002 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Table_map # # table_id: # (test.t1)
|
||||
slave-relay-bin.000002 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-relay-bin.000002 # Query # # COMMIT
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Table_map # # table_id: # (test.t1)
|
||||
slave-relay-bin.000002 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-relay-bin.000002 # Query # # COMMIT
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Table_map # # table_id: # (test.t1)
|
||||
slave-relay-bin.000002 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-relay-bin.000002 # Query # # COMMIT
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Table_map # # table_id: # (test.t1)
|
||||
slave-relay-bin.000002 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-relay-bin.000002 # Query # # COMMIT
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Table_map # # table_id: # (test.t1)
|
||||
slave-relay-bin.000002 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-relay-bin.000002 # Query # # COMMIT
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Table_map # # table_id: # (test.t1)
|
||||
slave-relay-bin.000002 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-relay-bin.000002 # Query # # COMMIT
|
||||
[SLAVE] ********* SOW RELAYLOG EVENTS *********
|
||||
slave-relay-bin.000003 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000003 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
slave-relay-bin.000003 # Query # # BEGIN
|
||||
******** [slave] SHOW RELAYLOG EVENTS ********
|
||||
show relaylog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000001 # Rotate # # slave-relay-bin.000002;pos=4
|
||||
[MASTER] ********* SOW RELAYLOG EVENTS ... LIMIT rows *********
|
||||
show relaylog events in 'slave-relay-bin.000002' from <binlog_start> limit 3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000002 # Rotate # # master-bin.000001;pos=4
|
||||
slave-relay-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000002 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
[MASTER] ********* SOW RELAYLOG EVENTS ... LIMIT offset,rows *********
|
||||
show relaylog events in 'slave-relay-bin.000002' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000002 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Rotate # # slave-relay-bin.000003;pos=4
|
||||
FLUSH LOGS;
|
||||
FLUSH LOGS;
|
||||
DROP TABLE t1;
|
||||
[MASTER] ********* SOW BINLOG EVENTS IN ... *********
|
||||
******** [master] SHOW BINLOG EVENTS IN <FILE> ********
|
||||
show binlog events in 'master-bin.000002' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000002 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
[MASTER] ********* SOW BINLOG EVENTS *********
|
||||
******** [master] SHOW BINLOG EVENTS IN <FILE> LIMIT 1 ********
|
||||
show binlog events in 'master-bin.000002' from <binlog_start> limit 1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000002 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
******** [master] SHOW BINLOG EVENTS IN <FILE> LIMIT 1,3 ********
|
||||
show binlog events in 'master-bin.000002' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
******** [master] SHOW BINLOG EVENTS ********
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
@ -214,24 +151,19 @@ master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Rotate # # master-bin.000002;pos=4
|
||||
[SLAVE] ********* SOW BINLOG EVENTS IN ... *********
|
||||
******** [slave] SHOW BINLOG EVENTS IN <FILE> ********
|
||||
show binlog events in 'slave-bin.000002' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-bin.000002 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
[SLAVE] ********* SOW BINLOG EVENTS *********
|
||||
******** [slave] SHOW BINLOG EVENTS IN <FILE> LIMIT 1 ********
|
||||
show binlog events in 'slave-bin.000002' from <binlog_start> limit 1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-bin.000002 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
******** [slave] SHOW BINLOG EVENTS IN <FILE> LIMIT 1,3 ********
|
||||
show binlog events in 'slave-bin.000002' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
******** [slave] SHOW BINLOG EVENTS ********
|
||||
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)
|
||||
@ -247,27 +179,25 @@ slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Rotate # # slave-bin.000002;pos=4
|
||||
[SLAVE] ********* SOW RELAYLOG EVENTS IN ... *********
|
||||
******** [slave] SHOW RELAYLOG EVENTS IN <FILE> ********
|
||||
show relaylog events in 'slave-relay-bin.000006' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000006 # Rotate # # master-bin.000002;pos=4
|
||||
slave-relay-bin.000006 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000006 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
******** [slave] SHOW RELAYLOG EVENTS IN <FILE> LIMIT 1 ********
|
||||
show relaylog events in 'slave-relay-bin.000006' from <binlog_start> limit 1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000006 # Rotate # # master-bin.000002;pos=4
|
||||
******** [slave] SHOW RELAYLOG EVENTS IN <FILE> LIMIT 1,3 ********
|
||||
show relaylog events in 'slave-relay-bin.000006' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000006 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000006 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
******** [slave] SHOW RELAYLOG EVENTS ********
|
||||
show relaylog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000004 # Rotate # # master-bin.000002;pos=4
|
||||
slave-relay-bin.000004 # Rotate # # slave-relay-bin.000005;pos=4
|
||||
[SLAVE] ********* SOW RELAYLOG EVENTS *********
|
||||
show relaylog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000004 # Rotate # # master-bin.000002;pos=4
|
||||
slave-relay-bin.000004 # Rotate # # slave-relay-bin.000005;pos=4
|
||||
slave-relay-bin.000005 # Rotate # # master-bin.000002;pos=4
|
||||
slave-relay-bin.000005 # Rotate # # slave-relay-bin.000006;pos=4
|
||||
include/rpl_end.inc
|
||||
|
@ -1,13 +1,34 @@
|
||||
include/master-slave.inc
|
||||
[connection master]
|
||||
include/rpl_reset.inc
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
INSERT INTO t1 VALUES (2);
|
||||
INSERT INTO t1 VALUES (3);
|
||||
INSERT INTO t1 VALUES (4);
|
||||
INSERT INTO t1 VALUES (5);
|
||||
INSERT INTO t1 VALUES (6);
|
||||
[MASTER] ********* SOW BINLOG EVENTS IN ... *********
|
||||
******** [master] SHOW BINLOG EVENTS IN <FILE> ********
|
||||
show binlog events in 'master-bin.000001' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
******** [master] SHOW BINLOG EVENTS IN <FILE> LIMIT 1 ********
|
||||
show binlog events in 'master-bin.000001' from <binlog_start> limit 1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
******** [master] SHOW BINLOG EVENTS IN <FILE> LIMIT 1,3 ********
|
||||
show binlog events in 'master-bin.000001' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
******** [master] SHOW BINLOG EVENTS ********
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
@ -20,51 +41,30 @@ master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (5)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (6)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
[MASTER] ********* SOW BINLOG EVENTS *********
|
||||
show binlog events from <binlog_start>;
|
||||
******** [slave] SHOW BINLOG EVENTS IN <FILE> ********
|
||||
show binlog events in 'slave-bin.000001' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (5)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (6)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
[MASTER] ********* SOW BINLOG EVENTS ... LIMIT rows *********
|
||||
show binlog events from <binlog_start> limit 3;
|
||||
slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
******** [slave] SHOW BINLOG EVENTS IN <FILE> LIMIT 1 ********
|
||||
show binlog events in 'slave-bin.000001' from <binlog_start> limit 1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1)
|
||||
[MASTER] ********* SOW BINLOG EVENTS ... LIMIT offset,rows *********
|
||||
show binlog events from <binlog_start> limit 1,4;
|
||||
slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
******** [slave] SHOW BINLOG EVENTS IN <FILE> LIMIT 1,3 ********
|
||||
show binlog events in 'slave-bin.000001' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
[SLAVE] ********* SOW BINLOG EVENTS IN ... *********
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
******** [slave] SHOW BINLOG EVENTS ********
|
||||
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)
|
||||
@ -77,98 +77,50 @@ slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (5)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (6)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
[SLAVE] ********* SOW BINLOG EVENTS *********
|
||||
show binlog events from <binlog_start>;
|
||||
******** [slave] SHOW RELAYLOG EVENTS IN <FILE> ********
|
||||
show relaylog events in 'slave-relay-bin.000003' 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 # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (5)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (6)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
[SLAVE] ********* SOW BINLOG EVENTS ... LIMIT rows *********
|
||||
show binlog events from <binlog_start> limit 3;
|
||||
slave-relay-bin.000003 # Rotate # # master-bin.000001;pos=4
|
||||
slave-relay-bin.000003 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000003 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
slave-relay-bin.000003 # Query # # BEGIN
|
||||
slave-relay-bin.000003 # Query # # use `test`; INSERT INTO t1 VALUES (1)
|
||||
slave-relay-bin.000003 # Query # # COMMIT
|
||||
slave-relay-bin.000003 # Query # # BEGIN
|
||||
slave-relay-bin.000003 # Query # # use `test`; INSERT INTO t1 VALUES (2)
|
||||
slave-relay-bin.000003 # Query # # COMMIT
|
||||
slave-relay-bin.000003 # Query # # BEGIN
|
||||
slave-relay-bin.000003 # Query # # use `test`; INSERT INTO t1 VALUES (3)
|
||||
slave-relay-bin.000003 # Query # # COMMIT
|
||||
******** [slave] SHOW RELAYLOG EVENTS IN <FILE> LIMIT 1 ********
|
||||
show relaylog events in 'slave-relay-bin.000003' from <binlog_start> limit 1;
|
||||
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 # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1)
|
||||
[SLAVE] ********* SOW BINLOG EVENTS ... LIMIT offset,rows *********
|
||||
show binlog events from <binlog_start> limit 1,4;
|
||||
slave-relay-bin.000003 # Rotate # # master-bin.000001;pos=4
|
||||
******** [slave] SHOW RELAYLOG EVENTS IN <FILE> LIMIT 1,3 ********
|
||||
show relaylog events in 'slave-relay-bin.000003' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
[SLAVE] ********* SOW RELAYLOG EVENTS IN ... *********
|
||||
show relaylog events in 'slave-relay-bin.000002' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000002 # Rotate # # master-bin.000001;pos=4
|
||||
slave-relay-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000002 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (1)
|
||||
slave-relay-bin.000002 # Query # # COMMIT
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (2)
|
||||
slave-relay-bin.000002 # Query # # COMMIT
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (3)
|
||||
slave-relay-bin.000002 # Query # # COMMIT
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (4)
|
||||
slave-relay-bin.000002 # Query # # COMMIT
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (5)
|
||||
slave-relay-bin.000002 # Query # # COMMIT
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (6)
|
||||
slave-relay-bin.000002 # Query # # COMMIT
|
||||
[SLAVE] ********* SOW RELAYLOG EVENTS *********
|
||||
slave-relay-bin.000003 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000003 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
slave-relay-bin.000003 # Query # # BEGIN
|
||||
******** [slave] SHOW RELAYLOG EVENTS ********
|
||||
show relaylog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000001 # Rotate # # slave-relay-bin.000002;pos=4
|
||||
[MASTER] ********* SOW RELAYLOG EVENTS ... LIMIT rows *********
|
||||
show relaylog events in 'slave-relay-bin.000002' from <binlog_start> limit 3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000002 # Rotate # # master-bin.000001;pos=4
|
||||
slave-relay-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000002 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
[MASTER] ********* SOW RELAYLOG EVENTS ... LIMIT offset,rows *********
|
||||
show relaylog events in 'slave-relay-bin.000002' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000002 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
slave-relay-bin.000002 # Query # # BEGIN
|
||||
slave-relay-bin.000002 # Rotate # # slave-relay-bin.000003;pos=4
|
||||
FLUSH LOGS;
|
||||
FLUSH LOGS;
|
||||
DROP TABLE t1;
|
||||
[MASTER] ********* SOW BINLOG EVENTS IN ... *********
|
||||
******** [master] SHOW BINLOG EVENTS IN <FILE> ********
|
||||
show binlog events in 'master-bin.000002' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000002 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
[MASTER] ********* SOW BINLOG EVENTS *********
|
||||
******** [master] SHOW BINLOG EVENTS IN <FILE> LIMIT 1 ********
|
||||
show binlog events in 'master-bin.000002' from <binlog_start> limit 1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000002 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
******** [master] SHOW BINLOG EVENTS IN <FILE> LIMIT 1,3 ********
|
||||
show binlog events in 'master-bin.000002' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
******** [master] SHOW BINLOG EVENTS ********
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
@ -181,21 +133,19 @@ master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (5)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (6)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Rotate # # master-bin.000002;pos=4
|
||||
[SLAVE] ********* SOW BINLOG EVENTS IN ... *********
|
||||
******** [slave] SHOW BINLOG EVENTS IN <FILE> ********
|
||||
show binlog events in 'slave-bin.000002' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-bin.000002 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
[SLAVE] ********* SOW BINLOG EVENTS *********
|
||||
******** [slave] SHOW BINLOG EVENTS IN <FILE> LIMIT 1 ********
|
||||
show binlog events in 'slave-bin.000002' from <binlog_start> limit 1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-bin.000002 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
******** [slave] SHOW BINLOG EVENTS IN <FILE> LIMIT 1,3 ********
|
||||
show binlog events in 'slave-bin.000002' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
******** [slave] SHOW BINLOG EVENTS ********
|
||||
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)
|
||||
@ -208,24 +158,25 @@ slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (5)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Query # # BEGIN
|
||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (6)
|
||||
slave-bin.000001 # Query # # COMMIT
|
||||
slave-bin.000001 # Rotate # # slave-bin.000002;pos=4
|
||||
[SLAVE] ********* SOW RELAYLOG EVENTS IN ... *********
|
||||
******** [slave] SHOW RELAYLOG EVENTS IN <FILE> ********
|
||||
show relaylog events in 'slave-relay-bin.000006' from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000006 # Rotate # # master-bin.000002;pos=4
|
||||
slave-relay-bin.000006 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000006 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
******** [slave] SHOW RELAYLOG EVENTS IN <FILE> LIMIT 1 ********
|
||||
show relaylog events in 'slave-relay-bin.000006' from <binlog_start> limit 1;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000006 # Rotate # # master-bin.000002;pos=4
|
||||
******** [slave] SHOW RELAYLOG EVENTS IN <FILE> LIMIT 1,3 ********
|
||||
show relaylog events in 'slave-relay-bin.000006' from <binlog_start> limit 1,3;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000006 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
||||
slave-relay-bin.000006 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
******** [slave] SHOW RELAYLOG EVENTS ********
|
||||
show relaylog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000004 # Rotate # # master-bin.000002;pos=4
|
||||
slave-relay-bin.000004 # Rotate # # slave-relay-bin.000005;pos=4
|
||||
[SLAVE] ********* SOW RELAYLOG EVENTS *********
|
||||
show relaylog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
slave-relay-bin.000004 # Rotate # # master-bin.000002;pos=4
|
||||
slave-relay-bin.000004 # Rotate # # slave-relay-bin.000005;pos=4
|
||||
slave-relay-bin.000005 # Rotate # # master-bin.000002;pos=4
|
||||
slave-relay-bin.000005 # Rotate # # slave-relay-bin.000006;pos=4
|
||||
include/rpl_end.inc
|
||||
|
@ -74,5 +74,47 @@ include/wait_for_slave_sql_to_start.inc
|
||||
|
||||
# Test end
|
||||
SET GLOBAL debug= '$debug_save';
|
||||
include/restart_slave.inc
|
||||
[connection master]
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
# Bug#58546 test rpl_packet timeout failure sporadically on PB
|
||||
# ----------------------------------------------------------------------
|
||||
# STOP SLAVE stopped IO thread first and then stopped SQL thread. It was
|
||||
# possible that IO thread stopped after replicating part of a transaction
|
||||
# which SQL thread was executing. SQL thread would be hung if the
|
||||
# transaction could not be rolled back safely.
|
||||
# It caused some sporadic failures on PB2.
|
||||
#
|
||||
# This test verifies that when 'STOP SLAVE' is issued by a user, IO
|
||||
# thread will continue to fetch the rest events of the transaction which
|
||||
# is being executed by SQL thread and is not able to be rolled back safely.
|
||||
CREATE TABLE t1 (c1 INT KEY, c2 INT) ENGINE=InnoDB;
|
||||
CREATE TABLE t2 (c1 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES(1, 1);
|
||||
SET GLOBAL debug= 'd,dump_thread_wait_before_send_xid';
|
||||
[connection slave]
|
||||
include/restart_slave.inc
|
||||
BEGIN;
|
||||
UPDATE t1 SET c2 = 2 WHERE c1 = 1;
|
||||
[connection master]
|
||||
BEGIN;
|
||||
INSERT INTO t1 VALUES(2, 2);
|
||||
INSERT INTO t2 VALUES(1);
|
||||
UPDATE t1 SET c2 = 3 WHERE c1 = 1;
|
||||
COMMIT;
|
||||
[connection slave1]
|
||||
STOP SLAVE;
|
||||
[connection slave]
|
||||
ROLLBACK;
|
||||
[connection master]
|
||||
SET DEBUG_SYNC= 'now SIGNAL signal.continue';
|
||||
SET DEBUG_SYNC= 'RESET';
|
||||
[connection slave]
|
||||
include/wait_for_slave_to_stop.inc
|
||||
[connection slave1]
|
||||
include/start_slave.inc
|
||||
[connection master]
|
||||
DROP TABLE t1, t2;
|
||||
SET GLOBAL debug= $debug_save;
|
||||
include/rpl_end.inc
|
||||
|
@ -12,11 +12,6 @@
|
||||
|
||||
--source include/master-slave.inc
|
||||
|
||||
# The test is disabled for windows due to
|
||||
# Bug #42879 CHANGE MASTER RELAY_LOG_FILE=path fails on windows
|
||||
# Todo: release it from not_windows
|
||||
--source include/not_windows.inc
|
||||
|
||||
#
|
||||
# Bug#31240 load data infile replication between (4.0 or 4.1) and 5.1 fails
|
||||
#
|
||||
|
@ -26,8 +26,8 @@ let $old_net_buffer_length= `SELECT @@global.net_buffer_length`;
|
||||
SET @@global.max_allowed_packet=1024;
|
||||
SET @@global.net_buffer_length=1024;
|
||||
|
||||
sync_slave_with_master;
|
||||
# Restart slave for setting to take effect
|
||||
connection slave;
|
||||
source include/stop_slave.inc;
|
||||
source include/start_slave.inc;
|
||||
|
||||
|
@ -45,7 +45,69 @@ source extra/rpl_tests/rpl_stop_slave.test;
|
||||
--echo
|
||||
--echo # Test end
|
||||
SET GLOBAL debug= '$debug_save';
|
||||
source include/restart_slave_sql.inc;
|
||||
|
||||
connection master;
|
||||
--source include/rpl_connection_master.inc
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
--echo
|
||||
--echo # Bug#58546 test rpl_packet timeout failure sporadically on PB
|
||||
--echo # ----------------------------------------------------------------------
|
||||
--echo # STOP SLAVE stopped IO thread first and then stopped SQL thread. It was
|
||||
--echo # possible that IO thread stopped after replicating part of a transaction
|
||||
--echo # which SQL thread was executing. SQL thread would be hung if the
|
||||
--echo # transaction could not be rolled back safely.
|
||||
--echo # It caused some sporadic failures on PB2.
|
||||
--echo #
|
||||
--echo # This test verifies that when 'STOP SLAVE' is issued by a user, IO
|
||||
--echo # thread will continue to fetch the rest events of the transaction which
|
||||
--echo # is being executed by SQL thread and is not able to be rolled back safely.
|
||||
|
||||
CREATE TABLE t1 (c1 INT KEY, c2 INT) ENGINE=InnoDB;
|
||||
CREATE TABLE t2 (c1 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES(1, 1);
|
||||
|
||||
let $debug_save= `SELECT @@GLOBAL.debug`;
|
||||
SET GLOBAL debug= 'd,dump_thread_wait_before_send_xid';
|
||||
|
||||
sync_slave_with_master;
|
||||
|
||||
--source include/rpl_connection_slave.inc
|
||||
source include/restart_slave_sql.inc;
|
||||
|
||||
BEGIN;
|
||||
UPDATE t1 SET c2 = 2 WHERE c1 = 1;
|
||||
|
||||
--source include/rpl_connection_master.inc
|
||||
BEGIN;
|
||||
INSERT INTO t1 VALUES(2, 2);
|
||||
INSERT INTO t2 VALUES(1);
|
||||
UPDATE t1 SET c2 = 3 WHERE c1 = 1;
|
||||
COMMIT;
|
||||
|
||||
--source include/rpl_connection_slave1.inc
|
||||
let $show_statement= SHOW PROCESSLIST;
|
||||
let $field= Info;
|
||||
let $condition= = 'UPDATE t1 SET c2 = 3 WHERE c1 = 1';
|
||||
source include/wait_show_condition.inc;
|
||||
|
||||
send STOP SLAVE;
|
||||
|
||||
--source include/rpl_connection_slave.inc
|
||||
ROLLBACK;
|
||||
|
||||
--source include/rpl_connection_master.inc
|
||||
SET DEBUG_SYNC= 'now SIGNAL signal.continue';
|
||||
SET DEBUG_SYNC= 'RESET';
|
||||
|
||||
--source include/rpl_connection_slave.inc
|
||||
source include/wait_for_slave_to_stop.inc;
|
||||
|
||||
--source include/rpl_connection_slave1.inc
|
||||
reap;
|
||||
source include/start_slave.inc;
|
||||
|
||||
--source include/rpl_connection_master.inc
|
||||
DROP TABLE t1, t2;
|
||||
SET GLOBAL debug= $debug_save;
|
||||
--source include/rpl_end.inc
|
||||
|
46
mysql-test/suite/sys_vars/r/autocommit_func4.result
Normal file
46
mysql-test/suite/sys_vars/r/autocommit_func4.result
Normal file
@ -0,0 +1,46 @@
|
||||
CREATE TABLE t1
|
||||
(
|
||||
id INT NOT NULL auto_increment,
|
||||
PRIMARY KEY (id),
|
||||
name varchar(30)
|
||||
) ENGINE = INNODB;
|
||||
SELECT @@global.autocommit;
|
||||
@@global.autocommit
|
||||
1
|
||||
SELECT @@autocommit;
|
||||
@@autocommit
|
||||
1
|
||||
INSERT into t1(name) values('Record_1');
|
||||
INSERT into t1(name) values('Record_2');
|
||||
SELECT * from t1;
|
||||
id name
|
||||
1 Record_1
|
||||
2 Record_2
|
||||
ROLLBACK;
|
||||
SELECT * from t1;
|
||||
id name
|
||||
1 Record_1
|
||||
2 Record_2
|
||||
set @@global.autocommit = 1-@@global.autocommit;
|
||||
set @@autocommit = 1-@@autocommit;
|
||||
SELECT @@global.autocommit;
|
||||
@@global.autocommit
|
||||
0
|
||||
SELECT @@autocommit;
|
||||
@@autocommit
|
||||
0
|
||||
INSERT into t1(name) values('Record_1');
|
||||
INSERT into t1(name) values('Record_2');
|
||||
SELECT * from t1;
|
||||
id name
|
||||
1 Record_1
|
||||
2 Record_2
|
||||
3 Record_1
|
||||
4 Record_2
|
||||
ROLLBACK;
|
||||
SELECT * from t1;
|
||||
id name
|
||||
1 Record_1
|
||||
2 Record_2
|
||||
DROP TABLE t1;
|
||||
set @@global.autocommit = 1-@@global.autocommit;
|
42
mysql-test/suite/sys_vars/r/autocommit_func5.result
Normal file
42
mysql-test/suite/sys_vars/r/autocommit_func5.result
Normal file
@ -0,0 +1,42 @@
|
||||
CREATE TABLE t1
|
||||
(
|
||||
id INT NOT NULL auto_increment,
|
||||
PRIMARY KEY (id),
|
||||
name varchar(30)
|
||||
) ENGINE = INNODB;
|
||||
SELECT @@global.autocommit;
|
||||
@@global.autocommit
|
||||
0
|
||||
SELECT @@autocommit;
|
||||
@@autocommit
|
||||
0
|
||||
INSERT into t1(name) values('Record_1');
|
||||
INSERT into t1(name) values('Record_2');
|
||||
SELECT * from t1;
|
||||
id name
|
||||
1 Record_1
|
||||
2 Record_2
|
||||
ROLLBACK;
|
||||
SELECT * from t1;
|
||||
id name
|
||||
set @@global.autocommit = 1-@@global.autocommit;
|
||||
set @@autocommit = 1-@@autocommit;
|
||||
SELECT @@global.autocommit;
|
||||
@@global.autocommit
|
||||
1
|
||||
SELECT @@autocommit;
|
||||
@@autocommit
|
||||
1
|
||||
INSERT into t1(name) values('Record_1');
|
||||
INSERT into t1(name) values('Record_2');
|
||||
SELECT * from t1;
|
||||
id name
|
||||
3 Record_1
|
||||
4 Record_2
|
||||
ROLLBACK;
|
||||
SELECT * from t1;
|
||||
id name
|
||||
3 Record_1
|
||||
4 Record_2
|
||||
DROP TABLE t1;
|
||||
set @@global.autocommit = 1-@@global.autocommit;
|
@ -64,12 +64,12 @@ SET last = pct;
|
||||
END IF;
|
||||
END WHILE;
|
||||
END//
|
||||
CREATE PROCEDURE check_pct(IN num DECIMAL)
|
||||
CREATE PROCEDURE check_pct(IN success_on_wait BOOLEAN)
|
||||
BEGIN
|
||||
IF (dirty_pct() < num) THEN
|
||||
IF (success_on_wait > 0) THEN
|
||||
SELECT 'BELOW_MAX' AS PCT_VALUE;
|
||||
ELSE
|
||||
SELECT 'ABOVE_MAX' AS PCT_VALUE;
|
||||
SELECT 'ABOVE_MAX or TimeOut Of The Test' AS PCT_VALUE;
|
||||
END IF;
|
||||
END//
|
||||
CREATE TABLE t1(
|
||||
@ -83,7 +83,7 @@ CALL add_until(10);
|
||||
FLUSH TABLES;
|
||||
CALL add_records(500);
|
||||
'We expect dirty pages pct to be BELOW_MAX after some time depending on performance'
|
||||
CALL check_pct(10);
|
||||
CALL check_pct(1);
|
||||
PCT_VALUE
|
||||
BELOW_MAX
|
||||
DROP PROCEDURE add_records;
|
||||
|
1
mysql-test/suite/sys_vars/t/autocommit_func4-master.opt
Normal file
1
mysql-test/suite/sys_vars/t/autocommit_func4-master.opt
Normal file
@ -0,0 +1 @@
|
||||
--autocommit=on
|
1
mysql-test/suite/sys_vars/t/autocommit_func4.test
Normal file
1
mysql-test/suite/sys_vars/t/autocommit_func4.test
Normal file
@ -0,0 +1 @@
|
||||
--source suite/sys_vars/inc/autocommit_func2.inc
|
1
mysql-test/suite/sys_vars/t/autocommit_func5-master.opt
Normal file
1
mysql-test/suite/sys_vars/t/autocommit_func5-master.opt
Normal file
@ -0,0 +1 @@
|
||||
--autocommit=off
|
1
mysql-test/suite/sys_vars/t/autocommit_func5.test
Normal file
1
mysql-test/suite/sys_vars/t/autocommit_func5.test
Normal file
@ -0,0 +1 @@
|
||||
--source suite/sys_vars/inc/autocommit_func2.inc
|
@ -117,12 +117,12 @@ BEGIN
|
||||
END WHILE;
|
||||
END//
|
||||
|
||||
CREATE PROCEDURE check_pct(IN num DECIMAL)
|
||||
CREATE PROCEDURE check_pct(IN success_on_wait BOOLEAN)
|
||||
BEGIN
|
||||
IF (dirty_pct() < num) THEN
|
||||
IF (success_on_wait > 0) THEN
|
||||
SELECT 'BELOW_MAX' AS PCT_VALUE;
|
||||
ELSE
|
||||
SELECT 'ABOVE_MAX' AS PCT_VALUE;
|
||||
SELECT 'ABOVE_MAX or TimeOut Of The Test' AS PCT_VALUE;
|
||||
END IF;
|
||||
END//
|
||||
|
||||
@ -155,7 +155,8 @@ let $wait_condition= SELECT (dirty_pct() <= @@global.innodb_max_dirty_pages_pct)
|
||||
--source include/wait_condition.inc
|
||||
|
||||
--echo 'We expect dirty pages pct to be BELOW_MAX after some time depending on performance'
|
||||
CALL check_pct(10);
|
||||
# Value For $sucess will be set from include/wait_condition.inc file. It can have values 1 or 0. It will be 1 if dirty_pct() <= @@global.innodb_max_dirty_pages_pct else it will be 0.
|
||||
eval CALL check_pct($success);
|
||||
DROP PROCEDURE add_records;
|
||||
DROP PROCEDURE add_until;
|
||||
DROP PROCEDURE check_pct;
|
||||
|
@ -216,6 +216,21 @@ DROP TABLE t1;
|
||||
# End of 4.1 tests
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Start of 5.1 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # Bug#58371 Assertion failed: !s.uses_buffer_owned_by(this) with format string function
|
||||
--echo #
|
||||
|
||||
SET NAMES latin1;
|
||||
DO CONVERT(CAST(SUBSTRING_INDEX(FORMAT(1,'1111'), FORMAT('','Zpq'),1)
|
||||
AS BINARY(0)) USING utf8);
|
||||
--echo #
|
||||
--echo # End of 5.1 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # Start of 5.5 tests
|
||||
--echo #
|
||||
|
@ -126,5 +126,10 @@ INSERT INTO t2 VALUES (1), (2), (3);
|
||||
SELECT 1 FROM t2 JOIN t1 ON 1 LIKE a GROUP BY a;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#59149 valgrind warnings with "like .. escape .." function
|
||||
--echo #
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
SELECT '' LIKE '1' ESCAPE COUNT(1);
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
@ -489,3 +489,14 @@ as foo;
|
||||
CREATE TABLE t1(a char(0));
|
||||
INSERT INTO t1 (SELECT -pi());
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug #59241 invalid memory read
|
||||
--echo # in do_div_mod with doubly assigned variables
|
||||
--echo #
|
||||
SELECT ((@a:=@b:=1.0) div (@b:=@a:=get_format(datetime, 'usa')));
|
||||
|
||||
--echo #
|
||||
--echo # Bug #59498 div function broken in mysql-trunk
|
||||
--echo #
|
||||
SELECT 1 div null;
|
||||
|
@ -361,7 +361,7 @@ t1 where object_id=85998;
|
||||
|
||||
# Expected result is 36.3310176346905, but IA64 returns 36.3310176346904
|
||||
# due to fused multiply-add instructions.
|
||||
--replace_result 36.3310176346904 36.3310176346905
|
||||
--replace_result 36.3310176346904 36.3310176346905 -114.87787186923326 -114.87787186923313 36.33101763469053 36.33101763469059 36.33101763469043 36.33101763469059
|
||||
select object_id, geometrytype(geo), ISSIMPLE(GEO), ASTEXT(centroid(geo)) from
|
||||
t1 where object_id=85984;
|
||||
|
||||
|
@ -33,3 +33,15 @@ EOF
|
||||
--exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
|
||||
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/bug10608.cnf;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#58221 : mysqladmin --sleep=x --count=x keeps looping
|
||||
--echo #
|
||||
|
||||
--echo # Executing mysqladmin with --sleep=1 and --count=2.
|
||||
--exec $MYSQLADMIN -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT --sleep=1 --count=2 ping > $MYSQLTEST_VARDIR/tmp/mysqladmin.tmp
|
||||
--echo # Done.
|
||||
--echo # Displaying the output :
|
||||
--cat_file $MYSQLTEST_VARDIR/tmp/mysqladmin.tmp
|
||||
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/mysqladmin.tmp
|
||||
|
@ -2169,6 +2169,15 @@ SELECT LENGTH(a) FROM t2;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
###########################################################################
|
||||
|
||||
--echo #
|
||||
--echo # Bug #13618 : mysqldump --xml ommit comment on table field
|
||||
--echo #
|
||||
|
||||
CREATE TABLE `comment_table` (i INT COMMENT 'FIELD COMMENT') COMMENT = 'TABLE COMMENT';
|
||||
--exec $MYSQL_DUMP --compact --skip-create --xml test
|
||||
DROP TABLE `comment_table`;
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.1 tests
|
||||
--echo #
|
||||
|
@ -395,7 +395,7 @@ FLUSH PRIVILEGES;
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#58139 : default-auth option not recognized in MySQL standardi
|
||||
--echo # Bug#58139 : default-auth option not recognized in MySQL standard
|
||||
--echo # command line clients
|
||||
--echo #
|
||||
|
||||
@ -408,4 +408,7 @@ FLUSH PRIVILEGES;
|
||||
--echo # Executing 'mysqldump'
|
||||
--exec $MYSQL_DUMP -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT --compact --default-auth=auth_test_plugin $PLUGIN_AUTH_OPT test
|
||||
|
||||
--echo # Executing 'mysql_upgrade'
|
||||
--exec $MYSQL_UPGRADE -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT --default-auth=auth_test_plugin $PLUGIN_AUTH_OPT --skip-verbose --force --upgrade-system-tables
|
||||
|
||||
--echo End of 5.5 tests
|
||||
|
@ -1,3 +1,33 @@
|
||||
# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; version 2 of
|
||||
# the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||
# 02110-1301 USA
|
||||
#
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# NOTICE:
|
||||
#
|
||||
# This file unfortunately contains characters in various different encodings.
|
||||
# Be careful when editing this file to ensure that you (or your editor) do
|
||||
# not change things (such as encodings) on lines that you did not mean to
|
||||
# modify.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
|
||||
# Uses GRANT commands that usually disabled in embedded server
|
||||
-- source include/not_embedded.inc
|
||||
|
||||
@ -223,14 +253,6 @@ CREATE TABLE """a" (i INT);
|
||||
SHOW CREATE TABLE """a";
|
||||
DROP TABLE """a";
|
||||
|
||||
# Bug#4374 SHOW TABLE STATUS FROM ignores collation_connection
|
||||
#set names latin1;
|
||||
#create database `ä`;
|
||||
#create table `ä`.`ä` (a int) engine=heap;
|
||||
#--replace_column 7 # 8 # 9 #
|
||||
#show table status from `ä` LIKE 'ä';
|
||||
#drop database `ä`;
|
||||
|
||||
# to test quotes around keywords.. :
|
||||
|
||||
SET sql_mode= '';
|
||||
@ -362,15 +384,6 @@ delete from mysql.db
|
||||
where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
|
||||
flush privileges;
|
||||
|
||||
# This test fails on MAC OSX, so it is temporary disabled.
|
||||
# This needs WL#1324 to be done.
|
||||
#set names latin1;
|
||||
#create database `ä`;
|
||||
#create table `ä`.`ä` (a int) engine=heap;
|
||||
#--replace_column 7 # 8 # 9 #
|
||||
#show table status from `ä` LIKE 'ä';
|
||||
#drop database `ä`;
|
||||
|
||||
# Test that USING <keytype> is always shown in SHOW CREATE TABLE when it was
|
||||
# specified during table creation, but not otherwise. (Bug#7235)
|
||||
CREATE TABLE t1 (i int, KEY (i)) ENGINE=MEMORY;
|
||||
@ -1053,6 +1066,17 @@ show full tables;
|
||||
drop table `été`;
|
||||
set names latin1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#4374 SHOW TABLE STATUS FROM ignores collation_connection
|
||||
--echo # Character set: Latin-1 (ISO-8859-1)
|
||||
--echo #
|
||||
SET NAMES latin1;
|
||||
CREATE DATABASE `ä`;
|
||||
CREATE TABLE `ä`.`ä` (a int) ENGINE=Memory;
|
||||
--replace_column 6 # 7 # 8 # 9 #
|
||||
SHOW TABLE STATUS FROM `ä` LIKE 'ä';
|
||||
DROP DATABASE `ä`;
|
||||
|
||||
#
|
||||
# Bug#26402 Server crashes with old-style named table
|
||||
#
|
||||
|
@ -640,6 +640,11 @@ SELECT UPDATEXML(NULL, (LPAD(0.1111E-15, '2011', 1)), 1);
|
||||
--error ER_ILLEGAL_VALUE_FOR_TYPE
|
||||
SELECT EXTRACTVALUE('', LPAD(0.1111E-15, '2011', 1));
|
||||
|
||||
--echo #
|
||||
--echo # Bug #44332 my_xml_scan reads behind the end of buffer
|
||||
--echo #
|
||||
SELECT UPDATEXML(CONVERT(_latin1'<' USING utf8),'1','1');
|
||||
SELECT UPDATEXML(CONVERT(_latin1'<!--' USING utf8),'1','1');
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
||||
|
@ -61,9 +61,23 @@
|
||||
check the pointer, use "----args-separator----" here to ease debug
|
||||
if someone misused it.
|
||||
|
||||
The args seprator will only be added when
|
||||
my_getopt_use_args_seprator is set to TRUE before calling
|
||||
load_defaults();
|
||||
|
||||
See BUG#25192
|
||||
*/
|
||||
const char *args_separator= "----args-separator----";
|
||||
static const char *args_separator= "----args-separator----";
|
||||
inline static void set_args_separator(char** arg)
|
||||
{
|
||||
DBUG_ASSERT(my_getopt_use_args_separator);
|
||||
*arg= (char*)args_separator;
|
||||
}
|
||||
my_bool my_getopt_use_args_separator= FALSE;
|
||||
my_bool my_getopt_is_args_separator(const char* arg)
|
||||
{
|
||||
return (arg == args_separator);
|
||||
}
|
||||
const char *my_defaults_file=0;
|
||||
const char *my_defaults_group_suffix=0;
|
||||
const char *my_defaults_extra_file=0;
|
||||
@ -503,6 +517,7 @@ int my_load_defaults(const char *conf_file, const char **groups,
|
||||
char *ptr,**res;
|
||||
struct handle_option_ctx ctx;
|
||||
const char **dirs;
|
||||
uint args_sep= my_getopt_use_args_separator ? 1 : 0;
|
||||
DBUG_ENTER("load_defaults");
|
||||
|
||||
init_alloc_root(&alloc,512,0);
|
||||
@ -515,17 +530,28 @@ int my_load_defaults(const char *conf_file, const char **groups,
|
||||
if (*argc >= 2 && !strcmp(argv[0][1],"--no-defaults"))
|
||||
{
|
||||
/* remove the --no-defaults argument and return only the other arguments */
|
||||
uint i;
|
||||
uint i, j;
|
||||
if (!(ptr=(char*) alloc_root(&alloc,sizeof(alloc)+
|
||||
(*argc + 1)*sizeof(char*))))
|
||||
goto err;
|
||||
res= (char**) (ptr+sizeof(alloc));
|
||||
res[0]= **argv; /* Copy program name */
|
||||
/* set arguments separator */
|
||||
res[1]= (char *)args_separator;
|
||||
for (i=2 ; i < (uint) *argc ; i++)
|
||||
res[i]=argv[0][i];
|
||||
res[i]=0; /* End pointer */
|
||||
j= 1; /* Start from 1 for the reset result args */
|
||||
if (my_getopt_use_args_separator)
|
||||
{
|
||||
/* set arguments separator */
|
||||
set_args_separator(&res[1]);
|
||||
j++;
|
||||
}
|
||||
for (i=2 ; i < (uint) *argc ; i++, j++)
|
||||
res[j]=argv[0][i];
|
||||
res[j]=0; /* End pointer */
|
||||
/*
|
||||
Update the argc, if have not added args separator, then we have
|
||||
to decrease argc because we have removed the "--no-defaults".
|
||||
*/
|
||||
if (!my_getopt_use_args_separator)
|
||||
(*argc)--;
|
||||
*argv=res;
|
||||
*(MEM_ROOT*) ptr= alloc; /* Save alloc root for free */
|
||||
if (default_directories)
|
||||
@ -559,7 +585,7 @@ int my_load_defaults(const char *conf_file, const char **groups,
|
||||
or a forced default file
|
||||
*/
|
||||
if (!(ptr=(char*) alloc_root(&alloc,sizeof(alloc)+
|
||||
(args.elements + *argc + 1 + 1) *sizeof(char*))))
|
||||
(args.elements + *argc + 1 + args_sep) *sizeof(char*))))
|
||||
goto err;
|
||||
res= (char**) (ptr+sizeof(alloc));
|
||||
|
||||
@ -580,16 +606,19 @@ int my_load_defaults(const char *conf_file, const char **groups,
|
||||
--*argc; ++*argv; /* skip argument */
|
||||
}
|
||||
|
||||
/* set arguments separator for arguments from config file and
|
||||
command line */
|
||||
res[args.elements+1]= (char *)args_separator;
|
||||
if (my_getopt_use_args_separator)
|
||||
{
|
||||
/* set arguments separator for arguments from config file and
|
||||
command line */
|
||||
set_args_separator(&res[args.elements+1]);
|
||||
}
|
||||
|
||||
if (*argc)
|
||||
memcpy((uchar*) (res+1+args.elements+1), (char*) ((*argv)+1),
|
||||
memcpy((uchar*) (res+1+args.elements+args_sep), (char*) ((*argv)+1),
|
||||
(*argc-1)*sizeof(char*));
|
||||
res[args.elements+ *argc+1]=0; /* last null */
|
||||
res[args.elements+ *argc+args_sep]=0; /* last null */
|
||||
|
||||
(*argc)+=args.elements+1;
|
||||
(*argc)+=args.elements+args_sep;
|
||||
*argv= (char**) res;
|
||||
*(MEM_ROOT*) ptr= alloc; /* Save alloc root for free */
|
||||
delete_dynamic(&args);
|
||||
@ -599,7 +628,7 @@ int my_load_defaults(const char *conf_file, const char **groups,
|
||||
printf("%s would have been started with the following arguments:\n",
|
||||
**argv);
|
||||
for (i=1 ; i < *argc ; i++)
|
||||
if ((*argv)[i] != args_separator) /* skip arguments separator */
|
||||
if (!my_getopt_is_args_separator((*argv)[i])) /* skip arguments separator */
|
||||
printf("%s ", (*argv)[i]);
|
||||
puts("");
|
||||
exit(0);
|
||||
|
@ -176,7 +176,7 @@ int handle_options(int *argc, char ***argv,
|
||||
*/
|
||||
for (pos= *argv, pos_end=pos+ *argc; pos != pos_end ; pos++)
|
||||
{
|
||||
if (*pos == args_separator)
|
||||
if (my_getopt_is_args_separator(*pos))
|
||||
{
|
||||
is_cmdline_arg= 0;
|
||||
break;
|
||||
@ -188,7 +188,7 @@ int handle_options(int *argc, char ***argv,
|
||||
char **first= pos;
|
||||
char *cur_arg= *pos;
|
||||
opt_found= 0;
|
||||
if (!is_cmdline_arg && (cur_arg == args_separator))
|
||||
if (!is_cmdline_arg && (my_getopt_is_args_separator(cur_arg)))
|
||||
{
|
||||
is_cmdline_arg= 1;
|
||||
|
||||
@ -611,13 +611,21 @@ static char *check_struct_option(char *cur_arg, char *key_name)
|
||||
@param[in] argument The value argument
|
||||
@return boolean value
|
||||
*/
|
||||
static my_bool get_bool_argument(const char *argument)
|
||||
static my_bool get_bool_argument(const struct my_option *opts,
|
||||
const char *argument)
|
||||
{
|
||||
if (!my_strcasecmp(&my_charset_latin1, argument, "true") ||
|
||||
!my_strcasecmp(&my_charset_latin1, argument, "on"))
|
||||
!my_strcasecmp(&my_charset_latin1, argument, "on") ||
|
||||
!my_strcasecmp(&my_charset_latin1, argument, "1"))
|
||||
return 1;
|
||||
else
|
||||
return (my_bool) atoi(argument);
|
||||
else if (!my_strcasecmp(&my_charset_latin1, argument, "false") ||
|
||||
!my_strcasecmp(&my_charset_latin1, argument, "off") ||
|
||||
!my_strcasecmp(&my_charset_latin1, argument, "0"))
|
||||
return 0;
|
||||
my_getopt_error_reporter(WARNING_LEVEL,
|
||||
"option '%s': boolean value '%s' wasn't recognized. Set to OFF.",
|
||||
opts->name, argument);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -647,7 +655,7 @@ static int setval(const struct my_option *opts, void *value, char *argument,
|
||||
|
||||
switch ((opts->var_type & GET_TYPE_MASK)) {
|
||||
case GET_BOOL: /* If argument differs from 0, enable option, else disable */
|
||||
*((my_bool*) value)= get_bool_argument(argument);
|
||||
*((my_bool*) value)= get_bool_argument(opts, argument);
|
||||
break;
|
||||
case GET_INT:
|
||||
*((int*) value)= (int) getopt_ll(argument, opts, &err);
|
||||
|
@ -1207,7 +1207,7 @@ void mysql_read_default_options(struct st_mysql_options *options,
|
||||
char **option=argv;
|
||||
while (*++option)
|
||||
{
|
||||
if (option[0] == args_separator) /* skip arguments separator */
|
||||
if (my_getopt_is_args_separator(option[0])) /* skip arguments separator */
|
||||
continue;
|
||||
/* DBUG_PRINT("info",("option: %s",option[0])); */
|
||||
if (option[0][0] == '-' && option[0][1] == '-')
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -2086,7 +2086,6 @@ void Item_func_interval::fix_length_and_dec()
|
||||
if (dec != &range->dec)
|
||||
{
|
||||
range->dec= *dec;
|
||||
range->dec.fix_buffer_pointer();
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -1583,24 +1583,27 @@ longlong Item_func_int_div::val_int()
|
||||
if (args[0]->result_type() != INT_RESULT ||
|
||||
args[1]->result_type() != INT_RESULT)
|
||||
{
|
||||
my_decimal value0, value1, tmp;
|
||||
my_decimal *val0, *val1;
|
||||
longlong res;
|
||||
int err;
|
||||
|
||||
val0= args[0]->val_decimal(&value0);
|
||||
val1= args[1]->val_decimal(&value1);
|
||||
if ((null_value= (args[0]->null_value || args[1]->null_value)))
|
||||
my_decimal tmp;
|
||||
my_decimal *val0p= args[0]->val_decimal(&tmp);
|
||||
if ((null_value= args[0]->null_value))
|
||||
return 0;
|
||||
my_decimal val0= *val0p;
|
||||
|
||||
my_decimal *val1p= args[1]->val_decimal(&tmp);
|
||||
if ((null_value= args[1]->null_value))
|
||||
return 0;
|
||||
my_decimal val1= *val1p;
|
||||
|
||||
int err;
|
||||
if ((err= my_decimal_div(E_DEC_FATAL_ERROR & ~E_DEC_DIV_ZERO, &tmp,
|
||||
val0, val1, 0)) > 3)
|
||||
&val0, &val1, 0)) > 3)
|
||||
{
|
||||
if (err == E_DEC_DIV_ZERO)
|
||||
signal_divide_by_null();
|
||||
return 0;
|
||||
}
|
||||
|
||||
longlong res;
|
||||
if (my_decimal2int(E_DEC_FATAL_ERROR, &tmp, unsigned_flag, &res) &
|
||||
E_DEC_OVERFLOW)
|
||||
raise_integer_overflow();
|
||||
|
@ -2959,22 +2959,16 @@ String *Item_func_conv_charset::val_str(String *str)
|
||||
DBUG_ASSERT(fixed == 1);
|
||||
if (use_cached_value)
|
||||
return null_value ? 0 : &str_value;
|
||||
/*
|
||||
Here we don't pass 'str' as a parameter to args[0]->val_str()
|
||||
as 'str' may point to 'str_value' (e.g. see Item::save_in_field()),
|
||||
which we use below to convert string.
|
||||
Use argument's 'str_value' instead.
|
||||
*/
|
||||
String *arg= args[0]->val_str(&args[0]->str_value);
|
||||
String *arg= args[0]->val_str(str);
|
||||
uint dummy_errors;
|
||||
if (!arg)
|
||||
{
|
||||
null_value=1;
|
||||
return 0;
|
||||
}
|
||||
null_value= str_value.copy(arg->ptr(),arg->length(),arg->charset(),
|
||||
null_value= tmp_value.copy(arg->ptr(), arg->length(), arg->charset(),
|
||||
conv_charset, &dummy_errors);
|
||||
return null_value ? 0 : check_well_formed_result(&str_value);
|
||||
return null_value ? 0 : check_well_formed_result(&tmp_value);
|
||||
}
|
||||
|
||||
void Item_func_conv_charset::fix_length_and_dec()
|
||||
|
@ -791,6 +791,7 @@ public:
|
||||
class Item_func_conv_charset :public Item_str_func
|
||||
{
|
||||
bool use_cached_value;
|
||||
String tmp_value;
|
||||
public:
|
||||
bool safe;
|
||||
CHARSET_INFO *conv_charset; // keep it public
|
||||
|
@ -445,6 +445,7 @@ public:
|
||||
forced_const= TRUE;
|
||||
}
|
||||
virtual bool const_item() const { return forced_const; }
|
||||
virtual bool const_during_execution() const { return false; }
|
||||
virtual void print(String *str, enum_query_type query_type);
|
||||
void fix_num_length_and_dec();
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2005-2006 MySQL AB
|
||||
/* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -102,6 +102,24 @@ class my_decimal :public decimal_t
|
||||
|
||||
public:
|
||||
|
||||
my_decimal(const my_decimal &rhs) : decimal_t(rhs)
|
||||
{
|
||||
for (uint i= 0; i < DECIMAL_BUFF_LENGTH; i++)
|
||||
buffer[i]= rhs.buffer[i];
|
||||
fix_buffer_pointer();
|
||||
}
|
||||
|
||||
my_decimal& operator=(const my_decimal &rhs)
|
||||
{
|
||||
if (this == &rhs)
|
||||
return *this;
|
||||
decimal_t::operator=(rhs);
|
||||
for (uint i= 0; i < DECIMAL_BUFF_LENGTH; i++)
|
||||
buffer[i]= rhs.buffer[i];
|
||||
fix_buffer_pointer();
|
||||
return *this;
|
||||
}
|
||||
|
||||
void init()
|
||||
{
|
||||
len= DECIMAL_BUFF_LENGTH;
|
||||
@ -248,7 +266,6 @@ inline
|
||||
void my_decimal2decimal(const my_decimal *from, my_decimal *to)
|
||||
{
|
||||
*to= *from;
|
||||
to->fix_buffer_pointer();
|
||||
}
|
||||
|
||||
|
||||
|
@ -283,6 +283,7 @@ const char *first_keyword= "first", *binary_keyword= "BINARY";
|
||||
const char *my_localhost= "localhost", *delayed_user= "DELAYED";
|
||||
|
||||
bool opt_large_files= sizeof(my_off_t) > 4;
|
||||
static my_bool opt_autocommit; ///< for --autocommit command-line option
|
||||
|
||||
/*
|
||||
Used with --help for detailed option
|
||||
@ -4206,8 +4207,10 @@ int mysqld_main(int argc, char **argv)
|
||||
|
||||
orig_argc= argc;
|
||||
orig_argv= argv;
|
||||
my_getopt_use_args_separator= TRUE;
|
||||
if (load_defaults(MYSQL_CONFIG_NAME, load_default_groups, &argc, &argv))
|
||||
return 1;
|
||||
my_getopt_use_args_separator= FALSE;
|
||||
defaults_argc= argc;
|
||||
defaults_argv= argv;
|
||||
remaining_argc= argc;
|
||||
@ -5655,8 +5658,9 @@ struct my_option my_long_options[]=
|
||||
Because Sys_var_bit does not support command-line options, we need to
|
||||
explicitely add one for --autocommit
|
||||
*/
|
||||
{"autocommit", OPT_AUTOCOMMIT, "Set default value for autocommit (0 or 1)",
|
||||
NULL, NULL, 0, GET_BOOL, OPT_ARG, 0, 0, 0, 0, 0, NULL},
|
||||
{"autocommit", 0, "Set default value for autocommit (0 or 1)",
|
||||
&opt_autocommit, &opt_autocommit, 0,
|
||||
GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, NULL},
|
||||
{"bind-address", OPT_BIND_ADDRESS, "IP address to bind to.",
|
||||
&my_bind_addr_str, &my_bind_addr_str, 0, GET_STR,
|
||||
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
@ -7111,13 +7115,6 @@ mysqld_get_one_option(int optid,
|
||||
if (argument == NULL) /* no argument */
|
||||
log_error_file_ptr= const_cast<char*>("");
|
||||
break;
|
||||
case OPT_AUTOCOMMIT:
|
||||
const ulonglong turn_bit_on= (argument && (atoi(argument) == 0)) ?
|
||||
OPTION_NOT_AUTOCOMMIT : OPTION_AUTOCOMMIT;
|
||||
global_system_variables.option_bits=
|
||||
(global_system_variables.option_bits &
|
||||
~(OPTION_NOT_AUTOCOMMIT | OPTION_AUTOCOMMIT)) | turn_bit_on;
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -7268,10 +7265,12 @@ static int get_options(int *argc_ptr, char ***argv_ptr)
|
||||
else
|
||||
global_system_variables.option_bits&= ~OPTION_BIG_SELECTS;
|
||||
|
||||
if (global_system_variables.option_bits & OPTION_AUTOCOMMIT)
|
||||
global_system_variables.option_bits&= ~OPTION_NOT_AUTOCOMMIT;
|
||||
else
|
||||
global_system_variables.option_bits|= OPTION_NOT_AUTOCOMMIT;
|
||||
// Synchronize @@global.autocommit on --autocommit
|
||||
const ulonglong turn_bit_on= opt_autocommit ?
|
||||
OPTION_AUTOCOMMIT : OPTION_NOT_AUTOCOMMIT;
|
||||
global_system_variables.option_bits=
|
||||
(global_system_variables.option_bits &
|
||||
~(OPTION_NOT_AUTOCOMMIT | OPTION_AUTOCOMMIT)) | turn_bit_on;
|
||||
|
||||
global_system_variables.sql_mode=
|
||||
expand_sql_mode(global_system_variables.sql_mode);
|
||||
|
@ -394,8 +394,7 @@ enum options_mysqld
|
||||
OPT_UPDATE_LOG,
|
||||
OPT_WANT_CORE,
|
||||
OPT_ENGINE_CONDITION_PUSHDOWN,
|
||||
OPT_LOG_ERROR,
|
||||
OPT_AUTOCOMMIT
|
||||
OPT_LOG_ERROR
|
||||
};
|
||||
|
||||
|
||||
|
48
sql/slave.cc
48
sql/slave.cc
@ -504,6 +504,30 @@ int terminate_slave_threads(Master_info* mi,int thread_mask,bool skip_lock)
|
||||
mysql_mutex_t *sql_lock = &mi->rli.run_lock, *io_lock = &mi->run_lock;
|
||||
mysql_mutex_t *log_lock= mi->rli.relay_log.get_log_lock();
|
||||
|
||||
if (thread_mask & (SLAVE_SQL|SLAVE_FORCE_ALL))
|
||||
{
|
||||
DBUG_PRINT("info",("Terminating SQL thread"));
|
||||
mi->rli.abort_slave=1;
|
||||
if ((error=terminate_slave_thread(mi->rli.sql_thd, sql_lock,
|
||||
&mi->rli.stop_cond,
|
||||
&mi->rli.slave_running,
|
||||
skip_lock)) &&
|
||||
!force_all)
|
||||
DBUG_RETURN(error);
|
||||
|
||||
mysql_mutex_lock(log_lock);
|
||||
|
||||
DBUG_PRINT("info",("Flushing relay-log info file."));
|
||||
if (current_thd)
|
||||
thd_proc_info(current_thd, "Flushing relay-log info file.");
|
||||
if (flush_relay_log_info(&mi->rli))
|
||||
DBUG_RETURN(ER_ERROR_DURING_FLUSH_LOGS);
|
||||
|
||||
if (my_sync(mi->rli.info_fd, MYF(MY_WME)))
|
||||
DBUG_RETURN(ER_ERROR_DURING_FLUSH_LOGS);
|
||||
|
||||
mysql_mutex_unlock(log_lock);
|
||||
}
|
||||
if (thread_mask & (SLAVE_IO|SLAVE_FORCE_ALL))
|
||||
{
|
||||
DBUG_PRINT("info",("Terminating IO thread"));
|
||||
@ -532,30 +556,6 @@ int terminate_slave_threads(Master_info* mi,int thread_mask,bool skip_lock)
|
||||
|
||||
mysql_mutex_unlock(log_lock);
|
||||
}
|
||||
if (thread_mask & (SLAVE_SQL|SLAVE_FORCE_ALL))
|
||||
{
|
||||
DBUG_PRINT("info",("Terminating SQL thread"));
|
||||
mi->rli.abort_slave=1;
|
||||
if ((error=terminate_slave_thread(mi->rli.sql_thd, sql_lock,
|
||||
&mi->rli.stop_cond,
|
||||
&mi->rli.slave_running,
|
||||
skip_lock)) &&
|
||||
!force_all)
|
||||
DBUG_RETURN(error);
|
||||
|
||||
mysql_mutex_lock(log_lock);
|
||||
|
||||
DBUG_PRINT("info",("Flushing relay-log info file."));
|
||||
if (current_thd)
|
||||
thd_proc_info(current_thd, "Flushing relay-log info file.");
|
||||
if (flush_relay_log_info(&mi->rli))
|
||||
DBUG_RETURN(ER_ERROR_DURING_FLUSH_LOGS);
|
||||
|
||||
if (my_sync(mi->rli.info_fd, MYF(MY_WME)))
|
||||
DBUG_RETURN(ER_ERROR_DURING_FLUSH_LOGS);
|
||||
|
||||
mysql_mutex_unlock(log_lock);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000-2006 MySQL AB
|
||||
/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -521,9 +521,6 @@ void field_decimal::add()
|
||||
{
|
||||
found = 1;
|
||||
min_arg = max_arg = sum[0] = *dec;
|
||||
min_arg.fix_buffer_pointer();
|
||||
max_arg.fix_buffer_pointer();
|
||||
sum[0].fix_buffer_pointer();
|
||||
my_decimal_mul(E_DEC_FATAL_ERROR, sum_sqr, dec, dec);
|
||||
cur_sum= 0;
|
||||
min_length = max_length = length;
|
||||
@ -545,12 +542,10 @@ void field_decimal::add()
|
||||
if (my_decimal_cmp(dec, &min_arg) < 0)
|
||||
{
|
||||
min_arg= *dec;
|
||||
min_arg.fix_buffer_pointer();
|
||||
}
|
||||
if (my_decimal_cmp(dec, &max_arg) > 0)
|
||||
{
|
||||
max_arg= *dec;
|
||||
max_arg.fix_buffer_pointer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "rpl_filter.h"
|
||||
#include <my_dir.h>
|
||||
#include "rpl_handler.h"
|
||||
#include "debug_sync.h"
|
||||
|
||||
int max_binlog_dump_events = 0; // unlimited
|
||||
my_bool opt_sporadic_binlog_dump_fail = 0;
|
||||
@ -693,6 +694,19 @@ impossible position";
|
||||
coord->pos= uint4korr(packet->ptr() + ev_offset + LOG_POS_OFFSET);
|
||||
|
||||
event_type= (Log_event_type)((*packet)[LOG_EVENT_OFFSET+ev_offset]);
|
||||
DBUG_EXECUTE_IF("dump_thread_wait_before_send_xid",
|
||||
{
|
||||
if (event_type == XID_EVENT)
|
||||
{
|
||||
net_flush(net);
|
||||
const char act[]=
|
||||
"now "
|
||||
"wait_for signal.continue";
|
||||
DBUG_ASSERT(opt_debug_sync_timeout > 0);
|
||||
DBUG_ASSERT(!debug_sync_set_action(current_thd,
|
||||
STRING_WITH_LEN(act)));
|
||||
}
|
||||
});
|
||||
if (event_type == FORMAT_DESCRIPTION_EVENT)
|
||||
{
|
||||
binlog_can_be_corrupted= test((*packet)[FLAGS_OFFSET+ev_offset] &
|
||||
@ -718,6 +732,14 @@ impossible position";
|
||||
goto err;
|
||||
}
|
||||
|
||||
DBUG_EXECUTE_IF("dump_thread_wait_before_send_xid",
|
||||
{
|
||||
if (event_type == XID_EVENT)
|
||||
{
|
||||
net_flush(net);
|
||||
}
|
||||
});
|
||||
|
||||
DBUG_PRINT("info", ("log event code %d", event_type));
|
||||
if (event_type == LOAD_EVENT)
|
||||
{
|
||||
|
@ -105,7 +105,7 @@ setup_config(atrt_config& config)
|
||||
*/
|
||||
for (j = 0; j<(size_t)argc; j++)
|
||||
{
|
||||
if (tmp[j] == args_separator) /* skip arguments separator */
|
||||
if (my_getopt_is_args_separator(tmp[j])) /* skip arguments separator */
|
||||
continue;
|
||||
for (k = 0; proc_args[k].name; k++)
|
||||
{
|
||||
@ -375,7 +375,7 @@ load_options(int argc, char** argv, int type, atrt_options& opts)
|
||||
* Skip the separator for arguments from config file and command
|
||||
* line
|
||||
*/
|
||||
if (argv[i] == args_separator)
|
||||
if (my_getopt_is_args_separator(argv[i]))
|
||||
continue;
|
||||
for (size_t j = 0; f_options[j].name; j++)
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000 MySQL AB
|
||||
/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -13,8 +13,6 @@
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
#line 18 "decimal.c"
|
||||
|
||||
/*
|
||||
=======================================================================
|
||||
NOTE: this library implements SQL standard "exact numeric" type
|
||||
|
@ -106,6 +106,13 @@ static void my_xml_norm_text(MY_XML_ATTR *a)
|
||||
}
|
||||
|
||||
|
||||
static inline my_bool
|
||||
my_xml_parser_prefix_cmp(MY_XML_PARSER *p, const char *s, size_t slen)
|
||||
{
|
||||
return (p->cur + slen > p->end) || memcmp(p->cur, s, slen);
|
||||
}
|
||||
|
||||
|
||||
static int my_xml_scan(MY_XML_PARSER *p,MY_XML_ATTR *a)
|
||||
{
|
||||
int lex;
|
||||
@ -123,16 +130,20 @@ static int my_xml_scan(MY_XML_PARSER *p,MY_XML_ATTR *a)
|
||||
a->beg=p->cur;
|
||||
a->end=p->cur;
|
||||
|
||||
if ((p->end - p->cur > 3) && !memcmp(p->cur,"<!--",4))
|
||||
if (!my_xml_parser_prefix_cmp(p, C_STRING_WITH_LEN("<!--")))
|
||||
{
|
||||
for (; (p->cur < p->end) && memcmp(p->cur, "-->", 3); p->cur++)
|
||||
{}
|
||||
if (!memcmp(p->cur, "-->", 3))
|
||||
p->cur+=3;
|
||||
for (; p->cur < p->end; p->cur++)
|
||||
{
|
||||
if (!my_xml_parser_prefix_cmp(p, C_STRING_WITH_LEN("-->")))
|
||||
{
|
||||
p->cur+= 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
a->end=p->cur;
|
||||
lex=MY_XML_COMMENT;
|
||||
}
|
||||
else if (!memcmp(p->cur, "<![CDATA[",9))
|
||||
else if (!my_xml_parser_prefix_cmp(p, C_STRING_WITH_LEN("<![CDATA[")))
|
||||
{
|
||||
p->cur+= 9;
|
||||
for (; p->cur < p->end - 2 ; p->cur++)
|
||||
|
Loading…
x
Reference in New Issue
Block a user