#!!! notice !!!
# Any small change to this file in the main branch
# should be done or reviewed by the maintainer!
-diff -ruN /dev/null b/patch_info/show_slave_status_nolock.patch
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/patch_info/show_slave_status_nolock.patch 2011-04-10 11:29:06.000000000 +0400
+--- /dev/null
++++ b/patch_info/show_slave_status_nolock.patch
@@ -0,0 +1,6 @@
+File=show_slave_status_nolock.patch
+Name= SHOW SLAVE STATUS NOLOCK
+Author=Percona <info@percona.com>
+License=GPL
+Comment= Implement SHOW SLAVE STATUS without lock (STOP SLAVE lock the same mutex what lock SHOW SLAVE STATUS)
-diff -ruN a/sql/lex.h b/sql/lex.h
---- a/sql/lex.h 2011-04-10 11:29:05.000000000 +0400
-+++ b/sql/lex.h 2011-04-10 11:29:06.000000000 +0400
+--- a/sql/lex.h
++++ b/sql/lex.h
@@ -378,6 +378,7 @@
{ "NONE", SYM(NONE_SYM)},
{ "NOT", SYM(NOT_SYM)},
{ "NULL", SYM(NULL_SYM)},
{ "NUMERIC", SYM(NUMERIC_SYM)},
{ "NVARCHAR", SYM(NVARCHAR_SYM)},
-diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
---- a/sql/mysqld.cc 2011-04-10 11:29:05.000000000 +0400
-+++ b/sql/mysqld.cc 2011-04-10 11:29:06.000000000 +0400
-@@ -3071,6 +3071,7 @@
+--- a/sql/mysqld.cc
++++ b/sql/mysqld.cc
+@@ -3121,6 +3121,7 @@
{"show_relaylog_events", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_RELAYLOG_EVENTS]), SHOW_LONG_STATUS},
{"show_slave_hosts", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_SLAVE_HOSTS]), SHOW_LONG_STATUS},
{"show_slave_status", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_SLAVE_STAT]), SHOW_LONG_STATUS},
{"show_status", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_STATUS]), SHOW_LONG_STATUS},
{"show_storage_engines", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_STORAGE_ENGINES]), SHOW_LONG_STATUS},
{"show_table_status", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_TABLE_STATUS]), SHOW_LONG_STATUS},
-diff -ruN a/sql/sql_lex.h b/sql/sql_lex.h
---- a/sql/sql_lex.h 2011-04-10 11:29:05.000000000 +0400
-+++ b/sql/sql_lex.h 2011-04-10 11:29:06.000000000 +0400
+--- a/sql/sql_lex.h
++++ b/sql/sql_lex.h
@@ -190,6 +190,8 @@
SQLCOM_SHOW_PROFILE, SQLCOM_SHOW_PROFILES,
SQLCOM_SIGNAL, SQLCOM_RESIGNAL,
/*
When a command is added here, be sure it's also added in mysqld.cc
in "struct show_var_st status_vars[]= {" ...
-diff -ruN a/sql/sql_parse.cc b/sql/sql_parse.cc
---- a/sql/sql_parse.cc 2011-04-10 11:28:51.000000000 +0400
-+++ b/sql/sql_parse.cc 2011-04-10 11:29:06.000000000 +0400
+--- a/sql/sql_parse.cc
++++ b/sql/sql_parse.cc
@@ -335,6 +335,7 @@
sql_command_flags[SQLCOM_SHOW_CREATE]= CF_STATUS_COMMAND;
sql_command_flags[SQLCOM_SHOW_MASTER_STAT]= CF_STATUS_COMMAND;
sql_command_flags[SQLCOM_SHOW_CREATE_PROC]= CF_STATUS_COMMAND;
sql_command_flags[SQLCOM_SHOW_CREATE_FUNC]= CF_STATUS_COMMAND;
sql_command_flags[SQLCOM_SHOW_CREATE_TRIGGER]= CF_STATUS_COMMAND;
-@@ -2293,12 +2294,16 @@
+@@ -2359,12 +2360,16 @@
mysql_mutex_unlock(&LOCK_active_mi);
break;
}
if (active_mi != NULL)
{
res = show_master_info(thd, active_mi);
-@@ -2309,7 +2314,10 @@
+@@ -2375,7 +2380,10 @@
WARN_NO_MASTER_INFO, ER(WARN_NO_MASTER_INFO));
my_ok(thd);
}
break;
}
case SQLCOM_SHOW_MASTER_STAT:
-diff -ruN a/sql/sql_yacc.yy b/sql/sql_yacc.yy
---- a/sql/sql_yacc.yy 2011-04-10 11:29:05.000000000 +0400
-+++ b/sql/sql_yacc.yy 2011-04-10 11:29:06.000000000 +0400
-@@ -1292,6 +1292,7 @@
+--- a/sql/sql_yacc.yy
++++ b/sql/sql_yacc.yy
+@@ -1293,6 +1293,7 @@
%token STARTS_SYM
%token START_SYM /* SQL-2003-R */
%token STATUS_SYM
%token STDDEV_SAMP_SYM /* SQL-2003-N */
%token STD_SYM
%token STOP_SYM
-@@ -11082,6 +11083,10 @@
+@@ -11086,6 +11087,10 @@
{
Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
}