Loading myisam/sort.c +3 −2 Original line number Diff line number Diff line Loading @@ -138,8 +138,9 @@ int _create_index_by_sort(MI_SORT_PARAM *info,my_bool no_messages, while (memavl >= MIN_SORT_MEMORY) { if ((my_off_t) (records+1)*(sort_length+sizeof(char*)) <= (my_off_t) memavl) if ((records < UINT_MAX32) && ((my_off_t) (records + 1) * (sort_length + sizeof(char*)) <= (my_off_t) memavl)) keys= records+1; else do Loading mysql-test/suite/large_tests/README.TXT 0 → 100644 +13 −0 Original line number Diff line number Diff line large_test suite ================ Iggy Galarza 07/20/07 --------------------- This test suite should include any test that requires: 1. Longer than the default timeout to complete. 2. A considerable amount of disk space. These tests can be completed with the following command: mysql-test-run.pl --suite=large_tests --big-test --suite-timeout=6360 --testcase-timeout=795 mysql-test/suite/large_tests/r/alter_table.result 0 → 100644 +37 −0 Original line number Diff line number Diff line drop table if exists t1; create table `t1` (`c1` tinyint unsigned not null, key `c1` (`c1`)) engine=myisam default charset=utf8; alter table `t1` disable keys; insert into t1 values (1),(2),(3),(4); insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1 limit 2147483647; alter table t1 enable keys; drop table t1; mysql-test/suite/large_tests/t/alter_table.test 0 → 100644 +47 −0 Original line number Diff line number Diff line # The test for bug#27029 requires about 8 hours and 20 minutes on my # fastest machine. This test requires at least 60 GB of disk space. --source include/big_test.inc # # Bug#27029 alter table ... enable keys crashes mysqld on large table # --disable_warnings drop table if exists t1; --enable_warnings create table `t1` (`c1` tinyint unsigned not null, key `c1` (`c1`)) engine=myisam default charset=utf8; alter table `t1` disable keys; insert into t1 values (1),(2),(3),(4); insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1 limit 2147483647; #Insert 4294967295 rows. alter table t1 enable keys; drop table t1; Loading
myisam/sort.c +3 −2 Original line number Diff line number Diff line Loading @@ -138,8 +138,9 @@ int _create_index_by_sort(MI_SORT_PARAM *info,my_bool no_messages, while (memavl >= MIN_SORT_MEMORY) { if ((my_off_t) (records+1)*(sort_length+sizeof(char*)) <= (my_off_t) memavl) if ((records < UINT_MAX32) && ((my_off_t) (records + 1) * (sort_length + sizeof(char*)) <= (my_off_t) memavl)) keys= records+1; else do Loading
mysql-test/suite/large_tests/README.TXT 0 → 100644 +13 −0 Original line number Diff line number Diff line large_test suite ================ Iggy Galarza 07/20/07 --------------------- This test suite should include any test that requires: 1. Longer than the default timeout to complete. 2. A considerable amount of disk space. These tests can be completed with the following command: mysql-test-run.pl --suite=large_tests --big-test --suite-timeout=6360 --testcase-timeout=795
mysql-test/suite/large_tests/r/alter_table.result 0 → 100644 +37 −0 Original line number Diff line number Diff line drop table if exists t1; create table `t1` (`c1` tinyint unsigned not null, key `c1` (`c1`)) engine=myisam default charset=utf8; alter table `t1` disable keys; insert into t1 values (1),(2),(3),(4); insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1 limit 2147483647; alter table t1 enable keys; drop table t1;
mysql-test/suite/large_tests/t/alter_table.test 0 → 100644 +47 −0 Original line number Diff line number Diff line # The test for bug#27029 requires about 8 hours and 20 minutes on my # fastest machine. This test requires at least 60 GB of disk space. --source include/big_test.inc # # Bug#27029 alter table ... enable keys crashes mysqld on large table # --disable_warnings drop table if exists t1; --enable_warnings create table `t1` (`c1` tinyint unsigned not null, key `c1` (`c1`)) engine=myisam default charset=utf8; alter table `t1` disable keys; insert into t1 values (1),(2),(3),(4); insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1; insert into t1 select * from t1 limit 2147483647; #Insert 4294967295 rows. alter table t1 enable keys; drop table t1;