From 686d0ba155c01b5ef792da6debd0e5471bff7366 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 7 May 2005 06:55:47 -0700 Subject: Add support for slave_compressed_protocol, slave_load_tmpdir, and slave_skip_errors in SHOW VARIABLES. (Bug #7800) sql/structs.h: Add SHOW_SLAVE_SKIP_ERRORS sql/set_var.cc: Add slave_compressed_protocol, slave_load_tmpdir, slave_skip_errors to list of variables. mysql-test/t/rpl_variables.test: Add test for additional slave-related variables mysql-test/r/rpl_variables.result: Update results sql/sql_show.cc: Handle showing slave_skip_errors --- mysql-test/r/rpl_variables.result | 9 +++++++++ mysql-test/t/rpl_variables-master.opt | 1 + mysql-test/t/rpl_variables.test | 8 ++++++++ sql/set_var.cc | 4 ++++ sql/sql_show.cc | 27 +++++++++++++++++++++++++++ sql/structs.h | 2 +- 6 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 mysql-test/t/rpl_variables-master.opt diff --git a/mysql-test/r/rpl_variables.result b/mysql-test/r/rpl_variables.result index 227d8ecfad9..b6da7f76a6d 100644 --- a/mysql-test/r/rpl_variables.result +++ b/mysql-test/r/rpl_variables.result @@ -6,3 +6,12 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; set global slave_net_timeout=100; set global sql_slave_skip_counter=100; +show variables like 'slave_compressed_protocol'; +Variable_name Value +slave_compressed_protocol OFF +show variables like 'slave_load_tmpdir'; +Variable_name Value +slave_load_tmpdir MYSQL_TEST_DIR/var/tmp/ +show variables like 'slave_skip_errors'; +Variable_name Value +slave_skip_errors 3,100,137,643,1752 diff --git a/mysql-test/t/rpl_variables-master.opt b/mysql-test/t/rpl_variables-master.opt new file mode 100644 index 00000000000..a668c6bfbe8 --- /dev/null +++ b/mysql-test/t/rpl_variables-master.opt @@ -0,0 +1 @@ +--slave-skip-errors=3,100,137,643,1752 diff --git a/mysql-test/t/rpl_variables.test b/mysql-test/t/rpl_variables.test index b332c006118..a4a6e69c845 100644 --- a/mysql-test/t/rpl_variables.test +++ b/mysql-test/t/rpl_variables.test @@ -2,3 +2,11 @@ source include/master-slave.inc; set global slave_net_timeout=100; set global sql_slave_skip_counter=100; + +# BUG #7800: Add various-slave related variables to SHOW VARIABLES +show variables like 'slave_compressed_protocol'; +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR +show variables like 'slave_load_tmpdir'; +# We just set some arbitrary values in variables-master.opt so we can test +# that a list of values works correctly +show variables like 'slave_skip_errors'; diff --git a/sql/set_var.cc b/sql/set_var.cc index 4add5d6b39b..146f64e3127 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -951,7 +951,11 @@ struct show_var_st init_vars[]= { {"skip_networking", (char*) &opt_disable_networking, SHOW_BOOL}, {"skip_show_database", (char*) &opt_skip_show_db, SHOW_BOOL}, #ifdef HAVE_REPLICATION + {sys_slave_compressed_protocol.name, + (char*) &sys_slave_compressed_protocol, SHOW_SYS}, + {"slave_load_tmpdir", (char*) &slave_load_tmpdir, SHOW_CHAR_PTR}, {sys_slave_net_timeout.name,(char*) &sys_slave_net_timeout, SHOW_SYS}, + {"slave_skip_errors", (char*) &slave_error_mask, SHOW_SLAVE_SKIP_ERRORS}, {sys_slave_trans_retries.name,(char*) &sys_slave_trans_retries, SHOW_SYS}, #endif {sys_slow_launch_time.name, (char*) &sys_slow_launch_time, SHOW_SYS}, diff --git a/sql/sql_show.cc b/sql/sql_show.cc index ceb98740298..93445bedf98 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -1345,6 +1345,33 @@ static bool show_status_array(THD *thd, const char *wild, pthread_mutex_unlock(&LOCK_active_mi); break; } + case SHOW_SLAVE_SKIP_ERRORS: + { + MY_BITMAP *bitmap= (MY_BITMAP *)value; + if (!use_slave_mask || bitmap_is_clear_all(bitmap)) + { + end= strmov(buff, "OFF"); + } + else if (bitmap_is_set_all(bitmap)) + { + end= strmov(buff, "ALL"); + } + else + { + for (int i= 1; i < MAX_SLAVE_ERROR; i++) + { + if (bitmap_is_set(bitmap, i)) + { + end+= my_snprintf((char *)end, sizeof(buff) - (end - buff), + "%d,", i); + } + } + if (end != buff) + end--; // Remove last ',' + *(char *)end= 0; + } + break; + } #endif /* HAVE_REPLICATION */ case SHOW_OPENTABLES: end= int10_to_str((long) cached_tables(), buff, 10); diff --git a/sql/structs.h b/sql/structs.h index 7a70bfc0f4f..14c0100f5be 100644 --- a/sql/structs.h +++ b/sql/structs.h @@ -184,7 +184,7 @@ enum SHOW_TYPE #endif /* HAVE_OPENSSL */ SHOW_RPL_STATUS, SHOW_SLAVE_RUNNING, SHOW_SLAVE_RETRIED_TRANS, SHOW_KEY_CACHE_LONG, SHOW_KEY_CACHE_CONST_LONG, - SHOW_LONG_STATUS, SHOW_LONG_CONST_STATUS + SHOW_LONG_STATUS, SHOW_LONG_CONST_STATUS, SHOW_SLAVE_SKIP_ERRORS }; enum SHOW_COMP_OPTION { SHOW_OPTION_YES, SHOW_OPTION_NO, SHOW_OPTION_DISABLED}; -- cgit v1.2.1 From e9beb6d0aa8056d01637272d1782e2ae2482762d Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 16 May 2005 10:21:28 -0700 Subject: Cleanups based on feedback from Monty. sql/sql_show.cc: Use int10_to_str() instead of my_snprintf() for formatting number --- sql/sql_show.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 93445bedf98..fe2ed04cf5d 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -1362,13 +1362,12 @@ static bool show_status_array(THD *thd, const char *wild, { if (bitmap_is_set(bitmap, i)) { - end+= my_snprintf((char *)end, sizeof(buff) - (end - buff), - "%d,", i); + end= int10_to_str(i, (char*) end, 10); + *(char*) end++= ','; } } if (end != buff) end--; // Remove last ',' - *(char *)end= 0; } break; } -- cgit v1.2.1