From: Anirudh Mangipudi Date: October 30 2012 2:20pm Subject: bzr push into mysql-5.1 branch (anirudh.mangipudi:3851 to 3852) Bug#11754894 List-Archive: http://lists.mysql.com/commits/145292 X-Bug: 11754894 Message-Id: <20121030142041.10298.80586.3852@anirudh-ThinkPad-T420> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3852 Anirudh Mangipudi 2012-10-30 BUG#11754894: MYISAMCHK ERROR HAS INCORRECT REFERENCE TO 'MYISAM_SORT_BUFFER_SIZE' Problem: 'myisam_sort_buffer_size' is a parameter used by mysqld program only whereas 'sort_buffer_size' is used by mysqld and myisamchk programs. But the error message printed when myisamchk program is run with insufficient buffer size is myisam_sort_buffer_size is too small which may mislead to the server parameter myisam_sort_buffer_size. SOLUTION: A parameter 'myisam_sort_buffer_size' is added as an alias for 'sort_buffer_size' and the 'sort_buffer_size' parameter is marked as deprecated. So myisamchk also has both the parameters with the same role. modified: storage/myisam/myisamchk.c 3851 Shivji Kumar Jha 2012-10-30 BUG#14659685 - main.mysqlbinlog_row_myisam and main.mysqlbinlog_row_innodb are skipped by mtr === Problem === The following tests are wrongly placed in main suite and as a result these are not run with proper binlog format combinations. Some are always skipped by mtr. 1) mysqlbinlog_row_myisam 2) mysqlbinlog_row_innodb 3) mysqlbinlog_row.test 4) mysqlbinlog_row_trans.test 5) mysqlbinlog-cp932 6) mysqlbinlog2 7) mysqlbinlog_base64 === Background === mtr runs the tests placed in main suite with binlog format=stmt. Those that need to be tested against binlog format=row or mixed or more than one binlog format and require only one mysql server are placed in binlog suite. mtr runs tests in binlog suite with all three binlog formats(stmt,row and mixed). === Fix === 1) Moved the test listed in problem section above to binlog suite. 2) Added prefix "binlog_" to the name of each test case moved. Renamed the coresponding result files and option files accordingly. @ mysql-test/extra/binlog_tests/mysqlbinlog_row_engine.inc include file for mysqlbinlog_row_myisam.test and mysqlbinlog_row_myisam.test which are being moved to binlog suite. @ mysql-test/suite/binlog/r/binlog_mysqlbinlog-cp932.result result file for mysqlbinlog-cp932.test which is being moved to binlog suite. @ mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result result file for mysqlbinlog2.test which is being moved to binlog suite. @ mysql-test/suite/binlog/r/binlog_mysqlbinlog_base64.result result file for mysqlbinlog_base64.test which is being moved to binlog suite. @ mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result result file for mysqlbinlog_row.test which is being moved to binlog suite. @ mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result result file for mysqlbinlog_row_innodb.test which is being moved to binlog suite. @ mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result result file for mysqlbinlog_row_myisam.test which is being moved to binlog suite. @ mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result result file for mysqlbinlog_row_trans.test which is being moved to binlog suite. @ mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932-master.opt option file for mysqlbinlog-cp932.test which is being moved to binlog suite. @ mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932.test the test requires binlog format=stmt or mixed. Since, it was placed in main suite earlier, it was only run with binlog format=stmt, and hence this test was never run with binlog format=mixed. @ mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test the test requires binlog format=stmt or mixed. Since, it was placed in main suite earlier, it was only run with binlog format=stmt, and hence this test was never run with binlog format=mixed. @ mysql-test/suite/binlog/t/binlog_mysqlbinlog_base64.test the test requires binlog format=row. Since, it was placed in main suite earlier, it was only run with binlog format=stmt, and hence this test was always skipped by mtr. @ mysql-test/suite/binlog/t/binlog_mysqlbinlog_row.test the test requires binlog format=row. Since, it was placed in main suite earlier, it was only run with binlog format=stmt, and hence this test was always skipped by mtr. @ mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb.test the test requires binlog format=row. Since, it was placed in main suite earlier, it was only run with binlog format=stmt, and hence this test was always skipped by mtr. @ mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam.test the test requires binlog format=row. Since, it was placed in main suite earlier, it was only run with binlog format=stmt, and hence this test was always skipped by mtr. @ mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test the test requires binlog format=row. Since, it was placed in main suite earlier, it was only run with binlog format=stmt, and hence this test was always skipped by mtr. renamed: mysql-test/include/mysqlbinlog_row_engine.inc => mysql-test/extra/binlog_tests/mysqlbinlog_row_engine.inc mysql-test/r/mysqlbinlog-cp932.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog-cp932.result mysql-test/r/mysqlbinlog2.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result mysql-test/r/mysqlbinlog_base64.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_base64.result mysql-test/r/mysqlbinlog_row.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result mysql-test/r/mysqlbinlog_row_innodb.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result mysql-test/r/mysqlbinlog_row_myisam.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result mysql-test/r/mysqlbinlog_row_trans.result => mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result mysql-test/t/mysqlbinlog-cp932-master.opt => mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932-master.opt mysql-test/t/mysqlbinlog-cp932.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932.test mysql-test/t/mysqlbinlog2.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test mysql-test/t/mysqlbinlog_base64.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_base64.test mysql-test/t/mysqlbinlog_row.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row.test mysql-test/t/mysqlbinlog_row_innodb.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb.test mysql-test/t/mysqlbinlog_row_myisam.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam.test mysql-test/t/mysqlbinlog_row_trans.test => mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test modified: mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb.test mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam.test === modified file 'storage/myisam/myisamchk.c' --- a/storage/myisam/myisamchk.c 2011-06-30 15:37:13 +0000 +++ b/storage/myisam/myisamchk.c 2012-10-30 13:19:15 +0000 @@ -310,7 +310,14 @@ static struct my_option my_long_options[ &check_param.write_buffer_length, 0, GET_ULONG, REQUIRED_ARG, (long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD, INT_MAX32, (long) MALLOC_OVERHEAD, (long) 1L, 0}, - { "sort_buffer_size", OPT_SORT_BUFFER_SIZE, "", + { "sort_buffer_size", OPT_SORT_BUFFER_SIZE, + "Deprecated. myisam_sort_buffer_size alias is being used", + &check_param.sort_buffer_length, + &check_param.sort_buffer_length, 0, GET_ULONG, REQUIRED_ARG, + (long) SORT_BUFFER_INIT, (long) (MIN_SORT_BUFFER + MALLOC_OVERHEAD), + ULONG_MAX, (long) MALLOC_OVERHEAD, (long) 1L, 0}, + { "myisam_sort_buffer_size", OPT_SORT_BUFFER_SIZE, + "Alias of sort_buffer_size parameter", &check_param.sort_buffer_length, &check_param.sort_buffer_length, 0, GET_ULONG, REQUIRED_ARG, (long) SORT_BUFFER_INIT, (long) (MIN_SORT_BUFFER + MALLOC_OVERHEAD), No bundle (reason: useless for push emails).