From: Nirbhay Choubey Date: June 20 2011 9:13am Subject: bzr commit into mysql-trunk branch (nirbhay.choubey:3222) Bug#12368203 List-Archive: http://lists.mysql.com/commits/139494 X-Bug: 12368203 Message-Id: <201106200915.p5K9F7lZ013062@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2025962461==" --===============2025962461== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/nirbhay/Project/mysql/repo/bugs/mysql-trunk.60878/ based on revid:inaam.rana@stripped 3222 Nirbhay Choubey 2011-06-20 Bug#12368203 - 60878: mysqladmin doesn't support flushing specific logs mysqladmin currently supports a command 'flush-logs' to flush all log types. However, mysqladmin offered no support to flush specific logs. Added sub-commands to flush following (all) log types: binary, engine, error, general, relay, slow. @ client/mysqladmin.cc Bug#12368203 - 60878: mysqladmin doesn't support flushing specific logs mysqladmin will now optionally accept sub-commands to flush logs of specific type. mysqladmin flush-logs [log_type] @ mysql-test/r/bug60878.result Bug#12368203 - 60878: mysqladmin doesn't support flushing specific logs Added test for Bug#12368203. @ mysql-test/t/bug60878-master.opt Bug#12368203 - 60878: mysqladmin doesn't support flushing specific logs Added test for Bug#12368203. @ mysql-test/t/bug60878.test Bug#12368203 - 60878: mysqladmin doesn't support flushing specific logs Added test for Bug#12368203. added: mysql-test/r/bug60878.result mysql-test/t/bug60878-master.opt mysql-test/t/bug60878.test modified: client/mysqladmin.cc === modified file 'client/mysqladmin.cc' --- a/client/mysqladmin.cc 2011-06-06 10:29:45 +0000 +++ b/client/mysqladmin.cc 2011-06-20 09:13:02 +0000 @@ -869,11 +869,32 @@ static int execute_commands(MYSQL *mysql } case ADMIN_FLUSH_LOGS: { - if (mysql_refresh(mysql,REFRESH_LOG)) + if ((argc == 2) && + ((!my_strcasecmp(&my_charset_latin1, argv[1], "binary")) || + (!my_strcasecmp(&my_charset_latin1, argv[1], "engine")) || + (!my_strcasecmp(&my_charset_latin1, argv[1], "error")) || + (!my_strcasecmp(&my_charset_latin1, argv[1], "general")) || + (!my_strcasecmp(&my_charset_latin1, argv[1], "relay")) || + (!my_strcasecmp(&my_charset_latin1, argv[1], "slow")))) + { + char buff[42]; + sprintf(buff, "FLUSH /*!50503 %s */ LOGS", argv[1]); + if (mysql_query(mysql, buff)) + { + my_printf_error(0, "refresh failed; error: '%s'", error_flags, + mysql_error(mysql)); + return -1; + } + argc--; argv++; + } + else { - my_printf_error(0, "refresh failed; error: '%s'", error_flags, - mysql_error(mysql)); - return -1; + if (mysql_refresh(mysql,REFRESH_LOG)) + { + my_printf_error(0, "refresh failed; error: '%s'", error_flags, + mysql_error(mysql)); + return -1; + } } break; } === added file 'mysql-test/r/bug60878.result' --- a/mysql-test/r/bug60878.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/r/bug60878.result 2011-06-20 09:13:02 +0000 @@ -0,0 +1,30 @@ +include/master-slave.inc +[connection master] +# Test if mysqladmin supports 'flush-logs error' command. +# Make sure binary logs was not be flushed +# after execute 'flush error logs' statement. +# Make sure relay logs was not be flushed +# after execute 'flush error logs' statement. +# Test if mysqladmin supports 'flush-logs relay' command. +# Check if 'slave-relay-bin.000003' file is created +# after executing 'flush-logs relay' command. +# Make sure binary logs was not be flushed +# after executeing 'flush-logs relay' command. +# Test if mysqladmin supports 'flush-logs slow' command. +# Make sure binary logs were not be flushed +# after executing 'flush-logs slow' command. +# Test if mysqladmin supports 'flush-logs general' command. +# Make sure binary logs was not be flushed +# after execute 'flush-logs general' command. +# Test if mysqladmin supports 'flush-logs engine' command. +# Make sure binary logs was not be flushed +# after execute 'flush-logs engnine' statement. +# Make sure the 'master-bin.000002' file does not +# exist before execution of 'flush-logs binary' command. +# Test if mysqladmin supports 'flush-logs binary' command. +# Check if 'master-bin.000002' file is created +# after execution of 'flush-logs binary' statement. +# Test if 'flush-logs' command works fine and flush all the logs. +# Check 'master-bin.000003' is created +# after executing 'flush-logs' command. +include/rpl_end.inc === added file 'mysql-test/t/bug60878-master.opt' --- a/mysql-test/t/bug60878-master.opt 1970-01-01 00:00:00 +0000 +++ b/mysql-test/t/bug60878-master.opt 2011-06-20 09:13:02 +0000 @@ -0,0 +1 @@ +--log-error=$MYSQLTEST_VARDIR/tmp/master_log.err === added file 'mysql-test/t/bug60878.test' --- a/mysql-test/t/bug60878.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/t/bug60878.test 2011-06-20 09:13:02 +0000 @@ -0,0 +1,110 @@ +# +# [ Based on ./suite/rpl/t/rpl_flush_logs.test ] +# This test verifies if the 'flush individual logs' command +# works fine with mysqladmin. +# + +--source include/master-slave.inc +--source include/have_binlog_format_statement.inc + +connection master; +# +# Test 'flush-logs error' command. +# +--echo # Test if mysqladmin supports 'flush-logs error' command. +--exec $MYSQLADMIN -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT flush-logs error + +file_exists $MYSQLTEST_VARDIR/tmp/master_log.err; + +--echo # Make sure binary logs was not be flushed +--echo # after execute 'flush error logs' statement. +--error 1 +file_exists $MYSQLTEST_VARDIR/mysqld.1/data/master-bin.000002; + +sync_slave_with_master; +--echo # Make sure relay logs was not be flushed +--echo # after execute 'flush error logs' statement. +--error 1 +file_exists $MYSQLTEST_VARDIR/mysqld.2/data/slave-relay-bin.000003; + +connection master; +# +# Test 'flush-logs relay' command. +# +--echo # Test if mysqladmin supports 'flush-logs relay' command. +--exec $MYSQLADMIN -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT flush-logs relay + +sync_slave_with_master; +--echo # Check if 'slave-relay-bin.000003' file is created +--echo # after executing 'flush-logs relay' command. +file_exists $MYSQLTEST_VARDIR/mysqld.2/data/slave-relay-bin.000003; + +connection master; +--echo # Make sure binary logs was not be flushed +--echo # after executeing 'flush-logs relay' command. +--error 1 +file_exists $MYSQLTEST_VARDIR/mysqld.1/data/master-bin.000002; + +# +# Test 'flush-logs slow' command. +# +--echo # Test if mysqladmin supports 'flush-logs slow' command. +--exec $MYSQLADMIN -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT flush-logs slow + +--echo # Make sure binary logs were not be flushed +--echo # after executing 'flush-logs slow' command. +--error 1 +file_exists $MYSQLTEST_VARDIR/mysqld.1/data/master-bin.000002; + +# +# Test 'flush-logs general' command. +# +--echo # Test if mysqladmin supports 'flush-logs general' command. +--exec $MYSQLADMIN -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT flush-logs general + +--echo # Make sure binary logs was not be flushed +--echo # after execute 'flush-logs general' command. +--error 1 +file_exists $MYSQLTEST_VARDIR/mysqld.1/data/master-bin.000002; + +# +# Test 'flush-logs engine' command. +# +--echo # Test if mysqladmin supports 'flush-logs engine' command. +--exec $MYSQLADMIN -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT flush-logs engine + +--echo # Make sure binary logs was not be flushed +--echo # after execute 'flush-logs engnine' statement. +--error 1 +file_exists $MYSQLTEST_VARDIR/mysqld.1/data/master-bin.000002; + +# +# Test 'flush-logs binary' command. +# +--echo # Make sure the 'master-bin.000002' file does not +--echo # exist before execution of 'flush-logs binary' command. +--error 1 +file_exists $MYSQLTEST_VARDIR/mysqld.1/data/master-bin.000002; + +--echo # Test if mysqladmin supports 'flush-logs binary' command. +--exec $MYSQLADMIN -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT flush-logs binary + +--echo # Check if 'master-bin.000002' file is created +--echo # after execution of 'flush-logs binary' statement. +file_exists $MYSQLTEST_VARDIR/mysqld.1/data/master-bin.000002; +file_exists $MYSQLTEST_VARDIR/mysqld.1/data/master-bin.000001; + +# +# Test 'flush-logs' command +# +connection master; + +--echo # Test if 'flush-logs' command works fine and flush all the logs. + +--exec $MYSQLADMIN -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT flush-logs + +--echo # Check 'master-bin.000003' is created +--echo # after executing 'flush-logs' command. +file_exists $MYSQLTEST_VARDIR/mysqld.1/data/master-bin.000003; + +--source include/rpl_end.inc --===============2025962461== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/nirbhay.choubey@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: nirbhay.choubey@stripped\ # xwhlcjn3m96bru20 # target_branch: file:///home/nirbhay/Project/mysql/repo/bugs/mysql-\ # trunk.60878/ # testament_sha1: f5543e2eea26bb22e30953b4f4b09d45e8b240f9 # timestamp: 2011-06-20 14:43:12 +0530 # base_revision_id: inaam.rana@stripped\ # 8ya3td65kg7qjc32 # # Begin bundle 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 --===============2025962461==--